From 123c0e7a72a00c2d7a24d34d70952ad0057c8590 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 12 Jun 2024 16:21:36 +0900 Subject: [PATCH 01/65] etboard_test --- images/hardware/avmboard.png | Bin 0 -> 4549 bytes .../blocks/hardware/block_avmboard.js | 1162 +++++++++++++++++ 2 files changed, 1162 insertions(+) create mode 100644 images/hardware/avmboard.png create mode 100644 src/playground/blocks/hardware/block_avmboard.js diff --git a/images/hardware/avmboard.png b/images/hardware/avmboard.png new file mode 100644 index 0000000000000000000000000000000000000000..1f886c8a28a5f9297e42c49ff74549d7e41c7a8c GIT binary patch literal 4549 zcmcIoS2P@q66PmZWpx&-tO(I1kt|E}-h1yYt1XKt(XC!K1xrGdh)(p_s9{BkXwib` z5xpg>)vy0P-uL_P&7AMdyv&?A^Uawg13h&bN_I*jA|e`14HcsspYSgz$Zo9cy4Jq| zVt*rbC87_*;LRIC`b1Gzk%*}7In{;Zts4&T)v)v@BBEmW7sTJ^BQA)D=&dwW6itHd zcHaVmO;kVj>HAnh0F|T^Iy?Y|7!V5%=;*K3MQi8??joKx>>EMm`HTv{IEFrsvvauT0UY1C5BfE3)0P%0&nMIab zZ(*efQGVz@3`t~ec)^zh$QQ^m@BbNo#o5Tg ztwdDDFNAMsK3}2-+rX6&0q_iI(_%yBIlUkClq0CCOS#XGLJY6FS~nx&YrRhj%30u6 zE2WLf-oWhSEb+m=yv&MZU=g<_*^c;eE3h?vZA%?q#=HkkC!^KlA_vUF8h$SEZuB7k zOi1_l+WUUsS?fr+xkLtU9flVAms(pOeCZ@t$|@@2pR+{Jq{!QQCKhAq zArLddu5xG0rtv1btzB&&YkfR#=X8RRq2GSdp0f4i zcU|sh9)}*}^2(j;%ig{vzb)%}W&=-rUY@Ob^188)hez(g*IXT}(X-68M16%s)ISx_ zg;P?kK_Lrt2X?mQ^L$ss{?6W^d};v}OTF;A)uN6sT0tRk_57*yi_Gw-;-kK3GaSbe z*8A=YzL5_4s`*;Rk8W%A89yk*fm@!3iog9Z_sL}bLfd{ArwY%yJX|Nm!v;@w-3-p+zZdMohcFw+Q5cqqG4dSj8 z67%1LTsi9=e5&%L$AZmovTgbaWtu^U3ns{JTuRnVo&|*<`jvL?8_OW3_*z@b7)R+i zw|BFoZl;hx0~P0oQ_nIoZJk4%An&E%1`RKz%4l#aGbc{cU2^&%a_v~$*hwPvrqJS`0w+C8vKG+ACF5TFQpq)%5=D_JXs_`ooOoULZ9=y-|9)ylz5+pMs(r- zZBx(FM|FANQgEX7UBDx2gN^qqzva zrhC*6!=gRHs>&%Zfh@Dnkj~42fs^)Nw+2890LE*tfec9XCKt8d*bgc@Pi8P1mb!h% z!_X1xprd^rcn{m;Bv?mh1ePqa-_Ib$dM2 zC<;NK(f({~+1jIT_(H}{p3-Gu3lAc)1;%W;e=bc7#2L5NN$j&n%~#N)DEsFiIN0|O2vfmb&0@G!NsRBc{a8NHxy>^+DlN+u zLO^7PEy6LB;8B{yI*%F0a(afn-QP$u)ECi~_@;`e z7(t8-|~*7`1nEN zlZT~zH`0f@l_ZvTfZwl)VL`)t&c8p?>TsiRDA+YrmeD8P- zEu4&t5G7v0&k{QhCRWo6JafM~)A+{df$e}!rVa2J_8)CeYwioSFT5xQJ*=14xjcUR zB4adejf_=M7$`3J78m5%u$-XVx@@p8;3fw1GJ}ym=Ni)wSsWKq6N7;zZIlXs?a5P~ z)3PYoT?tBsegtU^e(geIzUW>b=ow6C77A3$>C(!J?Xhgktg?>gV1zqG>7ATRNW4+m zIa*+=iHRSXLvg@lbFf=FTO|z#rOL(hmYUyqigLHW(n7UH1nj*OpUwY*n##4^o6KWl z9SDX2H33LE_ARz}we&_7X8ZUawMWX_!cruerjx-2`Yqmba970hUIi*@#0>s+PavG+ zu}_+LNu+`Ddex+WvhelKQ>VLvg2s4doY&}W!-pJVN`vWZdosyTiURwsYKNwYD>vi- zvuvry2E)4LV1^wDUqDT}xd&WOqEZo6MBM;htQlPSrs5R?U9cjWtH;+#e*V7ZnW-mZ zH7YdmgsRE@OJw5#2cc&AcbD@>TX|dkb%gDs^Aa(RN4qiI{I%4CnI8l%M%Ow?2kC5-GTw^|%^tjH%V8S|B^3KO?2!A>LIxbw8iZo;XcrqXK zG(<+5uU~Lq?Xn-20gB7z|E`K>hBGWSh__L(rZkpzcKFtjPF0OK3SQpR0q1=D)s42T zc>RM;2u?Eo4EN!2lWj}T?f|Nbr0Ge_d@T|hw3`WiB2UA%-$5kGi*s1}4t4Bp1nlIr zc+J+c)(8EWeppDXR%zZw;!g4^)3j)^_sB|>*(D4cQ!FcDb0o^-C^+r3LMW{D7_eWO zzdj`yEO#AywV%mi30wT+^O%-}yK>B;J`fx`1V2vgrbCWW_s9ft$L!8DO?72K?#4cr ze^xRf*l7kh?HgV~9p?A+Yz8Re(IhYCQ{zH*;DPR499F00avKoc$PI+lt4OPm#TBYd z#50Od=d$ZMrhV(e)57Oz(UQ%9I3Qu@7xJq{$M09D>82+>dG&H>^dMd|E<}I_Cd7b$ zM+635GwN&Zk*UIk25i1-*M2}YD{Pxxi8oTB^Gz3!V5xwAZk1XM7es?qmsMjEgxbG& z>>TUoaH1pC8GHZ0s4l}7{EGekfA`rxbf-j|UHY$UXFywr;;KgWe%_{w<}GR-QgcX@ zs`mqa&c0dq^{#xs*3R>#((?3mcMB7rh}$jkRJk?sbjEgUPto~L_$JbuWtMcOT#ktS|T2nH%*TSQ;XNDo(BSrP~R)@_(Lc*44av3>; zdM*>+H-iw7sNLC~&xwxZwQ0_UIVq5pf^^;8bkfU%c*J^@qC8w7c_ql;_(5<1-XTBN zmV6l<@i>#b!8LRoL1Zd;d5%BIr7HD+G+bP@i8BctmiO_ycce904H4$sYY!Us9lnMa z6^hD%xNgoo8ve_(I~E_69tOmObweC$rhAis9%$I_lI?*95jFR$`lj#}s~bULts~$EmY>8;r#)va zm;wMGPMIOiI^aSoE*sp{)_y(Ntf41P;0gG2%XX~m2AzfBA$Il?wr{B*l zzIMdn67)Z38eKOT%LIARj*W?C0wt}|vv<0-N=kZ(#XDfM_pc9`<6o^WU&Jxsy>UO1 z%#y3sW~k) zu@R-7(-u`)(toY*8@*axE@q8LnZwbs?a6Zsn_8-mW?4nikEaBC2R4Su1VR0Xd`U*_ z!63V0+I{lXefA1!;`ezbRswoZv{GMmuHc<=80g+nV7Bix9X8Sl7Vvz(jH2eA!6v(0 zEczZ37dD6~Am#ZabqCjHDao(?)>LX0T0%fM(T zsZt<8ofR(7rRb2tRZ;5>uK4HSlqK@g32Re+^2v?rMy$aOTZ0lIvx9Kg?K7q$W2@@A zj$aPM;3Ra}NejO&xSW6xYjb-%)^wT+R6UjrSzUOjQdXX=gvE%muNP)vFv=z-q+ET* zMw|S0opx#T2J;#*2#O|{5%XHgy3GLybT33(<}Eqr?XT+~la?Bcxe~SYrzI=ZxbNUy z8T|WR^mLS|O-ldlsiIJ2MMeUM%WQhb+_n?lxg4@&mNKv(27p29!72h(cHv)q+gq$Y z@lzTm-ESjHJ`0<6Dcq(3)G6LQlZf@BG2i5B#1_`Fqjvc3F28FXfdIJvSIPbl987e@ ZEhg(1Djk1|^yc+Kq^YW>@ { + Entry.hw.sendQueue.SET[key].data = 0; + Entry.hw.sendQueue.SET[key].time = new Date().getTime(); + }); + } + Entry.hw.update(); + }, + sensorTypes: { + ALIVE: 0, + DIGITAL: 1, + ANALOG: 2, + PWM: 3, + SERVO_PIN: 4, + TONE: 5, + PULSEIN: 6, + ULTRASONIC: 7, + TIMER: 8, + OLED: 241, + COM: 242, + NEOPIXELCOLOR: 243, + + }, + duration: { + TIME_1ms: 1, + TIME_5ms: 5, + TIME_10ms: 10, + TIME_20ms: 20, + TIME_50ms: 50, + TIME_100ms: 100, + TIME_200ms: 200, + TIME_500ms: 500, + TIME_600ms: 600, + }, + highList: ['high', '1', 'on'], + lowList: ['low', '0', 'off'], + BlockState: {}, +}; + +Entry.avmboard.setLanguage = function() { + return { + ko: { + Blocks: { + GreenColor: '초록색', + BlueColor: '파랑색', + YellowColor: '노랑색', + RedColor: '빨강색', + GreenButton: '초록 버튼', + BlueButton: '파랑 버튼', + YellowButton: '노랑 버튼', + RedButton: '빨강 버튼', + }, + template: { + avmboard_serial_set: '시리얼 통신으로 설정하고 %1 속도로 전송하기', + avmboard_ble_set: '블루투스 통신으로 설정하고 %1 속도로 전송하기', + avmboard_get_analog_value: '아날로그 %1 센서값', + avmboard_toggle_pin: '디지털 %1 번핀 %2', + avmboard_port_number: '%1', + avmboard_ultrasonic_get_value:'초음파 송신 %1 핀 수신 %2 핀', + avmboard_get_digital_button: '%1 누름', + avmboard_get_digital: '디지털 %1번 센서값', + avmboard_toggle_led: 'LED %1 을 %2', + avmboard_get_port_number1: '%1', + avmboard_get_port_number: '%1', + avmboard_get_ultrasonic_port_number: '%1', + avmboard_set_servo: '서보모터 %1번 핀을 %2 도로 정하기', + avmboard_oled_set: 'OLED %1 번째 줄의 %2 표시하기', + avmboard_pw_get_port_number: '%1', + avmboard_neopixel_set: '디지털 %1 번 핀에 연결된 %2 번째 네오픽셀 %3 개 사용하기', + avmboard_neopixel_led: '네오픽셀 %1 번에 %2 번째 LED R: %3 , G: %4 , B: %5 색을 밝기 %6 으로 켜기', + avmboard_neopixel_all_led: '네오픽셀 %1 번에 LED R: %2 , G: %3 , B: %4 색을 밝기 %5 으로 켜기', + }, + }, + en: { + Blocks: { + GreenColor: 'Green Color', + BlueColor: 'Blue Color', + YellowColor: 'Yellow Color', + RedColor: 'Red Color', + GreenButton: 'Green Button', + BlueButton: 'Blue Button', + YellowButton: 'Yellow Button', + RedButton: 'Red Button', + }, + template: { + avmboard_serial_set: 'Set Serial COMM %1 boardrates', + avmboard_ble_set: 'Set Bluetooth COMM %1 boardrates', + avmboard_get_analog_value: 'Analog %1 Value', + avmboard_toggle_pin: 'Digital %1 PIN %2', + avmboard_port_number: '%1', + avmboard_ultrasonic_get_value:'Ultrasonic Trigger %1 PIN echo %2 PIN Value', + avmboard_get_digital_button: '%1 Push', + avmboard_get_digital: 'Digital %1 PIN Value', + avmboard_toggle_led: '%1 LED %2', + avmboard_get_port_number1: '%1', + avmboard_get_port_number: '%1', + avmboard_get_ultrasonic_port_number: '%1', + avmboard_set_servo: 'Servo %1 PIN %2 degree set', + avmboard_oled_set: 'OLE %1 line %2 Display', + avmboard_pw_get_port_number: '%1', + avmboard_neopixel_set: '디지털 %1 번핀에 연결된 %2 개의 네오픽셀 LED 사용하기', + avmboard_neopixel_led: '디지털 %1 번핀에 연결된 %2 번째 네오픽셀 LED R: %3 , G: %4 , B: %5 색으로 켜기', + avmboard_neopixel_all_led: '디지털 %1 번 핀에 연결된 %2 번째 네오픽셀 LED R: %3 , G: %4 , B: %5 색으로 켜기', + }, + }, + }; +}; + +Entry.avmboard.blockMenuBlocks = [ + 'avmboard_serial_set', + 'avmboard_ble_set', + 'avmboard_get_analog_value', + 'avmboard_ultrasonic_get_value', + 'avmboard_get_digital_button', + 'avmboard_get_digital', + 'avmboard_toggle_pin', + 'avmboard_toggle_led', + 'avmboard_set_servo', + 'avmboard_oled_set', + 'avmboard_neopixel_set', + 'avmboard_neopixel_led', + 'avmboard_neopixel_all_led', + +]; + +Entry.avmboard.getBlocks = function() { + return { + avmboard_serial_set: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params : [ + { + type: 'Dropdown', + options: [ + ['1','1'], + ['2','2'], + ['3','3'], + ['4','4'], + ['5','5'], + ['6','6'], + ['7','7'], + ['8','8'], + ['9','9'], + ['10','10'], + ], + value:'10', + fontSize:11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'avmboard_serial_set', + }, + isNotFor: [ 'avmboard' ], + syntax: undefined, + paramsKeyMap: { + NOTE: 0, + }, + class: 'COM', + func: function (sprite, script) { + var data = script.getField('NOTE'); + + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + Entry.hw.sendQueue['SET'][0] = { + type: 242, + data: data, + time: new Date().getTime() + }; + return script.callReturn(); + }, + }, + avmboard_ble_set: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + ["1","1"], + ["2","2"], + ["3","3"], + ], + "value":"3", + "fontSize":11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + "params": [ + null, + ], + "type": "avmboard_ble_set" + }, + isNotFor: [ "avmboard" ], + paramsKeyMap: { + "VALUE1": 0, + }, + class: "COM", + func: function (sprite, script) { + var data = script.getField("VALUE1"); + + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + Entry.hw.sendQueue['SET'][1] = { + type: 242, + data: data, + time: new Date().getTime() + }; + return script.callReturn(); + + }, + }, + avmboard_get_analog_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + events: {}, + params: [ + { + "type": "Dropdown", + "options": [ + [ "A0", "0" ], + [ "A1", "1" ], + [ "A2", "2" ], + [ "A3", "3" ], + [ "A4", "4" ], + [ "A5", "5" ], + ], + "value": "0", + "fontSize": 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ null ], + "type": "avmboard_get_analog_value" + }, + isNotFor: [ "avmboard" ], + class: "SENSOR", + paramsKeyMap: { + "PORT": 0, + }, + func: function (sprite, script) { + var port = script.getValue("PORT", script); + var ANALOG = Entry.hw.portData.ANALOG; + if (port[0] === "A") + port = port.substring(1) + return ANALOG ? ANALOG[port] || 0 : 0; + }, + }, + avmboard_get_port_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic_string_field", + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + [ "2", "2" ], + [ "3", "3" ], + [ "4", "4" ], + [ "5", "5" ], + [ "6", "6" ], + [ "7", "7" ], + [ "8", "8" ], + [ "9", "9" ], + ], + "value": "2", + "fontSize": 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + events: {}, + def: { + "params": [ null ] + }, + paramsKeyMap: { + "PORT": 0 + }, + func: function (sprite, script) { + return script.getStringField("PORT"); + }, + }, + avmboard_get_ultrasonic_port_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic_string_field", + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + [ "6", "6" ], + [ "7", "7" ], + [ "8", "8" ], + [ "9", "9" ], + ], + "value": "2", + "fontSize": 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + events: {}, + def: { + "params": [ null ] + }, + paramsKeyMap: { + "PORT": 0 + }, + func: function (sprite, script) { + return script.getStringField("PORT"); + }, + }, + avmboard_port_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic_string_field", + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + [ Lang.Blocks.RedButton, "6" ], + [ Lang.Blocks.BlueButton, "7" ], + [ Lang.Blocks.GreenButton, "8" ], + [ Lang.Blocks.YellowButton, "9" ], + ], + value: "6", + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + events: {}, + def: { + "params": [ null ] + }, + paramsKeyMap: { + "PORT": 0 + }, + func: function (sprite, script) { + return script.getStringField("PORT"); + }, + }, + avmboard_toggle_pin: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + "type": "Block", + "accept": "string" + }, + { + "type": "Block", + "accept": "string" + } + ], + events: {}, + def: { + "params": [ + { + "type": "avmboard_get_port_number" + }, + { + "type": "arduino_get_digital_toggle", + "params": [ "on" ], + }, + null + ], + "type": "avmboard_toggle_pin" + }, + paramsKeyMap: { + "PORT": 0, + "VALUE": 1, + }, + isNotFor: [ "avmboard" ], + class: "run", + func: function (sprite, script) { + var port = script.getNumberValue("PORT"); + var value = script.getValue("VALUE"); + + if(typeof value === 'string') { + value = value.toLowerCase(); + } + if(Entry.ArduinoExt.highList.indexOf(value) > -1) { + value = 255; + } else if(Entry.ArduinoExt.lowList.indexOf(value) > -1) { + value = 0; + } else { + throw new Error(); + } + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + Entry.hw.sendQueue['SET'][port] = { + type: Entry.avmboard.sensorTypes.DIGITAL, + data: value, + time: new Date().getTime() + }; + return script.callReturn(); + }, + }, + avmboard_ultrasonic_get_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic_string_field", + params: [ + { + "type": "Block", + "accept": "string" + }, + { + "type": "Block", + "accept": "string" + } + ], + def: { + params: [{ + type: 'avmboard_get_ultrasonic_port_number', + params: [ '6' ], + }, { + type: 'avmboard_get_ultrasonic_port_number', + params: [ '8' ], + }], + type: "avmboard_ultrasonic_get_value" + }, + paramsKeyMap: { + "PORT1": 0, + "PORT2": 1, + }, + func: function (sprite, script) { + var port1 = script.getNumberValue("PORT1", script); + var port2 = script.getNumberValue("PORT2", script); + + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + delete Entry.hw.sendQueue['SET'][port1]; + delete Entry.hw.sendQueue['SET'][port2]; + + if(!Entry.hw.sendQueue['GET']) { + Entry.hw.sendQueue['GET'] = {}; + } + Entry.hw.sendQueue['GET'][Entry.avmboard.sensorTypes.ULTRASONIC] = { + port: [port1, port2], + time: new Date().getTime() + }; + return Entry.hw.portData.ULTRASONIC || 0; + }, + isNotFor: [ "avmboard" ], + class: "SENSOR", + }, + avmboard_get_digital_button: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic_boolean_field", + params: [{ + "type": "Block", + "accept": "string" + }], + def: { + "params": [ + { + "type": "avmboard_port_number", + "params": [6] + } + ], + "type": "avmboard_get_digital_button" + }, + paramsKeyMap: { + "PORT": 0 + }, + class: "digital", + isNotFor: [ "avmboard" ], + func: function (sprite, script) { + var port = script.getNumberValue("PORT", script); + var DIGITAL = Entry.hw.portData.DIGITAL; + if(!Entry.hw.sendQueue['GET']) { + Entry.hw.sendQueue['GET'] = {}; + } + Entry.hw.sendQueue['GET'][Entry.avmboard.sensorTypes.DIGITAL] = { + port: port, + time: new Date().getTime() + }; + return (DIGITAL) ? DIGITAL[port] || 0 : 0; + }, + }, + avmboard_get_digital: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic_boolean_field", + params: [{ + "type": "Block", + "accept": "string" + }], + def: { + "params": [ + { + "type": "avmboard_get_port_number" + } + ], + "type": "avmboard_get_digital" + }, + paramsKeyMap: { + "PORT": 0 + }, + isNotFor: [ "avmboard" ], + class: "digital", + func: function (sprite, script) { + var port = script.getNumberValue("PORT", script); + var DIGITAL = Entry.hw.portData.DIGITAL; + if(!Entry.hw.sendQueue['GET']) { + Entry.hw.sendQueue['GET'] = {}; + } + Entry.hw.sendQueue['GET'][Entry.avmboard.sensorTypes.DIGITAL] = { + port: port, + time: new Date().getTime() + }; + return (DIGITAL) ? DIGITAL[port] || 0 : 0; + }, + }, + avmboard_get_port_number1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic_string_field", + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + [ Lang.Blocks.RedColor, "2" ], + [ Lang.Blocks.BlueColor, "3" ], + [ Lang.Blocks.GreenColor, "4" ], + [ Lang.Blocks.YellowColor, "5" ], + ], + "value": "2", + "fontSize": 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + "events": {}, + "def": { + "params": [ null ] + }, + "paramsKeyMap": { + "PORT": 0 + }, + "func": function (sprite, script) { + return script.getStringField("PORT"); + }, + "class": "ArduinoExt" + }, + avmboard_toggle_led: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + params: [ + { + "type": "Block", + "accept": "string" + }, + { + "type": "Block", + "accept": "string" + } + ], + def: { + "params": [ + { + "type": "avmboard_get_port_number1" + }, + { + "type": "arduino_get_digital_toggle", + "params": [ "on" ], + }, + ], + "type": "avmboard_toggle_led" + }, + "paramsKeyMap": { + "PORT": 0, + "VALUE": 1 + }, + "isNotFor": [ "avmboard" ], + "class": "run", + "func": function (sprite, script) { + var port = script.getNumberValue("PORT"); + var value = script.getValue("VALUE"); + + if(typeof value === 'string') { + value = value.toLowerCase(); + } + if(Entry.ArduinoExt.highList.indexOf(value) > -1) { + value = 255; + } else if(Entry.ArduinoExt.lowList.indexOf(value) > -1) { + value = 0; + } else { + throw new Error(); + } + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + Entry.hw.sendQueue['SET'][port] = { + type: Entry.avmboard.sensorTypes.DIGITAL, + data: value, + time: new Date().getTime() + }; + return script.callReturn(); + }, + }, + avmboard_pw_get_port_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic_string_field", + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + [ "5", "5" ] + ], + "value": "5", + "fontSize": 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + events: {}, + def: { + "params": [ null ] + }, + paramsKeyMap: { + "PORT": 0 + }, + func: function (sprite, script) { + return script.getStringField("PORT"); + }, + }, + avmboard_set_servo: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic", + statements: [], + params: [ + { + "type": "Block", + "accept": "string" + }, + { + "type": "Block", + "accept": "string" + }, + ], + events: {}, + def: { + params: [ + { + type: "avmboard_pw_get_port_number" + }, + { + "type": "text", + "params": [ "0" ] + }, + null + ], + type: "avmboard_set_servo" + }, + paramsKeyMap: { + "PORT": 0, + "VALUE": 1 + }, + class: "ext", + isNotFor: [ "avmboard" ], + func: function (sprite, script) { + var port = script.getNumberValue("PORT"); + var value = script.getNumberValue("VALUE"); + value = Math.round(value); + value = Math.max(value, 0); + value = Math.min(value, 180); + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + Entry.hw.sendQueue['SET'][port] = { + type: 4, + data: value, + time: new Date().getTime() + }; + return script.callReturn(); + }, + "syntax": {} + }, + avmboard_oled_set: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: "basic", + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + ["1","1"], + ["2","2"], + ["3","3"] + ], + "value":"1", + "fontSize":11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + "type": "Block", + "accept": "string" + } + ], + events: {}, + def: { + "params": [ + null, + { + "type":"text", + "params": [ "1" ], + }, + ], + "type": "avmboard_oled_set" + }, + isNotFor: [ "avmboard" ], + paramsKeyMap: { + "VALUE1": 0, + "VALUE2": 1 + }, + class: "ext", + func: function (sprite, script) { + var line = script.getField("VALUE1"); + var text = script.getValue("VALUE2"); + + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + Entry.hw.sendQueue['SET'][line] = { + type: 241, + data: text, + time: new Date().getTime() + }; + return script.callReturn(); + + }, + "syntax": {} + }, + avmboard_neopixel_set: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + "type": "Dropdown", + "options": [ + ["1","1"], + ["2","2"], + ], + "value":"1", + "fontSize":11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'arduino_get_port_number', + params: ['9'], + }, + null, + { + type: 'number', + params: ['12'], + }, + null, + ], + type: 'avmboard_neopixel_set', + }, + paramsKeyMap: { + PORT: 0, + INDEX: 1, + VALUE: 2, + }, + class: 'neopixel', + isNotFor: ['avmboard'], + func(sprite, script) { + var port = script.getNumberValue("PORT"); + var mode = 1; + var index = script.getNumberValue("INDEX"); + var value = script.getNumberValue("VALUE"); + + if (!script.isStart) + { + + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + + var duration = Entry.Orange.duration.TIME_10ms; + script.isStart = true; + script.timeFlag = 1; + + Entry.hw.sendQueue['SET'][port] = { + type: Entry.avmboard.sensorTypes.NEOPIXELCOLOR, + data: + { + value : value, + mode: mode, + index: index, + }, + time: new Date().getTime() + }; + setTimeout(function() { + script.timeFlag = 0; + }, duration ); + return script; + } + else if (script.timeFlag == 1) + { + return script; + } + else + { + delete script.timeFlag; + delete script.isStart; + + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + }, + }, + avmboard_neopixel_led: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + ["1","1"], + ["2","2"], + ], + "value":"1", + "fontSize":11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'number', + params: ['1'], + }, + { + type: 'number', + params: ['255'], + }, + { + type: 'number', + params: ['255'], + }, + { + type: 'number', + params: ['255'], + }, + { + type: 'number', + params: ['100'], + }, + null, + ], + type: 'avmboard_neopixel_led', + }, + paramsKeyMap: { + INDEX : 0, + POS: 1, + RED: 2, + GREEN: 3, + BLUE: 4, + BRIG: 5, + }, + class: 'neopixel', + isNotFor: ['avmboard'], + func(sprite, script) { + var port = script.getNumberValue("INDEX"); + var pos = script.getNumberValue("POS"); + var red = script.getNumberValue("RED"); + var green = script.getNumberValue("GREEN"); + var blue = script.getNumberValue("BLUE"); + var brig = script.getNumberValue("BRIG"); + var mode = 2; + + + if (!script.isStart) + { + + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + var duration = Entry.Orange.duration.TIME_10ms; + script.isStart = true; + script.timeFlag = 1; + + Entry.hw.sendQueue['SET'][port] = { + type: Entry.avmboard.sensorTypes.NEOPIXELCOLOR, + data: + { + index : port, + pos : pos, + mode: mode, + red: red, + green: green, + blue: blue, + brig: brig, + }, + time: new Date().getTime() + }; + setTimeout(function() { + script.timeFlag = 0; + }, duration ); + return script; + } + else if (script.timeFlag == 1) + { + return script; + } + else + { + delete script.timeFlag; + delete script.isStart; + + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + }, + }, + avmboard_neopixel_all_led: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + "type": "Dropdown", + "options": [ + ["1","1"], + ["2","2"], + ], + "value":"1", + "fontSize":11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'number', + params: ['255'], + }, + { + type: 'number', + params: ['255'], + }, + { + type: 'number', + params: ['255'], + }, + { + type: 'number', + params: ['100'], + }, + null, + ], + type: 'avmboard_neopixel_all_led', + }, + paramsKeyMap: { + INDEX : 0, + RED: 1, + GREEN: 2, + BLUE: 3, + BRIG: 4, + }, + class: 'neopixel', + isNotFor: ['avmboard'], + func(sprite, script) { + var port = script.getNumberValue("INDEX"); + var red = script.getNumberValue("RED"); + var green = script.getNumberValue("GREEN"); + var blue = script.getNumberValue("BLUE"); + var brig = script.getNumberValue("BRIG"); + var mode = 3; + + if (!script.isStart) + { + + if(!Entry.hw.sendQueue['SET']) { + Entry.hw.sendQueue['SET'] = {}; + } + var duration = Entry.Orange.duration.TIME_10ms; + script.isStart = true; + script.timeFlag = 1; + + Entry.hw.sendQueue['SET'][port] = { + type: Entry.avmboard.sensorTypes.NEOPIXELCOLOR, + data: + { + index : port, + mode: mode, + red: red, + green: green, + blue: blue, + brig: brig, + }, + time: new Date().getTime() + }; + setTimeout(function() { + script.timeFlag = 0; + }, duration ); + return script; + } + else if (script.timeFlag == 1) + { + return script; + } + else + { + delete script.timeFlag; + delete script.isStart; + + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + }, + }, + } //return +}; //function + +module.exports = Entry.avmboard; From 0a311a1ad271173449c5f2bffc101debd72a6de5 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Thu, 13 Jun 2024 10:12:00 +0900 Subject: [PATCH 02/65] et-board -> arduino[esp32] --- extern/lang/code.js | 15 + extern/lang/ebs.js | 15 + extern/lang/en.js | 15 + extern/lang/jp.js | 15 + extern/lang/ko.js | 15 + extern/lang/vn.js | 15 + .../blocks/hardware/block_avmboard.js | 1702 +++++++---------- 7 files changed, 760 insertions(+), 1032 deletions(-) diff --git a/extern/lang/code.js b/extern/lang/code.js index 1374ffbc21..4eccd86c6c 100644 --- a/extern/lang/code.js +++ b/extern/lang/code.js @@ -2856,6 +2856,7 @@ Lang.Menus = { "e_sensor": "E 센서보드", "e_sensor_board": "E 센서보드", "e_sensor_robot": "E 센서로봇", + "avmboard": "avmboard", "arduino": "아두이노", "arduinoext": "아두이노 Uno 확장모드", "arduinonano": "아두이노 Nano", @@ -5882,6 +5883,20 @@ Lang.template = { "albert_clear_led": "Entry.Hamster.clearLed(' %1 ') %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", + "avmboard_text": "%1", + "avmboard_get_sensor_number": "%1 ", + "avmboard_get_port_number": "%1 ", + "avmboard_get_digital_toggle": "%1 ", + "avmboard_get_pwm_port_number": "%1 ", + "avmboard_get_number_sensor_value": "아날로그 %1 번 센서값 ", + "avmboard_ext_get_analog_value": "아날로그 %1 번 센서값", + "avmboard_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", + "avmboard_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", + "avmboard_ext_toggle_led": "디지털 %1 번 핀 %2 %3", + "avmboard_ext_digital_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", + "avmboard_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", + "avmboard_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", + "avmboard_ext_get_digital": "디지털 %1 번 센서값", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/ebs.js b/extern/lang/ebs.js index 3ad284537a..1e1a6e0fe3 100644 --- a/extern/lang/ebs.js +++ b/extern/lang/ebs.js @@ -2865,6 +2865,7 @@ Lang.Menus = { "e_sensor": "E 센서보드", "e_sensor_board": "E 센서보드", "e_sensor_robot": "E 센서로봇", + "avmboard": "avmboard", "arduino": "아두이노", "arduinoext": "아두이노 Uno 확장모드", "arduinonano": "아두이노 Nano", @@ -5896,6 +5897,20 @@ Lang.template = { "albert_clear_led": "%1 %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", + "avmboard_text": "%1", + "avmboard_get_sensor_number": "%1 ", + "avmboard_get_port_number": "%1 ", + "avmboard_get_digital_toggle": "%1 ", + "avmboard_get_pwm_port_number": "%1 ", + "avmboard_get_number_sensor_value": "아날로그 %1 번 센서값 ", + "avmboard_ext_get_analog_value": "아날로그 %1 번 센서값", + "avmboard_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", + "avmboard_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", + "avmboard_ext_toggle_led": "디지털 %1 번 핀 %2 %3", + "avmboard_ext_digital_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", + "avmboard_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", + "avmboard_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", + "avmboard_ext_get_digital": "디지털 %1 번 센서값", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/en.js b/extern/lang/en.js index 9e3380c112..270f841047 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -2725,6 +2725,7 @@ Lang.Menus = { e_sensor: 'E Sensorboard', e_sensor_board: 'E Sensor-board', e_sensor_robot: 'E Sensor-robot', + avmboard: 'avmboard', arduino: 'Arduino', arduinoext: 'ArduinoExt Uno', arduinonano: 'Arduino Nano', @@ -6558,6 +6559,20 @@ Lang.template = { albert_clear_led: 'clear %1 led %2', albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', + avmboard_text: '%1', + avmboard_get_sensor_number: '%1 ', + avmboard_get_port_number: '%1 ', + avmboard_get_digital_toggle: '%1 ', + avmboard_get_pwm_port_number: '%1 ', + avmboard_get_number_sensor_value: 'Analog %1 Sensor value ', + avmboard_ext_get_analog_value: 'Analog %1 Sensor value', + avmboard_ext_get_analog_value_map: 'Map Value %1 %2 ~ %3 to %4 ~ %5', + avmboard_ext_get_ultrasonic_value: 'Read ultrasonic sensor trig pin %1 echo pin %2', + avmboard_ext_toggle_led: 'Digital %1 Pin %2 %3', + avmboard_ext_digital_pwm: 'Digital %1 Pin %2 %3', + avmboard_ext_set_tone: 'Play tone pin %1 on note %2 octave %3 beat %4 %5', + avmboard_ext_set_servo: 'Set servo pin %1 angle as %2 %3', + avmboard_ext_get_digital: 'Digital %1 Sensor value', arduino_text: '%1', arduino_get_sensor_number: '%1 ', arduino_get_port_number: '%1 ', diff --git a/extern/lang/jp.js b/extern/lang/jp.js index 416501869c..fc50b99038 100644 --- a/extern/lang/jp.js +++ b/extern/lang/jp.js @@ -2858,6 +2858,7 @@ Lang.Menus = { "e_sensor": "Eセンサーボード", "e_sensor_board": "Eセンサーボード", "e_sensor_robot": "Eセンサーロボット", + "avmboard": "avmboard", "arduino": "Arduino", "arduinoext": "ArduinoExt Uno", "arduinonano": "Arduino Nano", @@ -5887,6 +5888,20 @@ Lang.template = { "albert_clear_led": "clear %1 led %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", + "avmboard_text": "%1", + "avmboard_get_sensor_number": "%1 ", + "avmboard_get_port_number": "%1 ", + "avmboard_get_digital_toggle": "%1 ", + "avmboard_get_pwm_port_number": "%1 ", + "avmboard_get_number_sensor_value": "Analog %1 Sensor value ", + "avmboard_ext_get_analog_value": "Analog %1 Sensor value", + "avmboard_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", + "avmboard_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", + "avmboard_ext_toggle_led": "Digital %1 Pin %2 %3", + "avmboard_ext_digital_pwm": "Digital %1 Pin %2 %3", + "avmboard_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", + "avmboard_ext_set_servo": "Set servo pin %1 angle as %2 %3", + "avmboard_ext_get_digital": "Digital %1 Sensor value", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/ko.js b/extern/lang/ko.js index 644f821a2f..2c1b1aa202 100644 --- a/extern/lang/ko.js +++ b/extern/lang/ko.js @@ -3043,6 +3043,7 @@ Lang.Menus = { e_sensor: 'E 센서보드', e_sensor_board: 'E 센서보드', e_sensor_robot: 'E 센서로봇', + avmboard: 'avmboard', arduino: '아두이노', arduinoext: '아두이노 Uno 확장모드', arduinonano: '아두이노 Nano', @@ -7055,6 +7056,20 @@ Lang.template = { albert_clear_led: '%1 %2', albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', + avmboard_text: '%1', + avmboard_get_sensor_number: '%1 ', + avmboard_get_port_number: '%1 ', + avmboard_get_digital_toggle: '%1 ', + avmboard_get_pwm_port_number: '%1 ', + avmboard_get_number_sensor_value: '아날로그 %1 번 센서값 ', + avmboard_ext_get_analog_value: '아날로그 %1 번 센서값', + avmboard_ext_get_analog_value_map: '%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값', + avmboard_ext_get_ultrasonic_value: '울트라소닉 Trig %1 Echo %2 센서값', + avmboard_ext_toggle_led: '디지털 %1 번 핀 %2 %3', + avmboard_ext_digital_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', + avmboard_ext_set_tone: '디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5', + avmboard_ext_set_servo: '디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3', + avmboard_ext_get_digital: '디지털 %1 번 센서값', arduino_text: '%1', arduino_get_sensor_number: '%1 ', arduino_get_port_number: '%1 ', diff --git a/extern/lang/vn.js b/extern/lang/vn.js index b44ad83f9c..18205d2571 100644 --- a/extern/lang/vn.js +++ b/extern/lang/vn.js @@ -2857,6 +2857,7 @@ Lang.Menus = { "e_sensor": "E Sensorboard", "e_sensor_board": "E Sensor-board", "e_sensor_robot": "E Sensor-robot", + "avmboard": 'avmboard', "arduino": "Arduino", "arduinoext": "ArduinoExt Uno", "arduinonano": "Arduino Nano", @@ -5886,6 +5887,20 @@ Lang.template = { "albert_clear_led": "xóa %1 %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", + "avmboard_text": "%1", + "avmboard_get_sensor_number": "%1 ", + "avmboard_get_port_number": "%1 ", + "avmboard_get_digital_toggle": "%1 ", + "avmboard_get_pwm_port_number": "%1 ", + "avmboard_get_number_sensor_value": "giá trị biến số Analog %1", + "avmboard_ext_get_analog_value": "giá trị biến số Analog %1", + "avmboard_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", + "avmboard_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", + "avmboard_ext_toggle_led": "kỹ thuật số %1 Pin %2 %3", + "avmboard_ext_digital_pwm": "kỹ thuật số %1 Pin %2 %3", + "avmboard_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", + "avmboard_ext_set_servo": "Set servo pin %1 angle as %2 %3", + "avmboard_ext_get_digital": "giá trị cảm biến kỹ thuật số %1", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/src/playground/blocks/hardware/block_avmboard.js b/src/playground/blocks/hardware/block_avmboard.js index 65d577549a..0e45deaafe 100644 --- a/src/playground/blocks/hardware/block_avmboard.js +++ b/src/playground/blocks/hardware/block_avmboard.js @@ -9,1154 +9,792 @@ Entry.avmboard = { ko: 'AVM-BOARD', en: 'AVM-BOARD', }, - setZero: function() { - if (!Entry.hw.sendQueue.SET) { - Entry.hw.sendQueue = { - GET: {}, - SET: {}, - }; - } else { - const keySet = Object.keys(Entry.hw.sendQueue.SET); - keySet.forEach((key) => { - Entry.hw.sendQueue.SET[key].data = 0; - Entry.hw.sendQueue.SET[key].time = new Date().getTime(); - }); + setZero() { + Entry.hw.sendQueue.readablePorts = []; + for (let port = 0; port < 20; port++) { + Entry.hw.sendQueue[port] = 0; + Entry.hw.sendQueue.readablePorts.push(port); } Entry.hw.update(); }, - sensorTypes: { - ALIVE: 0, - DIGITAL: 1, - ANALOG: 2, - PWM: 3, - SERVO_PIN: 4, - TONE: 5, - PULSEIN: 6, - ULTRASONIC: 7, - TIMER: 8, - OLED: 241, - COM: 242, - NEOPIXELCOLOR: 243, - + monitorTemplate: { + imgPath: 'hardware/avmboard.png', + width: 605, + height: 434, + listPorts: { + '2': { + name: `${Lang.Hw.port_en} 2 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '3': { + name: `${Lang.Hw.port_en} 3 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '4': { + name: `${Lang.Hw.port_en} 4 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '5': { + name: `${Lang.Hw.port_en} 5 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '6': { + name: `${Lang.Hw.port_en} 6 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '7': { + name: `${Lang.Hw.port_en} 7 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '8': { + name: `${Lang.Hw.port_en} 8 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '9': { + name: `${Lang.Hw.port_en} 9 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '10': { + name: `${Lang.Hw.port_en} 10 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '11': { + name: `${Lang.Hw.port_en} 11 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '12': { + name: `${Lang.Hw.port_en} 12 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + '13': { + name: `${Lang.Hw.port_en} 13 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + a0: { + name: `${Lang.Hw.port_en} A0 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + a1: { + name: `${Lang.Hw.port_en} A1 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + a2: { + name: `${Lang.Hw.port_en} A2 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + a3: { + name: `${Lang.Hw.port_en} A3 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + a4: { + name: `${Lang.Hw.port_en} A4 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + a5: { + name: `${Lang.Hw.port_en} A5 ${Lang.Hw.port_ko}`, + type: 'input', + pos: { x: 0, y: 0 }, + }, + }, + mode: 'both', }, - duration: { - TIME_1ms: 1, - TIME_5ms: 5, - TIME_10ms: 10, - TIME_20ms: 20, - TIME_50ms: 50, - TIME_100ms: 100, - TIME_200ms: 200, - TIME_500ms: 500, - TIME_600ms: 600, - }, - highList: ['high', '1', 'on'], - lowList: ['low', '0', 'off'], - BlockState: {}, }; Entry.avmboard.setLanguage = function() { return { ko: { - Blocks: { - GreenColor: '초록색', - BlueColor: '파랑색', - YellowColor: '노랑색', - RedColor: '빨강색', - GreenButton: '초록 버튼', - BlueButton: '파랑 버튼', - YellowButton: '노랑 버튼', - RedButton: '빨강 버튼', - }, template: { - avmboard_serial_set: '시리얼 통신으로 설정하고 %1 속도로 전송하기', - avmboard_ble_set: '블루투스 통신으로 설정하고 %1 속도로 전송하기', - avmboard_get_analog_value: '아날로그 %1 센서값', - avmboard_toggle_pin: '디지털 %1 번핀 %2', - avmboard_port_number: '%1', - avmboard_ultrasonic_get_value:'초음파 송신 %1 핀 수신 %2 핀', - avmboard_get_digital_button: '%1 누름', - avmboard_get_digital: '디지털 %1번 센서값', - avmboard_toggle_led: 'LED %1 을 %2', - avmboard_get_port_number1: '%1', - avmboard_get_port_number: '%1', - avmboard_get_ultrasonic_port_number: '%1', - avmboard_set_servo: '서보모터 %1번 핀을 %2 도로 정하기', - avmboard_oled_set: 'OLED %1 번째 줄의 %2 표시하기', - avmboard_pw_get_port_number: '%1', - avmboard_neopixel_set: '디지털 %1 번 핀에 연결된 %2 번째 네오픽셀 %3 개 사용하기', - avmboard_neopixel_led: '네오픽셀 %1 번에 %2 번째 LED R: %3 , G: %4 , B: %5 색을 밝기 %6 으로 켜기', - avmboard_neopixel_all_led: '네오픽셀 %1 번에 LED R: %2 , G: %3 , B: %4 색을 밝기 %5 으로 켜기', + avmboard_get_number_sensor_value: '아날로그 %1 번 센서값 ', + avmboard_get_digital_value: '디지털 %1 번 센서값 ', + avmboard_toggle_led: '디지털 %1 번 핀 %2 %3', + avmboard_toggle_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', + avmboard_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 ', + }, + Device: { + avmboard: 'avmboard', + }, + Menus: { + avmboard: 'avmboard', }, }, en: { - Blocks: { - GreenColor: 'Green Color', - BlueColor: 'Blue Color', - YellowColor: 'Yellow Color', - RedColor: 'Red Color', - GreenButton: 'Green Button', - BlueButton: 'Blue Button', - YellowButton: 'Yellow Button', - RedButton: 'Red Button', - }, template: { - avmboard_serial_set: 'Set Serial COMM %1 boardrates', - avmboard_ble_set: 'Set Bluetooth COMM %1 boardrates', - avmboard_get_analog_value: 'Analog %1 Value', - avmboard_toggle_pin: 'Digital %1 PIN %2', - avmboard_port_number: '%1', - avmboard_ultrasonic_get_value:'Ultrasonic Trigger %1 PIN echo %2 PIN Value', - avmboard_get_digital_button: '%1 Push', - avmboard_get_digital: 'Digital %1 PIN Value', - avmboard_toggle_led: '%1 LED %2', - avmboard_get_port_number1: '%1', - avmboard_get_port_number: '%1', - avmboard_get_ultrasonic_port_number: '%1', - avmboard_set_servo: 'Servo %1 PIN %2 degree set', - avmboard_oled_set: 'OLE %1 line %2 Display', - avmboard_pw_get_port_number: '%1', - avmboard_neopixel_set: '디지털 %1 번핀에 연결된 %2 개의 네오픽셀 LED 사용하기', - avmboard_neopixel_led: '디지털 %1 번핀에 연결된 %2 번째 네오픽셀 LED R: %3 , G: %4 , B: %5 색으로 켜기', - avmboard_neopixel_all_led: '디지털 %1 번 핀에 연결된 %2 번째 네오픽셀 LED R: %3 , G: %4 , B: %5 색으로 켜기', + avmboard_get_number_sensor_value: 'Analog %1 Sensor value ', + avmboard_get_digital_value: 'Digital %1 Sensor value ', + avmboard_toggle_led: 'Digital %1 Pin %2 %3', + avmboard_toggle_pwm: 'Digital %1 Pin %2 %3', + avmboard_convert_scale: 'Map Value %1 %2 ~ %3 to %4 ~ %5 ', + }, + Device: { + avmboard: 'avmboard', + }, + Menus: { + avmboard: 'avmboard', }, }, }; }; Entry.avmboard.blockMenuBlocks = [ - 'avmboard_serial_set', - 'avmboard_ble_set', - 'avmboard_get_analog_value', - 'avmboard_ultrasonic_get_value', - 'avmboard_get_digital_button', - 'avmboard_get_digital', - 'avmboard_toggle_pin', + 'avmboard_get_number_sensor_value', + 'avmboard_get_digital_value', 'avmboard_toggle_led', - 'avmboard_set_servo', - 'avmboard_oled_set', - 'avmboard_neopixel_set', - 'avmboard_neopixel_led', - 'avmboard_neopixel_all_led', - + 'avmboard_toggle_pwm', + 'avmboard_convert_scale', ]; Entry.avmboard.getBlocks = function() { return { - avmboard_serial_set: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - statements: [], - params : [ - { - type: 'Dropdown', - options: [ - ['1','1'], - ['2','2'], - ['3','3'], - ['4','4'], - ['5','5'], - ['6','6'], - ['7','7'], - ['8','8'], - ['9','9'], - ['10','10'], - ], - value:'10', - fontSize:11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - events: {}, - def: { - params: [null], - type: 'avmboard_serial_set', - }, - isNotFor: [ 'avmboard' ], - syntax: undefined, - paramsKeyMap: { - NOTE: 0, - }, - class: 'COM', - func: function (sprite, script) { - var data = script.getField('NOTE'); - - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - Entry.hw.sendQueue['SET'][0] = { - type: 242, - data: data, - time: new Date().getTime() - }; - return script.callReturn(); - }, - }, - avmboard_ble_set: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - statements: [], - params: [ - { - "type": "Dropdown", - "options": [ - ["1","1"], - ["2","2"], - ["3","3"], - ], - "value":"3", - "fontSize":11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - events: {}, - def: { - "params": [ - null, - ], - "type": "avmboard_ble_set" - }, - isNotFor: [ "avmboard" ], - paramsKeyMap: { - "VALUE1": 0, - }, - class: "COM", - func: function (sprite, script) { - var data = script.getField("VALUE1"); - - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - Entry.hw.sendQueue['SET'][1] = { - type: 242, - data: data, - time: new Date().getTime() - }; - return script.callReturn(); - - }, - }, - avmboard_get_analog_value: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - events: {}, - params: [ + //region avmboard 아두이노 + avmboard_text: { + color: '#FFD974', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'TextInput', + }, + ], + events: {}, + def: { + params: ['10'], + }, + paramsKeyMap: { + NAME: 0, + }, + func(sprite, script) { + return script.getStringField('NAME'); + }, + syntax: { + js: [], + py: [ { - "type": "Dropdown", - "options": [ - [ "A0", "0" ], - [ "A1", "1" ], - [ "A2", "2" ], - [ "A3", "3" ], - [ "A4", "4" ], - [ "A5", "5" ], + syntax: '%1', + textParams: [ + { + type: 'TextInput', + value: 10, + converter: Entry.block.converters.returnStringOrNumberByValue, + }, ], - "value": "0", - "fontSize": 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + keyOption: 'avmboard_text', }, ], - def: { - params: [ null ], - "type": "avmboard_get_analog_value" - }, - isNotFor: [ "avmboard" ], - class: "SENSOR", - paramsKeyMap: { - "PORT": 0, - }, - func: function (sprite, script) { - var port = script.getValue("PORT", script); - var ANALOG = Entry.hw.portData.ANALOG; - if (port[0] === "A") - port = port.substring(1) - return ANALOG ? ANALOG[port] || 0 : 0; - }, - }, - avmboard_get_port_number: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic_string_field", - statements: [], - params: [ - { - "type": "Dropdown", - "options": [ - [ "2", "2" ], - [ "3", "3" ], - [ "4", "4" ], - [ "5", "5" ], - [ "6", "6" ], - [ "7", "7" ], - [ "8", "8" ], - [ "9", "9" ], - ], - "value": "2", - "fontSize": 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } - ], - events: {}, - def: { - "params": [ null ] - }, - paramsKeyMap: { - "PORT": 0 - }, - func: function (sprite, script) { - return script.getStringField("PORT"); - }, - }, - avmboard_get_ultrasonic_port_number: { + }, + }, + avmboard_get_sensor_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic_string_field", - statements: [], - params: [ - { - "type": "Dropdown", - "options": [ - [ "6", "6" ], - [ "7", "7" ], - [ "8", "8" ], - [ "9", "9" ], - ], - "value": "2", - "fontSize": 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } - ], - events: {}, - def: { - "params": [ null ] - }, - paramsKeyMap: { - "PORT": 0 - }, - func: function (sprite, script) { - return script.getStringField("PORT"); - }, - }, - avmboard_port_number: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic_string_field", - statements: [], - params: [ - { - "type": "Dropdown", - "options": [ - [ Lang.Blocks.RedButton, "6" ], - [ Lang.Blocks.BlueButton, "7" ], - [ Lang.Blocks.GreenButton, "8" ], - [ Lang.Blocks.YellowButton, "9" ], + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['0', 'A0'], + ['1', 'A1'], + ['2', 'A2'], + ['3', 'A3'], + ['4', 'A4'], + ['5', 'A5'], ], - value: "6", - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } - ], - events: {}, - def: { - "params": [ null ] - }, - paramsKeyMap: { - "PORT": 0 - }, - func: function (sprite, script) { - return script.getStringField("PORT"); - }, - }, - avmboard_toggle_pin: { + value: 'A0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + PORT: 0, + }, + func(sprite, script) { + return script.getStringField('PORT'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0', 'A0'], + ['1', 'A1'], + ['2', 'A2'], + ['3', 'A3'], + ['4', 'A4'], + ['5', 'A5'], + ], + value: 'A0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'avmboard_get_sensor_number', + }, + ], + }, + }, + avmboard_get_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', + skeleton: 'basic_string_field', statements: [], params: [ { - "type": "Block", - "accept": "string" + type: 'Dropdown', + options: [ + ['0', '0'], + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ['7', '7'], + ['8', '8'], + ['9', '9'], + ['10', '10'], + ['11', '11'], + ['12', '12'], + ['13', '13'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, - { - "type": "Block", - "accept": "string" - } ], - events: {}, - def: { - "params": [ - { - "type": "avmboard_get_port_number" - }, - { - "type": "arduino_get_digital_toggle", - "params": [ "on" ], - }, - null - ], - "type": "avmboard_toggle_pin" - }, - paramsKeyMap: { - "PORT": 0, - "VALUE": 1, - }, - isNotFor: [ "avmboard" ], - class: "run", - func: function (sprite, script) { - var port = script.getNumberValue("PORT"); - var value = script.getValue("VALUE"); - - if(typeof value === 'string') { - value = value.toLowerCase(); - } - if(Entry.ArduinoExt.highList.indexOf(value) > -1) { - value = 255; - } else if(Entry.ArduinoExt.lowList.indexOf(value) > -1) { - value = 0; - } else { - throw new Error(); - } - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - Entry.hw.sendQueue['SET'][port] = { - type: Entry.avmboard.sensorTypes.DIGITAL, - data: value, - time: new Date().getTime() - }; - return script.callReturn(); - }, - }, - avmboard_ultrasonic_get_value: { + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + PORT: 0, + }, + func(sprite, script) { + return script.getStringField('PORT'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0', '0'], + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ['7', '7'], + ['8', '8'], + ['9', '9'], + ['10', '10'], + ['11', '11'], + ['12', '12'], + ['13', '13'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + keyOption: 'avmboard_get_port_number', + }, + ], + }, + }, + avmboard_get_pwm_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic_string_field", + skeleton: 'basic_string_field', + statements: [], params: [ { - "type": "Block", - "accept": "string" + type: 'Dropdown', + options: [ + ['3', '3'], + ['5', '5'], + ['6', '6'], + ['9', '9'], + ['10', '10'], + ['11', '11'], + ], + value: '3', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, - { - "type": "Block", - "accept": "string" - } ], + events: {}, def: { - params: [{ - type: 'avmboard_get_ultrasonic_port_number', - params: [ '6' ], - }, { - type: 'avmboard_get_ultrasonic_port_number', - params: [ '8' ], - }], - type: "avmboard_ultrasonic_get_value" + params: [null], }, paramsKeyMap: { - "PORT1": 0, - "PORT2": 1, + PORT: 0, }, - func: function (sprite, script) { - var port1 = script.getNumberValue("PORT1", script); - var port2 = script.getNumberValue("PORT2", script); - - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - delete Entry.hw.sendQueue['SET'][port1]; - delete Entry.hw.sendQueue['SET'][port2]; - - if(!Entry.hw.sendQueue['GET']) { - Entry.hw.sendQueue['GET'] = {}; - } - Entry.hw.sendQueue['GET'][Entry.avmboard.sensorTypes.ULTRASONIC] = { - port: [port1, port2], - time: new Date().getTime() - }; - return Entry.hw.portData.ULTRASONIC || 0; + func(sprite, script) { + return script.getStringField('PORT'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['3', '3'], + ['5', '5'], + ['6', '6'], + ['9', '9'], + ['10', '10'], + ['11', '11'], + ], + value: '3', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringOrNumberByValue, + }, + ], + keyOption: 'avmboard_get_pwm_port_number', + }, + ], }, - isNotFor: [ "avmboard" ], - class: "SENSOR", }, - avmboard_get_digital_button: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic_boolean_field", - params: [{ - "type": "Block", - "accept": "string" - }], + avmboard_get_number_sensor_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, def: { - "params": [ + params: [ { - "type": "avmboard_port_number", - "params": [6] - } + type: 'avmboard_get_sensor_number', + }, ], - "type": "avmboard_get_digital_button" + type: 'avmboard_get_number_sensor_value', }, paramsKeyMap: { - "PORT": 0 + VALUE: 0, }, - class: "digital", - isNotFor: [ "avmboard" ], - func: function (sprite, script) { - var port = script.getNumberValue("PORT", script); - var DIGITAL = Entry.hw.portData.DIGITAL; - if(!Entry.hw.sendQueue['GET']) { - Entry.hw.sendQueue['GET'] = {}; - } - Entry.hw.sendQueue['GET'][Entry.avmboard.sensorTypes.DIGITAL] = { - port: port, - time: new Date().getTime() - }; - return (DIGITAL) ? DIGITAL[port] || 0 : 0; + class: 'avmboard_value', + isNotFor: ['avmboard'], + func(sprite, script) { + const signal = script.getValue('VALUE', script); + return Entry.hw.getAnalogPortValue(signal[1]); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avmboard.sensor_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], }, }, - avmboard_get_digital: { + avmboard_get_digital_value: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic_boolean_field", - params: [{ - "type": "Block", - "accept": "string" - }], + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, def: { - "params": [ + params: [ { - "type": "avmboard_get_port_number" - } + type: 'avmboard_get_port_number', + }, ], - "type": "avmboard_get_digital" + type: 'avmboard_get_digital_value', }, paramsKeyMap: { - "PORT": 0 - }, - isNotFor: [ "avmboard" ], - class: "digital", - func: function (sprite, script) { - var port = script.getNumberValue("PORT", script); - var DIGITAL = Entry.hw.portData.DIGITAL; - if(!Entry.hw.sendQueue['GET']) { - Entry.hw.sendQueue['GET'] = {}; + PORT: 0, + }, + class: 'avmboard_value', + isNotFor: ['avmboard'], + func(sprite, script) { + const { hwModule = {} } = Entry.hw; + const { name } = hwModule; + if (name === 'avmboardExt') { + return Entry.block.avmboard_ext_get_digital.func(sprite, script); + } else { + const signal = script.getNumberValue('PORT', script); + return Entry.hw.getDigitalPortValue(signal); } - Entry.hw.sendQueue['GET'][Entry.avmboard.sensorTypes.DIGITAL] = { - port: port, - time: new Date().getTime() - }; - return (DIGITAL) ? DIGITAL[port] || 0 : 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avmboard.digitalRead(%1)', + blockType: 'param', + replaceBlockType: 'avmboard_ext_get_digital', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], }, }, - avmboard_get_port_number1: { + avmboard_toggle_led: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic_string_field", + skeleton: 'basic', statements: [], params: [ { - "type": "Dropdown", - "options": [ - [ Lang.Blocks.RedColor, "2" ], - [ Lang.Blocks.BlueColor, "3" ], - [ Lang.Blocks.GreenColor, "4" ], - [ Lang.Blocks.YellowColor, "5" ], + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.ARDUINO_on, 'on'], + [Lang.Blocks.ARDUINO_off, 'off'], ], - "value": "2", - "fontSize": 11, + value: 'on', + fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, ], - "events": {}, - "def": { - "params": [ null ] - }, - "paramsKeyMap": { - "PORT": 0 - }, - "func": function (sprite, script) { - return script.getStringField("PORT"); - }, - "class": "ArduinoExt" - }, - avmboard_toggle_led: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - params: [ - { - "type": "Block", - "accept": "string" - }, - { - "type": "Block", - "accept": "string" - } - ], - def: { - "params": [ - { - "type": "avmboard_get_port_number1" - }, - { - "type": "arduino_get_digital_toggle", - "params": [ "on" ], - }, - ], - "type": "avmboard_toggle_led" + events: {}, + def: { + params: [ + { + type: 'avmboard_get_port_number', + }, + null, + null, + ], + type: 'avmboard_toggle_led', }, - "paramsKeyMap": { - "PORT": 0, - "VALUE": 1 + paramsKeyMap: { + VALUE: 0, + OPERATOR: 1, }, - "isNotFor": [ "avmboard" ], - "class": "run", - "func": function (sprite, script) { - var port = script.getNumberValue("PORT"); - var value = script.getValue("VALUE"); - - if(typeof value === 'string') { - value = value.toLowerCase(); - } - if(Entry.ArduinoExt.highList.indexOf(value) > -1) { - value = 255; - } else if(Entry.ArduinoExt.lowList.indexOf(value) > -1) { - value = 0; - } else { - throw new Error(); - } - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - Entry.hw.sendQueue['SET'][port] = { - type: Entry.avmboard.sensorTypes.DIGITAL, - data: value, - time: new Date().getTime() - }; + class: 'avmboard_set', + isNotFor: ['avmboard'], + func(sprite, script) { + const port = script.getNumberValue('VALUE'); + const operator = script.getField('OPERATOR'); + const value = operator == 'on' ? 255 : 0; + Entry.hw.setDigitalPortValue(port, value); return script.callReturn(); }, + syntax: { + js: [], + py: [ + { + syntax: 'avmboard.pin_digital(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.ARDUINO_on, 'on'], + [Lang.Blocks.ARDUINO_off, 'off'], + ], + value: 'on', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + }, + ], + }, }, - avmboard_pw_get_port_number: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic_string_field", - statements: [], - params: [ - { - "type": "Dropdown", - "options": [ - [ "5", "5" ] - ], - "value": "5", - "fontSize": 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } - ], - events: {}, - def: { - "params": [ null ] - }, - paramsKeyMap: { - "PORT": 0 - }, - func: function (sprite, script) { - return script.getStringField("PORT"); - }, - }, - avmboard_set_servo: { + avmboard_toggle_pwm: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic", + skeleton: 'basic', statements: [], params: [ { - "type": "Block", - "accept": "string" + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', }, { - "type": "Block", - "accept": "string" + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, }, ], events: {}, def: { params: [ { - type: "avmboard_pw_get_port_number" + type: 'avmboard_get_pwm_port_number', }, { - "type": "text", - "params": [ "0" ] + type: 'avmboard_text', + params: ['255'], }, - null + null, ], - type: "avmboard_set_servo" + type: 'avmboard_toggle_pwm', }, paramsKeyMap: { - "PORT": 0, - "VALUE": 1 + PORT: 0, + VALUE: 1, }, - class: "ext", - isNotFor: [ "avmboard" ], - func: function (sprite, script) { - var port = script.getNumberValue("PORT"); - var value = script.getNumberValue("VALUE"); + class: 'avmboard_set', + isNotFor: ['avmboard'], + func(sprite, script) { + const port = script.getNumberValue('PORT'); + let value = script.getNumberValue('VALUE'); value = Math.round(value); value = Math.max(value, 0); - value = Math.min(value, 180); - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - Entry.hw.sendQueue['SET'][port] = { - type: 4, - data: value, - time: new Date().getTime() - }; + value = Math.min(value, 255); + Entry.hw.setDigitalPortValue(port, value); return script.callReturn(); }, - "syntax": {} + syntax: { + js: [], + py: [ + { + syntax: 'avmboard.set_pin_digital(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, }, - avmboard_oled_set: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: "basic", - statements: [], - params: [ - { - "type": "Dropdown", - "options": [ - ["1","1"], - ["2","2"], - ["3","3"] - ], - "value":"1", - "fontSize":11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - { - "type": "Block", - "accept": "string" - } - ], - events: {}, - def: { - "params": [ - null, - { - "type":"text", - "params": [ "1" ], - }, - ], - "type": "avmboard_oled_set" - }, - isNotFor: [ "avmboard" ], - paramsKeyMap: { - "VALUE1": 0, - "VALUE2": 1 - }, - class: "ext", - func: function (sprite, script) { - var line = script.getField("VALUE1"); - var text = script.getValue("VALUE2"); - - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - Entry.hw.sendQueue['SET'][line] = { - type: 241, - data: text, - time: new Date().getTime() - }; - return script.callReturn(); - - }, - "syntax": {} - }, - avmboard_neopixel_set: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - statements: [], - params: [ - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - "type": "Dropdown", - "options": [ - ["1","1"], - ["2","2"], - ], - "value":"1", - "fontSize":11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - events: {}, - def: { - params: [ - { - type: 'arduino_get_port_number', - params: ['9'], - }, - null, - { - type: 'number', - params: ['12'], - }, - null, - ], - type: 'avmboard_neopixel_set', - }, - paramsKeyMap: { - PORT: 0, - INDEX: 1, - VALUE: 2, - }, - class: 'neopixel', - isNotFor: ['avmboard'], - func(sprite, script) { - var port = script.getNumberValue("PORT"); - var mode = 1; - var index = script.getNumberValue("INDEX"); - var value = script.getNumberValue("VALUE"); - - if (!script.isStart) + avmboard_convert_scale: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ { - - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - - var duration = Entry.Orange.duration.TIME_10ms; - script.isStart = true; - script.timeFlag = 1; - - Entry.hw.sendQueue['SET'][port] = { - type: Entry.avmboard.sensorTypes.NEOPIXELCOLOR, - data: - { - value : value, - mode: mode, - index: index, - }, - time: new Date().getTime() - }; - setTimeout(function() { - script.timeFlag = 0; - }, duration ); - return script; - } - else if (script.timeFlag == 1) - { - return script; - } - else - { - delete script.timeFlag; - delete script.isStart; - - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - syntax: { - }, - }, - avmboard_neopixel_led: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - statements: [], - params: [ - { - "type": "Dropdown", - "options": [ - ["1","1"], - ["2","2"], - ], - "value":"1", - "fontSize":11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - events: {}, - def: { - params: [ - null, - { - type: 'number', - params: ['1'], - }, - { - type: 'number', - params: ['255'], - }, - { - type: 'number', - params: ['255'], - }, - { - type: 'number', - params: ['255'], - }, - { - type: 'number', - params: ['100'], - }, - null, - ], - type: 'avmboard_neopixel_led', - }, - paramsKeyMap: { - INDEX : 0, - POS: 1, - RED: 2, - GREEN: 3, - BLUE: 4, - BRIG: 5, - }, - class: 'neopixel', - isNotFor: ['avmboard'], - func(sprite, script) { - var port = script.getNumberValue("INDEX"); - var pos = script.getNumberValue("POS"); - var red = script.getNumberValue("RED"); - var green = script.getNumberValue("GREEN"); - var blue = script.getNumberValue("BLUE"); - var brig = script.getNumberValue("BRIG"); - var mode = 2; - - - if (!script.isStart) + type: 'avmboard_get_number_sensor_value', + params: [ + { + type: 'avmboard_get_sensor_number', + id: 'bl5e', + }, + ], + }, { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['1023'], + }, + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['100'], + }, + ], + type: 'avmboard_convert_scale', + }, + paramsKeyMap: { + VALUE1: 0, + VALUE2: 1, + VALUE3: 2, + VALUE4: 3, + VALUE5: 4, + }, + class: 'avmboard', + isNotFor: ['avmboard'], + func(sprite, script) { + const value1 = script.getNumberValue('VALUE1', script); + let value2 = script.getNumberValue('VALUE2', script); + let value3 = script.getNumberValue('VALUE3', script); + let value4 = script.getNumberValue('VALUE4', script); + let value5 = script.getNumberValue('VALUE5', script); - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - var duration = Entry.Orange.duration.TIME_10ms; - script.isStart = true; - script.timeFlag = 1; - - Entry.hw.sendQueue['SET'][port] = { - type: Entry.avmboard.sensorTypes.NEOPIXELCOLOR, - data: - { - index : port, - pos : pos, - mode: mode, - red: red, - green: green, - blue: blue, - brig: brig, - }, - time: new Date().getTime() - }; - setTimeout(function() { - script.timeFlag = 0; - }, duration ); - return script; - } - else if (script.timeFlag == 1) - { - return script; - } - else - { - delete script.timeFlag; - delete script.isStart; + const stringValue4 = script.getValue('VALUE4', script); + const stringValue5 = script.getValue('VALUE5', script); + let isFloat = false; - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - syntax: { - }, - }, - avmboard_neopixel_all_led: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - statements: [], - params: [ - { - "type": "Dropdown", - "options": [ - ["1","1"], - ["2","2"], - ], - "value":"1", - "fontSize":11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - events: {}, - def: { - params: [ - null, - { - type: 'number', - params: ['255'], - }, - { - type: 'number', - params: ['255'], - }, - { - type: 'number', - params: ['255'], - }, - { - type: 'number', - params: ['100'], - }, - null, - ], - type: 'avmboard_neopixel_all_led', - }, - paramsKeyMap: { - INDEX : 0, - RED: 1, - GREEN: 2, - BLUE: 3, - BRIG: 4, - }, - class: 'neopixel', - isNotFor: ['avmboard'], - func(sprite, script) { - var port = script.getNumberValue("INDEX"); - var red = script.getNumberValue("RED"); - var green = script.getNumberValue("GREEN"); - var blue = script.getNumberValue("BLUE"); - var brig = script.getNumberValue("BRIG"); - var mode = 3; + if ( + (Entry.Utils.isNumber(stringValue4) && stringValue4.indexOf('.') > -1) || + (Entry.Utils.isNumber(stringValue5) && stringValue5.indexOf('.') > -1) + ) { + isFloat = true; + } - if (!script.isStart) - { + let result = value1; + if (value2 > value3) { + var swap = value2; + value2 = value3; + value3 = swap; + } + if (value4 > value5) { + var swap = value4; + value4 = value5; + value5 = swap; + } + result -= value2; + result = result * ((value5 - value4) / (value3 - value2)); + result += value4; + result = Math.min(value5, result); + result = Math.max(value4, result); - if(!Entry.hw.sendQueue['SET']) { - Entry.hw.sendQueue['SET'] = {}; - } - var duration = Entry.Orange.duration.TIME_10ms; - script.isStart = true; - script.timeFlag = 1; + if (isFloat) { + result = Math.round(result * 100) / 100; + } else { + result = Math.round(result); + } - Entry.hw.sendQueue['SET'][port] = { - type: Entry.avmboard.sensorTypes.NEOPIXELCOLOR, - data: + return result; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avmboard.convert_scale(%1, %2, %3, %4, %5)', + blockType: 'param', + textParams: [ { - index : port, - mode: mode, - red: red, - green: green, - blue: blue, - brig: brig, + type: 'Block', + accept: 'string', }, - time: new Date().getTime() - }; - setTimeout(function() { - script.timeFlag = 0; - }, duration ); - return script; - } - else if (script.timeFlag == 1) - { - return script; - } - else - { - delete script.timeFlag; - delete script.isStart; - - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - syntax: { - }, - }, - } //return -}; //function + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //endregion avmboard 아두이노 + }; +}; module.exports = Entry.avmboard; From b23ac6dd19dad0b1c8090a4172fcb63a5e1d350a Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Mon, 24 Jun 2024 11:38:59 +0900 Subject: [PATCH 03/65] avmboard -> avatarbot --- extern/lang/code.js | 30 ++-- extern/lang/ebs.js | 30 ++-- extern/lang/en.js | 30 ++-- extern/lang/jp.js | 30 ++-- extern/lang/ko.js | 30 ++-- extern/lang/vn.js | 30 ++-- .../hardware/{avmboard.png => avatarbot.png} | Bin .../{block_avmboard.js => block_avatarbot.js} | 148 +++++++++--------- 8 files changed, 164 insertions(+), 164 deletions(-) rename images/hardware/{avmboard.png => avatarbot.png} (100%) rename src/playground/blocks/hardware/{block_avmboard.js => block_avatarbot.js} (86%) diff --git a/extern/lang/code.js b/extern/lang/code.js index 4eccd86c6c..8e036db4cf 100644 --- a/extern/lang/code.js +++ b/extern/lang/code.js @@ -2856,7 +2856,7 @@ Lang.Menus = { "e_sensor": "E 센서보드", "e_sensor_board": "E 센서보드", "e_sensor_robot": "E 센서로봇", - "avmboard": "avmboard", + "avatarbot": "avatarbot", "arduino": "아두이노", "arduinoext": "아두이노 Uno 확장모드", "arduinonano": "아두이노 Nano", @@ -5883,20 +5883,20 @@ Lang.template = { "albert_clear_led": "Entry.Hamster.clearLed(' %1 ') %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - "avmboard_text": "%1", - "avmboard_get_sensor_number": "%1 ", - "avmboard_get_port_number": "%1 ", - "avmboard_get_digital_toggle": "%1 ", - "avmboard_get_pwm_port_number": "%1 ", - "avmboard_get_number_sensor_value": "아날로그 %1 번 센서값 ", - "avmboard_ext_get_analog_value": "아날로그 %1 번 센서값", - "avmboard_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", - "avmboard_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", - "avmboard_ext_toggle_led": "디지털 %1 번 핀 %2 %3", - "avmboard_ext_digital_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", - "avmboard_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", - "avmboard_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", - "avmboard_ext_get_digital": "디지털 %1 번 센서값", + "avatarbot_text": "%1", + "avatarbot_get_sensor_number": "%1 ", + "avatarbot_get_port_number": "%1 ", + "avatarbot_get_digital_toggle": "%1 ", + "avatarbot_get_pwm_port_number": "%1 ", + "avatarbot_get_number_sensor_value": "아날로그 %1 번 센서값 ", + "avatarbot_ext_get_analog_value": "아날로그 %1 번 센서값", + "avatarbot_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", + "avatarbot_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", + "avatarbot_ext_toggle_led": "디지털 %1 번 핀 %2 %3", + "avatarbot_ext_digital_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", + "avatarbot_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", + "avatarbot_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", + "avatarbot_ext_get_digital": "디지털 %1 번 센서값", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/ebs.js b/extern/lang/ebs.js index 1e1a6e0fe3..2749b74528 100644 --- a/extern/lang/ebs.js +++ b/extern/lang/ebs.js @@ -2865,7 +2865,7 @@ Lang.Menus = { "e_sensor": "E 센서보드", "e_sensor_board": "E 센서보드", "e_sensor_robot": "E 센서로봇", - "avmboard": "avmboard", + "avatarbot": "avatarbot", "arduino": "아두이노", "arduinoext": "아두이노 Uno 확장모드", "arduinonano": "아두이노 Nano", @@ -5897,20 +5897,20 @@ Lang.template = { "albert_clear_led": "%1 %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - "avmboard_text": "%1", - "avmboard_get_sensor_number": "%1 ", - "avmboard_get_port_number": "%1 ", - "avmboard_get_digital_toggle": "%1 ", - "avmboard_get_pwm_port_number": "%1 ", - "avmboard_get_number_sensor_value": "아날로그 %1 번 센서값 ", - "avmboard_ext_get_analog_value": "아날로그 %1 번 센서값", - "avmboard_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", - "avmboard_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", - "avmboard_ext_toggle_led": "디지털 %1 번 핀 %2 %3", - "avmboard_ext_digital_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", - "avmboard_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", - "avmboard_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", - "avmboard_ext_get_digital": "디지털 %1 번 센서값", + "avatarbot_text": "%1", + "avatarbot_get_sensor_number": "%1 ", + "avatarbot_get_port_number": "%1 ", + "avatarbot_get_digital_toggle": "%1 ", + "avatarbot_get_pwm_port_number": "%1 ", + "avatarbot_get_number_sensor_value": "아날로그 %1 번 센서값 ", + "avatarbot_ext_get_analog_value": "아날로그 %1 번 센서값", + "avatarbot_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", + "avatarbot_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", + "avatarbot_ext_toggle_led": "디지털 %1 번 핀 %2 %3", + "avatarbot_ext_digital_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", + "avatarbot_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", + "avatarbot_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", + "avatarbot_ext_get_digital": "디지털 %1 번 센서값", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/en.js b/extern/lang/en.js index 270f841047..da09b4654c 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -2725,7 +2725,7 @@ Lang.Menus = { e_sensor: 'E Sensorboard', e_sensor_board: 'E Sensor-board', e_sensor_robot: 'E Sensor-robot', - avmboard: 'avmboard', + avatarbot: 'avatarbot', arduino: 'Arduino', arduinoext: 'ArduinoExt Uno', arduinonano: 'Arduino Nano', @@ -6559,20 +6559,20 @@ Lang.template = { albert_clear_led: 'clear %1 led %2', albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', - avmboard_text: '%1', - avmboard_get_sensor_number: '%1 ', - avmboard_get_port_number: '%1 ', - avmboard_get_digital_toggle: '%1 ', - avmboard_get_pwm_port_number: '%1 ', - avmboard_get_number_sensor_value: 'Analog %1 Sensor value ', - avmboard_ext_get_analog_value: 'Analog %1 Sensor value', - avmboard_ext_get_analog_value_map: 'Map Value %1 %2 ~ %3 to %4 ~ %5', - avmboard_ext_get_ultrasonic_value: 'Read ultrasonic sensor trig pin %1 echo pin %2', - avmboard_ext_toggle_led: 'Digital %1 Pin %2 %3', - avmboard_ext_digital_pwm: 'Digital %1 Pin %2 %3', - avmboard_ext_set_tone: 'Play tone pin %1 on note %2 octave %3 beat %4 %5', - avmboard_ext_set_servo: 'Set servo pin %1 angle as %2 %3', - avmboard_ext_get_digital: 'Digital %1 Sensor value', + avatarbot_text: '%1', + avatarbot_get_sensor_number: '%1 ', + avatarbot_get_port_number: '%1 ', + avatarbot_get_digital_toggle: '%1 ', + avatarbot_get_pwm_port_number: '%1 ', + avatarbot_get_number_sensor_value: 'Analog %1 Sensor value ', + avatarbot_ext_get_analog_value: 'Analog %1 Sensor value', + avatarbot_ext_get_analog_value_map: 'Map Value %1 %2 ~ %3 to %4 ~ %5', + avatarbot_ext_get_ultrasonic_value: 'Read ultrasonic sensor trig pin %1 echo pin %2', + avatarbot_ext_toggle_led: 'Digital %1 Pin %2 %3', + avatarbot_ext_digital_pwm: 'Digital %1 Pin %2 %3', + avatarbot_ext_set_tone: 'Play tone pin %1 on note %2 octave %3 beat %4 %5', + avatarbot_ext_set_servo: 'Set servo pin %1 angle as %2 %3', + avatarbot_ext_get_digital: 'Digital %1 Sensor value', arduino_text: '%1', arduino_get_sensor_number: '%1 ', arduino_get_port_number: '%1 ', diff --git a/extern/lang/jp.js b/extern/lang/jp.js index fc50b99038..59249185c5 100644 --- a/extern/lang/jp.js +++ b/extern/lang/jp.js @@ -2858,7 +2858,7 @@ Lang.Menus = { "e_sensor": "Eセンサーボード", "e_sensor_board": "Eセンサーボード", "e_sensor_robot": "Eセンサーロボット", - "avmboard": "avmboard", + "avatarbot": "avatarbot", "arduino": "Arduino", "arduinoext": "ArduinoExt Uno", "arduinonano": "Arduino Nano", @@ -5888,20 +5888,20 @@ Lang.template = { "albert_clear_led": "clear %1 led %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - "avmboard_text": "%1", - "avmboard_get_sensor_number": "%1 ", - "avmboard_get_port_number": "%1 ", - "avmboard_get_digital_toggle": "%1 ", - "avmboard_get_pwm_port_number": "%1 ", - "avmboard_get_number_sensor_value": "Analog %1 Sensor value ", - "avmboard_ext_get_analog_value": "Analog %1 Sensor value", - "avmboard_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", - "avmboard_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", - "avmboard_ext_toggle_led": "Digital %1 Pin %2 %3", - "avmboard_ext_digital_pwm": "Digital %1 Pin %2 %3", - "avmboard_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", - "avmboard_ext_set_servo": "Set servo pin %1 angle as %2 %3", - "avmboard_ext_get_digital": "Digital %1 Sensor value", + "avatarbot_text": "%1", + "avatarbot_get_sensor_number": "%1 ", + "avatarbot_get_port_number": "%1 ", + "avatarbot_get_digital_toggle": "%1 ", + "avatarbot_get_pwm_port_number": "%1 ", + "avatarbot_get_number_sensor_value": "Analog %1 Sensor value ", + "avatarbot_ext_get_analog_value": "Analog %1 Sensor value", + "avatarbot_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", + "avatarbot_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", + "avatarbot_ext_toggle_led": "Digital %1 Pin %2 %3", + "avatarbot_ext_digital_pwm": "Digital %1 Pin %2 %3", + "avatarbot_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", + "avatarbot_ext_set_servo": "Set servo pin %1 angle as %2 %3", + "avatarbot_ext_get_digital": "Digital %1 Sensor value", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/ko.js b/extern/lang/ko.js index 2c1b1aa202..b0674bb876 100644 --- a/extern/lang/ko.js +++ b/extern/lang/ko.js @@ -3043,7 +3043,7 @@ Lang.Menus = { e_sensor: 'E 센서보드', e_sensor_board: 'E 센서보드', e_sensor_robot: 'E 센서로봇', - avmboard: 'avmboard', + avatarbot: 'avatarbot', arduino: '아두이노', arduinoext: '아두이노 Uno 확장모드', arduinonano: '아두이노 Nano', @@ -7056,20 +7056,20 @@ Lang.template = { albert_clear_led: '%1 %2', albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', - avmboard_text: '%1', - avmboard_get_sensor_number: '%1 ', - avmboard_get_port_number: '%1 ', - avmboard_get_digital_toggle: '%1 ', - avmboard_get_pwm_port_number: '%1 ', - avmboard_get_number_sensor_value: '아날로그 %1 번 센서값 ', - avmboard_ext_get_analog_value: '아날로그 %1 번 센서값', - avmboard_ext_get_analog_value_map: '%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값', - avmboard_ext_get_ultrasonic_value: '울트라소닉 Trig %1 Echo %2 센서값', - avmboard_ext_toggle_led: '디지털 %1 번 핀 %2 %3', - avmboard_ext_digital_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', - avmboard_ext_set_tone: '디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5', - avmboard_ext_set_servo: '디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3', - avmboard_ext_get_digital: '디지털 %1 번 센서값', + avatarbot_text: '%1', + avatarbot_get_sensor_number: '%1 ', + avatarbot_get_port_number: '%1 ', + avatarbot_get_digital_toggle: '%1 ', + avatarbot_get_pwm_port_number: '%1 ', + avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', + avatarbot_ext_get_analog_value: '아날로그 %1 번 센서값', + avatarbot_ext_get_analog_value_map: '%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값', + avatarbot_ext_get_ultrasonic_value: '울트라소닉 Trig %1 Echo %2 센서값', + avatarbot_ext_toggle_led: '디지털 %1 번 핀 %2 %3', + avatarbot_ext_digital_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', + avatarbot_ext_set_tone: '디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5', + avatarbot_ext_set_servo: '디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3', + avatarbot_ext_get_digital: '디지털 %1 번 센서값', arduino_text: '%1', arduino_get_sensor_number: '%1 ', arduino_get_port_number: '%1 ', diff --git a/extern/lang/vn.js b/extern/lang/vn.js index 18205d2571..c7ab359704 100644 --- a/extern/lang/vn.js +++ b/extern/lang/vn.js @@ -2857,7 +2857,7 @@ Lang.Menus = { "e_sensor": "E Sensorboard", "e_sensor_board": "E Sensor-board", "e_sensor_robot": "E Sensor-robot", - "avmboard": 'avmboard', + "avatarbot": 'avatarbot', "arduino": "Arduino", "arduinoext": "ArduinoExt Uno", "arduinonano": "Arduino Nano", @@ -5887,20 +5887,20 @@ Lang.template = { "albert_clear_led": "xóa %1 %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - "avmboard_text": "%1", - "avmboard_get_sensor_number": "%1 ", - "avmboard_get_port_number": "%1 ", - "avmboard_get_digital_toggle": "%1 ", - "avmboard_get_pwm_port_number": "%1 ", - "avmboard_get_number_sensor_value": "giá trị biến số Analog %1", - "avmboard_ext_get_analog_value": "giá trị biến số Analog %1", - "avmboard_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", - "avmboard_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", - "avmboard_ext_toggle_led": "kỹ thuật số %1 Pin %2 %3", - "avmboard_ext_digital_pwm": "kỹ thuật số %1 Pin %2 %3", - "avmboard_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", - "avmboard_ext_set_servo": "Set servo pin %1 angle as %2 %3", - "avmboard_ext_get_digital": "giá trị cảm biến kỹ thuật số %1", + "avatarbot_text": "%1", + "avatarbot_get_sensor_number": "%1 ", + "avatarbot_get_port_number": "%1 ", + "avatarbot_get_digital_toggle": "%1 ", + "avatarbot_get_pwm_port_number": "%1 ", + "avatarbot_get_number_sensor_value": "giá trị biến số Analog %1", + "avatarbot_ext_get_analog_value": "giá trị biến số Analog %1", + "avatarbot_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", + "avatarbot_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", + "avatarbot_ext_toggle_led": "kỹ thuật số %1 Pin %2 %3", + "avatarbot_ext_digital_pwm": "kỹ thuật số %1 Pin %2 %3", + "avatarbot_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", + "avatarbot_ext_set_servo": "Set servo pin %1 angle as %2 %3", + "avatarbot_ext_get_digital": "giá trị cảm biến kỹ thuật số %1", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/images/hardware/avmboard.png b/images/hardware/avatarbot.png similarity index 100% rename from images/hardware/avmboard.png rename to images/hardware/avatarbot.png diff --git a/src/playground/blocks/hardware/block_avmboard.js b/src/playground/blocks/hardware/block_avatarbot.js similarity index 86% rename from src/playground/blocks/hardware/block_avmboard.js rename to src/playground/blocks/hardware/block_avatarbot.js index 0e45deaafe..e428b7ab08 100644 --- a/src/playground/blocks/hardware/block_avmboard.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -1,13 +1,13 @@ 'use strict'; -Entry.avmboard = { +Entry.avatarbot = { id: ['99.1'], - name: 'avmboard', + name: 'avatarbot', url: 'http://avatarmecha.co.kr', - imageName: 'avmboard.png', + imageName: 'avatarbot.png', title: { - ko: 'AVM-BOARD', - en: 'AVM-BOARD', + ko: 'AvatarBot', + en: 'AvatarBot', }, setZero() { Entry.hw.sendQueue.readablePorts = []; @@ -18,7 +18,7 @@ Entry.avmboard = { Entry.hw.update(); }, monitorTemplate: { - imgPath: 'hardware/avmboard.png', + imgPath: 'hardware/avatarbot.png', width: 605, height: 434, listPorts: { @@ -117,53 +117,53 @@ Entry.avmboard = { }, }; -Entry.avmboard.setLanguage = function() { +Entry.avatarbot.setLanguage = function() { return { ko: { template: { - avmboard_get_number_sensor_value: '아날로그 %1 번 센서값 ', - avmboard_get_digital_value: '디지털 %1 번 센서값 ', - avmboard_toggle_led: '디지털 %1 번 핀 %2 %3', - avmboard_toggle_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', - avmboard_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 ', + avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', + avatarbot_get_digital_value: '디지털 %1 번 센서값 ', + avatarbot_toggle_led: '디지털 %1 번 핀 %2 %3', + avatarbot_toggle_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', + avatarbot_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 ', }, Device: { - avmboard: 'avmboard', + avatarbot: 'avatarbot', }, Menus: { - avmboard: 'avmboard', + avatarbot: 'avatarbot', }, }, en: { template: { - avmboard_get_number_sensor_value: 'Analog %1 Sensor value ', - avmboard_get_digital_value: 'Digital %1 Sensor value ', - avmboard_toggle_led: 'Digital %1 Pin %2 %3', - avmboard_toggle_pwm: 'Digital %1 Pin %2 %3', - avmboard_convert_scale: 'Map Value %1 %2 ~ %3 to %4 ~ %5 ', + avatarbot_get_number_sensor_value: 'Analog %1 Sensor value ', + avatarbot_get_digital_value: 'Digital %1 Sensor value ', + avatarbot_toggle_led: 'Digital %1 Pin %2 %3', + avatarbot_toggle_pwm: 'Digital %1 Pin %2 %3', + avatarbot_convert_scale: 'Map Value %1 %2 ~ %3 to %4 ~ %5 ', }, Device: { - avmboard: 'avmboard', + avatarbot: 'avatarbot', }, Menus: { - avmboard: 'avmboard', + avatarbot: 'avatarbot', }, }, }; }; -Entry.avmboard.blockMenuBlocks = [ - 'avmboard_get_number_sensor_value', - 'avmboard_get_digital_value', - 'avmboard_toggle_led', - 'avmboard_toggle_pwm', - 'avmboard_convert_scale', +Entry.avatarbot.blockMenuBlocks = [ + 'avatarbot_get_number_sensor_value', + 'avatarbot_get_digital_value', + 'avatarbot_toggle_led', + 'avatarbot_toggle_pwm', + 'avatarbot_convert_scale', ]; -Entry.avmboard.getBlocks = function() { +Entry.avatarbot.getBlocks = function() { return { - //region avmboard 아두이노 - avmboard_text: { + //region avatarbot 아두이노 + avatarbot_text: { color: '#FFD974', skeleton: 'basic_string_field', statements: [], @@ -194,12 +194,12 @@ Entry.avmboard.getBlocks = function() { converter: Entry.block.converters.returnStringOrNumberByValue, }, ], - keyOption: 'avmboard_text', + keyOption: 'avatarbot_text', }, ], }, }, - avmboard_get_sensor_number: { + avatarbot_get_sensor_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, skeleton: 'basic_string_field', @@ -255,12 +255,12 @@ Entry.avmboard.getBlocks = function() { converter: Entry.block.converters.returnStringValue, }, ], - keyOption: 'avmboard_get_sensor_number', + keyOption: 'avatarbot_get_sensor_number', }, ], }, }, - avmboard_get_port_number: { + avatarbot_get_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, skeleton: 'basic_string_field', @@ -330,12 +330,12 @@ Entry.avmboard.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, ], - keyOption: 'avmboard_get_port_number', + keyOption: 'avatarbot_get_port_number', }, ], }, }, - avmboard_get_pwm_port_number: { + avatarbot_get_pwm_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, skeleton: 'basic_string_field', @@ -390,12 +390,12 @@ Entry.avmboard.getBlocks = function() { converter: Entry.block.converters.returnStringOrNumberByValue, }, ], - keyOption: 'avmboard_get_pwm_port_number', + keyOption: 'avatarbot_get_pwm_port_number', }, ], }, }, - avmboard_get_number_sensor_value: { + avatarbot_get_number_sensor_value: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, fontColor: '#fff', @@ -412,16 +412,16 @@ Entry.avmboard.getBlocks = function() { def: { params: [ { - type: 'avmboard_get_sensor_number', + type: 'avatarbot_get_sensor_number', }, ], - type: 'avmboard_get_number_sensor_value', + type: 'avatarbot_get_number_sensor_value', }, paramsKeyMap: { VALUE: 0, }, - class: 'avmboard_value', - isNotFor: ['avmboard'], + class: 'avatarbot_value', + isNotFor: ['avatarbot'], func(sprite, script) { const signal = script.getValue('VALUE', script); return Entry.hw.getAnalogPortValue(signal[1]); @@ -430,7 +430,7 @@ Entry.avmboard.getBlocks = function() { js: [], py: [ { - syntax: 'avmboard.sensor_value(%1)', + syntax: 'avatarbot.sensor_value(%1)', blockType: 'param', textParams: [ { @@ -442,7 +442,7 @@ Entry.avmboard.getBlocks = function() { ], }, }, - avmboard_get_digital_value: { + avatarbot_get_digital_value: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, fontColor: '#fff', @@ -459,21 +459,21 @@ Entry.avmboard.getBlocks = function() { def: { params: [ { - type: 'avmboard_get_port_number', + type: 'avatarbot_get_port_number', }, ], - type: 'avmboard_get_digital_value', + type: 'avatarbot_get_digital_value', }, paramsKeyMap: { PORT: 0, }, - class: 'avmboard_value', - isNotFor: ['avmboard'], + class: 'avatarbot_value', + isNotFor: ['avatarbot'], func(sprite, script) { const { hwModule = {} } = Entry.hw; const { name } = hwModule; - if (name === 'avmboardExt') { - return Entry.block.avmboard_ext_get_digital.func(sprite, script); + if (name === 'avatarbotExt') { + return Entry.block.avatarbot_ext_get_digital.func(sprite, script); } else { const signal = script.getNumberValue('PORT', script); return Entry.hw.getDigitalPortValue(signal); @@ -483,9 +483,9 @@ Entry.avmboard.getBlocks = function() { js: [], py: [ { - syntax: 'avmboard.digitalRead(%1)', + syntax: 'avatarbot.digitalRead(%1)', blockType: 'param', - replaceBlockType: 'avmboard_ext_get_digital', + replaceBlockType: 'avatarbot_ext_get_digital', textParams: [ { type: 'Block', @@ -496,7 +496,7 @@ Entry.avmboard.getBlocks = function() { ], }, }, - avmboard_toggle_led: { + avatarbot_toggle_led: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, skeleton: 'basic', @@ -528,19 +528,19 @@ Entry.avmboard.getBlocks = function() { def: { params: [ { - type: 'avmboard_get_port_number', + type: 'avatarbot_get_port_number', }, null, null, ], - type: 'avmboard_toggle_led', + type: 'avatarbot_toggle_led', }, paramsKeyMap: { VALUE: 0, OPERATOR: 1, }, - class: 'avmboard_set', - isNotFor: ['avmboard'], + class: 'avatarbot_set', + isNotFor: ['avatarbot'], func(sprite, script) { const port = script.getNumberValue('VALUE'); const operator = script.getField('OPERATOR'); @@ -552,7 +552,7 @@ Entry.avmboard.getBlocks = function() { js: [], py: [ { - syntax: 'avmboard.pin_digital(%1, %2)', + syntax: 'avatarbot.pin_digital(%1, %2)', textParams: [ { type: 'Block', @@ -575,7 +575,7 @@ Entry.avmboard.getBlocks = function() { ], }, }, - avmboard_toggle_pwm: { + avatarbot_toggle_pwm: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, skeleton: 'basic', @@ -601,22 +601,22 @@ Entry.avmboard.getBlocks = function() { def: { params: [ { - type: 'avmboard_get_pwm_port_number', + type: 'avatarbot_get_pwm_port_number', }, { - type: 'avmboard_text', + type: 'avatarbot_text', params: ['255'], }, null, ], - type: 'avmboard_toggle_pwm', + type: 'avatarbot_toggle_pwm', }, paramsKeyMap: { PORT: 0, VALUE: 1, }, - class: 'avmboard_set', - isNotFor: ['avmboard'], + class: 'avatarbot_set', + isNotFor: ['avatarbot'], func(sprite, script) { const port = script.getNumberValue('PORT'); let value = script.getNumberValue('VALUE'); @@ -630,7 +630,7 @@ Entry.avmboard.getBlocks = function() { js: [], py: [ { - syntax: 'avmboard.set_pin_digital(%1, %2)', + syntax: 'avatarbot.set_pin_digital(%1, %2)', textParams: [ { type: 'Block', @@ -645,7 +645,7 @@ Entry.avmboard.getBlocks = function() { ], }, }, - avmboard_convert_scale: { + avatarbot_convert_scale: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, fontColor: '#fff', @@ -682,10 +682,10 @@ Entry.avmboard.getBlocks = function() { def: { params: [ { - type: 'avmboard_get_number_sensor_value', + type: 'avatarbot_get_number_sensor_value', params: [ { - type: 'avmboard_get_sensor_number', + type: 'avatarbot_get_sensor_number', id: 'bl5e', }, ], @@ -707,7 +707,7 @@ Entry.avmboard.getBlocks = function() { params: ['100'], }, ], - type: 'avmboard_convert_scale', + type: 'avatarbot_convert_scale', }, paramsKeyMap: { VALUE1: 0, @@ -716,8 +716,8 @@ Entry.avmboard.getBlocks = function() { VALUE4: 3, VALUE5: 4, }, - class: 'avmboard', - isNotFor: ['avmboard'], + class: 'avatarbot', + isNotFor: ['avatarbot'], func(sprite, script) { const value1 = script.getNumberValue('VALUE1', script); let value2 = script.getNumberValue('VALUE2', script); @@ -765,7 +765,7 @@ Entry.avmboard.getBlocks = function() { js: [], py: [ { - syntax: 'avmboard.convert_scale(%1, %2, %3, %4, %5)', + syntax: 'avatarbot.convert_scale(%1, %2, %3, %4, %5)', blockType: 'param', textParams: [ { @@ -793,8 +793,8 @@ Entry.avmboard.getBlocks = function() { ], }, }, - //endregion avmboard 아두이노 + //endregion avatarbot 아두이노 }; }; -module.exports = Entry.avmboard; +module.exports = Entry.avatarbot; From 6e44ecacd387f939fa980b1d3f8dcac27859ae8b Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Fri, 28 Jun 2024 14:37:19 +0900 Subject: [PATCH 04/65] avatarbot gui table backup --- extern/lang/code.js | 14 + extern/lang/ebs.js | 15 + extern/lang/en.js | 13 + extern/lang/jp.js | 13 + extern/lang/ko.js | 12 + extern/lang/vn.js | 10 + .../blocks/hardware/block_avatarbot.js | 1311 ++++++++++++++++- 7 files changed, 1316 insertions(+), 72 deletions(-) diff --git a/extern/lang/code.js b/extern/lang/code.js index 8e036db4cf..9172395657 100644 --- a/extern/lang/code.js +++ b/extern/lang/code.js @@ -676,6 +676,10 @@ Lang.Blocks = { "dplay_analog_number_3": "A3", "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", + + "avatarbot_DC_CW": "정회전", + "avatarbot_DC_CCW": "역회전", + "ARDUINO_arduino_get_string_1": "신호", "ARDUINO_arduino_get_string_2": "의 글자 결괏값", "ARDUINO_arduino_send_1": "신호", @@ -5883,12 +5887,20 @@ Lang.template = { "albert_clear_led": "Entry.Hamster.clearLed(' %1 ') %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", + + "avatarbot_text": "%1", + "avatarbot_get_adc_dac_sonic_number": "%1 ", + "avatarbot_get_gpio_dc_number": "%1 ", + "avatarbot_get_serve_number": "%1 ", + "avatarbot_get_pwm_port_number": "%1 ", + "avatarbot_get_sensor_number": "%1 ", "avatarbot_get_port_number": "%1 ", "avatarbot_get_digital_toggle": "%1 ", "avatarbot_get_pwm_port_number": "%1 ", "avatarbot_get_number_sensor_value": "아날로그 %1 번 센서값 ", + "avatarbot_ext_get_analog_value": "아날로그 %1 번 센서값", "avatarbot_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", "avatarbot_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", @@ -5897,6 +5909,8 @@ Lang.template = { "avatarbot_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", "avatarbot_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", "avatarbot_ext_get_digital": "디지털 %1 번 센서값", + + "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/ebs.js b/extern/lang/ebs.js index 2749b74528..7d49f1e5d2 100644 --- a/extern/lang/ebs.js +++ b/extern/lang/ebs.js @@ -676,6 +676,10 @@ Lang.Blocks = { "dplay_analog_number_3": "A3", "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", + + "avatarbot_DC_CW": "정회전", + "avatarbot_DC_CCW": "역회전", + "ARDUINO_arduino_get_string_1": "신호", "ARDUINO_arduino_get_string_2": "의 글자 결괏값", "ARDUINO_arduino_send_1": "신호", @@ -5897,12 +5901,21 @@ Lang.template = { "albert_clear_led": "%1 %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", + + "avatarbot_text": "%1", + "avatarbot_get_adc_dac_sonic_number": "%1 ", + "avatarbot_get_gpio_dc_number": "%1 ", + "avatarbot_get_serve_number": "%1 ", + "avatarbot_get_pwm_port_number": "%1 ", + "avatarbot_get_sensor_number": "%1 ", "avatarbot_get_port_number": "%1 ", "avatarbot_get_digital_toggle": "%1 ", "avatarbot_get_pwm_port_number": "%1 ", "avatarbot_get_number_sensor_value": "아날로그 %1 번 센서값 ", + + "avatarbot_ext_get_analog_value": "아날로그 %1 번 센서값", "avatarbot_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", "avatarbot_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", @@ -5911,6 +5924,8 @@ Lang.template = { "avatarbot_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", "avatarbot_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", "avatarbot_ext_get_digital": "디지털 %1 번 센서값", + + "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/en.js b/extern/lang/en.js index da09b4654c..6fb422a644 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -1124,6 +1124,10 @@ Lang.Blocks = { EXPANSION_WEATHER_finedust: 'concentration of fine dust(㎍)', ardublock_motor_forward: 'Forward', ardublock_motor_backward: 'Backward', + + avatarbot_DC_CW: 'Forward', + avatarbot_DC_CCW: 'Backward', + ARDUINO_on: 'On', ARDUINO_off: 'Off', EXPANSION_FESTIVAL_title: 'Title', @@ -6559,7 +6563,14 @@ Lang.template = { albert_clear_led: 'clear %1 led %2', albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', + + avatarbot_text: '%1', + avatarbot_get_adc_dac_sonic_number: '%1 ', + avatarbot_get_gpio_dc_number: '%1 ', + avatarbot_get_serve_number: '%1 ', + avatarbot_get_pwm_port_number: '%1 ', + avatarbot_get_sensor_number: '%1 ', avatarbot_get_port_number: '%1 ', avatarbot_get_digital_toggle: '%1 ', @@ -6573,6 +6584,8 @@ Lang.template = { avatarbot_ext_set_tone: 'Play tone pin %1 on note %2 octave %3 beat %4 %5', avatarbot_ext_set_servo: 'Set servo pin %1 angle as %2 %3', avatarbot_ext_get_digital: 'Digital %1 Sensor value', + + arduino_text: '%1', arduino_get_sensor_number: '%1 ', arduino_get_port_number: '%1 ', diff --git a/extern/lang/jp.js b/extern/lang/jp.js index 59249185c5..0980c5e606 100644 --- a/extern/lang/jp.js +++ b/extern/lang/jp.js @@ -671,6 +671,10 @@ Lang.Blocks = { "dplay_analog_number_3": "A3", "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", + + "avatarbot_DC_CW": "Forward", + "avatarbot_DC_CCW": "Backward", + "ARDUINO_arduino_get_string_1": "string result of signal", "ARDUINO_arduino_get_string_2": "", "ARDUINO_arduino_send_1": "Send signal", @@ -5888,12 +5892,19 @@ Lang.template = { "albert_clear_led": "clear %1 led %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", + "avatarbot_text": "%1", + "avatarbot_get_adc_dac_sonic_number": "%1 ", + "avatarbot_get_gpio_dc_number": "%1 ", + "avatarbot_get_serve_number": "%1 ", + "avatarbot_get_pwm_port_number": "%1 ", + "avatarbot_get_sensor_number": "%1 ", "avatarbot_get_port_number": "%1 ", "avatarbot_get_digital_toggle": "%1 ", "avatarbot_get_pwm_port_number": "%1 ", "avatarbot_get_number_sensor_value": "Analog %1 Sensor value ", + "avatarbot_ext_get_analog_value": "Analog %1 Sensor value", "avatarbot_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", "avatarbot_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", @@ -5902,6 +5913,8 @@ Lang.template = { "avatarbot_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", "avatarbot_ext_set_servo": "Set servo pin %1 angle as %2 %3", "avatarbot_ext_get_digital": "Digital %1 Sensor value", + + "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/ko.js b/extern/lang/ko.js index b0674bb876..09289370ff 100644 --- a/extern/lang/ko.js +++ b/extern/lang/ko.js @@ -689,6 +689,10 @@ Lang.Blocks = { dplay_analog_number_3: 'A3', dplay_analog_number_4: 'A4', dplay_analog_number_5: 'A5', + + avatarbot_DC_CW: '정회전', + avatarbot_DC_CCW: '역회전', + ARDUINO_arduino_get_string_1: '신호', ARDUINO_arduino_get_string_2: '의 글자 결과값', ARDUINO_arduino_send_1: '신호', @@ -7056,12 +7060,19 @@ Lang.template = { albert_clear_led: '%1 %2', albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', + avatarbot_text: '%1', + avatarbot_get_adc_dac_sonic_number: '%1 ', + avatarbot_get_gpio_dc_number: '%1 ', + avatarbot_get_serve_number: '%1 ', + avatarbot_get_pwm_port_number: '%1 ', + avatarbot_get_sensor_number: '%1 ', avatarbot_get_port_number: '%1 ', avatarbot_get_digital_toggle: '%1 ', avatarbot_get_pwm_port_number: '%1 ', avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', + avatarbot_ext_get_analog_value: '아날로그 %1 번 센서값', avatarbot_ext_get_analog_value_map: '%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값', avatarbot_ext_get_ultrasonic_value: '울트라소닉 Trig %1 Echo %2 센서값', @@ -7070,6 +7081,7 @@ Lang.template = { avatarbot_ext_set_tone: '디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5', avatarbot_ext_set_servo: '디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3', avatarbot_ext_get_digital: '디지털 %1 번 센서값', + arduino_text: '%1', arduino_get_sensor_number: '%1 ', arduino_get_port_number: '%1 ', diff --git a/extern/lang/vn.js b/extern/lang/vn.js index c7ab359704..76a9dc9dee 100644 --- a/extern/lang/vn.js +++ b/extern/lang/vn.js @@ -670,6 +670,8 @@ Lang.Blocks = { "dplay_analog_number_3": "A3", "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", + "avatarbot_DC_CW": "정회전", + "avatarbot_DC_CCW": "역회전", "ARDUINO_arduino_get_string_1": "Chuỗi kết quả của tín hiệu", "ARDUINO_arduino_get_string_2": "", "ARDUINO_arduino_send_1": "Gửi tín hiệu", @@ -5887,12 +5889,19 @@ Lang.template = { "albert_clear_led": "xóa %1 %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", + "avatarbot_text": "%1", + "avatarbot_get_adc_dac_sonic_number": "%1 ", + "avatarbot_get_gpio_dc_number": "%1 ", + "avatarbot_get_serve_number": "%1 ", + "avatarbot_get_pwm_port_number": "%1 ", + "avatarbot_get_sensor_number": "%1 ", "avatarbot_get_port_number": "%1 ", "avatarbot_get_digital_toggle": "%1 ", "avatarbot_get_pwm_port_number": "%1 ", "avatarbot_get_number_sensor_value": "giá trị biến số Analog %1", + "avatarbot_ext_get_analog_value": "giá trị biến số Analog %1", "avatarbot_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", "avatarbot_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", @@ -5901,6 +5910,7 @@ Lang.template = { "avatarbot_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", "avatarbot_ext_set_servo": "Set servo pin %1 angle as %2 %3", "avatarbot_ext_get_digital": "giá trị cảm biến kỹ thuật số %1", + "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index e428b7ab08..3cf32d9fde 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -1,15 +1,17 @@ 'use strict'; Entry.avatarbot = { - id: ['99.1'], - name: 'avatarbot', - url: 'http://avatarmecha.co.kr', - imageName: 'avatarbot.png', + id: ['99.1'], // 엔트리에서 발급받은 하드웨어 번호를 기술합니다. + name: 'avatarbot', // isNotFor 속성과 대소문자까지 정확하게 매치되어야 합니다. + url: 'http://avatarmecha.co.kr', // 생략 가능합니다. 엔트리 사이트에서 홍보시 사용됩니다. + imageName: 'avatarbot.png', // images/hardware, images/hw 폴더 내에 존재하는 이미지입니다. title: { ko: 'AvatarBot', - en: 'AvatarBot', + // en: 'AvatarBot', }, - setZero() { + /* + setZero() { + // 엔트리 정지시 하드웨어 초기화 로직 Entry.hw.sendQueue.readablePorts = []; for (let port = 0; port < 20; port++) { Entry.hw.sendQueue[port] = 0; @@ -17,6 +19,301 @@ Entry.avatarbot = { } Entry.hw.update(); }, + */ + avatarBotDataSet : 230, + setZero() { + // 엔트리 정지시 하드웨어 초기화 로직 + /* + Entry.hw.sendQueue.readablePorts = []; + // data buffer 23*10 table value. + for (let index = 0; index < 230; index++) { + Entry.hw.sendQueue[index] = 0; + Entry.hw.sendQueue.readablePorts.push(index); + } + */ + // + /* + var index = Entry.avatarbot.BoardFunType.Info; + Entry.hw.sendQueue[index+0] = 0x99; + Entry.hw.sendQueue[index+1] = 0x01; + Entry.hw.sendQueue[index+2] = 0x01; + Entry.hw.sendQueue[index+3] = Entry.avatarbot.avatarBotDataSet; + + // pwm. 2~5 pad + for(var i=0; i<4; i++) + { + index = Entry.avatarbot.BoardFunType.GPIO_LED_PWM0 + (i*10); + Entry.hw.sendQueue[index+2] = (Entry.avatarbot.Board_PWM.Freq)&0xff; + Entry.hw.sendQueue[index+3] = (Entry.avatarbot.Board_PWM.Freq>>8)&0xff; + Entry.hw.sendQueue[index+4] = (Entry.avatarbot.Board_PWM.Freq>>16)&0xff; + Entry.hw.sendQueue[index+5] = (Entry.avatarbot.Board_PWM.Resolution)&0xff; + } + // adc + index = Entry.avatarbot.BoardFunType.ADC; + Entry.hw.sendQueue[index+4] = (Entry.avatarbot.Board_ADC.Attenuation_11db)&0xff; + Entry.hw.sendQueue[index+5] = (Entry.avatarbot.Board_ADC.Resolution)&0xff; + + // pca9568 + index = Entry.avatarbot.BoardFunType.PCA9568; + Entry.hw.sendQueue[index+1] = (Entry.avatarbot.Board_PCA9568.Freq)&0xff; + Entry.hw.sendQueue[index+2] = (Entry.avatarbot.Board_PCA9568.Freq>>8)&0xff; + Entry.hw.sendQueue[index+3] = (Entry.avatarbot.Board_PCA9568.Freq>>16)&0xff; + Entry.hw.sendQueue[index+4] = (Entry.avatarbot.Board_PCA9568.Freq>>24)&0xff; + + Entry.hw.sendQueue[index+5] = (Entry.avatarbot.Board_PCA9568.Osci)&0xff; + Entry.hw.sendQueue[index+6] = (Entry.avatarbot.Board_PCA9568.Osci>>8)&0xff; + Entry.hw.sendQueue[index+7] = (Entry.avatarbot.Board_PCA9568.Osci>>16)&0xff; + Entry.hw.sendQueue[index+8] = (Entry.avatarbot.Board_PCA9568.Osci>>24)&0xff; + + // servo moter + for(var i=0; i<8; i++) + { + index = Entry.avatarbot.BoardFunType.Servo_M0 + (i*10); + Entry.hw.sendQueue[index+1] = (Entry.avatarbot.Board_Servo.Pulse_Min)&0xff; + Entry.hw.sendQueue[index+2] = (Entry.avatarbot.Board_Servo.Pulse_Min>>8)&0xff; + + Entry.hw.sendQueue[index+3] = (Entry.avatarbot.Board_Servo.Pulse_Max)&0xff; + Entry.hw.sendQueue[index+4] = (Entry.avatarbot.Board_Servo.Pulse_Max>>8)&0xff; + + Entry.hw.sendQueue[index+5] = (Entry.avatarbot.Board_Servo.us_Min)&0xff; + Entry.hw.sendQueue[index+6] = (Entry.avatarbot.Board_Servo.us_Min>>8)&0xff; + + Entry.hw.sendQueue[index+7] = (Entry.avatarbot.Board_Servo.us_Max)&0xff; + Entry.hw.sendQueue[index+8] = (Entry.avatarbot.Board_Servo.us_Max>>8)&0xff; + } + // + for(var i=0; i<(data.length/10); i++) + { + var index = i*10; + console.log('[jhkim] setZero - DataSet[', i, ']: ', + Entry.hw.sendQueue[index+0], ' | ', Entry.hw.sendQueue[index+1], ' | ', Entry.hw.sendQueue[index+2], ' | ', + Entry.hw.sendQueue[index+3], ' | ', Entry.hw.sendQueue[index+4], ' | ', Entry.hw.sendQueue[index+5], ' | ', + Entry.hw.sendQueue[index+6], ' | ', Entry.hw.sendQueue[index+7], ' | ', Entry.hw.sendQueue[index+8], ' | ', + Entry.hw.sendQueue[index+9]); + } + */ + // + Entry.hw.update(); + }, + + BoardFunType : { + Info: 0, + Button:10, + GPIO_LED_PWM0: 20, + GPIO_LED_PWM1: 30, + GPIO_LED_PWM2: 40, + GPIO_LED_PWM3: 50, + ADC: 60, + DAC: 70, + IR_Remote: 80, + Buzzer: 90, + PCA9568: 100, + Servo_M0: 110, + Servo_M1: 120, + Servo_M2: 130, + Servo_M3: 140, + Servo_M4: 150, + Servo_M5: 160, + Servo_M6: 170, + Servo_M7: 180, + DC_M: 190, + MPU6050: 200, + LED_Strip: 210, + ULTRA_SONIC: 220 + }, + + Board_Buttton:{ + En: 0, + getValue:0 + }, + + Board_GPIO :{ + // gpio0 + En0: 0, + Type0: 0, // gpio(0), ledc(1), pwm(2) + value0: 0, //0~255, duty or value + Freq0: 5000, // default - 5000 + resolution0: 13, // default - 13 + getValue0: 0, // input value + // gpio1 + En1: 0, + Type1: 0, + value1: 0, + Freq1: 5000, + resolution1: 13, + getValue1: 0, + // gpio2 + En2: 0, + Type2: 0, + value2: 0, + Freq2: 5000, + resolution2: 13, + getValue2: 0, + // gpio3 + En3: 0, + Type3: 0, // type=0 only gpio + value3: 0, + getValue3: 0 + }, + + Board_PWM : { // default gpio resolution, freq + Resolution: 13, + Freq: 5000 + }, + + Board_ADC : { + En0: 0, + getValue0: 0, // 12bit default. 0 ~ 4095 + En1: 0, + getValue1: 0, + // common + Resolution: 12, + Attenuation_0db: 0, + Attenuation_2_5db: 1, + Attenuation_6db: 2, + Attenuation_11db: 3 // default db value. + }, + + Board_DAC : { + En0: 0, + setValue0: 0, // 8bit default. 0 ~ 255 + En1: 0, + setValue1: 0 + }, + + Board_IR_Remote : { + En: 0 + }, + + Board_Buzzer : { + En: 0, + sample: 0, + tone0: 0, + tone1: 0, + tone2: 0, + tone3: 0, + time0: 0, + tone1: 0, + tone2: 0, + tone3: 0, + }, + + Board_PCA9568 : { + Osci: 27000000, + Freq: 50 + }, + + Board_Servo : { + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_Servo_M0 : { + En:0, + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_Servo_M1 : { + En:0, + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_Servo_M2 : { + En:0, + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_Servo_M3 : { + En:0, + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_Servo_M4 : { + En:0, + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_Servo_M5 : { + En:0, + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_Servo_M6 : { + En:0, + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_Servo_M7 : { + En:0, + Pulse_Min: 150, + Pulse_Max: 600, + us_Min: 500, + us_Max: 2400 + }, + + Board_DC_M : { + En0:0, + CCW0:0, + En1:0, + CCW1:0, + En2:0, + CCW2:0, + En3:0, + CCW3:0 + }, + + Board_MPU6050 : { + En:0, + // get value list + x:0, + y:0, + z:0, + temperature:0 + }, + Board_LED_Strip : { + En:0, + sample: 0, + led_num: 0, + color_order: 0, + r: 0, + g: 0, + b: 0 + }, + + Board_LED_Strip : { + En0:0, + En1: 0, + // get value + ch0_cm: 0, + ch0_inch: 0, + ch1_cm: 0, + ch2_inch: 0 + }, + + /* monitorTemplate: { imgPath: 'hardware/avatarbot.png', width: 605, @@ -115,17 +412,35 @@ Entry.avatarbot = { }, mode: 'both', }, + */ }; +// 언어 적용 Entry.avatarbot.setLanguage = function() { return { ko: { template: { - avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', + // + avatarbot_hw_test: 'AvatarBot HW Test %1 번 값 ', + // + avatarbot_get_button: '버튼 값 ', + avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', // adc avatarbot_get_digital_value: '디지털 %1 번 센서값 ', - avatarbot_toggle_led: '디지털 %1 번 핀 %2 %3', - avatarbot_toggle_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', + avatarbot_toggle_led: 'LED %1 번 핀 %2 %3', + avatarbot_toggle_pwm: 'PWM %1 번 핀을 %2 (으)로 정하기 %3', avatarbot_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 ', + // + avatarbot_dac: 'DAC %1 번을 값(Duty) %2 (으)로 정하기 %3', + // avatarbot_ir_remote: '리모컨 %1 (으)로 동작 ', + avatarbot_buzzer: '부저 %1 (으)로 동작 ', + avatarbot_pca9568: '모터 컨트롤 주파수 %1 와 오실레이터 %2 (으)로 설정 ', + avatarbot_servo_setting: '서보 모터 %1 을 신호 %2 ~ %3 (으)로 시간(us) %4 ~ %5 (으)로 설정 ', + avatarbot_servo: '서보 모터 %1 을 %2 (으)로 동작 ', + avatarbot_dc: 'DC 모터 %1 을 %2 방향으로 %3 (으)로 동작 ', + avatarbot_get_mpu6050: '자이로 가속도 센서 값 ', // x,y,z, temperature + avatarbot_led_strip: 'LED 스트립 %1 동작 ', + avatarbot_ultra_sonic:'초음파 %1 번 센서 값 ', + // }, Device: { avatarbot: 'avatarbot', @@ -134,12 +449,13 @@ Entry.avatarbot.setLanguage = function() { avatarbot: 'avatarbot', }, }, + /* en: { template: { avatarbot_get_number_sensor_value: 'Analog %1 Sensor value ', avatarbot_get_digital_value: 'Digital %1 Sensor value ', avatarbot_toggle_led: 'Digital %1 Pin %2 %3', - avatarbot_toggle_pwm: 'Digital %1 Pin %2 %3', + avatarbot_toggle_pwm: 'PWM %1 Pin %2 %3', avatarbot_convert_scale: 'Map Value %1 %2 ~ %3 to %4 ~ %5 ', }, Device: { @@ -149,20 +465,42 @@ Entry.avatarbot.setLanguage = function() { avatarbot: 'avatarbot', }, }, + */ }; }; +// 엔트리에 등록할 블록들의 블록명 작성 Entry.avatarbot.blockMenuBlocks = [ + // hw data 통신 test + 'avatarbot_hw_test', + // base block + 'avatarbot_get_button', 'avatarbot_get_number_sensor_value', 'avatarbot_get_digital_value', 'avatarbot_toggle_led', 'avatarbot_toggle_pwm', 'avatarbot_convert_scale', + // + 'avatarbot_dac', + // 'avatarbot_ir_remote', + 'avatarbot_buzzer', + 'avatarbot_pca9568', + 'avatarbot_servo_setting', + 'avatarbot_servo', + 'avatarbot_dc', + 'avatarbot_get_mpu6050', + 'avatarbot_led_strip', + 'avatarbot_ultra_sonic', ]; +// 블록 생성 Entry.avatarbot.getBlocks = function() { return { + //--------------------------------------------------------------- //region avatarbot 아두이노 + //--------------------------------------------------------------- + // 공용 function. + //--------------------------------------------------------------- avatarbot_text: { color: '#FFD974', skeleton: 'basic_string_field', @@ -199,6 +537,8 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + //--------------------------------------------------------------- + /* avatarbot_get_sensor_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -207,18 +547,17 @@ Entry.avatarbot.getBlocks = function() { params: [ { type: 'Dropdown', + // Dropdown 생성 기준은 + // [["key1", "value1"], ["key2", "value2"]] + // 처럼 구성이 됩니다. options: [ ['0', 'A0'], ['1', 'A1'], - ['2', 'A2'], - ['3', 'A3'], - ['4', 'A4'], - ['5', 'A5'], ], value: 'A0', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, // 기본 컬러는 EntryStatic.ARROW_COLOR_VARIABLE 입니다. }, ], events: {}, @@ -243,10 +582,6 @@ Entry.avatarbot.getBlocks = function() { options: [ ['0', 'A0'], ['1', 'A1'], - ['2', 'A2'], - ['3', 'A3'], - ['4', 'A4'], - ['5', 'A5'], ], value: 'A0', fontSize: 11, @@ -260,7 +595,120 @@ Entry.avatarbot.getBlocks = function() { ], }, }, - avatarbot_get_port_number: { + */ + //--------------------------------------------------------------- + // get port(module, function) number + // - gpio(4), pwm(3), adc(2), dac(2), servo_m(8), dc_m(4), ulrasonic(2) + //--------------------------------------------------------------- + avatarbot_get_adc_dac_sonic_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['0', '0'], + ['1', '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + PORT: 0, + }, + func(sprite, script) { + return script.getStringField('PORT'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0', '0'], + ['1', '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + keyOption: 'avatarbot_get_adc_dac_sonic_number', + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_get_gpio_dc_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['0', '0'], + ['1', '1'], + ['2', '2'], + ['3', '3'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + PORT: 0, + }, + func(sprite, script) { + return script.getStringField('PORT'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0', '0'], + ['1', '1'], + ['2', '2'], + ['3', '3'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + keyOption: 'avatarbot_get_gpio_dc_number', + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_get_serve_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, skeleton: 'basic_string_field', @@ -277,12 +725,6 @@ Entry.avatarbot.getBlocks = function() { ['5', '5'], ['6', '6'], ['7', '7'], - ['8', '8'], - ['9', '9'], - ['10', '10'], - ['11', '11'], - ['12', '12'], - ['13', '13'], ], value: '0', fontSize: 11, @@ -309,20 +751,14 @@ Entry.avatarbot.getBlocks = function() { { type: 'Dropdown', options: [ - ['0', '0'], - ['1', '1'], - ['2', '2'], - ['3', '3'], - ['4', '4'], - ['5', '5'], - ['6', '6'], - ['7', '7'], - ['8', '8'], - ['9', '9'], - ['10', '10'], - ['11', '11'], - ['12', '12'], - ['13', '13'], + ['0', '0'], + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ['7', '7'], ], value: '0', fontSize: 11, @@ -330,11 +766,12 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, ], - keyOption: 'avatarbot_get_port_number', + keyOption: 'avatarbot_get_serve_number', }, ], }, }, + //--------------------------------------------------------------- avatarbot_get_pwm_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -344,14 +781,11 @@ Entry.avatarbot.getBlocks = function() { { type: 'Dropdown', options: [ - ['3', '3'], - ['5', '5'], - ['6', '6'], - ['9', '9'], - ['10', '10'], - ['11', '11'], + ['0', '0'], + ['1', '1'], + ['2', '2'], ], - value: '3', + value: '0', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, @@ -376,14 +810,11 @@ Entry.avatarbot.getBlocks = function() { { type: 'Dropdown', options: [ - ['3', '3'], - ['5', '5'], - ['6', '6'], - ['9', '9'], - ['10', '10'], - ['11', '11'], + ['0', '0'], + ['1', '1'], + ['2', '2'], ], - value: '3', + value: '0', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, @@ -395,7 +826,10 @@ Entry.avatarbot.getBlocks = function() { ], }, }, - avatarbot_get_number_sensor_value: { + //--------------------------------------------------------------- + // hw test + //--------------------------------------------------------------- + avatarbot_hw_test:{ color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, fontColor: '#fff', @@ -412,17 +846,117 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_sensor_number', + type: 'avatarbot_get_gpio_dc_number', }, ], - type: 'avatarbot_get_number_sensor_value', + type: 'avatarbot_hw_test', }, paramsKeyMap: { - VALUE: 0, + PORT: 0, }, class: 'avatarbot_value', isNotFor: ['avatarbot'], func(sprite, script) { + const signal = script.getNumberValue('PORT', script); + // console.log("avatarbot_hw_test : %d", Entry.hw.portData[signal]); + console.log("avatarbot value test...."); + // console.log("%d %d", what, speed); + + return Entry.hw.portData[signal]; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.hw_test(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + // base function. + //--------------------------------------------------------------- + avatarbot_get_button: { + color: EntryStatic.colorSet.block.default.HARDWARE, //블록 색상 + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, //경계선 색상 + fontColor: '#fff', // 폰트색상 basic_string_field는 기본 색상이 검정색(#000) 입니다. + skeleton: 'basic_string_field', // 블록 모양 정의 + statements: [], + params: [ + + ], + events: {}, + def: { // 보여질 블록 정의 + // def의 params의 경우는 초기값을 지정할수 있습니다. + // TextInput의 경우에도 def > params을 통해 값을 지정할수 있습니다. + type: 'avatarbot_get_button', // func name + }, + paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 + // VALUE: 0, + }, + class: 'avatarbot_value', + isNotFor: ['avatarbot'], + func(sprite, script) { // 블록 기능정의 + // 해당 값을 getField, getValue로 가져오고 + // 가져 올때 paramsKeyMap에서 + // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. + // const signal = script.getValue('VALUE', script); + // return Entry.hw.getAnalogPortValue(signal[1]); + return 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.get_button()', + blockType: 'param', + textParams: [ + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_get_number_sensor_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, //블록 색상 + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, //경계선 색상 + fontColor: '#fff', // 폰트색상 basic_string_field는 기본 색상이 검정색(#000) 입니다. + skeleton: 'basic_string_field', // 블록 모양 정의 + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { // 보여질 블록 정의 + // def의 params의 경우는 초기값을 지정할수 있습니다. + // TextInput의 경우에도 def > params을 통해 값을 지정할수 있습니다. + params: [ + { + type: 'avatarbot_get_adc_dac_sonic_number', // 상단 func 가져와서 사용. + }, + ], + type: 'avatarbot_get_number_sensor_value', // func name + }, + paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 + VALUE: 0, + }, + class: 'avatarbot_value', + isNotFor: ['avatarbot'], + func(sprite, script) { // 블록 기능정의 + // 해당 값을 getField, getValue로 가져오고 + // 가져 올때 paramsKeyMap에서 + // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. const signal = script.getValue('VALUE', script); return Entry.hw.getAnalogPortValue(signal[1]); }, @@ -442,6 +976,7 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + //--------------------------------------------------------------- avatarbot_get_digital_value: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -459,7 +994,7 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_port_number', + type: 'avatarbot_get_gpio_dc_number', }, ], type: 'avatarbot_get_digital_value', @@ -470,14 +1005,8 @@ Entry.avatarbot.getBlocks = function() { class: 'avatarbot_value', isNotFor: ['avatarbot'], func(sprite, script) { - const { hwModule = {} } = Entry.hw; - const { name } = hwModule; - if (name === 'avatarbotExt') { - return Entry.block.avatarbot_ext_get_digital.func(sprite, script); - } else { - const signal = script.getNumberValue('PORT', script); - return Entry.hw.getDigitalPortValue(signal); - } + const signal = script.getNumberValue('PORT', script); + return Entry.hw.getDigitalPortValue(signal); }, syntax: { js: [], @@ -485,7 +1014,7 @@ Entry.avatarbot.getBlocks = function() { { syntax: 'avatarbot.digitalRead(%1)', blockType: 'param', - replaceBlockType: 'avatarbot_ext_get_digital', + // replaceBlockType: 'avatarbot_ext_get_digital', textParams: [ { type: 'Block', @@ -496,6 +1025,7 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + //--------------------------------------------------------------- avatarbot_toggle_led: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -528,7 +1058,7 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_port_number', + type: 'avatarbot_get_gpio_dc_number', }, null, null, @@ -575,6 +1105,7 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + //--------------------------------------------------------------- avatarbot_toggle_pwm: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -645,6 +1176,7 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + //--------------------------------------------------------------- avatarbot_convert_scale: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -685,7 +1217,7 @@ Entry.avatarbot.getBlocks = function() { type: 'avatarbot_get_number_sensor_value', params: [ { - type: 'avatarbot_get_sensor_number', + type: 'avatarbot_get_adc_dac_sonic_number', id: 'bl5e', }, ], @@ -696,7 +1228,7 @@ Entry.avatarbot.getBlocks = function() { }, { type: 'number', - params: ['1023'], + params: ['4095'], }, { type: 'number', @@ -793,8 +1325,643 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + //--------------------------------------------------------------- + avatarbot_dac: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_get_adc_dac_sonic_number', + }, + { + type: 'avatarbot_text', + params: ['255'], + }, + null, + ], + type: 'avatarbot_dac', + }, + paramsKeyMap: { + PORT: 0, + VALUE: 1, + }, + class: 'avatarbot_set', + isNotFor: ['avatarbot'], + func(sprite, script) { + const port = script.getNumberValue('PORT'); + let value = script.getNumberValue('VALUE'); + value = Math.round(value); + value = Math.max(value, 0); + value = Math.min(value, 255); + Entry.hw.setDigitalPortValue(port, value); + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.set_dac_duty(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_buzzer: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + /* + { + type: 'avatarbot_get_adc_dac_sonic_number', + }, + */ + { + type: 'avatarbot_text', + params: ['10'], + }, + null, + ], + type: 'avatarbot_buzzer', + }, + paramsKeyMap: { + // PORT: 0, + VALUE: 1, + }, + class: 'avatarbot_set', + isNotFor: ['avatarbot'], + func(sprite, script) { + // const port = script.getNumberValue('PORT'); + let value = script.getNumberValue('VALUE'); + value = Math.round(value); + value = Math.max(value, 0); + value = Math.min(value, 10); + // Entry.hw.setDigitalPortValue(port, value); + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.set_buzzer(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_pca9568: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_text', + params: ['50'], + }, + { + type: 'avatarbot_text', + params: ['27000000'], + }, + null, + ], + type: 'avatarbot_pca9568', + }, + paramsKeyMap: { + FREQ: 0, + OSC: 1, + }, + class: 'avatarbot_set', + isNotFor: ['avatarbot'], + func(sprite, script) { + const port = script.getNumberValue('FREQ'); + const value = script.getNumberValue('OSC'); + // Entry.hw.setDigitalPortValue(port, value); + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.set_pca9568(%1 %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_servo_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_get_serve_number', + }, + { + type: 'number', + params: ['150'], + }, + { + type: 'number', + params: ['600'], + }, + { + type: 'number', + params: ['500'], + }, + { + type: 'number', + params: ['2400'], + }, + ], + type: 'avatarbot_servo_setting', + }, + paramsKeyMap: { + VALUE1: 0, + VALUE2: 1, + VALUE3: 2, + VALUE4: 3, + VALUE5: 4, + }, + class: 'avatarbot', + isNotFor: ['avatarbot'], + func(sprite, script) { + const serve_m = script.getNumberValue('VALUE1', script); // Channel + let p_min = script.getNumberValue('VALUE2', script); // pulse min + let p_max = script.getNumberValue('VALUE3', script); // pulse max + let us_min = script.getNumberValue('VALUE4', script); // us min + let us_max = script.getNumberValue('VALUE5', script); // us max + + return 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.servo_setting(%1, %2, %3, %4, %5)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_servo: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_get_serve_number', + }, + { + type: 'number', + params: ['0'], + }, + ], + type: 'avatarbot_servo', + }, + paramsKeyMap: { + VALUE1: 0, + VALUE2: 1, + }, + class: 'avatarbot', + isNotFor: ['avatarbot'], + func(sprite, script) { + const serve_m = script.getNumberValue('VALUE1', script); // Channel + let value = script.getNumberValue('VALUE2', script); // target value + return 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.servo_m(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_dc: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_get_serve_number', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.avatarbot_DC_CW, '정회전'], + [Lang.Blocks.avatarbot_DC_CCW, '역회전'], + ], + value: '정회전', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'number', + params: ['0'], + }, + ], + type: 'avatarbot_dc', + }, + paramsKeyMap: { + VALUE1: 0, + VALUE2: 1, + VALUE3: 2, + }, + class: 'avatarbot', + isNotFor: ['avatarbot'], + func(sprite, script) { + const dc_m = script.getNumberValue('VALUE1', script); // Channel + let cw = script.getNumberValue('VALUE2', script); // cw, ccw + let speed = script.getNumberValue('VALUE3', script); // duty speed + const cw_value = cw == '정회전' ? 1 : 0; + return 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.dc(%1, %2, %3)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.avatarbot_DC_CW, '정회전'], + [Lang.Blocks.avatarbot_DC_CCW, '역회전'], + ], + value: '정회전', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_get_mpu6050: { + color: EntryStatic.colorSet.block.default.HARDWARE, //블록 색상 + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, //경계선 색상 + fontColor: '#fff', // 폰트색상 basic_string_field는 기본 색상이 검정색(#000) 입니다. + skeleton: 'basic_string_field', // 블록 모양 정의 + statements: [], + params: [ + + ], + events: {}, + def: { // 보여질 블록 정의 + // def의 params의 경우는 초기값을 지정할수 있습니다. + // TextInput의 경우에도 def > params을 통해 값을 지정할수 있습니다. + type: 'avatarbot_get_mpu6050', // func name + }, + paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 + // VALUE: 0, + }, + class: 'avatarbot_value', + isNotFor: ['avatarbot'], + func(sprite, script) { // 블록 기능정의 + // 해당 값을 getField, getValue로 가져오고 + // 가져 올때 paramsKeyMap에서 + // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. + // const signal = script.getValue('VALUE', script); + // return Entry.hw.getAnalogPortValue(signal[1]); + return 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.get_mpu6050()', + blockType: 'param', + textParams: [ + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_led_strip: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_text', + params: ['0'], + }, + null, + ], + type: 'avatarbot_led_strip', + }, + paramsKeyMap: { + VALUE: 0, + }, + class: 'avatarbot_set', + isNotFor: ['avatarbot'], + func(sprite, script) { + let value = script.getNumberValue('VALUE'); + value = Math.round(value); + value = Math.max(value, 0); + value = Math.min(value, 10); + // Entry.hw.setDigitalPortValue(port, value); + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.set_led_strip(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_ultra_sonic: { + color: EntryStatic.colorSet.block.default.HARDWARE, //블록 색상 + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, //경계선 색상 + fontColor: '#fff', // 폰트색상 basic_string_field는 기본 색상이 검정색(#000) 입니다. + skeleton: 'basic_string_field', // 블록 모양 정의 + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { // 보여질 블록 정의 + // def의 params의 경우는 초기값을 지정할수 있습니다. + // TextInput의 경우에도 def > params을 통해 값을 지정할수 있습니다. + params: [ + { + type: 'avatarbot_get_adc_dac_sonic_number', // 상단 func 가져와서 사용. + }, + ], + type: 'avatarbot_ultra_sonic', // func name + }, + paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 + VALUE: 0, + }, + class: 'avatarbot_value', + isNotFor: ['avatarbot'], + func(sprite, script) { // 블록 기능정의 + // 해당 값을 getField, getValue로 가져오고 + // 가져 올때 paramsKeyMap에서 + // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. + const signal = script.getValue('VALUE', script); + // return Entry.hw.getAnalogPortValue(signal[1]); + return 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.get_ultra_sonic(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- //endregion avatarbot 아두이노 + //--------------------------------------------------------------- }; }; +// 엔트리에서 하드웨어 블록 클래스를 인식할 수 있도록 내보내기 module.exports = Entry.avatarbot; From 6622c71d6cb2354a26c852265c8ecc7278c2facc Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Tue, 2 Jul 2024 10:06:56 +0900 Subject: [PATCH 05/65] =?UTF-8?q?hw=20=ED=86=B5=EC=8B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_avatarbot.js | 108 +++++++++--------- 1 file changed, 56 insertions(+), 52 deletions(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index 3cf32d9fde..2280b049f6 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -20,9 +20,12 @@ Entry.avatarbot = { Entry.hw.update(); }, */ + sendBuffer: new Array(230).fill(0), avatarBotDataSet : 230, setZero() { // 엔트리 정지시 하드웨어 초기화 로직 + this.sendBuffer.fill(0); + Entry.hw.sendQueue.CMD = this.sendBuffer; /* Entry.hw.sendQueue.readablePorts = []; // data buffer 23*10 table value. @@ -32,64 +35,65 @@ Entry.avatarbot = { } */ // - /* + var index = Entry.avatarbot.BoardFunType.Info; - Entry.hw.sendQueue[index+0] = 0x99; - Entry.hw.sendQueue[index+1] = 0x01; - Entry.hw.sendQueue[index+2] = 0x01; - Entry.hw.sendQueue[index+3] = Entry.avatarbot.avatarBotDataSet; + Entry.hw.sendQueue.CMD[index+0] = 0x99; + Entry.hw.sendQueue.CMD[index+1] = 0x01; + Entry.hw.sendQueue.CMD[index+2] = 0x01; + Entry.hw.sendQueue.CMD[index+3] = Entry.avatarbot.avatarBotDataSet; // pwm. 2~5 pad for(var i=0; i<4; i++) { index = Entry.avatarbot.BoardFunType.GPIO_LED_PWM0 + (i*10); - Entry.hw.sendQueue[index+2] = (Entry.avatarbot.Board_PWM.Freq)&0xff; - Entry.hw.sendQueue[index+3] = (Entry.avatarbot.Board_PWM.Freq>>8)&0xff; - Entry.hw.sendQueue[index+4] = (Entry.avatarbot.Board_PWM.Freq>>16)&0xff; - Entry.hw.sendQueue[index+5] = (Entry.avatarbot.Board_PWM.Resolution)&0xff; + Entry.hw.sendQueue.CMD[index+2] = (Entry.avatarbot.Board_PWM.Freq)&0xff; + Entry.hw.sendQueue.CMD[index+3] = (Entry.avatarbot.Board_PWM.Freq>>8)&0xff; + Entry.hw.sendQueue.CMD[index+4] = (Entry.avatarbot.Board_PWM.Freq>>16)&0xff; + Entry.hw.sendQueue.CMD[index+5] = (Entry.avatarbot.Board_PWM.Resolution)&0xff; } // adc index = Entry.avatarbot.BoardFunType.ADC; - Entry.hw.sendQueue[index+4] = (Entry.avatarbot.Board_ADC.Attenuation_11db)&0xff; - Entry.hw.sendQueue[index+5] = (Entry.avatarbot.Board_ADC.Resolution)&0xff; + Entry.hw.sendQueue.CMD[index+4] = (Entry.avatarbot.Board_ADC.Attenuation_11db)&0xff; + Entry.hw.sendQueue.CMD[index+5] = (Entry.avatarbot.Board_ADC.Resolution)&0xff; // pca9568 index = Entry.avatarbot.BoardFunType.PCA9568; - Entry.hw.sendQueue[index+1] = (Entry.avatarbot.Board_PCA9568.Freq)&0xff; - Entry.hw.sendQueue[index+2] = (Entry.avatarbot.Board_PCA9568.Freq>>8)&0xff; - Entry.hw.sendQueue[index+3] = (Entry.avatarbot.Board_PCA9568.Freq>>16)&0xff; - Entry.hw.sendQueue[index+4] = (Entry.avatarbot.Board_PCA9568.Freq>>24)&0xff; + Entry.hw.sendQueue.CMD[index+1] = (Entry.avatarbot.Board_PCA9568.Freq)&0xff; + Entry.hw.sendQueue.CMD[index+2] = (Entry.avatarbot.Board_PCA9568.Freq>>8)&0xff; + Entry.hw.sendQueue.CMD[index+3] = (Entry.avatarbot.Board_PCA9568.Freq>>16)&0xff; + Entry.hw.sendQueue.CMD[index+4] = (Entry.avatarbot.Board_PCA9568.Freq>>24)&0xff; - Entry.hw.sendQueue[index+5] = (Entry.avatarbot.Board_PCA9568.Osci)&0xff; - Entry.hw.sendQueue[index+6] = (Entry.avatarbot.Board_PCA9568.Osci>>8)&0xff; - Entry.hw.sendQueue[index+7] = (Entry.avatarbot.Board_PCA9568.Osci>>16)&0xff; - Entry.hw.sendQueue[index+8] = (Entry.avatarbot.Board_PCA9568.Osci>>24)&0xff; + Entry.hw.sendQueue.CMD[index+5] = (Entry.avatarbot.Board_PCA9568.Osci)&0xff; + Entry.hw.sendQueue.CMD[index+6] = (Entry.avatarbot.Board_PCA9568.Osci>>8)&0xff; + Entry.hw.sendQueue.CMD[index+7] = (Entry.avatarbot.Board_PCA9568.Osci>>16)&0xff; + Entry.hw.sendQueue.CMD[index+8] = (Entry.avatarbot.Board_PCA9568.Osci>>24)&0xff; // servo moter for(var i=0; i<8; i++) { index = Entry.avatarbot.BoardFunType.Servo_M0 + (i*10); - Entry.hw.sendQueue[index+1] = (Entry.avatarbot.Board_Servo.Pulse_Min)&0xff; - Entry.hw.sendQueue[index+2] = (Entry.avatarbot.Board_Servo.Pulse_Min>>8)&0xff; + Entry.hw.sendQueue.CMD[index+1] = (Entry.avatarbot.Board_Servo.Pulse_Min)&0xff; + Entry.hw.sendQueue.CMD[index+2] = (Entry.avatarbot.Board_Servo.Pulse_Min>>8)&0xff; - Entry.hw.sendQueue[index+3] = (Entry.avatarbot.Board_Servo.Pulse_Max)&0xff; - Entry.hw.sendQueue[index+4] = (Entry.avatarbot.Board_Servo.Pulse_Max>>8)&0xff; + Entry.hw.sendQueue.CMD[index+3] = (Entry.avatarbot.Board_Servo.Pulse_Max)&0xff; + Entry.hw.sendQueue.CMD[index+4] = (Entry.avatarbot.Board_Servo.Pulse_Max>>8)&0xff; - Entry.hw.sendQueue[index+5] = (Entry.avatarbot.Board_Servo.us_Min)&0xff; - Entry.hw.sendQueue[index+6] = (Entry.avatarbot.Board_Servo.us_Min>>8)&0xff; + Entry.hw.sendQueue.CMD[index+5] = (Entry.avatarbot.Board_Servo.us_Min)&0xff; + Entry.hw.sendQueue.CMD[index+6] = (Entry.avatarbot.Board_Servo.us_Min>>8)&0xff; - Entry.hw.sendQueue[index+7] = (Entry.avatarbot.Board_Servo.us_Max)&0xff; - Entry.hw.sendQueue[index+8] = (Entry.avatarbot.Board_Servo.us_Max>>8)&0xff; + Entry.hw.sendQueue.CMD[index+7] = (Entry.avatarbot.Board_Servo.us_Max)&0xff; + Entry.hw.sendQueue.CMD[index+8] = (Entry.avatarbot.Board_Servo.us_Max>>8)&0xff; } // + /* for(var i=0; i<(data.length/10); i++) { var index = i*10; console.log('[jhkim] setZero - DataSet[', i, ']: ', - Entry.hw.sendQueue[index+0], ' | ', Entry.hw.sendQueue[index+1], ' | ', Entry.hw.sendQueue[index+2], ' | ', - Entry.hw.sendQueue[index+3], ' | ', Entry.hw.sendQueue[index+4], ' | ', Entry.hw.sendQueue[index+5], ' | ', - Entry.hw.sendQueue[index+6], ' | ', Entry.hw.sendQueue[index+7], ' | ', Entry.hw.sendQueue[index+8], ' | ', - Entry.hw.sendQueue[index+9]); + Entry.hw.sendQueue.CMD[index+0], ' | ', Entry.hw.sendQueue.CMD[index+1], ' | ', Entry.hw.sendQueue.CMD[index+2], ' | ', + Entry.hw.sendQueue.CMD[index+3], ' | ', Entry.hw.sendQueue.CMD[index+4], ' | ', Entry.hw.sendQueue.CMD[index+5], ' | ', + Entry.hw.sendQueue.CMD[index+6], ' | ', Entry.hw.sendQueue.CMD[index+7], ' | ', Entry.hw.sendQueue.CMD[index+8], ' | ', + Entry.hw.sendQueue.CMD[index+9]); } */ // @@ -859,10 +863,14 @@ Entry.avatarbot.getBlocks = function() { func(sprite, script) { const signal = script.getNumberValue('PORT', script); // console.log("avatarbot_hw_test : %d", Entry.hw.portData[signal]); - console.log("avatarbot value test...."); + // console.log("avatarbot value test...."); // console.log("%d %d", what, speed); - return Entry.hw.portData[signal]; + // return Entry.hw.portData[signal]; + // Entry.hw.update(); + + return Entry.hw.sendQueue.CMD[Entry.avatarbot.BoardFunType.GPIO_LED_PWM0+signal]; + // return script.callReturn(); }, syntax: { js: [], @@ -1724,9 +1732,15 @@ Entry.avatarbot.getBlocks = function() { defaultType: 'number', }, { - type: 'Block', - accept: 'string', - defaultType: 'number', + type: 'Dropdown', + options: [ + [Lang.Blocks.avatarbot_DC_CW, '0'], + [Lang.Blocks.avatarbot_DC_CCW, '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, { type: 'Block', @@ -1738,19 +1752,9 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_serve_number', + type: 'avatarbot_get_gpio_dc_number', }, - { - type: 'Dropdown', - options: [ - [Lang.Blocks.avatarbot_DC_CW, '정회전'], - [Lang.Blocks.avatarbot_DC_CCW, '역회전'], - ], - value: '정회전', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, + null, { type: 'number', params: ['0'], @@ -1769,7 +1773,7 @@ Entry.avatarbot.getBlocks = function() { const dc_m = script.getNumberValue('VALUE1', script); // Channel let cw = script.getNumberValue('VALUE2', script); // cw, ccw let speed = script.getNumberValue('VALUE3', script); // duty speed - const cw_value = cw == '정회전' ? 1 : 0; + // const cw_value = cw == '정회전' ? 1 : 0; return 0; }, syntax: { @@ -1786,10 +1790,10 @@ Entry.avatarbot.getBlocks = function() { { type: 'Dropdown', options: [ - [Lang.Blocks.avatarbot_DC_CW, '정회전'], - [Lang.Blocks.avatarbot_DC_CCW, '역회전'], + [Lang.Blocks.avatarbot_DC_CW, '0'], + [Lang.Blocks.avatarbot_DC_CCW, '1'], ], - value: '정회전', + value: '0', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, From 884c990042f18f5350052f24f76d5f3f7db1e94c Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Tue, 2 Jul 2024 16:34:27 +0900 Subject: [PATCH 06/65] button test ok --- src/playground/blocks/hardware/block_avatarbot.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index 2280b049f6..fac2f0037b 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -912,12 +912,10 @@ Entry.avatarbot.getBlocks = function() { class: 'avatarbot_value', isNotFor: ['avatarbot'], func(sprite, script) { // 블록 기능정의 - // 해당 값을 getField, getValue로 가져오고 - // 가져 올때 paramsKeyMap에서 - // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. - // const signal = script.getValue('VALUE', script); - // return Entry.hw.getAnalogPortValue(signal[1]); - return 0; + let sensorData = Entry.hw.portData.CMD[Entry.avatarbot.BoardFunType.Button+1] == 0 ? 0 : 1; + Entry.hw.sendQueue.CMD[Entry.avatarbot.BoardFunType.Button+1] = 0; + Entry.hw.update(); + return sensorData; }, syntax: { js: [], From 953601299c114f80afc526c6e0528ed5b72b9ff0 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Tue, 2 Jul 2024 18:50:07 +0900 Subject: [PATCH 07/65] =?UTF-8?q?=ED=86=B5=EC=8B=A0=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=86=A0=EC=BD=9C=20=EC=A0=95=EB=A6=AC=20test=20ok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_avatarbot.js | 93 +++++++------------ 1 file changed, 35 insertions(+), 58 deletions(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index fac2f0037b..073b37809f 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -20,8 +20,8 @@ Entry.avatarbot = { Entry.hw.update(); }, */ - sendBuffer: new Array(230).fill(0), - avatarBotDataSet : 230, + sendBuffer: new Array(210).fill(0), + avatarBotDataSet : 210, setZero() { // 엔트리 정지시 하드웨어 초기화 로직 this.sendBuffer.fill(0); @@ -43,14 +43,12 @@ Entry.avatarbot = { Entry.hw.sendQueue.CMD[index+3] = Entry.avatarbot.avatarBotDataSet; // pwm. 2~5 pad - for(var i=0; i<4; i++) - { - index = Entry.avatarbot.BoardFunType.GPIO_LED_PWM0 + (i*10); - Entry.hw.sendQueue.CMD[index+2] = (Entry.avatarbot.Board_PWM.Freq)&0xff; - Entry.hw.sendQueue.CMD[index+3] = (Entry.avatarbot.Board_PWM.Freq>>8)&0xff; - Entry.hw.sendQueue.CMD[index+4] = (Entry.avatarbot.Board_PWM.Freq>>16)&0xff; - Entry.hw.sendQueue.CMD[index+5] = (Entry.avatarbot.Board_PWM.Resolution)&0xff; - } + index = Entry.avatarbot.BoardFunType.GPIO_PWM_SET; + Entry.hw.sendQueue.CMD[index+1] = (Entry.avatarbot.Board_PWM.Freq)&0xff; + Entry.hw.sendQueue.CMD[index+2] = (Entry.avatarbot.Board_PWM.Freq>>8)&0xff; + Entry.hw.sendQueue.CMD[index+3] = (Entry.avatarbot.Board_PWM.Freq>>16)&0xff; + Entry.hw.sendQueue.CMD[index+4] = (Entry.avatarbot.Board_PWM.Resolution)&0xff; + // adc index = Entry.avatarbot.BoardFunType.ADC; Entry.hw.sendQueue.CMD[index+4] = (Entry.avatarbot.Board_ADC.Attenuation_11db)&0xff; @@ -103,27 +101,25 @@ Entry.avatarbot = { BoardFunType : { Info: 0, Button:10, - GPIO_LED_PWM0: 20, - GPIO_LED_PWM1: 30, - GPIO_LED_PWM2: 40, - GPIO_LED_PWM3: 50, - ADC: 60, - DAC: 70, - IR_Remote: 80, - Buzzer: 90, - PCA9568: 100, - Servo_M0: 110, - Servo_M1: 120, - Servo_M2: 130, - Servo_M3: 140, - Servo_M4: 150, - Servo_M5: 160, - Servo_M6: 170, - Servo_M7: 180, - DC_M: 190, - MPU6050: 200, - LED_Strip: 210, - ULTRA_SONIC: 220 + GPIO_PWM_SET: 20, + GPIO_PWM: 30, + ADC: 40, + IR_Remote: 50, + Buzzer: 60, + PCA9568: 70, + Servo_M0: 80, + Servo_M1: 90, + Servo_M2: 100, + Servo_M3: 110, + Servo_M4: 120, + Servo_M5: 130, + Servo_M6: 140, + Servo_M7: 150, + DC_M: 160, + MPU6050_1: 170, + MPU6050_2: 180, + LED_Strip: 190, + ULTRA_SONIC: 200 }, Board_Buttton:{ @@ -136,28 +132,13 @@ Entry.avatarbot = { En0: 0, Type0: 0, // gpio(0), ledc(1), pwm(2) value0: 0, //0~255, duty or value - Freq0: 5000, // default - 5000 - resolution0: 13, // default - 13 getValue0: 0, // input value + // gpio1 En1: 0, Type1: 0, value1: 0, - Freq1: 5000, - resolution1: 13, getValue1: 0, - // gpio2 - En2: 0, - Type2: 0, - value2: 0, - Freq2: 5000, - resolution2: 13, - getValue2: 0, - // gpio3 - En3: 0, - Type3: 0, // type=0 only gpio - value3: 0, - getValue3: 0 }, Board_PWM : { // default gpio resolution, freq @@ -178,13 +159,6 @@ Entry.avatarbot = { Attenuation_11db: 3 // default db value. }, - Board_DAC : { - En0: 0, - setValue0: 0, // 8bit default. 0 ~ 255 - En1: 0, - setValue1: 0 - }, - Board_IR_Remote : { En: 0 }, @@ -292,9 +266,12 @@ Entry.avatarbot = { Board_MPU6050 : { En:0, // get value list - x:0, - y:0, - z:0, + acceleration_x:0, + acceleration_y:0, + acceleration_z:0, + rotation_x:0, + rotation_y:0, + rotation_z:0, temperature:0 }, Board_LED_Strip : { @@ -307,7 +284,7 @@ Entry.avatarbot = { b: 0 }, - Board_LED_Strip : { + Board_ultraSonic : { En0:0, En1: 0, // get value From ed21902dda237abfbd701703ab93e8f8f4038787 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 3 Jul 2024 14:35:53 +0900 Subject: [PATCH 08/65] adc test --- .../blocks/hardware/block_avatarbot.js | 112 +++++------------- 1 file changed, 27 insertions(+), 85 deletions(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index 073b37809f..dd2afdb47c 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -402,7 +402,7 @@ Entry.avatarbot.setLanguage = function() { ko: { template: { // - avatarbot_hw_test: 'AvatarBot HW Test %1 번 값 ', + // avatarbot_hw_test: 'AvatarBot HW Test %1 번 값 ', // avatarbot_get_button: '버튼 값 ', avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', // adc @@ -411,7 +411,6 @@ Entry.avatarbot.setLanguage = function() { avatarbot_toggle_pwm: 'PWM %1 번 핀을 %2 (으)로 정하기 %3', avatarbot_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 ', // - avatarbot_dac: 'DAC %1 번을 값(Duty) %2 (으)로 정하기 %3', // avatarbot_ir_remote: '리모컨 %1 (으)로 동작 ', avatarbot_buzzer: '부저 %1 (으)로 동작 ', avatarbot_pca9568: '모터 컨트롤 주파수 %1 와 오실레이터 %2 (으)로 설정 ', @@ -453,7 +452,7 @@ Entry.avatarbot.setLanguage = function() { // 엔트리에 등록할 블록들의 블록명 작성 Entry.avatarbot.blockMenuBlocks = [ // hw data 통신 test - 'avatarbot_hw_test', + // 'avatarbot_hw_test', // base block 'avatarbot_get_button', 'avatarbot_get_number_sensor_value', @@ -462,7 +461,6 @@ Entry.avatarbot.blockMenuBlocks = [ 'avatarbot_toggle_pwm', 'avatarbot_convert_scale', // - 'avatarbot_dac', // 'avatarbot_ir_remote', 'avatarbot_buzzer', 'avatarbot_pca9568', @@ -581,7 +579,7 @@ Entry.avatarbot.getBlocks = function() { // get port(module, function) number // - gpio(4), pwm(3), adc(2), dac(2), servo_m(8), dc_m(4), ulrasonic(2) //--------------------------------------------------------------- - avatarbot_get_adc_dac_sonic_number: { + avatarbot_get_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, skeleton: 'basic_string_field', @@ -627,7 +625,7 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, ], - keyOption: 'avatarbot_get_adc_dac_sonic_number', + keyOption: 'avatarbot_get_port_number', }, ], }, @@ -753,6 +751,7 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- + /* avatarbot_get_pwm_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -807,9 +806,11 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + */ //--------------------------------------------------------------- // hw test //--------------------------------------------------------------- + /* avatarbot_hw_test:{ color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -865,6 +866,7 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + */ //--------------------------------------------------------------- // base function. //--------------------------------------------------------------- @@ -926,7 +928,7 @@ Entry.avatarbot.getBlocks = function() { // TextInput의 경우에도 def > params을 통해 값을 지정할수 있습니다. params: [ { - type: 'avatarbot_get_adc_dac_sonic_number', // 상단 func 가져와서 사용. + type: 'avatarbot_get_port_number', // 상단 func 가져와서 사용. }, ], type: 'avatarbot_get_number_sensor_value', // func name @@ -940,8 +942,18 @@ Entry.avatarbot.getBlocks = function() { // 해당 값을 getField, getValue로 가져오고 // 가져 올때 paramsKeyMap에서 // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. - const signal = script.getValue('VALUE', script); - return Entry.hw.getAnalogPortValue(signal[1]); + // const signal = script.getValue('VALUE', script); + // return Entry.hw.getAnalogPortValue(signal[1]); + const signal = script.getNumberValue('VALUE', script); + let index = (signal*2) + Entry.avatarbot.BoardFunType.ADC; + let sensorData_low = Entry.hw.portData.CMD[index + 6]; // low + let sensorData_high = Entry.hw.portData.CMD[index + 7]<<8; // high + let sensorData = sensorData_low + sensorData_high; + + Entry.hw.sendQueue.CMD[Entry.avatarbot.BoardFunType.ADC + signal] = 1; + Entry.hw.update(); + + return sensorData; }, syntax: { js: [], @@ -977,7 +989,7 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_gpio_dc_number', + type: 'avatarbot_get_port_number', }, ], type: 'avatarbot_get_digital_value', @@ -1041,7 +1053,7 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_gpio_dc_number', + type: 'avatarbot_get_port_number', }, null, null, @@ -1115,7 +1127,7 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_pwm_port_number', + type: 'avatarbot_get_port_number', }, { type: 'avatarbot_text', @@ -1200,7 +1212,7 @@ Entry.avatarbot.getBlocks = function() { type: 'avatarbot_get_number_sensor_value', params: [ { - type: 'avatarbot_get_adc_dac_sonic_number', + type: 'avatarbot_get_port_number', id: 'bl5e', }, ], @@ -1309,76 +1321,6 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- - avatarbot_dac: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - statements: [], - params: [ - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - events: {}, - def: { - params: [ - { - type: 'avatarbot_get_adc_dac_sonic_number', - }, - { - type: 'avatarbot_text', - params: ['255'], - }, - null, - ], - type: 'avatarbot_dac', - }, - paramsKeyMap: { - PORT: 0, - VALUE: 1, - }, - class: 'avatarbot_set', - isNotFor: ['avatarbot'], - func(sprite, script) { - const port = script.getNumberValue('PORT'); - let value = script.getNumberValue('VALUE'); - value = Math.round(value); - value = Math.max(value, 0); - value = Math.min(value, 255); - Entry.hw.setDigitalPortValue(port, value); - return script.callReturn(); - }, - syntax: { - js: [], - py: [ - { - syntax: 'avatarbot.set_dac_duty(%1, %2)', - textParams: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - ], - }, - ], - }, - }, //--------------------------------------------------------------- avatarbot_buzzer: { color: EntryStatic.colorSet.block.default.HARDWARE, @@ -1407,7 +1349,7 @@ Entry.avatarbot.getBlocks = function() { params: [ /* { - type: 'avatarbot_get_adc_dac_sonic_number', + type: 'avatarbot_get_port_number', }, */ { @@ -1902,7 +1844,7 @@ Entry.avatarbot.getBlocks = function() { // TextInput의 경우에도 def > params을 통해 값을 지정할수 있습니다. params: [ { - type: 'avatarbot_get_adc_dac_sonic_number', // 상단 func 가져와서 사용. + type: 'avatarbot_get_port_number', // 상단 func 가져와서 사용. }, ], type: 'avatarbot_ultra_sonic', // func name From 77aa9f5f445b03b460bee8d1596ca9c817abda53 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 3 Jul 2024 19:09:29 +0900 Subject: [PATCH 09/65] =?UTF-8?q?module=20test=20=EC=B4=88=EC=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_avatarbot.js | 291 +++++++++++------- 1 file changed, 177 insertions(+), 114 deletions(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index dd2afdb47c..4f8527d5f1 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -414,10 +414,9 @@ Entry.avatarbot.setLanguage = function() { // avatarbot_ir_remote: '리모컨 %1 (으)로 동작 ', avatarbot_buzzer: '부저 %1 (으)로 동작 ', avatarbot_pca9568: '모터 컨트롤 주파수 %1 와 오실레이터 %2 (으)로 설정 ', - avatarbot_servo_setting: '서보 모터 %1 을 신호 %2 ~ %3 (으)로 시간(us) %4 ~ %5 (으)로 설정 ', - avatarbot_servo: '서보 모터 %1 을 %2 (으)로 동작 ', + avatarbot_servo: '서보 모터 %1 을 시간(us) %2 ~ %3 (으)로 %4 동작 ', avatarbot_dc: 'DC 모터 %1 을 %2 방향으로 %3 (으)로 동작 ', - avatarbot_get_mpu6050: '자이로 가속도 센서 값 ', // x,y,z, temperature + avatarbot_get_mpu6050: '자이로 가속도 센서 %1 값 ', avatarbot_led_strip: 'LED 스트립 %1 동작 ', avatarbot_ultra_sonic:'초음파 %1 번 센서 값 ', // @@ -464,7 +463,6 @@ Entry.avatarbot.blockMenuBlocks = [ // 'avatarbot_ir_remote', 'avatarbot_buzzer', 'avatarbot_pca9568', - 'avatarbot_servo_setting', 'avatarbot_servo', 'avatarbot_dc', 'avatarbot_get_mpu6050', @@ -1001,7 +999,17 @@ Entry.avatarbot.getBlocks = function() { isNotFor: ['avatarbot'], func(sprite, script) { const signal = script.getNumberValue('PORT', script); - return Entry.hw.getDigitalPortValue(signal); + // return Entry.hw.getDigitalPortValue(signal); + let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; + let sensorData = Entry.hw.portData.CMD[index+3] == 0 ? 0 : 1; // ch0, ch1 value + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = 0; // duty + Entry.hw.sendQueue.CMD[index+2] = 0; // type in(0) + Entry.hw.update(); + + return sensorData; }, syntax: { js: [], @@ -1067,10 +1075,20 @@ Entry.avatarbot.getBlocks = function() { class: 'avatarbot_set', isNotFor: ['avatarbot'], func(sprite, script) { - const port = script.getNumberValue('VALUE'); + // + const signal = script.getNumberValue('VALUE', script); const operator = script.getField('OPERATOR'); const value = operator == 'on' ? 255 : 0; - Entry.hw.setDigitalPortValue(port, value); + + let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; + // let sensorData = Entry.hw.portData.CMD[index+3] == 0 ? 0 : 1; // ch0, ch1 value + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = value; // duty or value + Entry.hw.sendQueue.CMD[index+2] = 1; // type out(0) + Entry.hw.update(); + return script.callReturn(); }, syntax: { @@ -1144,12 +1162,20 @@ Entry.avatarbot.getBlocks = function() { class: 'avatarbot_set', isNotFor: ['avatarbot'], func(sprite, script) { - const port = script.getNumberValue('PORT'); + const signal = script.getNumberValue('PORT'); let value = script.getNumberValue('VALUE'); value = Math.round(value); value = Math.max(value, 0); value = Math.min(value, 255); - Entry.hw.setDigitalPortValue(port, value); + + let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = value; // duty or value : 0 ~ 255 + Entry.hw.sendQueue.CMD[index+2] = 2; // type pwm(2) + Entry.hw.update(); + return script.callReturn(); }, syntax: { @@ -1362,17 +1388,23 @@ Entry.avatarbot.getBlocks = function() { }, paramsKeyMap: { // PORT: 0, - VALUE: 1, + VALUE: 0, }, class: 'avatarbot_set', isNotFor: ['avatarbot'], func(sprite, script) { - // const port = script.getNumberValue('PORT'); let value = script.getNumberValue('VALUE'); value = Math.round(value); value = Math.max(value, 0); value = Math.min(value, 10); - // Entry.hw.setDigitalPortValue(port, value); + + let index = Entry.avatarbot.BoardFunType.Buzzer; + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // buzzer en + Entry.hw.sendQueue.CMD[index+1] = value; // buzzer sample + Entry.hw.update(); + return script.callReturn(); }, syntax: { @@ -1439,9 +1471,23 @@ Entry.avatarbot.getBlocks = function() { class: 'avatarbot_set', isNotFor: ['avatarbot'], func(sprite, script) { - const port = script.getNumberValue('FREQ'); - const value = script.getNumberValue('OSC'); - // Entry.hw.setDigitalPortValue(port, value); + const freq = script.getNumberValue('FREQ'); + const osci = script.getNumberValue('OSC'); + + let index = Entry.avatarbot.BoardFunType.PCA9568; + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // PCA9568 en + Entry.hw.sendQueue.CMD[index+1] = (freq)&0xff; // PCA9568 freq0 + Entry.hw.sendQueue.CMD[index+2] = (freq>>8)&0xff; // PCA9568 freq1 + Entry.hw.sendQueue.CMD[index+3] = (freq>>16)&0xff; // PCA9568 freq2 + Entry.hw.sendQueue.CMD[index+4] = (freq>>24)&0xff; // PCA9568 freq3 + Entry.hw.sendQueue.CMD[index+5] = (osci)&0xff; // PCA9568 osci0 + Entry.hw.sendQueue.CMD[index+6] = (osci>>8)&0xff; // PCA9568 osci1 + Entry.hw.sendQueue.CMD[index+7] = (osci>>16)&0xff; // PCA9568 osci2 + Entry.hw.sendQueue.CMD[index+8] = (osci>>24)&0xff; // PCA9568 osci3 + Entry.hw.update(); + return script.callReturn(); }, syntax: { @@ -1464,7 +1510,7 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- - avatarbot_servo_setting: { + avatarbot_servo: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, fontColor: '#fff', @@ -1491,11 +1537,6 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, ], events: {}, def: { @@ -1505,46 +1546,67 @@ Entry.avatarbot.getBlocks = function() { }, { type: 'number', - params: ['150'], - }, - { - type: 'number', - params: ['600'], + params: ['500'], }, { type: 'number', - params: ['500'], + params: ['2400'], }, { type: 'number', - params: ['2400'], + params: ['0'], }, ], - type: 'avatarbot_servo_setting', + type: 'avatarbot_servo', }, paramsKeyMap: { VALUE1: 0, VALUE2: 1, VALUE3: 2, VALUE4: 3, - VALUE5: 4, }, class: 'avatarbot', isNotFor: ['avatarbot'], func(sprite, script) { - const serve_m = script.getNumberValue('VALUE1', script); // Channel - let p_min = script.getNumberValue('VALUE2', script); // pulse min - let p_max = script.getNumberValue('VALUE3', script); // pulse max - let us_min = script.getNumberValue('VALUE4', script); // us min - let us_max = script.getNumberValue('VALUE5', script); // us max + const signal = script.getNumberValue('VALUE1', script); + let us_min = script.getNumberValue('VALUE2', script); + let us_max = script.getNumberValue('VALUE3', script); + let value = script.getNumberValue('VALUE4', script); + us_min = Math.round(us_min); + us_max = Math.round(us_max); + value = Math.round(value); + + us_min = Math.max(us_min, 200); //150 + us_max = Math.min(us_max, 700); // 600 + + us_min = Math.min(us_min, us_max); // us_min < us_max :: check. + us_max = Math.max(us_min, us_max); + + value = Math.max(value, 0); //150 + value = Math.min(value, 180); // 600 - return 0; + let index = (signal*10) + Entry.avatarbot.BoardFunType.Servo_M0; // base+10,20,30,...n + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // ch en + // Entry.hw.sendQueue.CMD[index+1] = 0; // pulse min low + // Entry.hw.sendQueue.CMD[index+2] = 0; // pulse min high + // Entry.hw.sendQueue.CMD[index+3] = 0; // pulse max low + // Entry.hw.sendQueue.CMD[index+4] = 0; // pulse max high + Entry.hw.sendQueue.CMD[index+5] = (us_min)&0xff; // us min low + Entry.hw.sendQueue.CMD[index+6] = (us_min>>8)&0xff; // us min high + Entry.hw.sendQueue.CMD[index+7] = (us_max)&0xff; // us max low + Entry.hw.sendQueue.CMD[index+8] = (us_max>>8)&0xff; // us max high + Entry.hw.sendQueue.CMD[index+9] = (value)&0xff; // angle value. 0 ~ 180 + Entry.hw.update(); + + return script.callReturn(); }, syntax: { js: [], py: [ { - syntax: 'avatarbot.servo_setting(%1, %2, %3, %4, %5)', + syntax: 'avatarbot.servo(%1, %2, %3, %4)', blockType: 'param', textParams: [ { @@ -1563,73 +1625,6 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, - { - type: 'Block', - accept: 'string', - }, - ], - }, - ], - }, - }, - //--------------------------------------------------------------- - avatarbot_servo: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - statements: [], - params: [ - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - ], - events: {}, - def: { - params: [ - { - type: 'avatarbot_get_serve_number', - }, - { - type: 'number', - params: ['0'], - }, - ], - type: 'avatarbot_servo', - }, - paramsKeyMap: { - VALUE1: 0, - VALUE2: 1, - }, - class: 'avatarbot', - isNotFor: ['avatarbot'], - func(sprite, script) { - const serve_m = script.getNumberValue('VALUE1', script); // Channel - let value = script.getNumberValue('VALUE2', script); // target value - return 0; - }, - syntax: { - js: [], - py: [ - { - syntax: 'avatarbot.servo_m(%1, %2)', - blockType: 'param', - textParams: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, ], }, ], @@ -1687,11 +1682,24 @@ Entry.avatarbot.getBlocks = function() { class: 'avatarbot', isNotFor: ['avatarbot'], func(sprite, script) { - const dc_m = script.getNumberValue('VALUE1', script); // Channel - let cw = script.getNumberValue('VALUE2', script); // cw, ccw - let speed = script.getNumberValue('VALUE3', script); // duty speed + // const dc_m = script.getNumberValue('VALUE1', script); // Channel + // let cw = script.getNumberValue('VALUE2', script); // cw, ccw + // let speed = script.getNumberValue('VALUE3', script); // duty speed // const cw_value = cw == '정회전' ? 1 : 0; - return 0; + const signal = script.getNumberValue('VALUE1', script); + let cw = script.getNumberValue('VALUE2', script); + let speed = script.getNumberValue('VALUE3', script); + + speed = Math.round(speed); + speed = Math.max(speed, 0); + speed = Math.min(speed, 255); + + let index = (signal*2) + Entry.avatarbot.BoardFunType.DC_M; // base+2,4,6,8 + Entry.hw.sendQueue.CMD[index] = (1 + (cw<<4))&0xff; // ch en + Entry.hw.sendQueue.CMD[index+1] = speed&0xff; + Entry.hw.update(); + + return script.callReturn(); }, syntax: { js: [], @@ -1733,16 +1741,30 @@ Entry.avatarbot.getBlocks = function() { skeleton: 'basic_string_field', // 블록 모양 정의 statements: [], params: [ - + { + type: 'Dropdown', + options: [ + ['Acceleration', '0'], + ['Rotation', '1'], + ['Temperature', '2'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, ], events: {}, def: { // 보여질 블록 정의 // def의 params의 경우는 초기값을 지정할수 있습니다. // TextInput의 경우에도 def > params을 통해 값을 지정할수 있습니다. + params: [ + null, + ], type: 'avatarbot_get_mpu6050', // func name }, paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 - // VALUE: 0, + VALUE: 0, }, class: 'avatarbot_value', isNotFor: ['avatarbot'], @@ -1752,7 +1774,36 @@ Entry.avatarbot.getBlocks = function() { // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. // const signal = script.getValue('VALUE', script); // return Entry.hw.getAnalogPortValue(signal[1]); - return 0; + const type = script.getNumberValue('VALUE', script); + let index = Entry.avatarbot.BoardFunType.MPU6050_1; + // 가속도 값 + let acceleration_x = ((Entry.hw.portData.CMD[index+1]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+1]&0x7f) +"."+ ((Entry.hw.portData.CMD[index+2]>9)?"":"0") + Entry.hw.portData.CMD[index+2]; + let acceleration_y = ((Entry.hw.portData.CMD[index+3]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+3]&0x7f) +"."+ ((Entry.hw.portData.CMD[index+4]>9)?"":"0") + Entry.hw.portData.CMD[index+4]; + let acceleration_z = ((Entry.hw.portData.CMD[index+5]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+5]&0x7f) +"."+ ((Entry.hw.portData.CMD[index+6]>9)?"":"0") + Entry.hw.portData.CMD[index+6]; + let temperature = ((Entry.hw.portData.CMD[index+7]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+7]&0x7f) +"."+ ((Entry.hw.portData.CMD[index+8]>9)?"":"0") + Entry.hw.portData.CMD[index+8]; + // + index = Entry.avatarbot.BoardFunType.MPU6050_2; + // 회전값 + let rotation_x = ((Entry.hw.portData.CMD[index+1]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+1]&0x7f) +"."+ ((Entry.hw.portData.CMD[index+2]>9)?"":"0") + Entry.hw.portData.CMD[index+2]; + let rotation_y = ((Entry.hw.portData.CMD[index+3]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+3]&0x7f) +"."+ ((Entry.hw.portData.CMD[index+4]>9)?"":"0") + Entry.hw.portData.CMD[index+4]; + let rotation_z = ((Entry.hw.portData.CMD[index+5]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+5]&0x7f) +"."+ ((Entry.hw.portData.CMD[index+6]>9)?"":"0") + Entry.hw.portData.CMD[index+6]; + + // let mpu6050 = `Acceleration X: ${acceleration_x}, Y: ${acceleration_y}, Z: ${acceleration_z} m/s^2\nRotation X: ${rotation_x}, Y: ${rotation_y}, Z: ${rotation_z} rad/s\nTemperature: ${temperature} degC`; + let mpu6050 = ""; + if(type == 0){ + mpu6050 = `Acceleration X: ${acceleration_x}, Y: ${acceleration_y}, Z: ${acceleration_z} m/s^2`; + }else if(type == 1){ + mpu6050 = `Rotation X: ${rotation_x}, Y: ${rotation_y}, Z: ${rotation_z} rad/s`; + }else if(type == 2){ + mpu6050 = `Temperature: ${temperature} degC`; + } + + // + index = Entry.avatarbot.BoardFunType.MPU6050_1; + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.update(); + + return mpu6050; }, syntax: { js: [], @@ -1807,6 +1858,11 @@ Entry.avatarbot.getBlocks = function() { value = Math.min(value, 10); // Entry.hw.setDigitalPortValue(port, value); + let index = Entry.avatarbot.BoardFunType.LED_Strip; + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = value; // sample 0, 1~other... + Entry.hw.update(); + return script.callReturn(); }, syntax: { @@ -1858,9 +1914,16 @@ Entry.avatarbot.getBlocks = function() { // 해당 값을 getField, getValue로 가져오고 // 가져 올때 paramsKeyMap에서 // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. - const signal = script.getValue('VALUE', script); - // return Entry.hw.getAnalogPortValue(signal[1]); - return 0; + const signal = script.getNumberValue('VALUE'); + let index = (signal*5) + Entry.avatarbot.BoardFunType.ULTRA_SONIC; + let cm = ((Entry.hw.portData.CMD[index+1]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+1]&0x7f) +"." + ((Entry.hw.portData.CMD[index+2]>9)?"":"0") + Entry.hw.portData.CMD[index+2]; + let inch = ((Entry.hw.portData.CMD[index+3]&0x80)==0?"":"-") + (Entry.hw.portData.CMD[index+3]&0x7f) +"." + ((Entry.hw.portData.CMD[index+4]>9)?"":"0") + Entry.hw.portData.CMD[index+4]; + + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.update(); + + let sonic = `${cm} cm, ${inch} inch`; + return sonic; }, syntax: { js: [], From 28aa4f17419af19fecd475dace56db87fc7c5b63 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Fri, 5 Jul 2024 13:58:44 +0900 Subject: [PATCH 10/65] all module test --- extern/lang/code.js | 22 - extern/lang/ebs.js | 25 - extern/lang/en.js | 21 - extern/lang/jp.js | 23 - extern/lang/ko.js | 20 - extern/lang/vn.js | 22 - .../blocks/hardware/block_avatarbot.js | 1369 +- yarn.lock | 10920 ++++++++++++++++ 8 files changed, 11902 insertions(+), 520 deletions(-) create mode 100644 yarn.lock diff --git a/extern/lang/code.js b/extern/lang/code.js index 9172395657..149ed6cd1b 100644 --- a/extern/lang/code.js +++ b/extern/lang/code.js @@ -677,8 +677,6 @@ Lang.Blocks = { "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", - "avatarbot_DC_CW": "정회전", - "avatarbot_DC_CCW": "역회전", "ARDUINO_arduino_get_string_1": "신호", "ARDUINO_arduino_get_string_2": "의 글자 결괏값", @@ -5889,26 +5887,6 @@ Lang.template = { "albert_set_wheels_to": "%1 %2 %3", - "avatarbot_text": "%1", - "avatarbot_get_adc_dac_sonic_number": "%1 ", - "avatarbot_get_gpio_dc_number": "%1 ", - "avatarbot_get_serve_number": "%1 ", - "avatarbot_get_pwm_port_number": "%1 ", - - "avatarbot_get_sensor_number": "%1 ", - "avatarbot_get_port_number": "%1 ", - "avatarbot_get_digital_toggle": "%1 ", - "avatarbot_get_pwm_port_number": "%1 ", - "avatarbot_get_number_sensor_value": "아날로그 %1 번 센서값 ", - - "avatarbot_ext_get_analog_value": "아날로그 %1 번 센서값", - "avatarbot_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", - "avatarbot_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", - "avatarbot_ext_toggle_led": "디지털 %1 번 핀 %2 %3", - "avatarbot_ext_digital_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", - "avatarbot_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", - "avatarbot_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", - "avatarbot_ext_get_digital": "디지털 %1 번 센서값", "arduino_text": "%1", diff --git a/extern/lang/ebs.js b/extern/lang/ebs.js index 7d49f1e5d2..81ea765eef 100644 --- a/extern/lang/ebs.js +++ b/extern/lang/ebs.js @@ -677,9 +677,6 @@ Lang.Blocks = { "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", - "avatarbot_DC_CW": "정회전", - "avatarbot_DC_CCW": "역회전", - "ARDUINO_arduino_get_string_1": "신호", "ARDUINO_arduino_get_string_2": "의 글자 결괏값", "ARDUINO_arduino_send_1": "신호", @@ -5903,28 +5900,6 @@ Lang.template = { "albert_set_wheels_to": "%1 %2 %3", - "avatarbot_text": "%1", - "avatarbot_get_adc_dac_sonic_number": "%1 ", - "avatarbot_get_gpio_dc_number": "%1 ", - "avatarbot_get_serve_number": "%1 ", - "avatarbot_get_pwm_port_number": "%1 ", - - "avatarbot_get_sensor_number": "%1 ", - "avatarbot_get_port_number": "%1 ", - "avatarbot_get_digital_toggle": "%1 ", - "avatarbot_get_pwm_port_number": "%1 ", - "avatarbot_get_number_sensor_value": "아날로그 %1 번 센서값 ", - - - "avatarbot_ext_get_analog_value": "아날로그 %1 번 센서값", - "avatarbot_ext_get_analog_value_map": "%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값", - "avatarbot_ext_get_ultrasonic_value": "울트라소닉 Trig %1 Echo %2 센서값", - "avatarbot_ext_toggle_led": "디지털 %1 번 핀 %2 %3", - "avatarbot_ext_digital_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", - "avatarbot_ext_set_tone": "디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5", - "avatarbot_ext_set_servo": "디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3", - "avatarbot_ext_get_digital": "디지털 %1 번 센서값", - "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", diff --git a/extern/lang/en.js b/extern/lang/en.js index 6fb422a644..c85835e06a 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -1125,8 +1125,6 @@ Lang.Blocks = { ardublock_motor_forward: 'Forward', ardublock_motor_backward: 'Backward', - avatarbot_DC_CW: 'Forward', - avatarbot_DC_CCW: 'Backward', ARDUINO_on: 'On', ARDUINO_off: 'Off', @@ -6565,25 +6563,6 @@ Lang.template = { albert_set_wheels_to: '%1 %2 %3', - avatarbot_text: '%1', - avatarbot_get_adc_dac_sonic_number: '%1 ', - avatarbot_get_gpio_dc_number: '%1 ', - avatarbot_get_serve_number: '%1 ', - avatarbot_get_pwm_port_number: '%1 ', - - avatarbot_get_sensor_number: '%1 ', - avatarbot_get_port_number: '%1 ', - avatarbot_get_digital_toggle: '%1 ', - avatarbot_get_pwm_port_number: '%1 ', - avatarbot_get_number_sensor_value: 'Analog %1 Sensor value ', - avatarbot_ext_get_analog_value: 'Analog %1 Sensor value', - avatarbot_ext_get_analog_value_map: 'Map Value %1 %2 ~ %3 to %4 ~ %5', - avatarbot_ext_get_ultrasonic_value: 'Read ultrasonic sensor trig pin %1 echo pin %2', - avatarbot_ext_toggle_led: 'Digital %1 Pin %2 %3', - avatarbot_ext_digital_pwm: 'Digital %1 Pin %2 %3', - avatarbot_ext_set_tone: 'Play tone pin %1 on note %2 octave %3 beat %4 %5', - avatarbot_ext_set_servo: 'Set servo pin %1 angle as %2 %3', - avatarbot_ext_get_digital: 'Digital %1 Sensor value', arduino_text: '%1', diff --git a/extern/lang/jp.js b/extern/lang/jp.js index 0980c5e606..5b575d41cb 100644 --- a/extern/lang/jp.js +++ b/extern/lang/jp.js @@ -672,9 +672,6 @@ Lang.Blocks = { "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", - "avatarbot_DC_CW": "Forward", - "avatarbot_DC_CCW": "Backward", - "ARDUINO_arduino_get_string_1": "string result of signal", "ARDUINO_arduino_get_string_2": "", "ARDUINO_arduino_send_1": "Send signal", @@ -5893,26 +5890,6 @@ Lang.template = { "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - "avatarbot_text": "%1", - "avatarbot_get_adc_dac_sonic_number": "%1 ", - "avatarbot_get_gpio_dc_number": "%1 ", - "avatarbot_get_serve_number": "%1 ", - "avatarbot_get_pwm_port_number": "%1 ", - - "avatarbot_get_sensor_number": "%1 ", - "avatarbot_get_port_number": "%1 ", - "avatarbot_get_digital_toggle": "%1 ", - "avatarbot_get_pwm_port_number": "%1 ", - "avatarbot_get_number_sensor_value": "Analog %1 Sensor value ", - - "avatarbot_ext_get_analog_value": "Analog %1 Sensor value", - "avatarbot_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", - "avatarbot_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", - "avatarbot_ext_toggle_led": "Digital %1 Pin %2 %3", - "avatarbot_ext_digital_pwm": "Digital %1 Pin %2 %3", - "avatarbot_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", - "avatarbot_ext_set_servo": "Set servo pin %1 angle as %2 %3", - "avatarbot_ext_get_digital": "Digital %1 Sensor value", "arduino_text": "%1", diff --git a/extern/lang/ko.js b/extern/lang/ko.js index 09289370ff..20b33d7f8e 100644 --- a/extern/lang/ko.js +++ b/extern/lang/ko.js @@ -690,8 +690,6 @@ Lang.Blocks = { dplay_analog_number_4: 'A4', dplay_analog_number_5: 'A5', - avatarbot_DC_CW: '정회전', - avatarbot_DC_CCW: '역회전', ARDUINO_arduino_get_string_1: '신호', ARDUINO_arduino_get_string_2: '의 글자 결과값', @@ -7061,26 +7059,8 @@ Lang.template = { albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', - avatarbot_text: '%1', - avatarbot_get_adc_dac_sonic_number: '%1 ', - avatarbot_get_gpio_dc_number: '%1 ', - avatarbot_get_serve_number: '%1 ', - avatarbot_get_pwm_port_number: '%1 ', - avatarbot_get_sensor_number: '%1 ', - avatarbot_get_port_number: '%1 ', - avatarbot_get_digital_toggle: '%1 ', - avatarbot_get_pwm_port_number: '%1 ', - avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', - avatarbot_ext_get_analog_value: '아날로그 %1 번 센서값', - avatarbot_ext_get_analog_value_map: '%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값', - avatarbot_ext_get_ultrasonic_value: '울트라소닉 Trig %1 Echo %2 센서값', - avatarbot_ext_toggle_led: '디지털 %1 번 핀 %2 %3', - avatarbot_ext_digital_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', - avatarbot_ext_set_tone: '디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5', - avatarbot_ext_set_servo: '디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3', - avatarbot_ext_get_digital: '디지털 %1 번 센서값', arduino_text: '%1', arduino_get_sensor_number: '%1 ', diff --git a/extern/lang/vn.js b/extern/lang/vn.js index 76a9dc9dee..dd38458e6a 100644 --- a/extern/lang/vn.js +++ b/extern/lang/vn.js @@ -670,8 +670,6 @@ Lang.Blocks = { "dplay_analog_number_3": "A3", "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", - "avatarbot_DC_CW": "정회전", - "avatarbot_DC_CCW": "역회전", "ARDUINO_arduino_get_string_1": "Chuỗi kết quả của tín hiệu", "ARDUINO_arduino_get_string_2": "", "ARDUINO_arduino_send_1": "Gửi tín hiệu", @@ -5890,26 +5888,6 @@ Lang.template = { "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - "avatarbot_text": "%1", - "avatarbot_get_adc_dac_sonic_number": "%1 ", - "avatarbot_get_gpio_dc_number": "%1 ", - "avatarbot_get_serve_number": "%1 ", - "avatarbot_get_pwm_port_number": "%1 ", - - "avatarbot_get_sensor_number": "%1 ", - "avatarbot_get_port_number": "%1 ", - "avatarbot_get_digital_toggle": "%1 ", - "avatarbot_get_pwm_port_number": "%1 ", - "avatarbot_get_number_sensor_value": "giá trị biến số Analog %1", - - "avatarbot_ext_get_analog_value": "giá trị biến số Analog %1", - "avatarbot_ext_get_analog_value_map": "Map Value %1 %2 ~ %3 to %4 ~ %5", - "avatarbot_ext_get_ultrasonic_value": "Read ultrasonic sensor trig pin %1 echo pin %2", - "avatarbot_ext_toggle_led": "kỹ thuật số %1 Pin %2 %3", - "avatarbot_ext_digital_pwm": "kỹ thuật số %1 Pin %2 %3", - "avatarbot_ext_set_tone": "Play tone pin %1 on note %2 octave %3 beat %4 %5", - "avatarbot_ext_set_servo": "Set servo pin %1 angle as %2 %3", - "avatarbot_ext_get_digital": "giá trị cảm biến kỹ thuật số %1", "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index 4f8527d5f1..c35dd9f669 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -24,6 +24,10 @@ Entry.avatarbot = { avatarBotDataSet : 210, setZero() { // 엔트리 정지시 하드웨어 초기화 로직 + this.dataTableReset(); + }, + + dataTableReset() { this.sendBuffer.fill(0); Entry.hw.sendQueue.CMD = this.sendBuffer; /* @@ -96,8 +100,7 @@ Entry.avatarbot = { */ // Entry.hw.update(); - }, - + }, BoardFunType : { Info: 0, Button:10, @@ -184,72 +187,72 @@ Entry.avatarbot = { Board_Servo : { Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_Servo_M0 : { En:0, Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_Servo_M1 : { En:0, Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_Servo_M2 : { En:0, Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_Servo_M3 : { En:0, Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_Servo_M4 : { En:0, Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_Servo_M5 : { En:0, Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_Servo_M6 : { En:0, Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_Servo_M7 : { En:0, Pulse_Min: 150, Pulse_Max: 600, - us_Min: 500, - us_Max: 2400 + us_Min: 400, + us_Max: 2100 }, Board_DC_M : { @@ -401,23 +404,50 @@ Entry.avatarbot.setLanguage = function() { return { ko: { template: { + // global. + avatarbot: 'avatarbot', + avatarbot_text: '%1', + avatarbot_get_adc_dac_sonic_number: '%1 ', + avatarbot_get_gpio_dc_number: '%1 ', + avatarbot_get_serve_number: '%1 ', + avatarbot_get_pwm_port_number: '%1 ', + avatarbot_get_buzzer_tone_number: '%1 ', + avatarbot_get_buzzer_time_number: '%1 ', + avatarbot_get_sensor_number: '%1 ', + avatarbot_get_port_number: '%1 ', + avatarbot_get_digital_toggle: '%1 ', + avatarbot_get_pwm_port_number: '%1 ', + avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', + avatarbot_ext_get_analog_value: '아날로그 %1 번 센서값', + avatarbot_ext_get_analog_value_map: '%1 의 범위를 %2 ~ %3 에서 %4 ~ %5 로 바꾼값', + avatarbot_ext_get_ultrasonic_value: '울트라소닉 Trig %1 Echo %2 센서값', + avatarbot_ext_toggle_led: '디지털 %1 번 핀 %2 %3', + avatarbot_ext_digital_pwm: '디지털 %1 번 핀을 %2 (으)로 정하기 %3', + avatarbot_ext_set_tone: '디지털 %1 번 핀의 버저를 %2 %3 음으로 %4 초 연주하기 %5', + avatarbot_ext_set_servo: '디지털 %1 번 핀의 서보모터를 %2 의 각도로 정하기 %3', + avatarbot_ext_get_digital: '디지털 %1 번 센서값', + avatarbot_DC_CW: '정회전', + avatarbot_DC_CCW: '역회전', + // // avatarbot_hw_test: 'AvatarBot HW Test %1 번 값 ', // avatarbot_get_button: '버튼 값 ', avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', // adc + avatarbot_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 ', avatarbot_get_digital_value: '디지털 %1 번 센서값 ', avatarbot_toggle_led: 'LED %1 번 핀 %2 %3', - avatarbot_toggle_pwm: 'PWM %1 번 핀을 %2 (으)로 정하기 %3', - avatarbot_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 ', + avatarbot_toggle_pwm: 'PWM %1 번 핀을 %2 % (으)로 정하기 ', // + // avatarbot_pca9568: '모터 컨트롤 주파수 %1 와 오실레이터 %2 (으)로 설정 ', + avatarbot_servo: '서보 모터 %1 을 시간(us) %2 ~ %3 (으)로 %4 ° 동작 ', + avatarbot_dc: 'DC 모터 %1 을 %2 방향으로 %3 % (으)로 동작 ', + avatarbot_buzzer_sample: '부저 샘플 (으)로 동작 ', + avatarbot_buzzer: '부저 %1 소리로 %2 초 동안 동작 ', + avatarbot_led_strip_sample: 'LED 스트립 (으)로 동작 ', + avatarbot_led_strip_set: 'LED 스트립 LED %1 개, 밝기 %2 동작 ', // avatarbot_ir_remote: '리모컨 %1 (으)로 동작 ', - avatarbot_buzzer: '부저 %1 (으)로 동작 ', - avatarbot_pca9568: '모터 컨트롤 주파수 %1 와 오실레이터 %2 (으)로 설정 ', - avatarbot_servo: '서보 모터 %1 을 시간(us) %2 ~ %3 (으)로 %4 동작 ', - avatarbot_dc: 'DC 모터 %1 을 %2 방향으로 %3 (으)로 동작 ', avatarbot_get_mpu6050: '자이로 가속도 센서 %1 값 ', - avatarbot_led_strip: 'LED 스트립 %1 동작 ', avatarbot_ultra_sonic:'초음파 %1 번 센서 값 ', // }, @@ -455,18 +485,25 @@ Entry.avatarbot.blockMenuBlocks = [ // base block 'avatarbot_get_button', 'avatarbot_get_number_sensor_value', + 'avatarbot_convert_scale', + // 'avatarbot_get_digital_value', 'avatarbot_toggle_led', 'avatarbot_toggle_pwm', - 'avatarbot_convert_scale', // - // 'avatarbot_ir_remote', - 'avatarbot_buzzer', - 'avatarbot_pca9568', + // 'avatarbot_pca9568', 'avatarbot_servo', 'avatarbot_dc', + // + 'avatarbot_buzzer_sample', + 'avatarbot_buzzer', + + 'avatarbot_led_strip_sample', + 'avatarbot_led_strip_set', + // 'avatarbot_led_strip', + + // 'avatarbot_ir_remote', 'avatarbot_get_mpu6050', - 'avatarbot_led_strip', 'avatarbot_ultra_sonic', ]; @@ -573,6 +610,301 @@ Entry.avatarbot.getBlocks = function() { }, }, */ + // + avatarbot_get_buzzer_tone_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + // Dropdown 생성 기준은 + // [["key1", "value1"], ["key2", "value2"]] + // 처럼 구성이 됩니다. + options: [ + ['B0', '0'], + ['C1', '1'], + ['CS1', '2'], + ['D1', '3'], + ['DS1', '4'], + ['E1', '5'], + ['F1', '6'], + ['FS1', '7'], + ['G1', '8'], + ['GS1', '9'], + ['A1', '10'], + ['AS1', '11'], + ['B1', '12'], + ['C2', '13'], + ['CS2', '14'], + ['D2', '15'], + ['DS2', '16'], + ['E2', '17'], + ['F2', '18'], + ['FS2', '19'], + ['G2', '20'], + ['GS2', '21'], + ['A2', '22'], + ['AS2', '23'], + ['B2', '24'], + ['C3', '25'], + ['CS3', '26'], + ['D3', '27'], + ['DS3', '28'], + ['E3', '29'], + ['F3', '30'], + ['FS3', '31'], + ['G3', '32'], + ['GS3', '33'], + ['A3', '34'], + ['AS3', '35'], + ['B3', '36'], + ['C4', '37'], + ['CS4', '38'], + ['D4', '39'], + ['DS4', '40'], + ['E4', '41'], + ['F4', '42'], + ['FS4', '43'], + ['G4', '44'], + ['GS4', '45'], + ['A4', '46'], + ['AS4', '47'], + ['B4', '48'], + ['C5', '49'], + ['CS5', '50'], + ['D5', '51'], + ['DS5', '52'], + ['E5', '53'], + ['F5', '54'], + ['FS5', '55'], + ['G5', '56'], + ['GS5', '57'], + ['A5', '58'], + ['AS5', '59'], + ['B5', '60'], + ['C6', '61'], + ['CS6', '62'], + ['D6', '63'], + ['DS6', '64'], + ['E6', '65'], + ['F6', '66'], + ['FS6', '67'], + ['G6', '68'], + ['GS6', '69'], + ['A6', '70'], + ['AS6', '71'], + ['B6', '72'], + ['C7', '73'], + ['CS7', '74'], + ['D7', '75'], + ['DS7', '76'], + ['E7', '77'], + ['F7', '78'], + ['FS7', '79'], + ['G7', '80'], + ['GS7', '81'], + ['A7', '82'], + ['AS7', '83'], + ['B7', '84'], + ['C8', '85'], + ['CS8', '86'], + ['D8', '87'], + ['DS8', '88'] + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, // 기본 컬러는 EntryStatic.ARROW_COLOR_VARIABLE 입니다. + }, + ], + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + TONE: 0, + }, + func(sprite, script) { + return script.getStringField('TONE'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['B0', '0'], + ['C1', '1'], + ['CS1', '2'], + ['D1', '3'], + ['DS1', '4'], + ['E1', '5'], + ['F1', '6'], + ['FS1', '7'], + ['G1', '8'], + ['GS1', '9'], + ['A1', '10'], + ['AS1', '11'], + ['B1', '12'], + ['C2', '13'], + ['CS2', '14'], + ['D2', '15'], + ['DS2', '16'], + ['E2', '17'], + ['F2', '18'], + ['FS2', '19'], + ['G2', '20'], + ['GS2', '21'], + ['A2', '22'], + ['AS2', '23'], + ['B2', '24'], + ['C3', '25'], + ['CS3', '26'], + ['D3', '27'], + ['DS3', '28'], + ['E3', '29'], + ['F3', '30'], + ['FS3', '31'], + ['G3', '32'], + ['GS3', '33'], + ['A3', '34'], + ['AS3', '35'], + ['B3', '36'], + ['C4', '37'], + ['CS4', '38'], + ['D4', '39'], + ['DS4', '40'], + ['E4', '41'], + ['F4', '42'], + ['FS4', '43'], + ['G4', '44'], + ['GS4', '45'], + ['A4', '46'], + ['AS4', '47'], + ['B4', '48'], + ['C5', '49'], + ['CS5', '50'], + ['D5', '51'], + ['DS5', '52'], + ['E5', '53'], + ['F5', '54'], + ['FS5', '55'], + ['G5', '56'], + ['GS5', '57'], + ['A5', '58'], + ['AS5', '59'], + ['B5', '60'], + ['C6', '61'], + ['CS6', '62'], + ['D6', '63'], + ['DS6', '64'], + ['E6', '65'], + ['F6', '66'], + ['FS6', '67'], + ['G6', '68'], + ['GS6', '69'], + ['A6', '70'], + ['AS6', '71'], + ['B6', '72'], + ['C7', '73'], + ['CS7', '74'], + ['D7', '75'], + ['DS7', '76'], + ['E7', '77'], + ['F7', '78'], + ['FS7', '79'], + ['G7', '80'], + ['GS7', '81'], + ['A7', '82'], + ['AS7', '83'], + ['B7', '84'], + ['C8', '85'], + ['CS8', '86'], + ['D8', '87'], + ['DS8', '88'] + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'avatarbot_get_buzzer_tone_number', + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_get_buzzer_time_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['0', '0'], + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ['7', '7'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + TIME: 0, + }, + func(sprite, script) { + return script.getStringField('TIME'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0', '0'], + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ['7', '7'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + keyOption: 'avatarbot_get_buzzer_time_number', + }, + ], + }, + }, //--------------------------------------------------------------- // get port(module, function) number // - gpio(4), pwm(3), adc(2), dac(2), servo_m(8), dc_m(4), ulrasonic(2) @@ -628,6 +960,84 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + // + // + avatarbot_get_led_strip_type: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + // Dropdown 생성 기준은 + // [["key1", "value1"], ["key2", "value2"]] + // 처럼 구성이 됩니다. + options: [ + ['LPD6803', '0'], + ['LPD8806', '1'], + ['WS2801', '2'], + ['WS2803', '3'], + ['SM16716', '4'], + ['P9813', '5'], + ['APA102', '6'], + ['SK9822', '7'], + ['SK9822HD', '8'], + ['DOTSTAR', '9'], + ['DOTSTARHD', '10'], + ['APA102HD', '11'] + ], + value: '2', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, // 기본 컬러는 EntryStatic.ARROW_COLOR_VARIABLE 입니다. + }, + ], + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + TYPE: 0, + }, + func(sprite, script) { + return script.getStringField('TYPE'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['LPD6803', '0'], + ['LPD8806', '1'], + ['WS2801', '2'], + ['WS2803', '3'], + ['SM16716', '4'], + ['P9813', '5'], + ['APA102', '6'], + ['SK9822', '7'], + ['SK9822HD', '8'], + ['DOTSTAR', '9'], + ['DOTSTARHD', '10'], + ['APA102HD', '11'] + ], + value: '2', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'avatarbot_get_led_strip_type', + }, + ], + }, + }, //--------------------------------------------------------------- avatarbot_get_gpio_dc_number: { color: EntryStatic.colorSet.block.default.HARDWARE, @@ -700,8 +1110,6 @@ Entry.avatarbot.getBlocks = function() { ['3', '3'], ['4', '4'], ['5', '5'], - ['6', '6'], - ['7', '7'], ], value: '0', fontSize: 11, @@ -734,8 +1142,6 @@ Entry.avatarbot.getBlocks = function() { ['3', '3'], ['4', '4'], ['5', '5'], - ['6', '6'], - ['7', '7'], ], value: '0', fontSize: 11, @@ -886,9 +1292,12 @@ Entry.avatarbot.getBlocks = function() { paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 // VALUE: 0, }, - class: 'avatarbot_value', + class: 'avatarbot_button', isNotFor: ['avatarbot'], func(sprite, script) { // 블록 기능정의 + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } let sensorData = Entry.hw.portData.CMD[Entry.avatarbot.BoardFunType.Button+1] == 0 ? 0 : 1; Entry.hw.sendQueue.CMD[Entry.avatarbot.BoardFunType.Button+1] = 0; Entry.hw.update(); @@ -934,14 +1343,12 @@ Entry.avatarbot.getBlocks = function() { paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 VALUE: 0, }, - class: 'avatarbot_value', + class: 'avatarbot_adc', isNotFor: ['avatarbot'], func(sprite, script) { // 블록 기능정의 - // 해당 값을 getField, getValue로 가져오고 - // 가져 올때 paramsKeyMap에서 - // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. - // const signal = script.getValue('VALUE', script); - // return Entry.hw.getAnalogPortValue(signal[1]); + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } const signal = script.getNumberValue('VALUE', script); let index = (signal*2) + Entry.avatarbot.BoardFunType.ADC; let sensorData_low = Entry.hw.portData.CMD[index + 6]; // low @@ -970,11 +1377,11 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- - avatarbot_get_digital_value: { + avatarbot_convert_scale: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, fontColor: '#fff', - skeleton: 'basic_boolean_field', + skeleton: 'basic_string_field', statements: [], params: [ { @@ -982,38 +1389,190 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, ], events: {}, def: { params: [ { - type: 'avatarbot_get_port_number', + type: 'avatarbot_get_number_sensor_value', + params: [ + { + type: 'avatarbot_get_port_number', + id: 'bl5e', + }, + ], + }, + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['4095'], + }, + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['100'], }, ], - type: 'avatarbot_get_digital_value', + type: 'avatarbot_convert_scale', }, paramsKeyMap: { - PORT: 0, + VALUE1: 0, + VALUE2: 1, + VALUE3: 2, + VALUE4: 3, + VALUE5: 4, }, - class: 'avatarbot_value', + class: 'avatarbot_adc', isNotFor: ['avatarbot'], func(sprite, script) { - const signal = script.getNumberValue('PORT', script); - // return Entry.hw.getDigitalPortValue(signal); - let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; - let sensorData = Entry.hw.portData.CMD[index+3] == 0 ? 0 : 1; // ch0, ch1 value - - // digital setting - Entry.hw.sendQueue.CMD[index] = 1; // ch en - Entry.hw.sendQueue.CMD[index+1] = 0; // duty - Entry.hw.sendQueue.CMD[index+2] = 0; // type in(0) - Entry.hw.update(); - - return sensorData; - }, - syntax: { - js: [], - py: [ + const value1 = script.getNumberValue('VALUE1', script); + let value2 = script.getNumberValue('VALUE2', script); + let value3 = script.getNumberValue('VALUE3', script); + let value4 = script.getNumberValue('VALUE4', script); + let value5 = script.getNumberValue('VALUE5', script); + + const stringValue4 = script.getValue('VALUE4', script); + const stringValue5 = script.getValue('VALUE5', script); + let isFloat = false; + + if ( + (Entry.Utils.isNumber(stringValue4) && stringValue4.indexOf('.') > -1) || + (Entry.Utils.isNumber(stringValue5) && stringValue5.indexOf('.') > -1) + ) { + isFloat = true; + } + + let result = value1; + if (value2 > value3) { + var swap = value2; + value2 = value3; + value3 = swap; + } + if (value4 > value5) { + var swap = value4; + value4 = value5; + value5 = swap; + } + result -= value2; + result = result * ((value5 - value4) / (value3 - value2)); + result += value4; + result = Math.min(value5, result); + result = Math.max(value4, result); + + if (isFloat) { + result = Math.round(result * 100) / 100; + } else { + result = Math.round(result); + } + + return result; + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.convert_scale(%1, %2, %3, %4, %5)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_get_digital_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', //'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_get_port_number', + }, + ], + type: 'avatarbot_get_digital_value', + }, + paramsKeyMap: { + PORT: 0, + }, + class: 'avatarbot_gpio_pwm', + isNotFor: ['avatarbot'], + func(sprite, script) { + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } + const signal = script.getNumberValue('PORT', script); + // return Entry.hw.getDigitalPortValue(signal); + let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; + let sensorData = Entry.hw.portData.CMD[index+3] == 0 ? 0 : 1; // ch0, ch1 value + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = 0; // duty + Entry.hw.sendQueue.CMD[index+2] = 0; // type in(0) + Entry.hw.update(); + + return sensorData; + }, + syntax: { + js: [], + py: [ { syntax: 'avatarbot.digitalRead(%1)', blockType: 'param', @@ -1072,10 +1631,14 @@ Entry.avatarbot.getBlocks = function() { VALUE: 0, OPERATOR: 1, }, - class: 'avatarbot_set', + class: 'avatarbot_gpio_pwm', isNotFor: ['avatarbot'], func(sprite, script) { // + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } + const signal = script.getNumberValue('VALUE', script); const operator = script.getField('OPERATOR'); const value = operator == 'on' ? 255 : 0; @@ -1135,11 +1698,6 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, ], events: {}, def: { @@ -1149,9 +1707,8 @@ Entry.avatarbot.getBlocks = function() { }, { type: 'avatarbot_text', - params: ['255'], + params: ['50'], }, - null, ], type: 'avatarbot_toggle_pwm', }, @@ -1159,14 +1716,18 @@ Entry.avatarbot.getBlocks = function() { PORT: 0, VALUE: 1, }, - class: 'avatarbot_set', + class: 'avatarbot_gpio_pwm', isNotFor: ['avatarbot'], func(sprite, script) { + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } + const signal = script.getNumberValue('PORT'); let value = script.getNumberValue('VALUE'); value = Math.round(value); value = Math.max(value, 0); - value = Math.min(value, 255); + value = Math.min(value, 100); let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; @@ -1197,12 +1758,13 @@ Entry.avatarbot.getBlocks = function() { ], }, }, + //--------------------------------------------------------------- - avatarbot_convert_scale: { + /* + avatarbot_pca9568: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', + skeleton: 'basic', statements: [], params: [ { @@ -1210,6 +1772,86 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_text', + params: ['50'], + }, + { + type: 'avatarbot_text', + params: ['27000000'], + }, + null, + ], + type: 'avatarbot_pca9568', + }, + paramsKeyMap: { + FREQ: 0, + OSC: 1, + }, + class: 'avatarbot_set', + isNotFor: ['avatarbot'], + func(sprite, script) { + const freq = script.getNumberValue('FREQ'); + const osci = script.getNumberValue('OSC'); + + let index = Entry.avatarbot.BoardFunType.PCA9568; + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // PCA9568 en + Entry.hw.sendQueue.CMD[index+1] = (freq)&0xff; // PCA9568 freq0 + Entry.hw.sendQueue.CMD[index+2] = (freq>>8)&0xff; // PCA9568 freq1 + Entry.hw.sendQueue.CMD[index+3] = (freq>>16)&0xff; // PCA9568 freq2 + Entry.hw.sendQueue.CMD[index+4] = (freq>>24)&0xff; // PCA9568 freq3 + Entry.hw.sendQueue.CMD[index+5] = (osci)&0xff; // PCA9568 osci0 + Entry.hw.sendQueue.CMD[index+6] = (osci>>8)&0xff; // PCA9568 osci1 + Entry.hw.sendQueue.CMD[index+7] = (osci>>16)&0xff; // PCA9568 osci2 + Entry.hw.sendQueue.CMD[index+8] = (osci>>24)&0xff; // PCA9568 osci3 + Entry.hw.update(); + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.set_pca9568(%1 %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + */ + //--------------------------------------------------------------- + avatarbot_servo: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ { type: 'Block', accept: 'string', @@ -1235,90 +1877,75 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_number_sensor_value', - params: [ - { - type: 'avatarbot_get_port_number', - id: 'bl5e', - }, - ], + type: 'avatarbot_get_serve_number', }, { type: 'number', - params: ['0'], + params: ['400'], }, { type: 'number', - params: ['4095'], + params: ['2100'], }, { type: 'number', params: ['0'], }, - { - type: 'number', - params: ['100'], - }, ], - type: 'avatarbot_convert_scale', + type: 'avatarbot_servo', }, paramsKeyMap: { VALUE1: 0, VALUE2: 1, VALUE3: 2, VALUE4: 3, - VALUE5: 4, }, class: 'avatarbot', isNotFor: ['avatarbot'], func(sprite, script) { - const value1 = script.getNumberValue('VALUE1', script); - let value2 = script.getNumberValue('VALUE2', script); - let value3 = script.getNumberValue('VALUE3', script); - let value4 = script.getNumberValue('VALUE4', script); - let value5 = script.getNumberValue('VALUE5', script); - - const stringValue4 = script.getValue('VALUE4', script); - const stringValue5 = script.getValue('VALUE5', script); - let isFloat = false; - - if ( - (Entry.Utils.isNumber(stringValue4) && stringValue4.indexOf('.') > -1) || - (Entry.Utils.isNumber(stringValue5) && stringValue5.indexOf('.') > -1) - ) { - isFloat = true; + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); } - - let result = value1; - if (value2 > value3) { - var swap = value2; - value2 = value3; - value3 = swap; - } - if (value4 > value5) { - var swap = value4; - value4 = value5; - value5 = swap; - } - result -= value2; - result = result * ((value5 - value4) / (value3 - value2)); - result += value4; - result = Math.min(value5, result); - result = Math.max(value4, result); - - if (isFloat) { - result = Math.round(result * 100) / 100; - } else { - result = Math.round(result); - } - - return result; + + const signal = script.getNumberValue('VALUE1', script); + let us_min = script.getNumberValue('VALUE2', script); + let us_max = script.getNumberValue('VALUE3', script); + let value = script.getNumberValue('VALUE4', script); + us_min = Math.round(us_min); + us_max = Math.round(us_max); + value = Math.round(value); + + us_min = Math.max(us_min, 200); //150 최소 값. + us_max = Math.max(us_max, 700); // 600 최소 값. + + us_min = Math.min(us_min, us_max); // us_min < us_max :: check. + us_max = Math.max(us_min, us_max); + + value = Math.max(value, 0); //150 + value = Math.min(value, 180); // 600 + + let index = (signal*10) + Entry.avatarbot.BoardFunType.Servo_M0; // base+10,20,30,...n + + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // ch en + // Entry.hw.sendQueue.CMD[index+1] = 0; // pulse min low + // Entry.hw.sendQueue.CMD[index+2] = 0; // pulse min high + // Entry.hw.sendQueue.CMD[index+3] = 0; // pulse max low + // Entry.hw.sendQueue.CMD[index+4] = 0; // pulse max high + Entry.hw.sendQueue.CMD[index+5] = (us_min)&0xff; // us min low + Entry.hw.sendQueue.CMD[index+6] = (us_min>>8)&0xff; // us min high + Entry.hw.sendQueue.CMD[index+7] = (us_max)&0xff; // us max low + Entry.hw.sendQueue.CMD[index+8] = (us_max>>8)&0xff; // us max high + Entry.hw.sendQueue.CMD[index+9] = (value)&0xff; // angle value. 0 ~ 180 + Entry.hw.update(); + + return script.callReturn(); }, syntax: { js: [], py: [ { - syntax: 'avatarbot.convert_scale(%1, %2, %3, %4, %5)', + syntax: 'avatarbot.servo(%1, %2, %3, %4)', blockType: 'param', textParams: [ { @@ -1337,20 +1964,16 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, - { - type: 'Block', - accept: 'string', - }, ], }, ], }, }, - //--------------------------------------------------------------- - //--------------------------------------------------------------- - avatarbot_buzzer: { + //--------------------------------------------------------------- + avatarbot_dc: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', skeleton: 'basic', statements: [], params: [ @@ -1359,50 +1982,64 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_DC_CW, '0'], + [Lang.template.avatarbot_DC_CCW, '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, { type: 'Block', accept: 'string', defaultType: 'number', }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, ], events: {}, def: { params: [ - /* { - type: 'avatarbot_get_port_number', + type: 'avatarbot_get_gpio_dc_number', }, - */ + null, { - type: 'avatarbot_text', - params: ['10'], + type: 'number', + params: ['0'], }, - null, ], - type: 'avatarbot_buzzer', + type: 'avatarbot_dc', }, paramsKeyMap: { - // PORT: 0, - VALUE: 0, + VALUE1: 0, + VALUE2: 1, + VALUE3: 2, }, - class: 'avatarbot_set', + class: 'avatarbot', isNotFor: ['avatarbot'], func(sprite, script) { - let value = script.getNumberValue('VALUE'); - value = Math.round(value); - value = Math.max(value, 0); - value = Math.min(value, 10); + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } - let index = Entry.avatarbot.BoardFunType.Buzzer; + // const dc_m = script.getNumberValue('VALUE1', script); // Channel + // let cw = script.getNumberValue('VALUE2', script); // cw, ccw + // let speed = script.getNumberValue('VALUE3', script); // duty speed + // const cw_value = cw == '정회전' ? 1 : 0; + const signal = script.getNumberValue('VALUE1', script); + let cw = script.getNumberValue('VALUE2', script); + let speed = script.getNumberValue('VALUE3', script); - // digital setting - Entry.hw.sendQueue.CMD[index] = 1; // buzzer en - Entry.hw.sendQueue.CMD[index+1] = value; // buzzer sample + speed = Math.round(speed); + speed = Math.max(speed, 0); + speed = Math.min(speed, 100); + + let index = (signal*2) + Entry.avatarbot.BoardFunType.DC_M; // base+2,4,6,8 + Entry.hw.sendQueue.CMD[index] = (1 + (cw<<4))&0xff; // ch en + Entry.hw.sendQueue.CMD[index+1] = speed&0xff; Entry.hw.update(); return script.callReturn(); @@ -1411,12 +2048,25 @@ Entry.avatarbot.getBlocks = function() { js: [], py: [ { - syntax: 'avatarbot.set_buzzer(%1)', + syntax: 'avatarbot.dc(%1, %2, %3)', + blockType: 'param', textParams: [ { type: 'Block', accept: 'string', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_DC_CW, '0'], + [Lang.template.avatarbot_DC_CCW, '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, { type: 'Block', accept: 'string', @@ -1427,9 +2077,53 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- - avatarbot_pca9568: { + avatarbot_buzzer_sample: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + ], + events: {}, + def: { + params: [ + ], + type: 'avatarbot_buzzer_sample', + }, + paramsKeyMap: { + // PORT: 0, + // VALUE: 0, + }, + class: 'avatarbot_buzzer', + isNotFor: ['avatarbot'], + func(sprite, script) { + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } + + let index = Entry.avatarbot.BoardFunType.Buzzer; + // digital setting + Entry.hw.sendQueue.CMD[index] = 1; // buzzer en + Entry.hw.sendQueue.CMD[index+1] = 1; // buzzer sample + Entry.hw.update(); + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.buzzer_sample()', + textParams: [ + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_buzzer: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + // skeleton: 'basic', skeleton: 'basic', statements: [], params: [ @@ -1443,58 +2137,55 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, ], events: {}, def: { params: [ { - type: 'avatarbot_text', - params: ['50'], + type: 'avatarbot_get_buzzer_tone_number', }, { - type: 'avatarbot_text', - params: ['27000000'], + type: 'avatarbot_get_buzzer_time_number', // 0 ~ 4s }, - null, ], - type: 'avatarbot_pca9568', + type: 'avatarbot_buzzer', }, paramsKeyMap: { - FREQ: 0, - OSC: 1, + VALUE1: 0, + VALUE2: 0, }, - class: 'avatarbot_set', + class: 'avatarbot_buzzer', isNotFor: ['avatarbot'], func(sprite, script) { - const freq = script.getNumberValue('FREQ'); - const osci = script.getNumberValue('OSC'); + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } - let index = Entry.avatarbot.BoardFunType.PCA9568; + const tone = script.getNumberValue('VALUE1'); + const time = script.getNumberValue('VALUE2'); + let index = Entry.avatarbot.BoardFunType.Buzzer; // digital setting - Entry.hw.sendQueue.CMD[index] = 1; // PCA9568 en - Entry.hw.sendQueue.CMD[index+1] = (freq)&0xff; // PCA9568 freq0 - Entry.hw.sendQueue.CMD[index+2] = (freq>>8)&0xff; // PCA9568 freq1 - Entry.hw.sendQueue.CMD[index+3] = (freq>>16)&0xff; // PCA9568 freq2 - Entry.hw.sendQueue.CMD[index+4] = (freq>>24)&0xff; // PCA9568 freq3 - Entry.hw.sendQueue.CMD[index+5] = (osci)&0xff; // PCA9568 osci0 - Entry.hw.sendQueue.CMD[index+6] = (osci>>8)&0xff; // PCA9568 osci1 - Entry.hw.sendQueue.CMD[index+7] = (osci>>16)&0xff; // PCA9568 osci2 - Entry.hw.sendQueue.CMD[index+8] = (osci>>24)&0xff; // PCA9568 osci3 + Entry.hw.sendQueue.CMD[index] = 1; // buzzer en + Entry.hw.sendQueue.CMD[index+1] = 0; // buzzer sample + Entry.hw.sendQueue.CMD[index+2] = tone; // tone0 + // Entry.hw.sendQueue.CMD[index+3] = 0; // tone1 + // Entry.hw.sendQueue.CMD[index+4] = 0; // tone2 + // Entry.hw.sendQueue.CMD[index+5] = 0; // tone3 + Entry.hw.sendQueue.CMD[index+6] = time; // time0 + // Entry.hw.sendQueue.CMD[index+7] = 0; // time1 + // Entry.hw.sendQueue.CMD[index+8] = 0; // time2 + // Entry.hw.sendQueue.CMD[index+9] = 0; // time3 Entry.hw.update(); return script.callReturn(); + // return tone; }, syntax: { js: [], py: [ { - syntax: 'avatarbot.set_pca9568(%1 %2)', + syntax: 'avatarbot.set_buzzer(%1 %2)', textParams: [ { type: 'Block', @@ -1510,11 +2201,11 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- - avatarbot_servo: { + /* + avatarbot_led_strip: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', + skeleton: 'basic', statements: [], params: [ { @@ -1523,81 +2214,37 @@ Entry.avatarbot.getBlocks = function() { defaultType: 'number', }, { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, }, ], events: {}, def: { params: [ { - type: 'avatarbot_get_serve_number', - }, - { - type: 'number', - params: ['500'], - }, - { - type: 'number', - params: ['2400'], - }, - { - type: 'number', + type: 'avatarbot_text', params: ['0'], }, + null, ], - type: 'avatarbot_servo', + type: 'avatarbot_led_strip', }, paramsKeyMap: { - VALUE1: 0, - VALUE2: 1, - VALUE3: 2, - VALUE4: 3, + VALUE: 0, }, - class: 'avatarbot', + class: 'avatarbot_led', isNotFor: ['avatarbot'], func(sprite, script) { - const signal = script.getNumberValue('VALUE1', script); - let us_min = script.getNumberValue('VALUE2', script); - let us_max = script.getNumberValue('VALUE3', script); - let value = script.getNumberValue('VALUE4', script); - us_min = Math.round(us_min); - us_max = Math.round(us_max); + let value = script.getNumberValue('VALUE'); value = Math.round(value); + value = Math.max(value, 0); + value = Math.min(value, 10); + // Entry.hw.setDigitalPortValue(port, value); - us_min = Math.max(us_min, 200); //150 - us_max = Math.min(us_max, 700); // 600 - - us_min = Math.min(us_min, us_max); // us_min < us_max :: check. - us_max = Math.max(us_min, us_max); - - value = Math.max(value, 0); //150 - value = Math.min(value, 180); // 600 - - let index = (signal*10) + Entry.avatarbot.BoardFunType.Servo_M0; // base+10,20,30,...n - - // digital setting + let index = Entry.avatarbot.BoardFunType.LED_Strip; Entry.hw.sendQueue.CMD[index] = 1; // ch en - // Entry.hw.sendQueue.CMD[index+1] = 0; // pulse min low - // Entry.hw.sendQueue.CMD[index+2] = 0; // pulse min high - // Entry.hw.sendQueue.CMD[index+3] = 0; // pulse max low - // Entry.hw.sendQueue.CMD[index+4] = 0; // pulse max high - Entry.hw.sendQueue.CMD[index+5] = (us_min)&0xff; // us min low - Entry.hw.sendQueue.CMD[index+6] = (us_min>>8)&0xff; // us min high - Entry.hw.sendQueue.CMD[index+7] = (us_max)&0xff; // us max low - Entry.hw.sendQueue.CMD[index+8] = (us_max>>8)&0xff; // us max high - Entry.hw.sendQueue.CMD[index+9] = (value)&0xff; // angle value. 0 ~ 180 + Entry.hw.sendQueue.CMD[index+1] = value; // sample 0, 1~other... Entry.hw.update(); return script.callReturn(); @@ -1606,36 +2253,64 @@ Entry.avatarbot.getBlocks = function() { js: [], py: [ { - syntax: 'avatarbot.servo(%1, %2, %3, %4)', - blockType: 'param', + syntax: 'avatarbot.set_led_strip(%1)', textParams: [ { type: 'Block', accept: 'string', }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, ], }, ], }, }, - //--------------------------------------------------------------- - avatarbot_dc: { + */ + //--------------------------------------------------------------- + avatarbot_led_strip_sample: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', + skeleton: 'basic', + statements: [], + params: [ + ], + events: {}, + def: { + params: [ + ], + type: 'avatarbot_led_strip_sample', + }, + paramsKeyMap: { + }, + class: 'avatarbot_led', + isNotFor: ['avatarbot'], + func(sprite, script) { + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } + + let index = Entry.avatarbot.BoardFunType.LED_Strip; + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = 1; // sample 0, 1~other... + Entry.hw.update(); + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.set_led_strip_sample()', + textParams: [ + ], + }, + ], + }, + }, + //--------------------------------------------------------------- + avatarbot_led_strip_set: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', statements: [], params: [ { @@ -1643,17 +2318,6 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, - { - type: 'Dropdown', - options: [ - [Lang.Blocks.avatarbot_DC_CW, '0'], - [Lang.Blocks.avatarbot_DC_CCW, '1'], - ], - value: '0', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, { type: 'Block', accept: 'string', @@ -1664,39 +2328,43 @@ Entry.avatarbot.getBlocks = function() { def: { params: [ { - type: 'avatarbot_get_gpio_dc_number', + type: 'avatarbot_text', + params: ['51'], }, - null, { - type: 'number', - params: ['0'], + type: 'avatarbot_text', + params: ['64'], }, ], - type: 'avatarbot_dc', + type: 'avatarbot_led_strip_set', }, paramsKeyMap: { VALUE1: 0, - VALUE2: 1, - VALUE3: 2, + VALUE2: 0, }, - class: 'avatarbot', + class: 'avatarbot_led', isNotFor: ['avatarbot'], func(sprite, script) { - // const dc_m = script.getNumberValue('VALUE1', script); // Channel - // let cw = script.getNumberValue('VALUE2', script); // cw, ccw - // let speed = script.getNumberValue('VALUE3', script); // duty speed - // const cw_value = cw == '정회전' ? 1 : 0; - const signal = script.getNumberValue('VALUE1', script); - let cw = script.getNumberValue('VALUE2', script); - let speed = script.getNumberValue('VALUE3', script); + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } - speed = Math.round(speed); - speed = Math.max(speed, 0); - speed = Math.min(speed, 255); + let value = script.getNumberValue('VALUE1'); // led number + let brightness = script.getNumberValue('VALUE2'); // brighteness + value = Math.round(value); + value = Math.max(value, 1); + value = Math.min(value, 100); + // + brightness = Math.round(brightness); + brightness = Math.max(brightness, 0); + brightness = Math.min(brightness, 100); + // Entry.hw.setDigitalPortValue(port, value); - let index = (signal*2) + Entry.avatarbot.BoardFunType.DC_M; // base+2,4,6,8 - Entry.hw.sendQueue.CMD[index] = (1 + (cw<<4))&0xff; // ch en - Entry.hw.sendQueue.CMD[index+1] = speed&0xff; + let index = Entry.avatarbot.BoardFunType.LED_Strip; + Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = 1; // sample 0, 1~other... + Entry.hw.sendQueue.CMD[index+2] = value; + Entry.hw.sendQueue.CMD[index+7] = brightness; Entry.hw.update(); return script.callReturn(); @@ -1705,29 +2373,12 @@ Entry.avatarbot.getBlocks = function() { js: [], py: [ { - syntax: 'avatarbot.dc(%1, %2, %3)', - blockType: 'param', + syntax: 'avatarbot.set_led_strip_set(%1 %2)', textParams: [ { type: 'Block', accept: 'string', }, - { - type: 'Dropdown', - options: [ - [Lang.Blocks.avatarbot_DC_CW, '0'], - [Lang.Blocks.avatarbot_DC_CCW, '1'], - ], - value: '0', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - converter: Entry.block.converters.returnStringValue, - }, - { - type: 'Block', - accept: 'string', - }, ], }, ], @@ -1766,9 +2417,13 @@ Entry.avatarbot.getBlocks = function() { paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 VALUE: 0, }, - class: 'avatarbot_value', + class: 'avatarbot_mpu', isNotFor: ['avatarbot'], func(sprite, script) { // 블록 기능정의 + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } + // 해당 값을 getField, getValue로 가져오고 // 가져 올때 paramsKeyMap에서 // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. @@ -1818,69 +2473,6 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- - avatarbot_led_strip: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - statements: [], - params: [ - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - events: {}, - def: { - params: [ - { - type: 'avatarbot_text', - params: ['0'], - }, - null, - ], - type: 'avatarbot_led_strip', - }, - paramsKeyMap: { - VALUE: 0, - }, - class: 'avatarbot_set', - isNotFor: ['avatarbot'], - func(sprite, script) { - let value = script.getNumberValue('VALUE'); - value = Math.round(value); - value = Math.max(value, 0); - value = Math.min(value, 10); - // Entry.hw.setDigitalPortValue(port, value); - - let index = Entry.avatarbot.BoardFunType.LED_Strip; - Entry.hw.sendQueue.CMD[index] = 1; // ch en - Entry.hw.sendQueue.CMD[index+1] = value; // sample 0, 1~other... - Entry.hw.update(); - - return script.callReturn(); - }, - syntax: { - js: [], - py: [ - { - syntax: 'avatarbot.set_led_strip(%1)', - textParams: [ - { - type: 'Block', - accept: 'string', - }, - ], - }, - ], - }, - }, - //--------------------------------------------------------------- avatarbot_ultra_sonic: { color: EntryStatic.colorSet.block.default.HARDWARE, //블록 색상 outerLine: EntryStatic.colorSet.block.darken.HARDWARE, //경계선 색상 @@ -1908,9 +2500,12 @@ Entry.avatarbot.getBlocks = function() { paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 VALUE: 0, }, - class: 'avatarbot_value', + class: 'avatarbot_sonic', isNotFor: ['avatarbot'], func(sprite, script) { // 블록 기능정의 + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } // 해당 값을 getField, getValue로 가져오고 // 가져 올때 paramsKeyMap에서 // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..60aad834ff --- /dev/null +++ b/yarn.lock @@ -0,0 +1,10920 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" + integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== + +"@babel/core@^7.1.0", "@babel/core@^7.22.1": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" + integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helpers" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/eslint-parser@^7.11.0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.24.7.tgz#27ebab1a1ec21f48ae191a8aaac5b82baf80d9c7" + integrity sha512-SO5E3bVxDuxyNxM5agFv480YA2HO6ohZbGxbazZdIk3KQOPOGVNw6q78I9/lbviIf95eq6tPozeYnJLbjnC8IA== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" + +"@babel/eslint-plugin@^7.11.0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.24.7.tgz#ebdab31638cdcc720f0c788813066e9b5c0b3e29" + integrity sha512-lODNPJnM+OfcxxBvdmI2YmUeC0fBK3k9yET5O+1Eukr8d5VpO19c6ARtNheE2t2i/8XNYTzp3HeGEAAGZH3nnQ== + dependencies: + eslint-rule-composer "^0.3.0" + +"@babel/generator@^7.24.7", "@babel/generator@^7.4.0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" + integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== + dependencies: + "@babel/types" "^7.24.7" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" + integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9" + integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== + dependencies: + "@babel/compat-data" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz#2eaed36b3a1c11c53bdf80d53838b293c52f5b3b" + integrity sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz#be4f435a80dc2b053c76eeb4b7d16dd22cfc89da" + integrity sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-environment-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" + integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" + integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-hoist-variables@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" + integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-member-expression-to-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz#67613d068615a70e4ed5101099affc7a41c5225f" + integrity sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8" + integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0" + integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== + +"@babel/helper-remap-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz#b3f0f203628522713849d49403f1a414468be4c7" + integrity sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-wrap-function" "^7.24.7" + +"@babel/helper-replace-supers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz#f933b7eed81a1c0265740edc91491ce51250f765" + integrity sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-optimise-call-expression" "^7.24.7" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-split-export-declaration@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" + integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6" + integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== + +"@babel/helper-wrap-function@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz#52d893af7e42edca7c6d2c6764549826336aae1f" + integrity sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw== + dependencies: + "@babel/helper-function-name" "^7.24.7" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helpers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416" + integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.7", "@babel/parser@^7.4.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" + integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz#fd059fd27b184ea2b4c7e646868a9a381bbc3055" + integrity sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz#468096ca44bbcbe8fcc570574e12eb1950e18107" + integrity sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" + integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz#71b21bb0286d5810e63a1538aa901c58e87375ec" + integrity sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-proposal-class-properties@^7.8.3": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-object-rest-spread@^7.8.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-private-methods@^7.8.3": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" + integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-async-generator-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz#7330a5c50e05181ca52351b8fd01642000c96cfd" + integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" + +"@babel/plugin-transform-block-scoped-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" + integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-block-scoping@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz#42063e4deb850c7bd7c55e626bf4e7ab48e6ce02" + integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-class-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" + integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-class-static-block@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" + integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz#4ae6ef43a12492134138c1e45913f7c46c41b4bf" + integrity sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" + integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/template" "^7.24.7" + +"@babel/plugin-transform-destructuring@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz#a097f25292defb6e6cc16d6333a4cfc1e3c72d9e" + integrity sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-dotall-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" + integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-keys@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" + integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-dynamic-import@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" + integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" + integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-export-namespace-from@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" + integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" + integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz#6d8601fbffe665c894440ab4470bc721dd9131d6" + integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== + dependencies: + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-json-strings@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" + integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz#36b505c1e655151a9d7607799a9988fc5467d06c" + integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" + integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" + integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-amd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" + integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.8.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz#9fd5f7fdadee9085886b183f1ad13d1ab260f4ab" + integrity sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + +"@babel/plugin-transform-modules-systemjs@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz#f8012316c5098f6e8dee6ecd58e2bc6f003d0ce7" + integrity sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw== + dependencies: + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + +"@babel/plugin-transform-modules-umd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" + integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" + integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-new-target@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" + integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" + integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-assign@^7.8.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.24.7.tgz#9d2cc7ee1482bd208fcc51974ca4f7649662c899" + integrity sha512-DOzAi77P9jSyPijHS7Z8vH0wLRcZH6wWxuIZgLAiy8FWOkcKMJmnyHjy2JM94k6A0QxlA/hlLh+R9T3GEryjNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" + integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== + dependencies: + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.7" + +"@babel/plugin-transform-object-super@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" + integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + +"@babel/plugin-transform-optional-catch-binding@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" + integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz#b8f6848a80cf2da98a8a204429bec04756c6d454" + integrity sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" + integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-methods@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" + integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-property-in-object@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" + integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" + integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-regenerator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" + integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" + integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-runtime@^7.8.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz#00a5bfaf8c43cf5c8703a8a6e82b59d9c58f38ca" + integrity sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" + integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-sticky-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" + integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-template-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-typeof-symbol@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz#f074be466580d47d6e6b27473a840c9f9ca08fb0" + integrity sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-escapes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" + integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-property-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" + integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" + integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" + integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/preset-env@^7.10.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.7.tgz#ff067b4e30ba4a72f225f12f123173e77b987f37" + integrity sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ== + dependencies: + "@babel/compat-data" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.7" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.24.7" + "@babel/plugin-transform-async-to-generator" "^7.24.7" + "@babel/plugin-transform-block-scoped-functions" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.24.7" + "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-static-block" "^7.24.7" + "@babel/plugin-transform-classes" "^7.24.7" + "@babel/plugin-transform-computed-properties" "^7.24.7" + "@babel/plugin-transform-destructuring" "^7.24.7" + "@babel/plugin-transform-dotall-regex" "^7.24.7" + "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-dynamic-import" "^7.24.7" + "@babel/plugin-transform-exponentiation-operator" "^7.24.7" + "@babel/plugin-transform-export-namespace-from" "^7.24.7" + "@babel/plugin-transform-for-of" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.24.7" + "@babel/plugin-transform-json-strings" "^7.24.7" + "@babel/plugin-transform-literals" "^7.24.7" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" + "@babel/plugin-transform-member-expression-literals" "^7.24.7" + "@babel/plugin-transform-modules-amd" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-modules-systemjs" "^7.24.7" + "@babel/plugin-transform-modules-umd" "^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" + "@babel/plugin-transform-new-target" "^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" + "@babel/plugin-transform-numeric-separator" "^7.24.7" + "@babel/plugin-transform-object-rest-spread" "^7.24.7" + "@babel/plugin-transform-object-super" "^7.24.7" + "@babel/plugin-transform-optional-catch-binding" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" + "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-property-in-object" "^7.24.7" + "@babel/plugin-transform-property-literals" "^7.24.7" + "@babel/plugin-transform-regenerator" "^7.24.7" + "@babel/plugin-transform-reserved-words" "^7.24.7" + "@babel/plugin-transform-shorthand-properties" "^7.24.7" + "@babel/plugin-transform-spread" "^7.24.7" + "@babel/plugin-transform-sticky-regex" "^7.24.7" + "@babel/plugin-transform-template-literals" "^7.24.7" + "@babel/plugin-transform-typeof-symbol" "^7.24.7" + "@babel/plugin-transform-unicode-escapes" "^7.24.7" + "@babel/plugin-transform-unicode-property-regex" "^7.24.7" + "@babel/plugin-transform-unicode-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.8.4": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" + integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.24.7", "@babel/template@^7.4.0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" + integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.24.7", "@babel/traverse@^7.4.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" + integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" + integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== + dependencies: + "@babel/helper-string-parser" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@egjs/component@^2.1.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@egjs/component/-/component-2.2.2.tgz#b8208ea4ca05f6562a51d58f1e6f9979aad8a9d9" + integrity sha512-2m6nu6/Mbs6VnoT4IHFGUBX6V82Zp01zDmlWpIJ3fMatHpe7BB1qUYFgMmSWGY0uOvOl4plvflwbCRUAGMfwWQ== + +"@egjs/visible@^2.1.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@egjs/visible/-/visible-2.4.0.tgz#065ccea237c5cff91231431b4d3df1c294c38254" + integrity sha512-p9hRZCgH8dsJDKcBbOTPg25dxenuDw8EYm+15eN1Q/LJkNtL5hpJ3ee/QBK4TTICuOjzXpZj4jBdLqaVArykwA== + dependencies: + "@egjs/component" "^2.1.0" + +"@entrylabs/event@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@entrylabs/event/-/event-1.0.3.tgz#a8754edcf4e44c0365a0e95b57801f3f52532e9d" + integrity sha512-IDC7sWnfe8GVQIEGsct9Bcsj1Nh4XikO6PG+veVuix0Zv/XH98NkFjmXiyrriJ/rjJoGFBq6sKesfmaFCCr3MA== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.10.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.1.tgz#361461e5cb3845d874e61731c11cfedd664d83a0" + integrity sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA== + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@jest/console@^24.7.1", "@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== + dependencies: + "@jest/source-map" "^24.9.0" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== + dependencies: + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" + micromatch "^3.1.10" + p-each-series "^1.0.0" + realpath-native "^1.1.0" + rimraf "^2.5.4" + slash "^2.0.0" + strip-ansi "^5.0.0" + +"@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== + dependencies: + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + +"@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== + dependencies: + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.1" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + node-notifier "^5.4.2" + slash "^2.0.0" + source-map "^0.6.0" + string-length "^2.0.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== + dependencies: + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== + dependencies: + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.9.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" + micromatch "^3.1.10" + pirates "^4.0.1" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@mediapipe/tasks-vision@^0.10.3": + version "0.10.14" + resolved "https://registry.yarnpkg.com/@mediapipe/tasks-vision/-/tasks-vision-0.10.14.tgz#16c5ddc513408f2a416ccc6ce8ccc797ee02da3b" + integrity sha512-vOifgZhkndgybdvoRITzRkIueWWSiCKuEUXXK6Q4FaJsFvRJuwgg++vqFUMlL0Uox62U5aEXFhHxlhV7Ja5e3Q== + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pixi/accessibility@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.12.tgz#c22e28021e285d0db3869829a05db4adda25e393" + integrity sha512-JnfII2VsIeIpvyn1VMNDlhhq5BzHwwHn8sMRKhS3kFyxn4CdP0E4Ktn3/QK0vmL9sHCeTlto5Ybj3uuoKZwCWg== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/accessibility@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.7.tgz#a9ca9c7c04925014af4b137b38dd8b77b208e603" + integrity sha512-104qzGZWnA/cQUH48jTiCXKGqOCfOqZAHmVg1z0p5l5tnzVX5zUQDBJxt4AAIPguZZe1YkniealwO1WGz0yBgA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/app@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.12.tgz#90daa5fa056d222068b284cbd2f442e9cea31c2f" + integrity sha512-XMpqoO+1BFIVakgHX/VlBaO4qWxg9TitvybDeXZxyVlSCG84DMNulN55jYufVp92nqHhiRr2fAIc9JDccOcNcQ== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + +"@pixi/app@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.7.tgz#1a469dcdb9a3746d98eb58f2f7fa3e0951880a82" + integrity sha512-xlXxMGiGGmOA154SyltOQ2ZfPEtErzXl8GOxXJJJBxmIfvCQa+Y6iO5jf4q7yNbpSbrfaeIrYUnNbJAViiACzg== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + +"@pixi/constants@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.12.tgz#f02b4366669a30983f044a1d2870fd6dbdeea03d" + integrity sha512-UcuvZZ8cQu+ZC7ufLpKi8NfZX0FncPuxKd0Rf6u6pzO2SmHPq4C1moXYGDnkZjPFAjNYFFHC7chU+zolMtkL/g== + +"@pixi/constants@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.7.tgz#a2e1789a98deb3713cfcb3eba3db84588bc9161e" + integrity sha512-MBcgIM/mSqonFezkCI9080IqNlc0wb8S9QJ5otBdseOWUQa/ua2jF7Jd1sCBGmi0IzS9/NOHFXzZVTdS7AC7Ow== + +"@pixi/core@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.12.tgz#14d57aaaac099c512f8955a87648cf5b3f914ac1" + integrity sha512-SKZPU2mP4UE4trWOTcubGekKwopnotbyR2X8nb68wffBd1GzMoaxyakltfJF2oCV/ivrru/biP4CkW9K6MJ56g== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/runner" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/ticker" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/core@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.7.tgz#a8d65ca17f0c4ef8c0c5a22d31b9e02a4ab73b93" + integrity sha512-WBhU2f5aJSVVaFP55FFBFKjKlRf5fYGxgA/U3kD4yD4Y3d3d6V3MIZv+o0VX+kBs1Eq7ePZqEv2smDrlzzMEjQ== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/runner" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/ticker" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/display@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.12.tgz#24ddb270b87b91631284b57144d8e486a2375e17" + integrity sha512-/fsH/GAxc62rvwTnmrnV8oGCkk4LwJ9pt2Jv3UIorNsjXyL0V5fGw7uZnilF2eSdu6LgQKBMWPOtBF0TNML3lg== + dependencies: + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/display@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.7.tgz#b661d2ecfd2a67f213665a0698acd29e17eee8fe" + integrity sha512-ma1JyLe5vaEgmaOR+anvj5YOKqT9OEWnboIe7NVmwGF1CZ7JFnB12rsRulHUsSaFG9bP5xjvroAZjFg/WvyGLw== + dependencies: + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/extract@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.12.tgz#4fb236a78d65bc1586e1b77e1455c76da6be861f" + integrity sha512-PRs9sKeZT+eYSD8wGUqSjHhIRrfvnLU65IIJYlmgTxYo9U4rwzykt74v09ggMj/GFUpjsILISA5VIXM1TV79PQ== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/extract@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.7.tgz#2f32b804d90621ad3187e4ae7fb959d19b3959f1" + integrity sha512-xQ5hYFIdxQTjNWwtwsjIK0DjbGLlUl92rIj5yvNJFiJvRjZ8IfvtIaM5uwjhiY2U9q3fDLFgb8EiNfmdDc78xQ== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/filter-alpha@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.12.tgz#d2076e0d328430874d8cc544fa96fc097bbea893" + integrity sha512-/VG+ojZZwStLfiYVKcX4XsXNiPZpv40ZgiDL6igZOMqUsWn7n7dhIgytmbx6uTUWfxIPlOQH3bJGEyAHVEgzZA== + dependencies: + "@pixi/core" "5.3.12" + +"@pixi/filter-alpha@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.7.tgz#e979db57e9ee47b84d0900e5f9767b8632426fb4" + integrity sha512-jkvbzmSCIPjCJMFNUocAxsZ7Cq3ssFwXnmXNYKYhJy01LxiyO/JbVDAxAD7Chyn5jbKsI21OV3UQaIJhFpXw7Q== + dependencies: + "@pixi/core" "5.3.7" + +"@pixi/filter-blur@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.12.tgz#b4212c13c96d4c3dd12efa20859c77baca092250" + integrity sha512-8zuOmztmuXCl1pXQpycKTS8HmXPtkmMe6xM93Q1gT7CRLzyS97H3pQAh4YuaGOrJslOKBNDrGVzLVY95fxjcTQ== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/settings" "5.3.12" + +"@pixi/filter-blur@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.7.tgz#7eee3559704b280e8588c2fc9e8d912aac80f8a9" + integrity sha512-xM+Zz2i2UCmY7oHBPlGaN2ImhCY4l/V8NFc8FNSUIHm8NXHJ4/VCQpXp9BFTjY1+GZExFLkqB8kIYEddGVFiLA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/settings" "5.3.7" + +"@pixi/filter-color-matrix@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.12.tgz#17fa86afacb9b1de44c5e81b8a911dfdad730e3f" + integrity sha512-CblKOry/TvFm7L7iangxYtvQgO3a9n5MsmxDUue68DWZa/iI4r/3TSnsvA+Iijr590e9GsWxy3mj9P4HBMOGTA== + dependencies: + "@pixi/core" "5.3.12" + +"@pixi/filter-color-matrix@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.7.tgz#230cafe46bde36e25441b13f3ac5dd8e8fee4311" + integrity sha512-Z12cxoHx9uMh3CZ0PLVRzsaFHHF/CfU3J83KI9k+Bg/DFOh/J/5EToCd44jYJbMKp3nvXcO1EJyZ3wwC/IsyfQ== + dependencies: + "@pixi/core" "5.3.7" + +"@pixi/filter-displacement@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.12.tgz#2996ca66746050a0c5c950629ae163e4c033a020" + integrity sha512-D/LpJxnGi85wHB6VeBpw0FQAN0mzHHUYNxCADwUhknY+SKfP5RhaYOlk79zqOuakBfQTzL3lPgMNH2EC85EJPw== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/math" "5.3.12" + +"@pixi/filter-displacement@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.7.tgz#4364d5514221c4a03950b67795cebd1b34dca401" + integrity sha512-akMVkAHqliQujveiJ5KBMuwh/JVGN37NQsD8n1XbDDSe6SKjpX0kaq2Bh2Xu9pPj3+Jhofy0sI65q2M8qs2Uog== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/math" "5.3.7" + +"@pixi/filter-fxaa@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.12.tgz#bb93ecaf3002fa5da9dbff6974ab38fd8045cd79" + integrity sha512-EI+foorDnYUAy7VF3fzi635u/dyf5EHZOFovGEDrHm/ZTmEJ1i6RolwexCN94vf6HGfaDrIgNmqFcKWtbIvJFA== + dependencies: + "@pixi/core" "5.3.12" + +"@pixi/filter-fxaa@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.7.tgz#55b778fbc60fd87f16d17d66a36b122e2f5c3b57" + integrity sha512-NJpVcbOCUVYUDGqxvh7Jp/+arWEnLKgI/7Qf8VEYv0aQslqE8ZtFSAX7JfP+iGfFWXlkMe6AKspesYhUrIpRKg== + dependencies: + "@pixi/core" "5.3.7" + +"@pixi/filter-noise@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.12.tgz#66315840bbf5fd7e15e42aafd29024602f4ccb2b" + integrity sha512-9KWmlM2zRryY6o0bfNOHAckdCk8X7g9XWZbmEIXZZs7Jr90C1+RhDreqNs8OrMukmNo2cW9hMrshHgJ9aA1ftQ== + dependencies: + "@pixi/core" "5.3.12" + +"@pixi/filter-noise@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.7.tgz#70e638f5d6ebc4b62b4c67f2de939a7fa900d7a5" + integrity sha512-P0mVQR2J7GHujVcq0iiuD2/1yvmue7orpppa5iuNHoOMT+vZpO0hdCKTg5vm5ZcWnHrOwtvv8zYngnT9rLdCtw== + dependencies: + "@pixi/core" "5.3.7" + +"@pixi/graphics@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.12.tgz#bad1d5e1630e38b5f1bf594f72931c0e7a43ead0" + integrity sha512-uBmFvq15rX0f459/4F2EnR2UhCgfwMWVJDB1L3OnCqQePE/z3ju4mfWEwOT+I7gGejWlGNE6YLdEMVNw/3zb6w== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/graphics@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.7.tgz#36ae80e2508e0a9c61ce454807d517d370d90a74" + integrity sha512-+6+bT/AC29a1Hw5XDxsH1UqBsXSqcna7wNTTrBQ02owotIJtyRc6w48f5qxzhxycumyVCR87IV5tAtdwX3xhag== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/interaction@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.12.tgz#dd4f23fadc24810857f69766db6cdfab8786e5bd" + integrity sha512-Ks7vHDfDI58r1TzKHabnQXcXzFbUu2Sb4eQ3/jnzI/xGB5Z8Q0kS7RwJtFOWNZ67HHQdoHFkQIozTUXVXHs3oA== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/ticker" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/interaction@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.7.tgz#dd4d7b43fc266c9b0e8994f4f05cb9f73438b586" + integrity sha512-B+5suog6fo8tJclTIO1Nn0HikyXQ9OWQGmTiYUnDVDriX5dGujh79RpcL51HFQ/2Gs2Gt0rl3AfP9OsCLe7VPA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/ticker" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/loaders@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.12.tgz#ee34783633a76719a196f65330b6d78a52d3bb86" + integrity sha512-M56m1GKpCChFqSic9xrdtQOXFqwYMvGzDXNpsKIsQbkHooaJhUR5UxSPaNiGC4qWv0TO9w8ANouxeX2v6js4eg== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/utils" "5.3.12" + resource-loader "^3.0.1" + +"@pixi/loaders@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.7.tgz#7231106d8d490d9ca230df7a07a53e1e4d412163" + integrity sha512-zwWgvhUz7l5Z3me5gT1XbJzmj4bnz176PnawoUdlRxNARnMW3Rsk7Egzu8atWhJUL+MWEv+t8KkyHRXG39q5FA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/utils" "5.3.7" + resource-loader "^3.0.1" + +"@pixi/math@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.12.tgz#bfc3c1b651a96a2d62cb40e0b181d68fb4962aac" + integrity sha512-VMccUVKSRlLFTGQu6Z450q/W6LVibaFWEo2eSZZfxz+hwjlYiqRPx4heG++4Y6tGskZK7W8l8h+2ixjmo65FCg== + +"@pixi/math@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.7.tgz#066e7ea149fd38db8d8a9584aac5f41d02b36bdd" + integrity sha512-WnjUwX7rkxR36F0xknpsNd9BsfQosV0BbyFE0Il88IURBM3Tu9X4tC7RGJDgWU+aXw23HgHu0j+MWJrCVCM2fA== + +"@pixi/mesh-extras@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.12.tgz#b634f2a212714374d5376b70a333fbebf9f69d4f" + integrity sha512-tEBEEIh96aSGJ/KObdtlNcSzVfgrl9fBhvdUDOHepSyVG+SkmX4LMqP3DkGl6iUBDiq9FBRFaRgbxEd8G2U7yw== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/mesh" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/mesh-extras@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.7.tgz#e4ab9e4b0cb05606a621cacd6d37d472067c6041" + integrity sha512-txVo2yk935gLgvlwO/ODUuz0wHUZtc9AK0sOQbbD9rh1TUdZ9OYrRvqshItLC34EimmAfgOsyzT78zeUTaP1OA== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/mesh" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/mesh@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.12.tgz#665e83a26c40f12215ff72193a0774c4bdbb605e" + integrity sha512-8ZiGZsZQBWoP1p8t9bSl/AfERb5l3QlwnY9zYVMDydF/UWfN1gKcYO4lKvaXw/HnLi4ZjE+OHoZVmePss9zzaw== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/mesh@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.7.tgz#9de12a6404abdd17fe14c08d2bbe163bdf72bb9a" + integrity sha512-7K5Ba3+t0rBAfZeuQi7nem0DgVH9GNhRvZ8HYbhPs5XVI7yZZhUN4HpUMy7gYEnz8EbXqwUz20X4ham/0O9WsQ== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/mixin-cache-as-bitmap@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.12.tgz#eb2c4aa9ad452593d4c445a2132e4d8d0b02d8ef" + integrity sha512-hPiu8jCQJctN3OVJDgh7jqdtRgyB3qH1BWLM742MOZLjYnbOSamnqmI8snG+tba5yj/WfdjKB+8v0WNwEXlH6w== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/mixin-cache-as-bitmap@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.7.tgz#2a30fc3f552f7a0a51bd0fe5a6e937132a5fff52" + integrity sha512-UEP1PVEEqgWs8vUx/GvOiQ4r130NDLQoD9i5YA1i5BGml2UmNyrFlIh8N9hVAPiIpTIpECkU6nLakP7t6fm9zA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/mixin-get-child-by-name@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.12.tgz#581e305b1f2c75533215704e499975b20e92a708" + integrity sha512-VQv0GMNmfyBfug9pnvN5s/ZMKJ/AXvg+4RULTpwHFtAwlCdZu9IeNb4eviSSAwtOeBAtqk5c0MQSsdOUWOeIkA== + dependencies: + "@pixi/display" "5.3.12" + +"@pixi/mixin-get-child-by-name@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.7.tgz#49c5aa84840bf09e2c089011665407e8c1a3466e" + integrity sha512-KiWirq5HpLKrAsShdZx0+RwNwY6nO5cM+Wqq59n11xTgvUoNULiptZRePQR5rOIsLIcwNtro/2LWPj1UzbJHbg== + dependencies: + "@pixi/display" "5.3.7" + +"@pixi/mixin-get-global-position@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.12.tgz#111261083b4e654361cd7da12cd510b6ff64fded" + integrity sha512-qxsfCC9BsKSjBlMH1Su/AVwsrzY8NHfcut5GkVvm2wa9+ypxFwU5fVsmk6+4a9G7af3iqmOlc9YDymAvbi+e8g== + dependencies: + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + +"@pixi/mixin-get-global-position@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.7.tgz#68c0167054abbac01ecd10275212f5b9afe049bf" + integrity sha512-OIXi+m611GVH1dVAc5YdiMC55Bbjf0JmesiB+6/gMzrjKxW/YDAA5ZRVri75hmRedHA8LPflf+i0pO10mrGP8g== + dependencies: + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + +"@pixi/particles@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.12.tgz#37843e0d865d9ed87dda97f46eb309ffd46e1866" + integrity sha512-SV/gOJBFa4jpsEM90f1bz5EuMMiNAz81mu+lhiUxdQQjZ8y/S4TiK7OAiyc+hUtp97JbJ//6u+4ynGwbhV+WDA== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/particles@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.7.tgz#9f0500b818f20af8e9338fee24c1c33530dfa925" + integrity sha512-mEnBljvBVbKuUJVZ0oH9dP/k7qsHEHUlvfBQgLOSkd6viHlx3PoSPKOYm35+I6fAylkV0Xm9+j5v/IESuip2RQ== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/polyfill@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.12.tgz#5678476f15c33dfd704cff0d216b0cf3ab5267dc" + integrity sha512-qkm8TBIb6m7FmE/Cd/yVagONDlVF5/cWFSSnk4pWA/vt/HLNrXgY9Tx0IXAk6NNK/xc5deGcLPc4iw+DlEhsQw== + dependencies: + es6-promise-polyfill "^1.2.0" + object-assign "^4.1.1" + +"@pixi/polyfill@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.7.tgz#eb43ef1eefc7967bf8d44f704677c19adfdc539c" + integrity sha512-qU23xdb/e4Qvze0TWVy4fNZ0nlABIEZmuLu5nI9SpgfIYtjd2tZo7ngCXU5mZHxW1/xvkAMJEHCsSszotzF9xQ== + dependencies: + es6-promise-polyfill "^1.2.0" + object-assign "^4.1.1" + +"@pixi/prepare@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.12.tgz#68e89aa4102973cde220bc7d965b856d99044f01" + integrity sha512-loZhLzV4riet9MU72WpWIYF6LgbRM78S4soeZOr5SzL1/U5mBneOOmfStaui7dN2GKQKp5GLygDF4dH3FPalnA== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/graphics" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/text" "5.3.12" + "@pixi/ticker" "5.3.12" + +"@pixi/prepare@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.7.tgz#00916a56c61d8349be47937a9b384f3cf90157ca" + integrity sha512-saU+o202vA3U2HVMYvh5aB2RJmP4hR//J22QuRfGen/ukM5mApOroJ445Id2+kSvis0M+UeFUKfBGWDzitr19Q== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/graphics" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/text" "5.3.7" + "@pixi/ticker" "5.3.7" + +"@pixi/runner@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.12.tgz#48a84a574b95478a7c3cff4f5102f7d7f35ebfb1" + integrity sha512-I5mXx4BiP8Bx5CFIXy3XV3ABYFXbIWaY6FxWsNFkySn0KUhizN7SarPdhFGs//hJuC54EH2FsKKNa98Lfc2nCQ== + +"@pixi/runner@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.7.tgz#78ed2c92b392b8c099d2e4557dded7faa921446b" + integrity sha512-kt5apNb21HAvpBaDaPRs33k2O0VzrKe13w4we8iftCpXX8w68ErAY1lH68vmtDNrxnlHg4M9nRgEoMeiHlo2RA== + +"@pixi/settings@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.12.tgz#50675601c5485d15d8896e50cb2b523154c2dae8" + integrity sha512-tLAa8tpDGllgj88NMUQn2Obn9MFJfHNF/CKs8aBhfeZGU4yL4PZDtlI+tqaB1ITGl3xxyHmJK+qfmv5lJn+zyA== + dependencies: + ismobilejs "^1.1.0" + +"@pixi/settings@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.7.tgz#b661883231bf2a1ff5260c214bd0c4b438759841" + integrity sha512-g6AoRSGWxU34gtKSQwX2AMQoLUv86L/5iIXRsqo+X4bfUSCenTci1X7ueVrSIbo39dxh6IOpriZF2Yk3TeHG5w== + dependencies: + ismobilejs "^1.1.0" + +"@pixi/sprite-animated@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.12.tgz#d5e2def777a181bba30b4a8f5931b8a29dc09a16" + integrity sha512-WkGdGRfqboXFzMZ/SM6pCVukYmG2E2IlpcFz7aEeWvKL2Icm4YtaCBpHHDU07vvA6fP6JrstlCx1RyTENtOeGA== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/ticker" "5.3.12" + +"@pixi/sprite-animated@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.7.tgz#94e6d7657cd133a8953e476bd24e18cbfab6a978" + integrity sha512-CSXTSwH/UUcTe5637AD35OCETQO+tDkmlr6e1/eIyUlgOsPkbjo+l134feLZtZudiPHTPyb/YAYIlgPfVr7MGw== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/ticker" "5.3.7" + +"@pixi/sprite-tiling@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.12.tgz#574697334948521dd4228dc2dfb57129233cf2fa" + integrity sha512-5/gtNT46jIo7M69sixqkta1aXVhl4NTwksD9wzqjdZkQG8XPpKmHtXamROY2Fw3R+m+KGgyK8ywAf78tPvxPwg== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/sprite-tiling@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.7.tgz#f4ec4cd205ff7ecebe636062ea27f7a139fb8e22" + integrity sha512-0BMLQGniJF1HvfyrJVe5jC8ayBpTh19dAHJIQWGp8zxxFh/WHjR1b32BN74rDjxQQSjZjV8vBNio8J3W+yDttw== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/sprite@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.12.tgz#0e62a9c074ae288a33fa7c6d18f61db18257e843" + integrity sha512-vticet92RFZ3nDZ6/VDwZ7RANO0jzyXOF/5RuJf0yNVJgBoH4cNix520FfsBWE2ormD+z5t1KEmFeW4e35z2kw== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/sprite@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.7.tgz#c6edf3d4a9928868696b62e35a60ded27d167058" + integrity sha512-Bjl+NOOvigEzUsm1cDr1KmBUpPSWO8pDXpUPTi+v2N75gwRfTycmj5f2TU0QmMW3Gc6sv0CB0AkL7dkMPwPb8g== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/spritesheet@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.12.tgz#78deabea173f2ceb13a58f4be2e0100b7cf239ca" + integrity sha512-0t5HKgLx0uWtENtkW0zVpqvmfoxqMcRAYB7Nwk2lkgZMBPCOFtFF/4Kdp9Sam5X0EBMRGkmIelW3fD6pniSvCw== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/loaders" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/spritesheet@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.7.tgz#826b84c8220ca41c3eba201f453d42394d4da562" + integrity sha512-K1Befbrq3LDbFtnLmbk54QQ/YRk2Mgd+2iOkZx5KsS2pTh1va/GM9FbpO9aZgsEu8Eq76QPxyR8nRqygyMRSuQ== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/loaders" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/text-bitmap@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.12.tgz#c1cbf0b2650775f5059f3eaef2afda557ed6595e" + integrity sha512-tiorA3XdriJKJtUhMDcKX1umE3hGbaNJ/y0ZLuQ0lCvoTLrN9674HtveutoR9KkXWguDHCSk2cY+y3mNAvjPHA== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/loaders" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/mesh" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/text" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/text-bitmap@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.7.tgz#736b489424c6e9c26c2907356e2d70e1ae2cb292" + integrity sha512-LWXgxyMgBAldHA6Swx0irAISCMEyDEcZV7YxBoBpSDnV8ybtZP4fSgtj6vlpnrttKcnXFEcGokOuC3vSdEs39g== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/loaders" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/mesh" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/text" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/text@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.12.tgz#7dc0ded63fa817c4f72ee1537392ee2139ff09a5" + integrity sha512-tvrDVetwVjq1PVDR6jq4umN/Mv/EPHioEOHhyep63yvFIBFv75mDTg2Ye0CPzkmjqwXXvAY+hHpNwuOXTB40xw== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/text@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.7.tgz#cb71b2576bdc1f66fb79977d281f9575dd06d3d5" + integrity sha512-WVAc31MDgHTvP0dJNWsvLVJhjeVGZ3NrLpHcH9iIAd6HVO5Z+i+fk4zvodD+Y7jWU0psx8ZD8xe1wy8ECfbCBA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/ticker@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.12.tgz#94817565e9899d8e0be746d405e15eb98e8bc14f" + integrity sha512-YNYUj94XgogipYhPOjbdFBIsy7+U6KmolvK+Av1G88GDac5SDoALb1Nt6s23fd8HIz6b4YnabHOdXGz3zPir1Q== + dependencies: + "@pixi/settings" "5.3.12" + +"@pixi/ticker@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.7.tgz#c331b270042d507fe18543ae435a9a857a8fd5ae" + integrity sha512-ZEXiJwPtuPeWa0QmRODF5qK0+ugZu/xeq7QxCvFOCc3NFVBeGms4g92HPucOju9R7jcODIoJxtICALsuwLAr9w== + dependencies: + "@pixi/settings" "5.3.7" + +"@pixi/utils@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.12.tgz#15add282a2ee6cc0d931d068caaed2b61eacf149" + integrity sha512-PU/L852YjVbTy/6fDKQtYji6Vqcwi5FZNIjK6JXKuDPF411QfJK3QBaEqJTrexzHlc9Odr0tYECjwtXkCUR02g== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/settings" "5.3.12" + earcut "^2.1.5" + eventemitter3 "^3.1.0" + url "^0.11.0" + +"@pixi/utils@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.7.tgz#55fe2a2fbf0fba842da5a602576ce68c498e7e16" + integrity sha512-f8zAeHHURxfwBr8MZiXEIwY2h9wbS6vN0ypvapGvKFOexZ1EInTs35FhEiRWzLEPLHyn1RgCdKzR2zl++E4tIw== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/settings" "5.3.7" + earcut "^2.1.5" + eventemitter3 "^3.1.0" + url "^0.11.0" + +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@tensorflow-models/coco-ssd@^2.0.1": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@tensorflow-models/coco-ssd/-/coco-ssd-2.2.3.tgz#3825286569076d6788199c9cb89fb2fa31f7d2f2" + integrity sha512-iCLGktG/XhHbP6h2FWxqCKMp/Px0lCp6MZU1fjNhjDHeaWEC9G7S7cZrnPXsfH+NewCM53YShlrHnknxU3SQig== + +"@tensorflow-models/posenet@^2.2.1": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@tensorflow-models/posenet/-/posenet-2.2.2.tgz#2abcfa33b43892135d232c9c4408a38cc8f74ba6" + integrity sha512-0SXIksRet/IdX7WVH+JSD6W3upkGHix1hwtd3xykIoIMGR7zQ4SC5+wZcNt9ofASyxNYQoI+tUULUo4LNw0c3w== + +"@tensorflow/tfjs-converter@1.7.4", "@tensorflow/tfjs-converter@^1.7.0": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-1.7.4.tgz#90838fe9ca2d540f22a65fdcbe2311a01e786380" + integrity sha512-B/Ux9I3osI0CXoESGR0Xe5C6BsEfC04+g2xn5zVaW9KEuVEnGEgnuBQxgijRFzkqTwoyLv4ptAmjyIghVARX0Q== + +"@tensorflow/tfjs-core@1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-1.7.0.tgz#9207c8f2481c52a6a40135a6aaf21a9bb0339bdf" + integrity sha512-uwQdiklNjqBnHPeseOdG0sGxrI3+d6lybaKu2+ou3ajVeKdPEwpWbgqA6iHjq1iylnOGkgkbbnQ6r2lwkiIIHw== + dependencies: + "@types/offscreencanvas" "~2019.3.0" + "@types/seedrandom" "2.4.27" + "@types/webgl-ext" "0.0.30" + "@types/webgl2" "0.0.4" + node-fetch "~2.1.2" + seedrandom "2.4.3" + +"@tensorflow/tfjs-core@1.7.4", "@tensorflow/tfjs-core@^1.7.0": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-1.7.4.tgz#43a44bc01d46de98ee9f15c0b2a4d9af4723e7ea" + integrity sha512-3G4VKJ6nPs7iCt6gs3bjRj8chihKrYWenf63R0pm7D9MhlrVoX/tpN4LYVMGgBL7jHPxMLKdOkoAZJrn/J88HQ== + dependencies: + "@types/offscreencanvas" "~2019.3.0" + "@types/seedrandom" "2.4.27" + "@types/webgl-ext" "0.0.30" + "@types/webgl2" "0.0.4" + node-fetch "~2.1.2" + seedrandom "2.4.3" + +"@tensorflow/tfjs-data@1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-1.7.4.tgz#3aa1cb14ac48a0354acd21d08f177c8a262fbb32" + integrity sha512-WFYG9wWjNDi62x6o3O20Q0XJxToCw2J4/fBEXiK/Gr0hIqVhl2oLQ1OjTWq7O08NUxM6BRzuG+ra3gWYdQUzOw== + dependencies: + "@types/node-fetch" "^2.1.2" + node-fetch "~2.1.2" + +"@tensorflow/tfjs-layers@1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-1.7.4.tgz#93cdef70a4f414edb4ee470c49415d216f54ba20" + integrity sha512-5/K8Z8RBfXsucL6EaSeb3/8jB/I8oPaaXkxwKVsBPQ+u6lB6LEtSKzeiFc57nDr5OMtVaUZV+pKDNEzP0RUQlg== + +"@tensorflow/tfjs@^1.7.0": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-1.7.4.tgz#ea5483bc4b34f5a4c66d600e456c25b6071ea75e" + integrity sha512-XWGwRQ/ECEoQacd74JY/dmbLdnMpwtq3H8tls45dQ+GJ553Advir1FDo/aQt0Yr6fTimQDeiOIG4Mcb5KduP/w== + dependencies: + "@tensorflow/tfjs-converter" "1.7.4" + "@tensorflow/tfjs-core" "1.7.4" + "@tensorflow/tfjs-data" "1.7.4" + "@tensorflow/tfjs-layers" "1.7.4" + +"@types/babel__core@^7.1.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== + dependencies: + "@babel/types" "^7.20.7" + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/createjs-lib@*": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/createjs-lib/-/createjs-lib-0.0.33.tgz#03b0d67f6ae33a4e3239ef2184ccbb4fe4a91844" + integrity sha512-mvK1sn2qSyGPwctg/MsjAP5m3/TBx83eB0hcEdZ6UqpuzQqCUWpVyyQddqkbAsKRpMECK0s7JosYXoTtIuNbhw== + +"@types/createjs@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/createjs/-/createjs-0.0.29.tgz#4d19b0feaa38252dcd79d78a38a4cc6df3f181fc" + integrity sha512-bDZJTAEoGZw12zjXHLrcQHz0tuyv+MMlFh9tLm7DWZfF33biqWaXQgk4g7pMvploRu42sbH4XkXVJ7Wz9O1sCg== + dependencies: + "@types/createjs-lib" "*" + "@types/easeljs" "*" + "@types/preloadjs" "*" + "@types/soundjs" "*" + "@types/tweenjs" "*" + +"@types/crypto-js@^4.0.1": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@types/crypto-js/-/crypto-js-4.2.2.tgz#771c4a768d94eb5922cc202a3009558204df0cea" + integrity sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ== + +"@types/easeljs@*": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/easeljs/-/easeljs-1.0.5.tgz#f6641c3bd496fb892b90f9bd5f81a77fb4733932" + integrity sha512-YRWGkZdq4trhJhieE0NdLTbOp5zT5yunPJKNqQJWq/X8y7qlmGeQB8hPnQHzMbW9iY38ZV91oXgW7V3U5VY2uw== + dependencies: + "@types/createjs-lib" "*" + "@types/tweenjs" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + +"@types/eslint@*": + version "8.56.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.19.3" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz#e469a13e4186c9e1c0418fb17be8bc8ff1b19a7a" + integrity sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/hammerjs@^2.0.41": + version "2.0.45" + resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.45.tgz#ffa764bb68a66c08db6efb9c816eb7be850577b1" + integrity sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ== + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.8": + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + dependencies: + "@types/node" "*" + +"@types/isomorphic-fetch@^0.0.35": + version "0.0.35" + resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz#c1c0d402daac324582b6186b91f8905340ea3361" + integrity sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/jquery@^3.3.38": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.30.tgz#888d584cbf844d3df56834b69925085038fd80f7" + integrity sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A== + dependencies: + "@types/sizzle" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/lodash@^4.14.155": + version "4.17.5" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.5.tgz#e6c29b58e66995d57cd170ce3e2a61926d55ee04" + integrity sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/node-fetch@^2.1.2": + version "2.6.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" + integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== + dependencies: + "@types/node" "*" + form-data "^4.0.0" + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "20.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" + integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== + dependencies: + undici-types "~5.26.4" + +"@types/node@^14.0.11": + version "14.18.63" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" + integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== + +"@types/offscreencanvas@~2019.3.0": + version "2019.3.0" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" + integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q== + +"@types/pixi.js@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/pixi.js/-/pixi.js-5.0.0.tgz#3fbd6d9d26cb563a0f2870e0ea767bc62dddf1b8" + integrity sha512-yZqQBR043lRBlBZci2cx6hgmX0fvBfYIqFm6VThlnueXEjitxd3coy+BGsqsZ7+ary7O//+ks4aJRhC5MJoHqA== + dependencies: + pixi.js "*" + +"@types/preloadjs@*": + version "0.6.36" + resolved "https://registry.yarnpkg.com/@types/preloadjs/-/preloadjs-0.6.36.tgz#9e40f988dce9b1d5a71d4a9d145d3f60e813cdf6" + integrity sha512-/Xo6BRCkvZiw0VXHszRQJnnTHyfkISPD5DiMj0JDrmQWiw104BxoijjeIlZ0umQxXEUb+gWLZsdZbuEhmP5vsw== + dependencies: + "@types/createjs-lib" "*" + +"@types/q@^1.5.1": + version "1.5.8" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== + +"@types/qs@*": + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/seedrandom@2.4.27": + version "2.4.27" + resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.27.tgz#9db563937dd86915f69092bc43259d2f48578e41" + integrity sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ== + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.1": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sizzle@*": + version "2.3.8" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.8.tgz#518609aefb797da19bf222feb199e8f653ff7627" + integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg== + +"@types/socket.io-client@^1.4.33": + version "1.4.36" + resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.36.tgz#e4f1ca065f84c20939e9850e70222202bd76ff3f" + integrity sha512-ZJWjtFBeBy1kRSYpVbeGYTElf6BqPQUkXDlHHD4k/42byCN5Rh027f4yARHCink9sKAkbtGZXEAmR0ZCnc2/Ag== + +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/soundjs@*": + version "0.6.31" + resolved "https://registry.yarnpkg.com/@types/soundjs/-/soundjs-0.6.31.tgz#ca55cf777830efb55fa752191ec1ef9ca0fcd69d" + integrity sha512-5bditJi7P1YbRIRa1UFxIr+8vKJYEc6nTZb5NL0647rWGqGf8Ih4GD+0aDWteWIG17EXPw+VTOQE/8LHitnn4A== + dependencies: + "@types/createjs-lib" "*" + "@types/preloadjs" "*" + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/tweenjs@*": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tweenjs/-/tweenjs-1.0.8.tgz#800748b468a36ceb16e58a268dba3c370dd023f2" + integrity sha512-/HTVWu8c+AUJFK9P6b3LRzfodAYwDogtQKoH3ovZmnOY4aNJf+k3VqPx+D+AsLZP06AmoSLzqu9n/E5XCglCZw== + dependencies: + "@types/createjs-lib" "*" + +"@types/w3c-web-usb@^1.0.8": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz#cf89cccd2d93b6245e784c19afe0a9f5038d4528" + integrity sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ== + +"@types/web-bluetooth@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz#74bd1c8fd3a2058cb6fc76b188fcded50a83d866" + integrity sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw== + +"@types/webgl-ext@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" + integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== + +"@types/webgl2@0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.4.tgz#c3b0f9d6b465c66138e84e64cb3bdf8373c2c279" + integrity sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw== + +"@types/webpack-env@^1.15.2": + version "1.18.5" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.18.5.tgz#eccda0b04fe024bed505881e2e532f9c119169bf" + integrity sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA== + +"@types/ws@^8.5.5": + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^13.0.0": + version "13.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" + integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/experimental-utils@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" + integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^3.1.0": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" + integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "3.10.1" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/parser@^6.7.5": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== + dependencies: + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + +"@typescript-eslint/types@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== + +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== + +"@typescript-eslint/typescript-estree@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== + dependencies: + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/visitor-keys" "3.10.1" + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/visitor-keys@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== + dependencies: + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== + +"@webpack-cli/info@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== + +"@webpack-cli/serve@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^5.5.3: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^6.0.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA== + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4" + integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== + dependencies: + fast-deep-equal "^3.1.3" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.4.1" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-equal@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.2.tgz#a8572e64e822358271250b9156d20d96ef5dec04" + integrity sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.reduce@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz#6aadc2f995af29cb887eb866d981dc85ab6f7dc7" + integrity sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-array-method-boxes-properly "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + is-string "^1.0.7" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.4.1, async@^2.6.2: + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +audiobuffer-to-wav@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/audiobuffer-to-wav/-/audiobuffer-to-wav-1.0.0.tgz#d5b432271455e7fee56b111cd0f8d620d7f9e105" + integrity sha512-CAoir4NRrAzAgYo20tEMiKZR84coE8bq/L+H2kwAaULVY4+0xySsEVtNT5raqpzmH6y0pqzY6EmoViLd9W8F/w== + +autoprefixer@^9.4.3: + version "9.8.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + picocolors "^0.2.1" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.0.tgz#d9b802e9bb9c248d7be5f7f5ef178dc3684e9dcc" + integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g== + +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== + dependencies: + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.9.0" + chalk "^2.4.2" + slash "^2.0.0" + +babel-loader@^8.0.6: + version "8.3.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + find-up "^3.0.0" + istanbul-lib-instrument "^3.3.0" + test-exclude "^5.2.3" + +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== + dependencies: + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz#789ac82405ad664c20476d0233b485281deb9c77" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== + dependencies: + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.9.0" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg== + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + integrity sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ== + dependencies: + callsite "1.0.0" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird@^3.3.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.20.2, body-parser@^1.16.1: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: + version "4.23.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" + integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== + dependencies: + caniuse-lite "^1.0.30001629" + electron-to-chromium "^1.4.796" + node-releases "^2.0.14" + update-browserslist-db "^1.0.16" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ== + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +can-use-dom@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" + integrity sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001629: + version "1.0.30001632" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz#964207b7cba5851701afb4c8afaf1448db3884b6" + integrity sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chai@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + integrity sha512-eRYY0vPS2a9zt5w5Z0aCeWbrXTEyvk7u/Xf71EzNObrjSCPgMm1Nku/D/u2tiqHBX5j40wWhj54YJLtgn8g55A== + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.0.0, chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@^5.2.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + +clean-webpack-plugin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-1.0.1.tgz#b16ee2f1386aea403010236e632447c7d3505f5a" + integrity sha512-gvwfMsqu3HBgTVvaBa1H3AZKO03CHpr5uP92SPIktP3827EovAitwW+1xoqXyTxCuXnLYpMHG5ytS4AoukHDWA== + dependencies: + rimraf "^2.6.1" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +colors@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-tags@^1.4.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +complex.js@^2.0.11: + version "2.1.1" + resolved "https://registry.yarnpkg.com/complex.js/-/complex.js-2.1.1.tgz#0675dac8e464ec431fb2ab7d30f41d889fb25c31" + integrity sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg== + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw== + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA== + +component-emitter@^1.2.1, component-emitter@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +connect@^3.6.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.4.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +copy-anything@^2.0.1: + version "2.0.6" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== + dependencies: + is-what "^3.14.1" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +core-js-compat@^3.31.0, core-js-compat@^3.36.1: + version "3.37.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.1.tgz#c844310c7852f4bdf49b8d339730b97e17ff09ee" + integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== + dependencies: + browserslist "^4.23.0" + +core-js@^2.6.2: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.6.4: + version "3.37.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9" + integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cross-env@^5.1.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" + integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ== + dependencies: + cross-spawn "^6.0.5" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-js@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@^3.2.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +cuid@^2.1.6: + version "2.1.8" + resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.8.tgz#cbb88f954171e0d5747606c0139fb65c5101eac0" + integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg== + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +date-format@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" + integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + integrity sha512-6sEotTRGBFiNcqVoeHwnfopbSpi5NbH1VWJmYCVkmxMmaVTT0bUTrNaGyBwhgP4MZL012W/mkzIn3Da+iDYweg== + dependencies: + type-detect "0.1.1" + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== + +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +earcut@^2.1.5: + version "2.2.4" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" + integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.796: + version "1.4.798" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.798.tgz#6a3fcab2edc1e66e3883466f6b4b8944323c0164" + integrity sha512-by9J2CiM9KPGj9qfp5U4FcPSbXJG7FNzqnYaY4WLzX+v2PHieVGmnsA4dxfpGE3QEC7JofpPZmn7Vn1B9NR2+Q== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" + integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-client@~3.5.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.3.tgz#3254f61fdbd53503dc9a6f9d46a52528871ca0d7" + integrity sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw== + dependencies: + component-emitter "~1.3.0" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.4.2" + xmlhttprequest-ssl "~1.6.2" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io-parser@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.4" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" + integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.16.0: + version "5.17.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz#d037603789dd9555b89aaec7eb78845c49089bc5" + integrity sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +envinfo@^7.7.3: + version "7.13.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" + integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + +errno@^0.1.1: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.2, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.3.tgz#25969419de9c0b1fbe54279789023e8a9a788412" + integrity sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-promise-polyfill@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz#f38925f23cb3e3e8ce6cda8ff774fcebbb090cde" + integrity sha512-HHb0vydCpoclpd0ySPkRXMmBw80MRt1wM4RBJBlXkux97K7gleabZdsR0gvE1nNPM9mgOZIBTzjjXiPxf4lIqQ== + +escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-latex@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1" + integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.9.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + +eslint-loader@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" + integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== + dependencies: + find-cache-dir "^3.3.1" + fs-extra "^8.1.0" + loader-utils "^2.0.0" + object-hash "^2.0.3" + schema-utils "^2.6.5" + +eslint-plugin-prettier@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" + +eslint-rule-composer@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== + +eslint-scope@5.1.1, eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +eslint@^8.7.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0, esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0, events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== + dependencies: + "@jest/types" "^24.9.0" + ansi-styles "^3.2.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" + +express@^4.17.3: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-text-webpack-plugin@^4.0.0-beta.0: + version "4.0.0-beta.0" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz#f7361d7ff430b42961f8d1321ba8c1757b5d4c42" + integrity sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA== + dependencies: + async "^2.4.1" + loader-utils "^1.1.0" + schema-utils "^0.4.5" + webpack-sources "^1.1.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +face-api.js@^0.22.1: + version "0.22.2" + resolved "https://registry.yarnpkg.com/face-api.js/-/face-api.js-0.22.2.tgz#5accbf7e53b1569685d116a7e18dbc4800770d39" + integrity sha512-9Bbv/yaBRTKCXjiDqzryeKhYxmgSjJ7ukvOvEBy6krA0Ah/vNBlsf7iBNfJljWiPA8Tys1/MnB3lyP2Hfmsuyw== + dependencies: + "@tensorflow/tfjs-core" "1.7.0" + tslib "^1.11.1" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + +file-saver@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" + integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== + dependencies: + is-buffer "~2.0.3" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +follow-redirects@^1.0.0: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +fontfaceonload@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fontfaceonload/-/fontfaceonload-1.0.2.tgz#b783b4d252ab559a073b697586c49cd21c8ff5e7" + integrity sha512-OsgQJ62yiUO8w9MvwfhWjS3AMzJnaG2HB8PhaLwxAbFb+CahxZueiz1jBfV/JqIdGxLpZB7prCB3+IsgsDQqCA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.0.12: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.1, function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0, globals@^13.6.0, globals@^13.9.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== + +hammerjs@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" + integrity sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@1.2.0, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^2.3.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-webpack-plugin@^5.5.3: + version "5.6.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" + integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +html-webpack-template@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/html-webpack-template/-/html-webpack-template-6.2.0.tgz#3c9f15f616f4500927909d34adfbccb20d37943c" + integrity sha512-wyzIjbe9yXGyQ6yAeFjWmku7YOlW85w1dxqLnAQ564uRNNoBhpZVTQl7ouROoyQrfZUSoPUJiw7oWn31NDiuQQ== + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.13.0, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== + dependencies: + hasown "^2.0.0" + +is-any-array@^2.0.0, is-any-array@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-any-array/-/is-any-array-2.0.1.tgz#9233242a9c098220290aa2ec28f82ca7fa79899e" + integrity sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ== + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-what@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isbinaryfile@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +ismobilejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" + integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-fetch@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA== + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== + +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^2.0.4: + version "2.0.8" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== + dependencies: + html-escaper "^2.0.0" + +javascript-natural-sort@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" + integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== + +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== + dependencies: + "@jest/types" "^24.9.0" + execa "^1.0.0" + throat "^4.0.0" + +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== + dependencies: + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + import-local "^2.0.0" + is-ci "^2.0.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + prompts "^2.0.1" + realpath-native "^1.1.0" + yargs "^13.3.0" + +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + micromatch "^3.1.10" + pretty-format "^24.9.0" + realpath-native "^1.1.0" + +jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== + dependencies: + chalk "^2.0.1" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-docblock@^24.3.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== + dependencies: + detect-newline "^2.1.0" + +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== + dependencies: + "@jest/types" "^24.9.0" + chalk "^2.0.1" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + jsdom "^11.5.1" + +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== + +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== + dependencies: + "@jest/types" "^24.9.0" + anymatch "^2.0.0" + fb-watchman "^2.0.0" + graceful-fs "^4.1.15" + invariant "^2.2.4" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" + micromatch "^3.1.10" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" + +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^24.9.0" + is-generator-fn "^2.0.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + throat "^4.0.0" + +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== + dependencies: + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== + dependencies: + chalk "^2.0.1" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/stack-utils" "^1.0.1" + chalk "^2.0.1" + micromatch "^3.1.10" + slash "^2.0.0" + stack-utils "^1.0.1" + +jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== + dependencies: + "@jest/types" "^24.9.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== + +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== + dependencies: + "@jest/types" "^24.9.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.9.0" + +jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== + dependencies: + "@jest/types" "^24.9.0" + browser-resolve "^1.11.3" + chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.4.2" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-docblock "^24.3.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + realpath-native "^1.1.0" + slash "^2.0.0" + strip-bom "^3.0.0" + yargs "^13.3.0" + +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== + +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^24.9.0" + semver "^6.2.0" + +jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== + dependencies: + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + callsites "^3.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.15" + is-ci "^2.0.0" + mkdirp "^0.5.1" + slash "^2.0.0" + source-map "^0.6.0" + +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== + dependencies: + "@jest/types" "^24.9.0" + camelcase "^5.3.1" + chalk "^2.0.1" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + jest-util "^24.9.0" + string-length "^2.0.0" + +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== + dependencies: + import-local "^2.0.0" + jest-cli "^24.9.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +karma-chai@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/karma-chai/-/karma-chai-0.1.0.tgz#bee5ad40400517811ae34bb945f762909108b79a" + integrity sha512-mqKCkHwzPMhgTYca10S90aCEX9+HjVjjrBFAsw36Zj7BlQNbokXXCAe6Ji04VUMsxcY5RLP7YphpfO06XOubdg== + +karma-chrome-launcher@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" + integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== + dependencies: + which "^1.2.1" + +karma-mocha@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" + integrity sha512-twRO+KCXIFOBs7o6i7oIpTJhVvjKZbIsUM96A+k2QaeXOzbVQXCkjVzXqNeQoczW4ruasPZYi0iWMTkfTrQVCw== + dependencies: + minimist "1.2.0" + +karma@^4.2.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" + integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + braces "^3.0.2" + chokidar "^3.0.0" + colors "^1.1.0" + connect "^3.6.0" + di "^0.0.1" + dom-serialize "^2.2.0" + flatted "^2.0.0" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^4.17.14" + log4js "^4.0.0" + mime "^2.3.1" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "2.1.1" + source-map "^0.6.1" + tmp "0.0.33" + useragent "2.3.0" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +launch-editor@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +less-loader@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" + integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^4.0.1" + +less@^3.10.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" + integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== + dependencies: + copy-anything "^2.0.1" + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + native-request "^1.0.5" + source-map "~0.6.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +libsvm-js@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/libsvm-js/-/libsvm-js-0.2.1.tgz#607a0b073fb0a635546ca5b93b7205282051a877" + integrity sha512-tN9gh91NCAwSIhjgG3y8pdKETTwnwFvvSFNIrQQuJGVtAu0SO6Y43D7OEKMSVhQLQkgLADlDaqo9uxNGVEzJEA== + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.0, lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log4js@^4.0.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" + integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== + dependencies: + date-format "^2.0.0" + debug "^4.1.1" + flatted "^2.0.0" + rfdc "^1.1.4" + streamroller "^1.0.6" + +loglevel-colored-level-prefix@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" + integrity sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA== + dependencies: + chalk "^1.1.3" + loglevel "^1.4.1" + +loglevel@^1.4.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@4.1.x: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +mathjs@^7.1.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-7.6.0.tgz#f0b7579e0756b13422995d0c4f29bd17d65d4dcc" + integrity sha512-abywR28hUpKF4at5jE8Ys+Kigk40eKMT5mcBLD0/dtsqjfOLbtzd3WjlRqIopNo7oQ6FME51qph6lb8h/bhpUg== + dependencies: + complex.js "^2.0.11" + decimal.js "^10.2.1" + escape-latex "^1.2.0" + fraction.js "^4.0.12" + javascript-natural-sort "^0.7.1" + seed-random "^2.2.0" + tiny-emitter "^2.1.0" + typed-function "^2.0.0" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3, mime@^2.3.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-css-extract-plugin@^2.7.6: + version "2.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz#c73a1327ccf466f69026ac22a8e8fd707b78a235" + integrity sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +mini-signals@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mini-signals/-/mini-signals-1.2.0.tgz#45b08013c5fae51a24aa1a935cd317c9ed721d74" + integrity sha512-alffqMkGCjjTSwvYMVLx+7QeJ6sTuxbXqBkP21my4iWU5+QpTQAJt3h7htA1OKm9F3BpMM0vnu72QIoiJakrLA== + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== + dependencies: + minimist "^1.2.5" + +mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +ml-array-max@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/ml-array-max/-/ml-array-max-1.2.4.tgz#2373e2b7e51c8807e456cc0ef364c5863713623b" + integrity sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ== + dependencies: + is-any-array "^2.0.0" + +ml-array-mean@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ml-array-mean/-/ml-array-mean-1.1.6.tgz#d951a700dc8e3a17b3e0a583c2c64abd0c619c56" + integrity sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ== + dependencies: + ml-array-sum "^1.1.6" + +ml-array-min@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/ml-array-min/-/ml-array-min-1.2.3.tgz#662f027c400105816b849cc3cd786915d0801495" + integrity sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q== + dependencies: + is-any-array "^2.0.0" + +ml-array-rescale@^1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz#c4d129320d113a732e62dd963dc1695bba9a5340" + integrity sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ== + dependencies: + is-any-array "^2.0.0" + ml-array-max "^1.2.4" + ml-array-min "^1.2.3" + +ml-array-sum@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ml-array-sum/-/ml-array-sum-1.1.6.tgz#d1d89c20793cd29c37b09d40e85681aa4515a955" + integrity sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw== + dependencies: + is-any-array "^2.0.0" + +ml-cart@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ml-cart/-/ml-cart-2.1.1.tgz#18ff8d51f5002cb6c5caba0609ba4734f1fa07f3" + integrity sha512-f6rIj4EzbjqKLJa2Qmm5AjZ0WVgk+Y7J1N/+pQVaFr0d4oM1uZPLOh5h665LyH+bLBHTFEbvSR4OLKmJRQ8KfA== + dependencies: + ml-array-mean "^1.1.5" + ml-matrix "^6.8.2" + +ml-matrix@^6.8.2: + version "6.11.1" + resolved "https://registry.yarnpkg.com/ml-matrix/-/ml-matrix-6.11.1.tgz#fff3e1e7c3ad93dc996fec5d53d9dbc8e0e43473" + integrity sha512-Fvp1xF1O07tt6Ux9NcnEQTei5UlqbRpvvaFZGs7l3Ij+nOaEDcmbSVtxwNa8V4IfdyFI1NLNUteroMJ1S6vcEg== + dependencies: + is-any-array "^2.0.1" + ml-array-rescale "^1.3.7" + +mocha@^6.2.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" + integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== + dependencies: + ansi-colors "3.2.3" + browser-stdout "1.3.1" + debug "3.2.6" + diff "3.5.0" + escape-string-regexp "1.0.5" + find-up "3.0.0" + glob "7.1.3" + growl "1.10.5" + he "1.2.0" + js-yaml "3.13.1" + log-symbols "2.2.0" + minimatch "3.0.4" + mkdirp "0.5.4" + ms "2.1.1" + node-environment-flags "1.0.5" + object.assign "4.1.0" + strip-json-comments "2.0.1" + supports-color "6.0.0" + which "1.3.1" + wide-align "1.1.3" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "1.6.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +nan@^2.12.1: + version "2.19.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" + integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-request@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" + integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-environment-flags@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" + integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== + dependencies: + object.getownpropertydescriptors "^2.0.3" + semver "^5.7.0" + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-fetch@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" + integrity sha512-IHLHYskTc2arMYsHZH82PVX8CSKT5lzb7AXeyO06QnjGDKtkv+pv3mEki6S7reB/x1QPo+YPxQRNEVgR5V/w3Q== + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-notifier@^5.4.2: + version "5.4.5" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.5.tgz#0cbc1a2b0f658493b4025775a13ad938e96091ef" + integrity sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ== + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== + +nwsapi@^2.0.7: + version "2.2.10" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8" + integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.0.11, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.assign@^4.1.0, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.6: + version "2.1.8" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" + integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + gopd "^1.0.1" + safe-array-concat "^1.1.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g== + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1, optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-each-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + integrity sha512-J/e9xiZZQNrt+958FFzJ+auItsBGq+UrQ7nE89AUP7UOTtjHnkISANXLdayhVzh538UnLMCSlf13lFfRIAKQOA== + dependencies: + p-reduce "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ== + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-uri@^1.0.0: + version "1.0.9" + resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.9.tgz#813c2a1107f9e833a12490cb1cb0408a67294b8f" + integrity sha512-YZfRHHkEZa6qTfPF/xgZ1ErQYCABfud/Vcqp1Q1GNa7RKwv6Oe0YaxXfQQMnQsGdNTo3fwaT0GbVEX7dMAr7tw== + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw== + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog== + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pixi.js@*, pixi.js@5.3.7: + version "5.3.7" + resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.7.tgz#d295076cdb631a0578ee5976d9da195087b6a50e" + integrity sha512-DyFTn6sHB6njtBd879OCx7UZpt8dpVtOSNuLAdVaWZ2GhAFsTY59n07Ol0f+zx07QtpCmSt1P3pXGHjt9sPzbw== + dependencies: + "@pixi/accessibility" "5.3.7" + "@pixi/app" "5.3.7" + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/extract" "5.3.7" + "@pixi/filter-alpha" "5.3.7" + "@pixi/filter-blur" "5.3.7" + "@pixi/filter-color-matrix" "5.3.7" + "@pixi/filter-displacement" "5.3.7" + "@pixi/filter-fxaa" "5.3.7" + "@pixi/filter-noise" "5.3.7" + "@pixi/graphics" "5.3.7" + "@pixi/interaction" "5.3.7" + "@pixi/loaders" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/mesh" "5.3.7" + "@pixi/mesh-extras" "5.3.7" + "@pixi/mixin-cache-as-bitmap" "5.3.7" + "@pixi/mixin-get-child-by-name" "5.3.7" + "@pixi/mixin-get-global-position" "5.3.7" + "@pixi/particles" "5.3.7" + "@pixi/polyfill" "5.3.7" + "@pixi/prepare" "5.3.7" + "@pixi/runner" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/sprite-animated" "5.3.7" + "@pixi/sprite-tiling" "5.3.7" + "@pixi/spritesheet" "5.3.7" + "@pixi/text" "5.3.7" + "@pixi/text-bitmap" "5.3.7" + "@pixi/ticker" "5.3.7" + "@pixi/utils" "5.3.7" + +pixi.js@5.3.12: + version "5.3.12" + resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.12.tgz#1ae667dc066665b536269b0695406811a63b92fe" + integrity sha512-XZzUhrq/m6fx3E0ESv/zXKEVR/GW82dPmbwdapIqsgAldKT2QqBYMfz1WuPf+Q9moPapywVNjjyxPvh+DNPmIg== + dependencies: + "@pixi/accessibility" "5.3.12" + "@pixi/app" "5.3.12" + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/extract" "5.3.12" + "@pixi/filter-alpha" "5.3.12" + "@pixi/filter-blur" "5.3.12" + "@pixi/filter-color-matrix" "5.3.12" + "@pixi/filter-displacement" "5.3.12" + "@pixi/filter-fxaa" "5.3.12" + "@pixi/filter-noise" "5.3.12" + "@pixi/graphics" "5.3.12" + "@pixi/interaction" "5.3.12" + "@pixi/loaders" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/mesh" "5.3.12" + "@pixi/mesh-extras" "5.3.12" + "@pixi/mixin-cache-as-bitmap" "5.3.12" + "@pixi/mixin-get-child-by-name" "5.3.12" + "@pixi/mixin-get-global-position" "5.3.12" + "@pixi/particles" "5.3.12" + "@pixi/polyfill" "5.3.12" + "@pixi/prepare" "5.3.12" + "@pixi/runner" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/sprite-animated" "5.3.12" + "@pixi/sprite-tiling" "5.3.12" + "@pixi/spritesheet" "5.3.12" + "@pixi/text" "5.3.12" + "@pixi/text-bitmap" "5.3.12" + "@pixi/ticker" "5.3.12" + "@pixi/utils" "5.3.12" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-flexbugs-fixes@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== + dependencies: + postcss "^7.0.26" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" + integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prettier-eslint@^16.3.0: + version "16.3.0" + resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-16.3.0.tgz#8f7bbc863f35939948e386eafe72ffd653b2d80b" + integrity sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg== + dependencies: + "@typescript-eslint/parser" "^6.7.5" + common-tags "^1.4.0" + dlv "^1.1.0" + eslint "^8.7.0" + indent-string "^4.0.0" + lodash.merge "^4.6.0" + loglevel-colored-level-prefix "^1.0.0" + prettier "^3.0.1" + pretty-format "^29.7.0" + require-relative "^0.8.7" + typescript "^5.2.2" + vue-eslint-parser "^9.1.0" + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^3.0.1, prettier@^3.2.5: + version "3.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" + integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== + dependencies: + "@jest/types" "^24.9.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qjobs@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.11.2: + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== + dependencies: + side-channel "^1.0.6" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.8.4: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +realpath-native@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== + dependencies: + util.promisify "^1.0.0" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.5: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.87.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resize-observer-polyfill@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== + +resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resource-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/resource-loader/-/resource-loader-3.0.1.tgz#33355bb5421e2994f59454bbc7f6dbff8df06d47" + integrity sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA== + dependencies: + mini-signals "^1.2.0" + parse-uri "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.1.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== + +rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.0.0, safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sax@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +scrollbarwidth@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/scrollbarwidth/-/scrollbarwidth-0.1.3.tgz#1b0de64e288c38c427f4a01fe00a462a04b94fdf" + integrity sha512-edjn9izGjWKgnZo7A3OFsAI6otfGWp/0JLrIhe7vE/CbHZF6rwsHARwxXek0sd7ZoJxHKPl+OEA6jbqJiQQGtw== + +seed-random@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/seed-random/-/seed-random-2.2.0.tgz#2a9b19e250a817099231a5b99a4daf80b7fbed54" + integrity sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ== + +seedrandom@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc" + integrity sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q== + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.6, semver@^7.5.4: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +simplebar@^3.1.1: + version "3.1.5" + resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-3.1.5.tgz#257f2d0836baa250cd2a8841892a10c3c3081b17" + integrity sha512-6hPEvcUEbgRWAyldqdd5yd1OcrnxelopEOKwMwOafLc0/Kc3Um2x1US8t+feUAA5ae+lTbrQwcGJvMH+9A23FA== + dependencies: + can-use-dom "^0.1.0" + core-js "^2.6.2" + lodash.debounce "^4.0.8" + lodash.memoize "^4.1.2" + lodash.throttle "^4.1.1" + resize-observer-polyfill "^1.5.0" + scrollbarwidth "^0.1.3" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +skmeans@^0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/skmeans/-/skmeans-0.11.3.tgz#6d4dafb8058520a792c10bae9d9b953a6b6379f4" + integrity sha512-nccEnlSeOMNAYM9ETMSq+m15u8g0KRCIvH2an/ROTx4Igmci/j3oYHBPGdAeGjhR7knAVoIIQwr/wy2dN/eKQA== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" + integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.2.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.2.0" + to-array "0.1.4" + +socket.io-client@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.5.0.tgz#34f486f3640dde9c2211fce885ac2746f9baf5cb" + integrity sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw== + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "~1.3.0" + debug "~3.1.0" + engine.io-client "~3.5.0" + has-binary2 "~1.0.2" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" + integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.3.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.3.tgz#3a8b84823eba87f3f7624e64a8aaab6d6318a72f" + integrity sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg== + dependencies: + component-emitter "~1.3.0" + debug "~3.1.0" + isarray "2.0.1" + +socket.io@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" + integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== + dependencies: + debug "~3.1.0" + engine.io "~3.2.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.1.1" + socket.io-parser "~3.2.0" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +source-list-map@^2.0.0, source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.18" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" + integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + +streamroller@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" + integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== + dependencies: + async "^2.6.2" + date-format "^2.0.0" + debug "^3.2.6" + fs-extra "^7.0.1" + lodash "^4.17.14" + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-loader@^0.20.2: + version "0.20.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.3.tgz#ebef06b89dec491bcb1fdb3452e913a6fd1c10c4" + integrity sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^0.4.5" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== + dependencies: + has-flag "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + +table@^6.0.9: + version "6.8.2" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" + integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.10.0, terser@^5.26.0: + version "5.31.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4" + integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + +tiny-emitter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tmp@0.0.33, tmp@0.0.x: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +ts-api-utils@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + +ts-loader@^9.4.3: + version "9.5.1" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.1.tgz#63d5912a86312f1fbe32cef0859fb8b2193d9b89" + integrity sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + source-map "^0.7.4" + +tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3, tslib@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tsutils@^3.17.1: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + integrity sha512-5rqszGVwYgBoDkIm2oUtvkfZMQ0vk29iDMU0W2qCa3rG0vPDNczCMT4hV/bLBgLg8k8ri6+u3Zbt+S/14eMzlA== + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + integrity sha512-f9Uv6ezcpvCQjJU0Zqbg+65qdcszv3qUQsZfjdRbWiZ7AMenrX1u0lNk9EoWWX6e1F+NULyg27mtdeZ5WhpljA== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typed-function@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-2.1.0.tgz#ded6f8a442ba8749ff3fe75bc41419c8d46ccc3f" + integrity sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ== + +typescript@^4.7.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +typescript@^5.2.2: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +ua-parser-js@^1.0.35: + version "1.0.38" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.38.tgz#66bb0c4c0e322fe48edfe6d446df6042e62f25e2" + integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ== + +uid@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/uid/-/uid-0.0.2.tgz#5e4a5d4b78138b4f70f89fd3c76fc59aa9d2f103" + integrity sha512-KerEqWSoUfzAYsB4RznGPygtEk1p04caicg8FxqzZ1VYI3GsYHPzouUO5jJvwwy4sg6B1jnSkSjYgGvE4CK6Gg== + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +update-browserslist-db@^1.0.16: + version "1.0.16" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +uri-js@^4.2.2, uri-js@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-loader@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== + dependencies: + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" + +url@^0.11.0: + version "0.11.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" + integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== + dependencies: + punycode "^1.4.1" + qs "^6.11.2" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +useragent@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== + dependencies: + lru-cache "4.1.x" + tmp "0.0.x" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.2.tgz#02b3dbadbb80071eee4c43aed58747afdfc516db" + integrity sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + for-each "^0.3.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + object.getownpropertydescriptors "^2.1.6" + safe-array-concat "^1.0.0" + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.4.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" + integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== + +vue-eslint-parser@^9.1.0: + version "9.4.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +w3c-hr-time@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-cli@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" + colorette "^2.0.14" + commander "^10.0.1" + cross-spawn "^7.0.3" + envinfo "^7.7.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^3.1.1" + rechoir "^0.8.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.15.0: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" + +webpack-manifest-plugin@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-5.0.0.tgz#084246c1f295d1b3222d36e955546433ca8df803" + integrity sha512-8RQfMAdc5Uw3QbCQ/CBV/AXqOR8mt03B6GJmRbhWopE8GzRfEpn+k0ZuWywxW+5QZsffhmFDY1J6ohqJo+eMuw== + dependencies: + tapable "^2.0.0" + webpack-sources "^2.2.0" + +webpack-merge@^5.7.3, webpack-merge@^5.9.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-sources@^1.1.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-strip-block@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/webpack-strip-block/-/webpack-strip-block-0.3.0.tgz#e864c8d71fade02c55332f7fb34f7970ba5076c8" + integrity sha512-rXN+SI6S7tzUr1Jvhq3Rcl2bGfpY5ZC9XSRm2rH68eYkDheCczEs61iir1A00iv1Nt8FY1J6BDRgXKtil+fk+g== + dependencies: + loader-utils "^1.1.0" + +webpack@^5.85.0: + version "5.91.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.16.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@>=0.10.0: + version "3.6.20" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@1.3.1, which@^1.2.1, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +word-wrap@^1.2.5, word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== + +worker-loader@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37" + integrity sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" + integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +ws@^5.2.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" + integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== + dependencies: + async-limiter "~1.0.0" + +ws@^8.13.0: + version "8.17.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== + +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@~7.4.2: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha512-/bFPLUgJrfGUL10AIv4Y7/CUt6so9CLtB/oFxQSHseSDNNCdC6vwwKEqwLN6wNPBg9YWXAiMu8jkf6RPRS/75Q== + +xmlhttprequest-ssl@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" + integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== + +xss-filters@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/xss-filters/-/xss-filters-1.2.7.tgz#59fa1de201f36f2f3470dcac5f58ccc2830b0a9a" + integrity sha512-KzcmYT/f+YzcYrYRqw6mXxd25BEZCxBQnf+uXTopQDIhrmiaLwO+f+yLsIvvNlPhYvgff8g3igqrBxYh9k8NbQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-unparser@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" + integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== + dependencies: + flat "^4.1.0" + lodash "^4.17.15" + yargs "^13.3.0" + +yargs@13.3.2, yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From acaf56516213a58eb1e2b731e5cd1ddc9ebaf8ce Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 11 Sep 2024 12:26:16 +0900 Subject: [PATCH 11/65] backup --- .../blocks/hardware/block_avatarbot.js | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index c35dd9f669..6a0fb691f6 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -86,6 +86,12 @@ Entry.avatarbot = { Entry.hw.sendQueue.CMD[index+7] = (Entry.avatarbot.Board_Servo.us_Max)&0xff; Entry.hw.sendQueue.CMD[index+8] = (Entry.avatarbot.Board_Servo.us_Max>>8)&0xff; } + + // led + index = Entry.avatarbot.BoardFunType.LED_Strip; + Entry.hw.sendQueue.CMD[index+2] = (Entry.avatarbot.Board_LED_Strip.led_num)&0xff; + Entry.hw.sendQueue.CMD[index+7] = (Entry.avatarbot.Board_LED_Strip.brightness)&0xff; + // /* for(var i=0; i<(data.length/10); i++) @@ -280,11 +286,13 @@ Entry.avatarbot = { Board_LED_Strip : { En:0, sample: 0, - led_num: 0, + led_num: 64, color_order: 0, r: 0, g: 0, - b: 0 + b: 0, + brightness:63, + set_en: 0, }, Board_ultraSonic : { @@ -296,7 +304,6 @@ Entry.avatarbot = { ch1_cm: 0, ch2_inch: 0 }, - /* monitorTemplate: { imgPath: 'hardware/avatarbot.png', @@ -445,7 +452,7 @@ Entry.avatarbot.setLanguage = function() { avatarbot_buzzer_sample: '부저 샘플 (으)로 동작 ', avatarbot_buzzer: '부저 %1 소리로 %2 초 동안 동작 ', avatarbot_led_strip_sample: 'LED 스트립 (으)로 동작 ', - avatarbot_led_strip_set: 'LED 스트립 LED %1 개, 밝기 %2 동작 ', + avatarbot_led_strip_set: 'LED 스트립 LED %1 개, 밝기 %2 % 동작 ', // avatarbot_ir_remote: '리모컨 %1 (으)로 동작 ', avatarbot_get_mpu6050: '자이로 가속도 센서 %1 값 ', avatarbot_ultra_sonic:'초음파 %1 번 센서 값 ', @@ -2152,7 +2159,7 @@ Entry.avatarbot.getBlocks = function() { }, paramsKeyMap: { VALUE1: 0, - VALUE2: 0, + VALUE2: 1, }, class: 'avatarbot_buzzer', isNotFor: ['avatarbot'], @@ -2329,7 +2336,7 @@ Entry.avatarbot.getBlocks = function() { params: [ { type: 'avatarbot_text', - params: ['51'], + params: ['64'], }, { type: 'avatarbot_text', @@ -2340,7 +2347,7 @@ Entry.avatarbot.getBlocks = function() { }, paramsKeyMap: { VALUE1: 0, - VALUE2: 0, + VALUE2: 1, }, class: 'avatarbot_led', isNotFor: ['avatarbot'], @@ -2362,9 +2369,10 @@ Entry.avatarbot.getBlocks = function() { let index = Entry.avatarbot.BoardFunType.LED_Strip; Entry.hw.sendQueue.CMD[index] = 1; // ch en - Entry.hw.sendQueue.CMD[index+1] = 1; // sample 0, 1~other... + Entry.hw.sendQueue.CMD[index+1] = 0; // sample 0, 1~other... Entry.hw.sendQueue.CMD[index+2] = value; Entry.hw.sendQueue.CMD[index+7] = brightness; + Entry.hw.sendQueue.CMD[index+8] = 1; // setting enable. Entry.hw.update(); return script.callReturn(); From 036992e42eec60f3a13ce6d01aa90c98fcfd39cc Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Thu, 12 Sep 2024 15:56:37 +0900 Subject: [PATCH 12/65] irreceiver --- .../blocks/hardware/block_avatarbot.js | 166 +++++++++++++++++- 1 file changed, 165 insertions(+), 1 deletion(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index 6a0fb691f6..513f570c4f 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -58,6 +58,10 @@ Entry.avatarbot = { Entry.hw.sendQueue.CMD[index+4] = (Entry.avatarbot.Board_ADC.Attenuation_11db)&0xff; Entry.hw.sendQueue.CMD[index+5] = (Entry.avatarbot.Board_ADC.Resolution)&0xff; + // ir receiver + index = Entry.avatarbot.BoardFunType.IR_Remote; + Entry.hw.sendQueue.CMD[index+1] = (Entry.avatarbot.Board_IR_Remote.Value)&0xff; + // pca9568 index = Entry.avatarbot.BoardFunType.PCA9568; Entry.hw.sendQueue.CMD[index+1] = (Entry.avatarbot.Board_PCA9568.Freq)&0xff; @@ -169,7 +173,12 @@ Entry.avatarbot = { }, Board_IR_Remote : { - En: 0 + Flag: 0, + Value: 0xff, + Repeat: 0, + Address: 0, + Command: 0, + Raw_data: 0 }, Board_Buzzer : { @@ -457,6 +466,8 @@ Entry.avatarbot.setLanguage = function() { avatarbot_get_mpu6050: '자이로 가속도 센서 %1 값 ', avatarbot_ultra_sonic:'초음파 %1 번 센서 값 ', // + avatarbot_ir_receiver:'리모컨 %1 동작 ', + // }, Device: { avatarbot: 'avatarbot', @@ -512,6 +523,8 @@ Entry.avatarbot.blockMenuBlocks = [ // 'avatarbot_ir_remote', 'avatarbot_get_mpu6050', 'avatarbot_ultra_sonic', + // + 'avatarbot_ir_receiver', ]; // 블록 생성 @@ -2545,6 +2558,157 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- + avatarbot_ir_receiver: { + color: EntryStatic.colorSet.block.default.HARDWARE, //블록 색상 + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, //경계선 색상 + fontColor: '#fff', // 폰트색상 basic_string_field는 기본 색상이 검정색(#000) 입니다. + skeleton: 'basic_string_field', // 블록 모양 정의 + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['기본', '0'], + ['상세', '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { // 보여질 블록 정의 + // def의 params의 경우는 초기값을 지정할수 있습니다. + // TextInput의 경우에도 def > params을 통해 값을 지정할수 있습니다. + params: [ + null, + ], + type: 'avatarbot_ir_receiver', // func name + }, + paramsKeyMap: { // 파라미터를 사용 할때 쓰는 Key값 정의 + VALUE: 0, + }, + class: 'avatarbot_ir_receiver_data', + isNotFor: ['avatarbot'], + func(sprite, script) { // 블록 기능정의 + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } + // let sensorData = Entry.hw.portData.CMD[Entry.avatarbot.BoardFunType.Button+1] == 0 ? 0 : 1; + // Entry.hw.sendQueue.CMD[Entry.avatarbot.BoardFunType.Button+1] = 0; + // Entry.hw.update(); + // return sensorData; + //--- + // 해당 값을 getField, getValue로 가져오고 + // 가져 올때 paramsKeyMap에서 + // 정의한 VALUE라는 키값으로 데이터를 가져옵니다. + // const signal = script.getValue('VALUE', script); + // return Entry.hw.getAnalogPortValue(signal[1]); + const type = script.getNumberValue('VALUE', script); + let index = Entry.avatarbot.BoardFunType.IR_Remote; + // data list + let ir_flag = Entry.hw.portData.CMD[index+0]; // 0 or 1 + let ir_value = Entry.hw.portData.CMD[index+1]; // 0 or 1 + let ir_repeat = Entry.hw.portData.CMD[index+2]; // 0 or 1 + let ir_address = Entry.hw.portData.CMD[index+3]; // 0 or 1 + let ir_command = Entry.hw.portData.CMD[index+4]; // 0 or 1 + + let ir_raw_data = 0x00000000; // unsigned int + ir_raw_data = Entry.hw.portData.CMD[index+5]; // unsigned int + ir_raw_data += (Entry.hw.portData.CMD[index+6]<<8); + ir_raw_data += (Entry.hw.portData.CMD[index+7]<<16); + ir_raw_data += (Entry.hw.portData.CMD[index+8]<<24); + + // let mpu6050 = `Acceleration X: ${acceleration_x}, Y: ${acceleration_y}, Z: ${acceleration_z} m/s^2\nRotation X: ${rotation_x}, Y: ${rotation_y}, Z: ${rotation_z} rad/s\nTemperature: ${temperature} degC`; + + let ir_revicer = ""; + if(ir_flag == 1) + { + if(type == 1) + { + ir_revicer = `장치(${ir_address}), 값(${ir_command}), `; + } + + switch(ir_value) + { + case 0: // power + ir_revicer += `전원`; + break; + case 1: // up + ir_revicer += `위`; + break; + case 2: // down + ir_revicer += `아래`; + break; + case 3: // left + ir_revicer += `왼쪽`; + break; + case 4: // right + ir_revicer += `오른쪽`; + break; + case 5: // ok + ir_revicer += `ok`; + break; + case 6: // * + ir_revicer += `*`; + break; + case 7: // # + ir_revicer += `#`; + break; + case 8: // nb0 + ir_revicer += `0`; + break; + case 9: // 1 + ir_revicer += `1`; + break; + case 10:// 2 + ir_revicer += `2`; + break; + case 11: // 3 + ir_revicer += `3`; + break; + case 12: // 4s + ir_revicer += `4`; + break; + case 13: // 5 + ir_revicer += `5`; + break; + case 14: // 6 + ir_revicer += `6`; + break; + case 15: // 7 + ir_revicer += `7`; + break; + case 16: // 8 + ir_revicer += `8`; + break; + case 17: // 9 + ir_revicer += `9`; + break; + default: + break; + } + } + + Entry.hw.sendQueue.CMD[index] = 0; // flag clear x -> 0 + Entry.hw.update(); + return ir_revicer; + + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.get_ir_receiver()', + blockType: 'param', + textParams: [ + ], + }, + ], + }, + }, + //--------------------------------------------------------------- //endregion avatarbot 아두이노 //--------------------------------------------------------------- }; From 63f7dc1c2b82abca3e309f11c3c2d36bc7d5a69d Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Thu, 12 Sep 2024 18:21:41 +0900 Subject: [PATCH 13/65] oled fix --- .../blocks/hardware/block_avatarbot.js | 428 ++++++++++++++++-- 1 file changed, 400 insertions(+), 28 deletions(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index 513f570c4f..ea51c03429 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -114,6 +114,7 @@ Entry.avatarbot = { BoardFunType : { Info: 0, Button:10, + OLED:12, // OLED : 12(EN),13(Sample) GPIO_PWM_SET: 20, GPIO_PWM: 30, ADC: 40, @@ -426,6 +427,7 @@ Entry.avatarbot.setLanguage = function() { avatarbot_get_adc_dac_sonic_number: '%1 ', avatarbot_get_gpio_dc_number: '%1 ', avatarbot_get_serve_number: '%1 ', + avatarbot_get_oled_number: '%1 ', avatarbot_get_pwm_port_number: '%1 ', avatarbot_get_buzzer_tone_number: '%1 ', avatarbot_get_buzzer_time_number: '%1 ', @@ -444,29 +446,33 @@ Entry.avatarbot.setLanguage = function() { avatarbot_ext_get_digital: '디지털 %1 번 센서값', avatarbot_DC_CW: '정회전', avatarbot_DC_CCW: '역회전', + avatarbot_func_on: '시작', + avatarbot_func_off: '정지', // // avatarbot_hw_test: 'AvatarBot HW Test %1 번 값 ', // - avatarbot_get_button: '버튼 값 ', - avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 ', // adc - avatarbot_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 ', - avatarbot_get_digital_value: '디지털 %1 번 센서값 ', - avatarbot_toggle_led: 'LED %1 번 핀 %2 %3', - avatarbot_toggle_pwm: 'PWM %1 번 핀을 %2 % (으)로 정하기 ', + avatarbot_get_button: '버튼 값 가져오기 ', + avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 가져오기 ', // adc + avatarbot_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 가져오기 ', + avatarbot_get_digital_value: '디지털 %1 번 센서값 가져오기 ', + avatarbot_toggle_led: 'LED %1 번 핀 %2 %3 ', + avatarbot_toggle_pwm: 'PWM %1 번 핀을 %2 % 로 %3 ', // // avatarbot_pca9568: '모터 컨트롤 주파수 %1 와 오실레이터 %2 (으)로 설정 ', - avatarbot_servo: '서보 모터 %1 을 시간(us) %2 ~ %3 (으)로 %4 ° 동작 ', - avatarbot_dc: 'DC 모터 %1 을 %2 방향으로 %3 % (으)로 동작 ', - avatarbot_buzzer_sample: '부저 샘플 (으)로 동작 ', - avatarbot_buzzer: '부저 %1 소리로 %2 초 동안 동작 ', - avatarbot_led_strip_sample: 'LED 스트립 (으)로 동작 ', - avatarbot_led_strip_set: 'LED 스트립 LED %1 개, 밝기 %2 % 동작 ', + avatarbot_servo: '서보 모터 %1 을 시간(us) %2 ~ %3로 %4 ° %5 ', + avatarbot_dc: 'DC 모터 %1 을 %2 방향으로 %3 % %4 ', + avatarbot_buzzer_sample: '부저 샘플 %1 ', + avatarbot_buzzer: '부저 %1 소리로 %2 초 동안 %3 ', + avatarbot_led_strip_sample: 'LED 스트립 샘플 %1 ', + avatarbot_led_strip_set: 'LED 스트립 LED %1 개, 밝기 %2 % 설정 ', // avatarbot_ir_remote: '리모컨 %1 (으)로 동작 ', - avatarbot_get_mpu6050: '자이로 가속도 센서 %1 값 ', - avatarbot_ultra_sonic:'초음파 %1 번 센서 값 ', + avatarbot_get_mpu6050: '자이로 가속도 센서 %1 값 가져오기 ', + avatarbot_ultra_sonic:'초음파 %1 번 센서 값 가져오기 ', // - avatarbot_ir_receiver:'리모컨 %1 동작 ', + avatarbot_ir_receiver:'리모컨 %1 모드로 값 가져오기 ', + + avatarbot_oled_sample:'OLED %1 화면으로 %2 ', // }, Device: { @@ -525,6 +531,7 @@ Entry.avatarbot.blockMenuBlocks = [ 'avatarbot_ultra_sonic', // 'avatarbot_ir_receiver', + 'avatarbot_oled_sample', ]; // 블록 생성 @@ -1130,6 +1137,8 @@ Entry.avatarbot.getBlocks = function() { ['3', '3'], ['4', '4'], ['5', '5'], + ['6', '6'], + ['7', '7'], ], value: '0', fontSize: 11, @@ -1162,6 +1171,8 @@ Entry.avatarbot.getBlocks = function() { ['3', '3'], ['4', '4'], ['5', '5'], + ['6', '6'], + ['7', '7'], ], value: '0', fontSize: 11, @@ -1175,6 +1186,88 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- + avatarbot_get_oled_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['none', '0'], + ['lines', '1'], + ['rectangles', '2'], + ['fill rectangles', '3'], + ['circles', '4'], + ['fill circles', '5'], + ['round', '6'], + ['fill round', '7'], + ['triangles', '8'], + ['fill triangles', '9'], + ['text', '10'], + ['stylized text', '11'], + ['scroll text', '12'], + ['bitmap', '13'], + ['snow bitmap', '14'], + ['logo text', '15'], + ['image', '16'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + PORT: 0, + }, + func(sprite, script) { + return script.getStringField('PORT'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['none', '0'], + ['lines', '1'], + ['rectangles', '2'], + ['fill rectangles', '3'], + ['circles', '4'], + ['fill circles', '5'], + ['round', '6'], + ['fill round', '7'], + ['triangles', '8'], + ['fill triangles', '9'], + ['text', '10'], + ['stylized text', '11'], + ['scroll text', '12'], + ['bitmap', '13'], + ['snow bitmap', '14'], + ['logo text', '15'], + ['image', '16'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + keyOption: 'avatarbot_get_oled_number', + }, + ], + }, + }, + //--------------------------------------------------------------- /* avatarbot_get_pwm_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, @@ -1630,10 +1723,21 @@ Entry.avatarbot.getBlocks = function() { bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, - { + /*{ type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12, + },*/ + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, ], events: {}, @@ -1650,6 +1754,7 @@ Entry.avatarbot.getBlocks = function() { paramsKeyMap: { VALUE: 0, OPERATOR: 1, + RUN:2, }, class: 'avatarbot_gpio_pwm', isNotFor: ['avatarbot'], @@ -1661,13 +1766,15 @@ Entry.avatarbot.getBlocks = function() { const signal = script.getNumberValue('VALUE', script); const operator = script.getField('OPERATOR'); + const run = script.getField('RUN'); const value = operator == 'on' ? 255 : 0; - + const on = run == '1' ? 1 : 0; + let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; // let sensorData = Entry.hw.portData.CMD[index+3] == 0 ? 0 : 1; // ch0, ch1 value // digital setting - Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index] = on; // 1; // ch en Entry.hw.sendQueue.CMD[index+1] = value; // duty or value Entry.hw.sendQueue.CMD[index+2] = 1; // type out(0) Entry.hw.update(); @@ -1678,7 +1785,7 @@ Entry.avatarbot.getBlocks = function() { js: [], py: [ { - syntax: 'avatarbot.pin_digital(%1, %2)', + syntax: 'avatarbot.pin_digital(%1, %2, %3)', textParams: [ { type: 'Block', @@ -1696,6 +1803,19 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, converter: Entry.block.converters.returnStringValue, }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], }, ], @@ -1718,6 +1838,17 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, ], events: {}, def: { @@ -1735,6 +1866,7 @@ Entry.avatarbot.getBlocks = function() { paramsKeyMap: { PORT: 0, VALUE: 1, + RUN:2, }, class: 'avatarbot_gpio_pwm', isNotFor: ['avatarbot'], @@ -1745,6 +1877,9 @@ Entry.avatarbot.getBlocks = function() { const signal = script.getNumberValue('PORT'); let value = script.getNumberValue('VALUE'); + const run = script.getField('RUN'); + const on = run == '1' ? 1 : 0; + value = Math.round(value); value = Math.max(value, 0); value = Math.min(value, 100); @@ -1752,7 +1887,7 @@ Entry.avatarbot.getBlocks = function() { let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; // digital setting - Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index] = on; // 1; // ch en Entry.hw.sendQueue.CMD[index+1] = value; // duty or value : 0 ~ 255 Entry.hw.sendQueue.CMD[index+2] = 2; // type pwm(2) Entry.hw.update(); @@ -1773,6 +1908,18 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, ], }, ], @@ -1892,6 +2039,17 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, ], events: {}, def: { @@ -1911,6 +2069,7 @@ Entry.avatarbot.getBlocks = function() { type: 'number', params: ['0'], }, + null, ], type: 'avatarbot_servo', }, @@ -1919,6 +2078,7 @@ Entry.avatarbot.getBlocks = function() { VALUE2: 1, VALUE3: 2, VALUE4: 3, + RUN:4, }, class: 'avatarbot', isNotFor: ['avatarbot'], @@ -1931,6 +2091,9 @@ Entry.avatarbot.getBlocks = function() { let us_min = script.getNumberValue('VALUE2', script); let us_max = script.getNumberValue('VALUE3', script); let value = script.getNumberValue('VALUE4', script); + const run = script.getField('RUN'); + const on = run == '1' ? 1 : 0; + us_min = Math.round(us_min); us_max = Math.round(us_max); value = Math.round(value); @@ -1947,7 +2110,7 @@ Entry.avatarbot.getBlocks = function() { let index = (signal*10) + Entry.avatarbot.BoardFunType.Servo_M0; // base+10,20,30,...n // digital setting - Entry.hw.sendQueue.CMD[index] = 1; // ch en + Entry.hw.sendQueue.CMD[index] = on; // 1; // ch en // Entry.hw.sendQueue.CMD[index+1] = 0; // pulse min low // Entry.hw.sendQueue.CMD[index+2] = 0; // pulse min high // Entry.hw.sendQueue.CMD[index+3] = 0; // pulse max low @@ -1984,6 +2147,18 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, ], }, ], @@ -2018,6 +2193,17 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, ], events: {}, def: { @@ -2030,6 +2216,7 @@ Entry.avatarbot.getBlocks = function() { type: 'number', params: ['0'], }, + null, ], type: 'avatarbot_dc', }, @@ -2037,6 +2224,7 @@ Entry.avatarbot.getBlocks = function() { VALUE1: 0, VALUE2: 1, VALUE3: 2, + RUN:3, }, class: 'avatarbot', isNotFor: ['avatarbot'], @@ -2052,13 +2240,16 @@ Entry.avatarbot.getBlocks = function() { const signal = script.getNumberValue('VALUE1', script); let cw = script.getNumberValue('VALUE2', script); let speed = script.getNumberValue('VALUE3', script); - + const run = script.getField('RUN'); + const on = run == '1' ? 1 : 0; + speed = Math.round(speed); speed = Math.max(speed, 0); speed = Math.min(speed, 100); let index = (signal*2) + Entry.avatarbot.BoardFunType.DC_M; // base+2,4,6,8 - Entry.hw.sendQueue.CMD[index] = (1 + (cw<<4))&0xff; // ch en + // Entry.hw.sendQueue.CMD[index] = (1 + (cw<<4))&0xff; // ch en + Entry.hw.sendQueue.CMD[index] = (on + (cw<<4))&0xff; // ch en Entry.hw.sendQueue.CMD[index+1] = speed&0xff; Entry.hw.update(); @@ -2091,6 +2282,18 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, ], }, ], @@ -2103,16 +2306,29 @@ Entry.avatarbot.getBlocks = function() { skeleton: 'basic', statements: [], params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, ], events: {}, def: { params: [ + null, ], type: 'avatarbot_buzzer_sample', }, paramsKeyMap: { // PORT: 0, // VALUE: 0, + RUN:0, }, class: 'avatarbot_buzzer', isNotFor: ['avatarbot'], @@ -2122,8 +2338,11 @@ Entry.avatarbot.getBlocks = function() { } let index = Entry.avatarbot.BoardFunType.Buzzer; + const run = script.getField('RUN'); + const on = run == '1' ? 1 : 0; + // digital setting - Entry.hw.sendQueue.CMD[index] = 1; // buzzer en + Entry.hw.sendQueue.CMD[index] = on; // 1; // buzzer en Entry.hw.sendQueue.CMD[index+1] = 1; // buzzer sample Entry.hw.update(); return script.callReturn(); @@ -2134,6 +2353,18 @@ Entry.avatarbot.getBlocks = function() { { syntax: 'avatarbot.buzzer_sample()', textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, ], }, ], @@ -2157,6 +2388,17 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, ], events: {}, def: { @@ -2167,12 +2409,14 @@ Entry.avatarbot.getBlocks = function() { { type: 'avatarbot_get_buzzer_time_number', // 0 ~ 4s }, + null, ], type: 'avatarbot_buzzer', }, paramsKeyMap: { VALUE1: 0, VALUE2: 1, + RUN: 2, }, class: 'avatarbot_buzzer', isNotFor: ['avatarbot'], @@ -2183,10 +2427,12 @@ Entry.avatarbot.getBlocks = function() { const tone = script.getNumberValue('VALUE1'); const time = script.getNumberValue('VALUE2'); - + const run = script.getField('RUN'); + const on = run == '1' ? 1 : 0; + let index = Entry.avatarbot.BoardFunType.Buzzer; // digital setting - Entry.hw.sendQueue.CMD[index] = 1; // buzzer en + Entry.hw.sendQueue.CMD[index] = on; // 1; // buzzer en Entry.hw.sendQueue.CMD[index+1] = 0; // buzzer sample Entry.hw.sendQueue.CMD[index+2] = tone; // tone0 // Entry.hw.sendQueue.CMD[index+3] = 0; // tone1 @@ -2215,6 +2461,18 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, ], }, ], @@ -2292,14 +2550,27 @@ Entry.avatarbot.getBlocks = function() { skeleton: 'basic', statements: [], params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, ], events: {}, def: { params: [ + null, ], type: 'avatarbot_led_strip_sample', }, paramsKeyMap: { + RUN: 0, }, class: 'avatarbot_led', isNotFor: ['avatarbot'], @@ -2309,8 +2580,11 @@ Entry.avatarbot.getBlocks = function() { } let index = Entry.avatarbot.BoardFunType.LED_Strip; - Entry.hw.sendQueue.CMD[index] = 1; // ch en - Entry.hw.sendQueue.CMD[index+1] = 1; // sample 0, 1~other... + const run = script.getField('RUN'); + const on = run == '1' ? 1 : 0; + + Entry.hw.sendQueue.CMD[index] = on; // 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = 1; // 0 : not run, sample 1, 1~other... Entry.hw.update(); return script.callReturn(); @@ -2321,7 +2595,20 @@ Entry.avatarbot.getBlocks = function() { { syntax: 'avatarbot.set_led_strip_sample()', textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, ], + }, ], }, @@ -2606,6 +2893,7 @@ Entry.avatarbot.getBlocks = function() { // const signal = script.getValue('VALUE', script); // return Entry.hw.getAnalogPortValue(signal[1]); const type = script.getNumberValue('VALUE', script); + let index = Entry.avatarbot.BoardFunType.IR_Remote; // data list let ir_flag = Entry.hw.portData.CMD[index+0]; // 0 or 1 @@ -2709,6 +2997,90 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- + avatarbot_oled_sample: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + { + type: 'avatarbot_get_oled_number', + }, + null, + ], + type: 'avatarbot_oled_sample', + }, + paramsKeyMap: { + VALUE1: 0, + RUN: 1, + }, + class: 'avatarbot_oled', + isNotFor: ['avatarbot'], + func(sprite, script) { + if (!Entry.hw.sendQueue.CMD) { + Entry.avatarbot.dataTableReset(); + } + const sample = script.getNumberValue('VALUE1', script); + const run = script.getField('RUN'); + const on = run == '1' ? 1 : 0; + + let index = Entry.avatarbot.BoardFunType.OLED; + + Entry.hw.sendQueue.CMD[index] = on; // 1; // ch en + Entry.hw.sendQueue.CMD[index+1] = sample; // 0 : not run, sample 1~n + Entry.hw.update(); + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'avatarbot.set_oled_sample(%1 %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.template.avatarbot_func_on, '1'], + [Lang.template.avatarbot_func_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + + }, + ], + }, + }, + //--------------------------------------------------------------- //endregion avatarbot 아두이노 //--------------------------------------------------------------- }; From 4e0b570f8441b5d9771628918711628d80dc43d4 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Fri, 13 Sep 2024 17:28:24 +0900 Subject: [PATCH 14/65] buzzer timer fix --- .../blocks/hardware/block_avatarbot.js | 321 +++++++++++++++--- 1 file changed, 278 insertions(+), 43 deletions(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index ea51c03429..6ee54a59b7 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -30,7 +30,10 @@ Entry.avatarbot = { dataTableReset() { this.sendBuffer.fill(0); Entry.hw.sendQueue.CMD = this.sendBuffer; - /* + + this.dc_m_index.fill(0); + this.buzzer_index = 0; + /* Entry.hw.sendQueue.readablePorts = []; // data buffer 23*10 table value. for (let index = 0; index < 230; index++) { @@ -113,6 +116,7 @@ Entry.avatarbot = { }, BoardFunType : { Info: 0, + Info_isConnect: 5, Button:10, OLED:12, // OLED : 12(EN),13(Sample) GPIO_PWM_SET: 20, @@ -181,7 +185,8 @@ Entry.avatarbot = { Command: 0, Raw_data: 0 }, - + + buzzer_index: 0, Board_Buzzer : { En: 0, sample: 0, @@ -271,6 +276,7 @@ Entry.avatarbot = { us_Max: 2100 }, + dc_m_index: new Array(4).fill(0), Board_DC_M : { En0:0, CCW0:0, @@ -424,6 +430,7 @@ Entry.avatarbot.setLanguage = function() { // global. avatarbot: 'avatarbot', avatarbot_text: '%1', + avatarbot_get_timer_number: '%1 ', avatarbot_get_adc_dac_sonic_number: '%1 ', avatarbot_get_gpio_dc_number: '%1 ', avatarbot_get_serve_number: '%1 ', @@ -456,14 +463,14 @@ Entry.avatarbot.setLanguage = function() { avatarbot_get_number_sensor_value: '아날로그 %1 번 센서값 가져오기 ', // adc avatarbot_convert_scale: '%1 값의 범위를 %2 ~ %3 에서 %4 ~ %5 (으)로 바꾼값 가져오기 ', avatarbot_get_digital_value: '디지털 %1 번 센서값 가져오기 ', - avatarbot_toggle_led: 'LED %1 번 핀 %2 %3 ', + avatarbot_toggle_led: 'LED %1 번 핀 %2 ', avatarbot_toggle_pwm: 'PWM %1 번 핀을 %2 % 로 %3 ', // // avatarbot_pca9568: '모터 컨트롤 주파수 %1 와 오실레이터 %2 (으)로 설정 ', avatarbot_servo: '서보 모터 %1 을 시간(us) %2 ~ %3로 %4 ° %5 ', - avatarbot_dc: 'DC 모터 %1 을 %2 방향으로 %3 % %4 ', - avatarbot_buzzer_sample: '부저 샘플 %1 ', - avatarbot_buzzer: '부저 %1 소리로 %2 초 동안 %3 ', + avatarbot_dc: 'DC 모터 %1 을 %2 방향으로 %3 % %4 동작 ', + avatarbot_buzzer_sample: '부저 샘플 %1 %2 초 동안 시작 ', + avatarbot_buzzer: '부저 %1 소리로 %2 초 동안 시작 ', avatarbot_led_strip_sample: 'LED 스트립 샘플 %1 ', avatarbot_led_strip_set: 'LED 스트립 LED %1 개, 밝기 %2 % 설정 ', // avatarbot_ir_remote: '리모컨 %1 (으)로 동작 ', @@ -878,7 +885,7 @@ Entry.avatarbot.getBlocks = function() { { type: 'Dropdown', options: [ - ['0', '0'], + ['정지', '0'], ['1', '1'], ['2', '2'], ['3', '3'], @@ -887,7 +894,7 @@ Entry.avatarbot.getBlocks = function() { ['6', '6'], ['7', '7'], ], - value: '0', + value: '4', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, @@ -912,7 +919,7 @@ Entry.avatarbot.getBlocks = function() { { type: 'Dropdown', options: [ - ['0', '0'], + ['정지', '0'], ['1', '1'], ['2', '2'], ['3', '3'], @@ -921,7 +928,7 @@ Entry.avatarbot.getBlocks = function() { ['6', '6'], ['7', '7'], ], - value: '0', + value: '4', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, @@ -1268,6 +1275,76 @@ Entry.avatarbot.getBlocks = function() { }, }, //--------------------------------------------------------------- + avatarbot_get_timer_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['정지', '0'], + ['1 초', '1'], + ['2 초', '2'], + ['3 초', '3'], + ['4 초', '4'], + ['5 초', '5'], + ['6 초', '6'], + ['7 초', '7'], + ['8 초', '8'], + ['9 초', '9'], + ['10초', '10'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + }, + paramsKeyMap: { + TIME: 0, + }, + func(sprite, script) { + return script.getStringField('TIME'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['정지', '0'], + ['1 초', '1'], + ['2 초', '2'], + ['3 초', '3'], + ['4 초', '4'], + ['5 초', '5'], + ['6 초', '6'], + ['7 초', '7'], + ['8 초', '8'], + ['9 초', '9'], + ['10초', '10'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + keyOption: 'avatarbot_get_timer_number', + }, + ], + }, + }, + //--------------------------------------------------------------- /* avatarbot_get_pwm_port_number: { color: EntryStatic.colorSet.block.default.HARDWARE, @@ -1728,6 +1805,7 @@ Entry.avatarbot.getBlocks = function() { img: 'block_icon/hardware_icon.svg', size: 12, },*/ + /* { type: 'Dropdown', options: [ @@ -1739,6 +1817,7 @@ Entry.avatarbot.getBlocks = function() { bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, + */ ], events: {}, def: { @@ -1747,14 +1826,14 @@ Entry.avatarbot.getBlocks = function() { type: 'avatarbot_get_port_number', }, null, - null, + // null, ], type: 'avatarbot_toggle_led', }, paramsKeyMap: { VALUE: 0, OPERATOR: 1, - RUN:2, + // RUN:2, }, class: 'avatarbot_gpio_pwm', isNotFor: ['avatarbot'], @@ -1766,9 +1845,10 @@ Entry.avatarbot.getBlocks = function() { const signal = script.getNumberValue('VALUE', script); const operator = script.getField('OPERATOR'); - const run = script.getField('RUN'); + // const run = script.getField('RUN'); const value = operator == 'on' ? 255 : 0; - const on = run == '1' ? 1 : 0; + // const on = run == '1' ? 1 : 0; + const on = operator == 'on' ? 1 : 0; let index = (signal*4) + Entry.avatarbot.BoardFunType.GPIO_PWM; // let sensorData = Entry.hw.portData.CMD[index+3] == 0 ? 0 : 1; // ch0, ch1 value @@ -1785,7 +1865,7 @@ Entry.avatarbot.getBlocks = function() { js: [], py: [ { - syntax: 'avatarbot.pin_digital(%1, %2, %3)', + syntax: 'avatarbot.pin_digital(%1, %2)', textParams: [ { type: 'Block', @@ -1803,6 +1883,7 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, converter: Entry.block.converters.returnStringValue, }, + /* { type: 'Dropdown', options: [ @@ -1815,7 +1896,7 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, converter: Entry.block.converters.returnStringValue, }, - + */ ], }, ], @@ -1841,10 +1922,10 @@ Entry.avatarbot.getBlocks = function() { { type: 'Dropdown', options: [ - [Lang.template.avatarbot_func_on, '1'], - [Lang.template.avatarbot_func_off, '0'], + [Lang.Blocks.ARDUINO_on, 'on'], + [Lang.Blocks.ARDUINO_off, 'off'], ], - value: '1', + value: 'on', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, @@ -1878,8 +1959,8 @@ Entry.avatarbot.getBlocks = function() { const signal = script.getNumberValue('PORT'); let value = script.getNumberValue('VALUE'); const run = script.getField('RUN'); - const on = run == '1' ? 1 : 0; - + const on = run == 'on' ? 1 : 0; + value = Math.round(value); value = Math.max(value, 0); value = Math.min(value, 100); @@ -1898,7 +1979,7 @@ Entry.avatarbot.getBlocks = function() { js: [], py: [ { - syntax: 'avatarbot.set_pin_digital(%1, %2)', + syntax: 'avatarbot.set_pin_digital(%1, %2, %3)', textParams: [ { type: 'Block', @@ -1911,10 +1992,10 @@ Entry.avatarbot.getBlocks = function() { { type: 'Dropdown', options: [ - [Lang.template.avatarbot_func_on, '1'], - [Lang.template.avatarbot_func_off, '0'], + [Lang.Blocks.ARDUINO_on, 'on'], + [Lang.Blocks.ARDUINO_off, 'off'], ], - value: '1', + value: 'on', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, @@ -2193,6 +2274,7 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + /* { type: 'Dropdown', options: [ @@ -2204,6 +2286,12 @@ Entry.avatarbot.getBlocks = function() { bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, + */ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, ], events: {}, def: { @@ -2216,7 +2304,10 @@ Entry.avatarbot.getBlocks = function() { type: 'number', params: ['0'], }, - null, + // null, + { + type: 'avatarbot_get_timer_number', + }, ], type: 'avatarbot_dc', }, @@ -2224,7 +2315,8 @@ Entry.avatarbot.getBlocks = function() { VALUE1: 0, VALUE2: 1, VALUE3: 2, - RUN:3, + // RUN:3, + TIME: 3, }, class: 'avatarbot', isNotFor: ['avatarbot'], @@ -2240,16 +2332,30 @@ Entry.avatarbot.getBlocks = function() { const signal = script.getNumberValue('VALUE1', script); let cw = script.getNumberValue('VALUE2', script); let speed = script.getNumberValue('VALUE3', script); - const run = script.getField('RUN'); - const on = run == '1' ? 1 : 0; + // const run = script.getField('RUN'); + // const on = run == '1' ? 1 : 0; + const time = script.getNumberValue('TIME', script); + const on = time>0? 1:0; // 100ms ~ 1s = 1, 0ms = 0 speed = Math.round(speed); speed = Math.max(speed, 0); speed = Math.min(speed, 100); + Entry.avatarbot.dc_m_index[signal] += 1; + if(Entry.avatarbot.dc_m_index[signal] > 3) + { + Entry.avatarbot.dc_m_index[signal] = 0; + } + + if(on == 0) + { + Entry.avatarbot.dc_m_index[signal] = 0; + } + let index = (signal*2) + Entry.avatarbot.BoardFunType.DC_M; // base+2,4,6,8 + // Entry.hw.sendQueue.CMD[index] = (1 + (cw<<4))&0xff; // ch en - Entry.hw.sendQueue.CMD[index] = (on + (cw<<4))&0xff; // ch en + Entry.hw.sendQueue.CMD[index] = (on + (cw<<1) + (Entry.avatarbot.dc_m_index[signal]<<2) + (time<<4))&0xff; // ch en Entry.hw.sendQueue.CMD[index+1] = speed&0xff; Entry.hw.update(); @@ -2259,7 +2365,7 @@ Entry.avatarbot.getBlocks = function() { js: [], py: [ { - syntax: 'avatarbot.dc(%1, %2, %3)', + syntax: 'avatarbot.dc(%1, %2, %3, %4)', blockType: 'param', textParams: [ { @@ -2282,6 +2388,7 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, + /* { type: 'Dropdown', options: [ @@ -2294,6 +2401,12 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, converter: Entry.block.converters.returnStringValue, }, + */ + { + type: 'Block', + accept: 'string', + }, + ], }, ], @@ -2306,6 +2419,7 @@ Entry.avatarbot.getBlocks = function() { skeleton: 'basic', statements: [], params: [ + /* { type: 'Dropdown', options: [ @@ -2317,18 +2431,28 @@ Entry.avatarbot.getBlocks = function() { bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, + */ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, ], events: {}, def: { params: [ - null, + // null, + { + type: 'avatarbot_get_buzzer_time_number', // 0 ~ 4s + }, ], type: 'avatarbot_buzzer_sample', }, paramsKeyMap: { // PORT: 0, // VALUE: 0, - RUN:0, + // RUN:0, + TIME:0, }, class: 'avatarbot_buzzer', isNotFor: ['avatarbot'], @@ -2338,11 +2462,27 @@ Entry.avatarbot.getBlocks = function() { } let index = Entry.avatarbot.BoardFunType.Buzzer; + /* const run = script.getField('RUN'); const on = run == '1' ? 1 : 0; - + */ + const time = script.getNumberValue('TIME', script); + const on = time>0? 1:0; // 100ms ~ 1s = 1, 0ms = 0 + + Entry.avatarbot.buzzer_index += 1; + if(Entry.avatarbot.buzzer_index > 7) + { + Entry.avatarbot.buzzer_index = 0; + } + + if(on == 0) + { + Entry.avatarbot.buzzer_index = 0; + } + // digital setting - Entry.hw.sendQueue.CMD[index] = on; // 1; // buzzer en + // Entry.hw.sendQueue.CMD[index] = on; // 1; // buzzer en + Entry.hw.sendQueue.CMD[index] = on + (Entry.avatarbot.buzzer_index<<1) + (time<<4); // 1; // buzzer en Entry.hw.sendQueue.CMD[index+1] = 1; // buzzer sample Entry.hw.update(); return script.callReturn(); @@ -2353,6 +2493,7 @@ Entry.avatarbot.getBlocks = function() { { syntax: 'avatarbot.buzzer_sample()', textParams: [ + /* { type: 'Dropdown', options: [ @@ -2365,6 +2506,11 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, converter: Entry.block.converters.returnStringValue, }, + */ + { + type: 'Block', + accept: 'string', + }, ], }, ], @@ -2388,6 +2534,7 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + /* { type: 'Dropdown', options: [ @@ -2399,6 +2546,7 @@ Entry.avatarbot.getBlocks = function() { bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, + */ ], events: {}, def: { @@ -2409,14 +2557,16 @@ Entry.avatarbot.getBlocks = function() { { type: 'avatarbot_get_buzzer_time_number', // 0 ~ 4s }, - null, + // null, ], type: 'avatarbot_buzzer', }, paramsKeyMap: { VALUE1: 0, - VALUE2: 1, - RUN: 2, + // VALUE2: 1, + TIME: 1, + // RUN: 2, + }, class: 'avatarbot_buzzer', isNotFor: ['avatarbot'], @@ -2426,13 +2576,28 @@ Entry.avatarbot.getBlocks = function() { } const tone = script.getNumberValue('VALUE1'); + /* const time = script.getNumberValue('VALUE2'); const run = script.getField('RUN'); const on = run == '1' ? 1 : 0; - + */ + const time = script.getNumberValue('TIME', script); + const on = time>0? 1:0; // 100ms ~ 1s = 1, 0ms = 0 + + Entry.avatarbot.buzzer_index += 1; + if(Entry.avatarbot.buzzer_index > 7) + { + Entry.avatarbot.buzzer_index = 0; + } + + if(on == 0) + { + Entry.avatarbot.buzzer_index = 0; + } + let index = Entry.avatarbot.BoardFunType.Buzzer; // digital setting - Entry.hw.sendQueue.CMD[index] = on; // 1; // buzzer en + Entry.hw.sendQueue.CMD[index] = on + (Entry.avatarbot.buzzer_index<<1) + (time<<4); // 1; // buzzer en Entry.hw.sendQueue.CMD[index+1] = 0; // buzzer sample Entry.hw.sendQueue.CMD[index+2] = tone; // tone0 // Entry.hw.sendQueue.CMD[index+3] = 0; // tone1 @@ -2461,6 +2626,7 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, + /* { type: 'Dropdown', options: [ @@ -2473,6 +2639,7 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, converter: Entry.block.converters.returnStringValue, }, + */ ], }, ], @@ -3008,6 +3175,7 @@ Entry.avatarbot.getBlocks = function() { accept: 'string', defaultType: 'number', }, + { type: 'Dropdown', options: [ @@ -3019,6 +3187,14 @@ Entry.avatarbot.getBlocks = function() { bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, + + /* + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + */ ], events: {}, def: { @@ -3026,13 +3202,18 @@ Entry.avatarbot.getBlocks = function() { { type: 'avatarbot_get_oled_number', }, - null, + /* + { + type: 'avatarbot_get_timer_number', + }, + */ ], type: 'avatarbot_oled_sample', }, paramsKeyMap: { VALUE1: 0, RUN: 1, + // TIME: 1, }, class: 'avatarbot_oled', isNotFor: ['avatarbot'], @@ -3040,17 +3221,63 @@ Entry.avatarbot.getBlocks = function() { if (!Entry.hw.sendQueue.CMD) { Entry.avatarbot.dataTableReset(); } + const sample = script.getNumberValue('VALUE1', script); const run = script.getField('RUN'); const on = run == '1' ? 1 : 0; - + // const time = script.getNumberValue('TIME', script); + // const on = time>0? 1:0; // 100ms ~ 1s = 1, 0ms = 0 + let index = Entry.avatarbot.BoardFunType.OLED; - Entry.hw.sendQueue.CMD[index] = on; // 1; // ch en + Entry.hw.sendQueue.CMD[index] = on; // 1; // ch en + ch time Entry.hw.sendQueue.CMD[index+1] = sample; // 0 : not run, sample 1~n Entry.hw.update(); return script.callReturn(); + + /* + if (!script.isStart) { + const sample = script.getNumberValue('VALUE1', script); + // const run = script.getField('RUN'); + // const on = run == '1' ? 1 : 0; + const time = script.getNumberValue('TIME', script); + const on = time>0? 1:0; // 100ms ~ 1s = 1, 0ms = 0 + + let index = Entry.avatarbot.BoardFunType.OLED; + + Entry.hw.sendQueue.CMD[index] = on + (time<<1); // 1; // ch en + ch time + Entry.hw.sendQueue.CMD[index+1] = sample; // 0 : not run, sample 1~n + Entry.hw.update(); + if(time == 0) + { + return script.callReturn; + } + var duration = time; + duration = duration * 100; + script.isStart = true; + script.timeFlag = 1; + + + setTimeout(function() { + script.timeFlag = 0; + }, duration + 32); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + + let index = Entry.avatarbot.BoardFunType.OLED; + Entry.hw.sendQueue.CMD[index] = 0; // 1; // ch en + ch time + Entry.hw.sendQueue.CMD[index+1] = 0; // 0 : not run, sample 1~n + Entry.hw.update(); + return script.callReturn(); + } + */ }, syntax: { js: [], @@ -3062,6 +3289,7 @@ Entry.avatarbot.getBlocks = function() { type: 'Block', accept: 'string', }, + { type: 'Dropdown', options: [ @@ -3074,6 +3302,13 @@ Entry.avatarbot.getBlocks = function() { arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, converter: Entry.block.converters.returnStringValue, }, + + /* + { + type: 'Block', + accept: 'string', + }, + */ ], }, From 7a98f7c4024235fba67306b8672e6d5942fddfa4 Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 25 Sep 2024 11:10:27 +0900 Subject: [PATCH 15/65] =?UTF-8?q?=EC=BD=94=EC=95=8C=EB=9D=BC=EB=B4=87,=20?= =?UTF-8?q?=EB=A1=9C=EB=B4=87=EC=95=84=EC=9D=B4=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_robotisRBKoala.js | 23 +- .../block_robotisRBPracticalAssembly.js | 21 +- .../block_robotis_robotai_lite.js | 245 +++++++++--------- 3 files changed, 153 insertions(+), 136 deletions(-) diff --git a/src/playground/blocks/hardware/block_robotisRBKoala.js b/src/playground/blocks/hardware/block_robotisRBKoala.js index b92b23597f..cba0085fbb 100644 --- a/src/playground/blocks/hardware/block_robotisRBKoala.js +++ b/src/playground/blocks/hardware/block_robotisRBKoala.js @@ -436,6 +436,9 @@ Entry.Robotis_rb_koala.setLanguage = function() { robotis_moveRG2: "앉기", robotis_moveRG3: "발버둥", robotis_moveRG4: "발들기", + robotis_fast: '빠른', + robotis_normal: '보통', + robotis_slow: '느린', robotis_stop: "정지", robotis_roll: "좌우 회전각 (roll)", robotis_pitch: "앞뒤 회전각 (pitch)", @@ -966,6 +969,9 @@ Entry.Robotis_rb_koala.setLanguage = function() { robotis_moveRG2: "Sit", robotis_moveRG3: "Struggle", robotis_moveRG4: "RaiseFeet", + robotis_fast: 'Fast', + robotis_normal: 'Normal', + robotis_slow: 'Slow', robotis_stop: "Stop", robotis_roll: "Left-right rotate angle (roll)", robotis_pitch: "Forward-backward rotate angle (pitch)", @@ -1560,7 +1566,7 @@ Entry.Robotis_rb_koala.getBlocks = function() { leftSpeed = 127; // 속도제어 안함 rightSpeed = wheelSpeed; } else { - leftSpeed = wheelSpeed; // 속도제어 안함 + leftSpeed = wheelSpeed; rightSpeed = wheelSpeed; } @@ -1721,7 +1727,7 @@ Entry.Robotis_rb_koala.getBlocks = function() { type: 'Dropdown', options: [ [Lang.Blocks.robotis_moveF, '1'], - [Lang.Blocks.robotis_moveB, '-1'], //Lang.Blocks.robotis_common_green_color + [Lang.Blocks.robotis_moveB, '-1'], ], value: '1', fontSize: 11, @@ -1881,10 +1887,9 @@ Entry.Robotis_rb_koala.getBlocks = function() { { type: 'Dropdown', options: [ - ['느린', '1'], - ['보통', '2'], - ['빠른', '3'], - + [Lang.Blocks.robotis_slow, '1'], + [Lang.Blocks.robotis_normal, '2'], + [Lang.Blocks.robotis_fast, '3'], ], value: '1', fontSize: 11, @@ -3118,7 +3123,7 @@ Entry.Robotis_rb_koala.getBlocks = function() { var data_sendqueue = [ [data_instruction, data_address, data_length, data_value], - [3, 162, 1, 1] + [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1] ]; @@ -3296,7 +3301,7 @@ Entry.Robotis_rb_koala.getBlocks = function() { var data_sendqueue = [ [data_instruction, data_address, data_length, data_value], - [3, 162, 1, 1] + [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1] ]; @@ -4395,7 +4400,7 @@ Entry.Robotis_rb_koala.getBlocks = function() { data_length, data_value, ], - [3, 162, 1, 1] + [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1] ]; return Entry.Robotis_carCont.postCallReturn( script, diff --git a/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js b/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js index 4128d7b09c..5be3e25c0c 100644 --- a/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js +++ b/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js @@ -333,7 +333,7 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { // LED 제어 robotis_Practice_cm_led: "제어기의 지정한 LED를 켜거나 끄기", - robotis_Practice_cm_led_pattern: "제어기의 깜박임 패턴 설정", + robotis_Practice_cm_led_pattern: "제어기의 LED의 깜박임 패턴 설정", // DXL 제어 robotis_Practice_dxl_set_mode: "지정한 ID의 모터의 동작모드를 설정", @@ -507,6 +507,9 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_moveRG2: "앉기", robotis_moveRG3: "발버둥", robotis_moveRG4: "발들기", + robotis_fast: '빠른', + robotis_normal: '보통', + robotis_slow: '느린', robotis_stop: "정지", robotis_roll: "좌우 회전각 (roll)", robotis_pitch: "앞뒤 회전각 (pitch)", @@ -1085,6 +1088,9 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_moveRG2: "Sit", robotis_moveRG3: "Struggle", robotis_moveRG4: "RaiseFeet", + robotis_fast: 'Fast', + robotis_normal: 'Normal', + robotis_slow: 'Slow', robotis_stMotion1: "Standard", robotis_stMotion2: "Forward", robotis_stMotion3: "TurnRight", @@ -1830,10 +1836,9 @@ Entry.Robotis_rb_P_Assembly.getBlocks = function () { { type: 'Dropdown', options: [ - ['느린', '1'], - ['보통', '2'], - ['빠른', '3'], - + [Lang.Blocks.robotis_slow, '1'], + [Lang.Blocks.robotis_normal, '2'], + [Lang.Blocks.robotis_fast, '3'], ], value: '1', fontSize: 11, @@ -3757,7 +3762,7 @@ Entry.Robotis_rb_P_Assembly.getBlocks = function () { var data_sendqueue = [ [data_instruction, data_address, data_length, data_value], - [3, 162, 1, 1] + [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1] ]; @@ -3935,7 +3940,7 @@ Entry.Robotis_rb_P_Assembly.getBlocks = function () { var data_sendqueue = [ [data_instruction, data_address, data_length, data_value], - [3, 162, 1, 1] + [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1] ]; @@ -5037,7 +5042,7 @@ Entry.Robotis_rb_P_Assembly.getBlocks = function () { data_length, data_value, ], - [3, 162, 1, 1] + [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1] ]; return Entry.Robotis_carCont.postCallReturn( script, diff --git a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js index 420a9d2edc..101fe83518 100644 --- a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js +++ b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js @@ -676,7 +676,7 @@ let camera_id_for_use = 0; // LED 제어 robotis_robotai_lite_cm_led: '제어기의 지정한 LED를 켜거나 끄기', - robotis_robotai_lite_cm_led_pattern: '제어기의 깜박임 패턴 설정', + robotis_robotai_lite_cm_led_pattern: '제어기의 LED의 깜박임 패턴 설정', // DXL 제어 robotis_robotai_lite_dxl_set_mode: '지정한 ID의 모터의 동작모드를 설정', @@ -865,6 +865,9 @@ let camera_id_for_use = 0; robotis_moveRG2: '앉기', robotis_moveRG3: '발버둥', robotis_moveRG4: '발들기', + robotis_fast: '빠른', + robotis_normal: '보통', + robotis_slow: '느린', robotis_stop: '정지', robotis_roll: '좌우 회전각 (roll)', robotis_pitch: '앞뒤 회전각 (pitch)', @@ -1548,6 +1551,9 @@ let camera_id_for_use = 0; robotis_moveRG2: 'Sit', robotis_moveRG3: 'Struggle', robotis_moveRG4: 'RaiseFeet', + robotis_fast: 'Fast', + robotis_normal: 'Normal', + robotis_slow: 'Slow', robotis_stop: 'Stop', robotis_roll: 'Left-right rotate angle (roll)', robotis_pitch: 'Forward-backward rotate angle (pitch)', @@ -1846,7 +1852,7 @@ let camera_id_for_use = 0; const speed = script.getNumberValue('SPEED', script); const direction = script.getField('DIRECTION', script); - const data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + const data_instruction = INST_WRITE; const data_address = 710; const data_length = 2; let data_value = 0; @@ -1883,51 +1889,6 @@ let camera_id_for_use = 0; py: ['Robotailite.go_simple(%1, %2)'], }, }, - robotis_robotai_lite_drive_stop: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic', - statements: [], - params: [ - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - events: {}, - def: { - params: [null], - type: 'robotis_robotai_lite_drive_stop', - }, - paramsKeyMap: { - DIRECTION: 0, - }, - class: 'robotis_robotai_lite_move', - isNotFor: ['RobotisRobotaiLite'], - func(sprite, script) { - // instruction / address / length / value / default length - - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; - let data_address = 710; - let data_length = 2; - let data_value = 0; - - let data_sendqueue = [ - [data_instruction, 5200, 1, 0], - [data_instruction, data_address, data_length, data_value], - ]; - return Entry.RobotisRobotaiLite.postCallReturn( - script, - data_sendqueue, - DEFAULT_DELAY - ); - }, - syntax: { - js: [], - py: ['Robotailite.stop(%1, %2)'], - }, - }, robotis_robotai_lite_drive_advanced: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -2001,7 +1962,7 @@ let camera_id_for_use = 0; let rightSpeed = script.getNumberValue('RIGHT_SPEED', script); const rightDirection = script.getField('RIGHT_DIRECTION', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 710; let data_length = 2; let data_value = 0; @@ -2059,6 +2020,7 @@ let camera_id_for_use = 0; options: [ [Lang.Blocks.robotis_left, '1'], [Lang.Blocks.robotis_right, '0'], + [Lang.Blocks.robotis_both, '2'], ], value: '1', fontSize: 11, @@ -2113,7 +2075,7 @@ let camera_id_for_use = 0; let leftSpeed = 0; let rightSpeed = 0; - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 710; let data_length = 2; let data_value = 0; @@ -2216,7 +2178,7 @@ let camera_id_for_use = 0; let wheelAngle = script.getNumberValue('WHEEL_ANGLE', script); let wheelDirection = script.getNumberValue('WHEEL_DIRECTION', script); - const data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + const data_instruction = INST_WRITE; let data_address = 580; let data_length = 8; let angleValue = 0; @@ -2302,7 +2264,7 @@ let camera_id_for_use = 0; params: [ { type: 'number', - params: ['10'], + params: ['5'], }, null, ], @@ -2325,7 +2287,7 @@ let camera_id_for_use = 0; distance = -1000; } - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 270; let data_length = 4; let data_value = Math.floor(10 * distance * direction); @@ -2403,7 +2365,7 @@ let camera_id_for_use = 0; angle = -720; } - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 270; let data_length = 4; let data_value = Math.floor(angle); @@ -2432,9 +2394,9 @@ let camera_id_for_use = 0; { type: 'Dropdown', options: [ - ['느린', '1'], - ['보통', '2'], - ['빠른', '3'], + [Lang.Blocks.robotis_slow, '1'], + [Lang.Blocks.robotis_normal, '2'], + [Lang.Blocks.robotis_fast, '3'], ], value: '1', fontSize: 11, @@ -2461,7 +2423,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let speed_level = script.getNumberValue('SPEED', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 5200; let data_length = 1; @@ -2530,7 +2492,7 @@ let camera_id_for_use = 0; } } - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, 5200, 1, 0]]; + let data_sendqueue = [[INST_WRITE, 5200, 1, 0]]; return Entry.RobotisRobotaiLite.postCallReturn( script, @@ -2581,7 +2543,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let turn_type = script.getNumberValue('TURN_TYPE', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 66; let data_length = 2; @@ -2596,7 +2558,52 @@ let camera_id_for_use = 0; }, syntax: { js: [], - py: ['Robotailite.follow_line(%1)'], + py: ['Robotailite.turn_at_line(%1)'], + }, + }, + robotis_robotai_lite_drive_stop: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_robotai_lite_drive_stop', + }, + paramsKeyMap: { + DIRECTION: 0, + }, + class: 'robotis_robotai_lite_move', + isNotFor: ['RobotisRobotaiLite'], + func(sprite, script) { + // instruction / address / length / value / default length + + let data_instruction = INST_WRITE; + let data_address = 710; + let data_length = 2; + let data_value = 0; + + let data_sendqueue = [ + [data_instruction, 5200, 1, 0], + [data_instruction, data_address, data_length, data_value], + ]; + return Entry.RobotisRobotaiLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Robotailite.stop(%1, %2)'], }, }, robotis_robotai_lite_securitybot_init: { @@ -2622,7 +2629,7 @@ let camera_id_for_use = 0; func(sprite, script) { // instruction / address / length / value / default length - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, 2110, 1, 1]]; + let data_sendqueue = [[INST_WRITE, 2110, 1, 1]]; return Entry.RobotisRobotaiLite.postCallReturn( script, data_sendqueue, @@ -2657,7 +2664,7 @@ let camera_id_for_use = 0; func(sprite, script) { // instruction / address / length / value / default length - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, 2111, 1, 1]]; + let data_sendqueue = [[INST_WRITE, 2111, 1, 1]]; return Entry.RobotisRobotaiLite.postCallReturn( script, data_sendqueue, @@ -2692,7 +2699,7 @@ let camera_id_for_use = 0; func(sprite, script) { // instruction / address / length / value / default length - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, 2112, 1, 1]]; + let data_sendqueue = [[INST_WRITE, 2112, 1, 1]]; return Entry.RobotisRobotaiLite.postCallReturn( script, data_sendqueue, @@ -2727,7 +2734,7 @@ let camera_id_for_use = 0; func(sprite, script) { // instruction / address / length / value / default length - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, 2121, 1, 1]]; + let data_sendqueue = [[INST_WRITE, 2121, 1, 1]]; return Entry.RobotisRobotaiLite.postCallReturn( script, data_sendqueue, @@ -2762,7 +2769,7 @@ let camera_id_for_use = 0; func(sprite, script) { // instruction / address / length / value / default length - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, 2122, 1, 1]]; + let data_sendqueue = [[INST_WRITE, 2122, 1, 1]]; return Entry.RobotisRobotaiLite.postCallReturn( script, data_sendqueue, @@ -2796,7 +2803,7 @@ let camera_id_for_use = 0; class: 'robotis_robotai_lite_special', isNotFor: ['RobotisRobotaiLite'], func(sprite, script) { - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, 2130, 1, 1]]; + let data_sendqueue = [[INST_WRITE, 2130, 1, 1]]; return Entry.RobotisRobotaiLite.postCallReturn( script, data_sendqueue, @@ -2831,7 +2838,7 @@ let camera_id_for_use = 0; func(sprite, script) { // instruction / address / length / value / default length - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, 2131, 1, 1]]; + let data_sendqueue = [[INST_WRITE, 2131, 1, 1]]; return Entry.RobotisRobotaiLite.postCallReturn(script, data_sendqueue, 200); }, syntax: { @@ -2936,7 +2943,7 @@ let camera_id_for_use = 0; break; } - let data_sendqueue = [[Entry.Robotis_rb.INSTRUCTION.WRITE, address, 1, 1]]; + let data_sendqueue = [[INST_WRITE, address, 1, 1]]; return Entry.RobotisRobotaiLite.postCallReturn( script, data_sendqueue, @@ -3527,7 +3534,7 @@ let camera_id_for_use = 0; { type: 'Block', accept: 'string', - value: 'asdfasdf', + value: '', }, { type: 'Dropdown', @@ -3804,7 +3811,7 @@ let camera_id_for_use = 0; let robotType = script.getNumberValue('ROBOT_TYPE', script); let screenValue = script.getNumberValue('BACKGROUND', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 163; let data_length = 2; let data_value = screenValue + robotType * 256; @@ -3893,7 +3900,7 @@ let camera_id_for_use = 0; let data_sendqueue = [ [data_instruction, data_address, data_length, data_value], - [3, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -3976,7 +3983,7 @@ let camera_id_for_use = 0; let robotType = script.getNumberValue('ROBOT_TYPE', script); let screenValue = script.getNumberValue('BACKGROUND', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 163; let data_length = 2; let data_value = screenValue; @@ -4066,7 +4073,7 @@ let camera_id_for_use = 0; let data_sendqueue = [ [data_instruction, data_address, data_length, data_value], - [3, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -4166,7 +4173,7 @@ let camera_id_for_use = 0; let y = script.getNumberValue('Y', script); let size = script.getNumberValue('SIZE', script) * 2; - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 166; let data_length = 2; let data_value = 10496; @@ -4192,11 +4199,11 @@ let camera_id_for_use = 0; data_value = iconNum; let data_sendqueue = [ - [Entry.Robotis_rb.INSTRUCTION.WRITE, 130, 2, x], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 132, 2, y], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 149, 2, size], + [INST_WRITE, 130, 2, x], + [INST_WRITE, 132, 2, y], + [INST_WRITE, 149, 2, size], [data_instruction, data_address, data_length, data_value], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -4309,7 +4316,7 @@ let camera_id_for_use = 0; let y = script.getNumberValue('Y', script); let size = script.getNumberValue('SIZE', script) * 2; - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 166; let data_length = 2; let data_value = 10496; @@ -4335,11 +4342,11 @@ let camera_id_for_use = 0; data_value = iconNum; let data_sendqueue = [ - [Entry.Robotis_rb.INSTRUCTION.WRITE, 130, 2, x], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 132, 2, y], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 149, 2, size], + [INST_WRITE, 130, 2, x], + [INST_WRITE, 132, 2, y], + [INST_WRITE, 149, 2, size], [data_instruction, data_address, data_length, data_value], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -4454,7 +4461,7 @@ let camera_id_for_use = 0; let y = script.getNumberValue('Y', script); let size = script.getNumberValue('SIZE', script) * 2; - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 166; let data_length = 2; let data_value = 10496; @@ -4480,11 +4487,11 @@ let camera_id_for_use = 0; data_value = iconNum; let data_sendqueue = [ - [Entry.Robotis_rb.INSTRUCTION.WRITE, 130, 2, x], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 132, 2, y], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 149, 2, size], + [INST_WRITE, 130, 2, x], + [INST_WRITE, 132, 2, y], + [INST_WRITE, 149, 2, size], [data_instruction, data_address, data_length, data_value], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -4601,7 +4608,7 @@ let camera_id_for_use = 0; let y = script.getNumberValue('Y', script); let size = script.getNumberValue('SIZE', script) * 2; - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 166; let data_length = 2; let data_value = 10496; @@ -4627,11 +4634,11 @@ let camera_id_for_use = 0; data_value = iconNum; let data_sendqueue = [ - [Entry.Robotis_rb.INSTRUCTION.WRITE, 130, 2, x], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 132, 2, y], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 149, 2, size], + [INST_WRITE, 130, 2, x], + [INST_WRITE, 132, 2, y], + [INST_WRITE, 149, 2, size], [data_instruction, data_address, data_length, data_value], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -4735,7 +4742,7 @@ let camera_id_for_use = 0; let data_buf = []; let i = 0; - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 900; let data_length = 2; @@ -4771,7 +4778,7 @@ let camera_id_for_use = 0; let data_sendqueue = [ [data_instruction, data_address, data_length, data_buf], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -4853,7 +4860,7 @@ let camera_id_for_use = 0; let color = script.getNumberValue('COLOR', script); let data_buf = []; - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 130; let data_length = 11; @@ -4883,7 +4890,7 @@ let camera_id_for_use = 0; let data_sendqueue = [ [data_instruction, data_address, data_length, data_buf], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 161, 2, 1 * 256 + 8], + [INST_WRITE, 161, 2, 1 * 256 + 8], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -5002,13 +5009,13 @@ let camera_id_for_use = 0; data_buf.push(byteArray[i]); } - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 900; let data_length = 9 + byteArray.length; let data_sendqueue = [ [data_instruction, data_address, data_length, data_buf], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( @@ -5052,7 +5059,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let bright = script.getNumberValue('BRIGHT', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 180; let data_length = 1; let data_value = 0; @@ -5120,7 +5127,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let color = script.getNumberValue('COLOR', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 163; let data_length = 2; let data_value = 0; @@ -5129,9 +5136,9 @@ let camera_id_for_use = 0; bg_color = color; let data_sendqueue = [ - [Entry.Robotis_rb.INSTRUCTION.WRITE, 163, 2, 2817], + [INST_WRITE, 163, 2, 2817], [data_instruction, data_address, data_length, data_value], - [3, 162, 1, 1], + [INST_WRITE, 162, 1, 1], ]; return Entry.RobotisRobotaiLite.postCallReturn( script, @@ -5246,8 +5253,8 @@ let camera_id_for_use = 0; const time_parameter = 0x8000 + (period << 8) + period; let data_sendqueue = [ - [Entry.Robotis_rb.INSTRUCTION.WRITE, 158, 2, colors], - [Entry.Robotis_rb.INSTRUCTION.WRITE, 163, 2, time_parameter], + [INST_WRITE, 158, 2, colors], + [INST_WRITE, 163, 2, time_parameter], ]; return Entry.RobotisRobotaiLite.postCallReturn( script, @@ -5312,7 +5319,7 @@ let camera_id_for_use = 0; let cmLed = script.getField('RB_LED', script); let value = script.getField('VALUE', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 40; let data_length = 1; let data_value = 0; @@ -5394,7 +5401,7 @@ let camera_id_for_use = 0; let pattern = script.getNumberValue('PATTERN', script); let speed = script.getNumberValue('SPEED', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 40; let data_length = 1; let data_value = 0; @@ -5928,7 +5935,7 @@ let camera_id_for_use = 0; let dxl_round = script.getNumberValue('DXL_ROUND', script); let dxl_direction = script.getNumberValue('DXL_DIRECTION', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address_1 = 0; let data_length_1 = 0; let data_value_1 = 0; @@ -6082,7 +6089,7 @@ let camera_id_for_use = 0; let cmBuzzerNote = script.getNumberValue('CM_BUZZER_NOTE', script); let cmBuzzerTime = 0; - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 0; let data_value = 0; let interval = 0; @@ -6231,7 +6238,7 @@ let camera_id_for_use = 0; cmBuzzerBeat = Math.min(Math.max(cmBuzzerBeat, 0), 100); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address_1 = 0; let data_length_1 = 0; let data_value_1 = 0; @@ -6536,7 +6543,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let cmHello = script.getField('HELLO', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 110; let data_length = 2; let data_value = 0; @@ -6618,7 +6625,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let cmHello = script.getField('HELLO', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 110; let data_length = 2; let data_value = 0; @@ -6695,7 +6702,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let roomNum = script.getField('ROOM', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 115; let data_length = 1; let data_value = 0; @@ -6757,7 +6764,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let roomNum = script.getField('ROOM', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 116; let data_length = 1; let data_value = 0; @@ -6992,7 +6999,7 @@ let camera_id_for_use = 0; let scope = script.executor.scope; // instruction / address / length / value / default length - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 4029; // ID_FOR_USE let data_length = 2; let data_value = script.getNumberValue('ID'); @@ -7080,7 +7087,7 @@ let camera_id_for_use = 0; let scope = script.executor.scope; // instruction / address / length / value / default length - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 4029; // ID_FOR_USE let data_length = 2; let data_value = script.getNumberValue('ID'); @@ -7257,7 +7264,7 @@ let camera_id_for_use = 0; // instruction / address / length / value / default length let ai_camera_mode = script.getField('AI_CAMERA_MODE', script); - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 4001; let data_length = 1; @@ -7360,7 +7367,7 @@ let camera_id_for_use = 0; data_buf.push(text[i]); } - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 4200; let data_length = 6 + text_len; @@ -7402,7 +7409,7 @@ let camera_id_for_use = 0; func(sprite, script) { // instruction / address / length / value / default length - let data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; + let data_instruction = INST_WRITE; let data_address = 4250; let data_length = 1; From 245af876abb0911e2fbdfb4d9690a53303c67cf5 Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 25 Sep 2024 11:10:58 +0900 Subject: [PATCH 16/65] =?UTF-8?q?=EC=96=91=EC=AA=BD=EB=B0=94=ED=80=B4=20?= =?UTF-8?q?=EB=8F=99=EC=8B=9C=20=EC=86=8D=EB=8F=84=EC=A0=9C=EC=96=B4=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardwareLite/block_robotis_robotai_lite.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js index 101fe83518..a94550831f 100644 --- a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js +++ b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js @@ -2094,9 +2094,12 @@ let camera_id_for_use = 0; if (wheelSide == 1) { leftSpeed = wheelSpeed; rightSpeed = 127; // 속도제어 안함 - } else { + } else if (wheelSide == 0) { leftSpeed = 127; // 속도제어 안함 rightSpeed = wheelSpeed; + } else { + leftSpeed = wheelSpeed; + rightSpeed = wheelSpeed; } data_value = leftSpeed + rightSpeed * 256; From b69f262d285543924c60b0e606d6a0f9988790e3 Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 25 Sep 2024 11:11:27 +0900 Subject: [PATCH 17/65] =?UTF-8?q?AI=20Camera=20UTF-8=20=ED=85=8D=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EB=AC=B8=EA=B5=AC=ED=91=9C=EC=8B=9C=20=EC=A7=80?= =?UTF-8?q?=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hardwareLite/block_robotis_robotai_lite.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js index a94550831f..b954cc6d8a 100644 --- a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js +++ b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js @@ -7337,10 +7337,18 @@ let camera_id_for_use = 0; let x = script.getNumberValue('X', script); let y = script.getNumberValue('Y', script); let text = script.getStringValue('TEXT', script); - let text_len = text.length; let data_buf = []; let i = 0; + // Encode the text as UTF-8 + let encoder = new TextEncoder(); + let utf8Array = encoder.encode(text); + + // utf8Array is now a Uint8Array containing the UTF-8 bytes of the text + let text_len = utf8Array.length; + + if (text_len > 45) text_len = 45; + if (x < -160) { x = 160; } else if (x > 160) { @@ -7367,7 +7375,7 @@ let camera_id_for_use = 0; data_buf.push(0); data_buf.push(0); for (i = 0; i < text_len; i++) { - data_buf.push(text[i]); + data_buf.push(utf8Array[i]); } let data_instruction = INST_WRITE; From bf584bda0ea2e77dbcfd1bacc16ee89366b9b88d Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 25 Sep 2024 11:11:57 +0900 Subject: [PATCH 18/65] =?UTF-8?q?=EC=BD=94=EC=95=8C=EB=9D=BC=EB=B4=87=20?= =?UTF-8?q?=EB=B8=8C=EB=9D=BC=EC=9A=B0=EC=A0=80=20=EC=97=B0=EA=B2=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/hw_lite/robotis_koalabot_lite.png | Bin 0 -> 83622 bytes .../block_robotis_koalabot_lite.js | 6434 +++++++++++++++++ .../metadata_robotis_koalabot_lite.json | 9 + 3 files changed, 6443 insertions(+) create mode 100644 images/hw_lite/robotis_koalabot_lite.png create mode 100644 src/playground/blocks/hardwareLite/block_robotis_koalabot_lite.js create mode 100644 src/playground/blocks/hardwareLite/metadata_robotis_koalabot_lite.json diff --git a/images/hw_lite/robotis_koalabot_lite.png b/images/hw_lite/robotis_koalabot_lite.png new file mode 100644 index 0000000000000000000000000000000000000000..3658a1aff2918acbe43935bb3ec6d047c29bacea GIT binary patch literal 83622 zcmb4pbx>VTlQ!<|7Tkhf+}+*X;bOtz;_eQ?-8HyNaEAmZxJz(%=i~S8zPtO!)>eI| zPSu&y(@#%NPd_trBvM&X3K@X_0SpWbSw>o16$}jgvj`3b2lIK+cP_X1yx@Z*v_WbP z79e*MXLB$Spo6J7sf?Y8rMarP3DDDN%$y$#4ARqDT^ppWAkS;&V8>+gj}DWEo#Q7O z42)mM!_mad#vDXyYHn$5FF=0L(L+vZ4HO{P;!pr6IEtBDSxb94o2z*#s+)P)nDGF~ zg#=0YJ$OG2*qMV&NImRq?Ok|11jzqom-n;$kC>U9^j|6<8v*kFa7tT2nN-Zd*_@Pz z3BYIu0I-m9@i3VISOM&&tUz-M22xf4D;qO__48z8VdZ6E=VfIl{m+B^vqfj11+S{O zRgVDv)9%SOdXzxPtZwun) zE@sZwjv#9Xd(wX_nwUDcf&|Dvz5S1F*f}aF{Fh;Sm;VgbXV{oMOdOe6m;lUncK`J4 zU)nApRrCLLaz3pO{Z;Oh9WO zucR0cmk67p$c2AKer;ceZvj z2TD3S*pdD#u)Nm)iv!%|>;Q8Ub0DJ$fQ^Tdjho$qk%!HUi;>-w(-dF|G-G4s0FwVF z9{4{3_8-alDf#S#R#RGZCrZyImn+A}M1c3=HElo;E zR*)@4p)lF*qUCk4rYB(faMq2C3gGlDdFGXOcMbJ^zsd8!9&!3k@{~YwF;%e7EaJB( zMGSULA#_cF3ic^{N`MV`9gTk-g%tj*@!JC@{j3qX2KyJn6YQUwcz&>dYW}}r4{Osm zX{18$y1N@f?9D^uC8NG++56KytDpVV#E03l_bY+#YkhW9cVWSVJ)ZR>bY)2 zoqR1tA0?KKBaKR?%;3FN4zTxU>y-qWU>)uky+*lyIFa&rX2I)^>kj_$i7Oe+M}cBA zwSGtQzb%;s&chb=xwP0@iL7fXZ9F!!5IjkQ{W|G)FW;Mg```WU&>Y6_14=b$bGon; zCh*?I+?qagYnJPh)pYM*oO-$nxY@6SQb^q!J8EI*_+u}W=&|@YqN4P)!GKpoX!$?$ z{#kpM!0LKNyDbh=i?bP|w`nPCEP{5O*8nsiczGH1)^IHrwpGFOy!@@5b^&rF7kWXN zQRq?<@|hop*OX6grtpJxnwjN$N~vo|Rutf=#Iq5*B}1%=Z?_eCgxi{{YFV4P?!18n zszA2DyBlWGqvV~fdplbCuYKeA;_H@7gJUH%bCg$hG#AfN5oIgIBHX`43k}#KKkB$p4{h6H_AFXyiN@KCyXOO=t^kZ<|ea#;lyp0<4YS|%+R;;Xg)woL!ORKO@ zh&uo$Wqy={xF6WOU$vQBXcFwj3@K9ozLhqI6IPg5sud(UT5!mO=3y;|2o|7#6ELUv z%?ekYPm!w-$NFGzzsdFQnM6{2$HB!mf$POmOV!iHi^KWT5Xofj)mW{`vrujrJ#JfTHda{ODd1KNTAC1v)@jxG{2FA1XmyDNA*f5RXr(d>QPnedz|+B&WZY$#_b z1d5P0XH&k>8X0NiL60}@ul>Bx3bRzw#$z5}_X|>DNebNSTs4=H&|A~$wP3&l{k((q z1Js1j8++7C?P9YZ_xrcmM;Do`qNbEtAcD-cyC?=&Iy|l6!zvOCK|R>)JA#6VcQ*Bg z&(Z?8s*?A%+IhyYn$eTl@nwn@^<`wGT-L9j@0vBgjelq5&W=TAEaaax=g(EXp(~=|#`aV1 z4L{FE<%?jHfCw#*#KBbiMQX-frvZypVti(|BAsQ;j*3!bNgKukPxAU85F+7fUKjZl zk8-QUT(rby^4p}F?a$MeOP0DF%wO@G6T9Kz?wQ2>Z#`Y8%R5Kqd0xoBI=r|1ljBT% zh`KNICBaxx*3B4x^MP-c6+KL6szpukeH^M8Rkq$?EIo^w-b)nAXxAZHt0rDHZlL2( z{1(*|EQ6OWCzS`YfJE^%G*O;LI69O4iKqrI{>^&UzQ~s-Y}0$hn%HbL@QR|A&;{yw_vAMZ|F)@???|XiI=XX_ox4-k{70l>qYlldGVB=8Q zk8j{T-0}6@ZlD&_eyNz9+|9L6#WIwU97iP8%G`c@m;K#LBY$LCRI`(}o?tHG)yoI= zvKvpZj|rAPuN@9pI$WD4^Q%#|7eEZ%!WUf@cu>e8AKzp8N~5HumyqmKctjD(+ztBE zA=-qcu<`XV0I$5CL0Mf>z^^|7p+8KPmS4nLD6@O+q}k}r%DIhYD^}6(NB}l0XO)>& z{iBmLzlUdjS0u6&DIBC!IC`?FrdvlDQ*jUWykbWL$5(z9U2rvFL4+CA%f%fssEweg zLM6)O3%z09nD8`r!Qy&Gt^N|N;@S_Z>^VOKU_gx3Py?8MLzaz#gG+RR2!;v^-vva# zQ#Qh@FDeX&PYS|*Zc|TveJKzMHPSg8=*Go^YB*L~XWh$$XMNeS&}-QtU}8_-H)>EG z-y|aLzVy3l8AU3DOHHq=$9R|$6*yvTK(k#*dO$#2iwKmdYvj&0)hMD4~u|TuJ6{#3GL_{JbM`t&%)%`5?xq{Famie=0^m z^0Zk35O$mtrHOwzvwvog8r(Z$2}L8E677(3kFGJ8 zmS}^91zrOA_iDicSnk}RH;@ib@6e$Oj@Rf}yFv#Zy3}uP;3DN@_US|jdxAGDJ#GWF zs5T=mWipwz$xsJ^CL>57TS8`baIYA*K%J=D5v_z6I^i8k5+NFG(UyI>gf34#`mn4< z{AAqR%Al2SsElzW(u8n1IDBl-O6(;I7L6th3n2`kxafAh7Rv2cjM#leD?2i4CBz<3 z`?}w8ozDPybXD9b;X{Juq!t1>O)gpR0@3u8aO3SQz`IcE3-2=7jaQcENv-+z_iIyY z%Wmflb1&luJITZAbJ^o^m`2-c1#@8`6U)KRXeEd4!%Sx1o0nEYZ|@B#4VC~@_o+$wsnQCH1o7%ISUxT>z+Cpclu*-|7ZeBlhnduP97t%sHzJb{`cteBsigwt zi08_v7n|4YoX}eVjkFmk3mEDQv}aQONqV-O0T;{1s4U_a8^a_nt#z%2=M|-D`M38U z@m_Nxhai+^Jov?Y$PSu_aYdnFzg1XYf4ESIP&hi`!wP7sr2g~_(db0c#2SNwf}QCf zWxJR4Y;|W>G}}n@+)ukCVt3Xfq`I1rd0&JF@GVWwQ*aB(F@$|d1KM56$g*V%w=*=f zGc{EJit3w%QwDA=myeceUrov5+LVZvFtt*Jm(b$`^V(>RX7EHH`YLNElJJ7CNhCZ0 z2yAwR-+r-s_Z?>6+ZEnWRNBcdE}`U1GXn z3l757hWl=zFfXrYD=vzi$frk?sIn0xZxzY_qIUtxnOcuSW)rK zlm=c(BnT*sQ6w6%nZME)(!+(Jc*G>bU1w6443X6(Nnz)NgKK6=Bg>Sh8(ntXHroi} z?bpCT$x$Ee)|?PtFgrI)l?R5f^H+4<3x6mvCQ1w#h z29tCNUrZ5XAm+>vCM<&W9zpU02$L~me>mn;<+tPX`ik2l!mA%8lM)N3jniJcdI$}@9(tRxu zdRREoZ{28_#}04fk4Je?Jg*@3?J@EQ#>AzcbB~YmGHx>0FSA_ST>~7h<+by%b_}n{ zBbr0#1-e3JdTf-kQTQr(rr3P-82}Cz7|=|ZIV&?*1Tzq;SR?>fa@o; zu7{<>z~0-%ZL{a!dXilKEq5UU9a%VK0~w?M+w*P;c%oBPK=O?8=}lo~lU=<=2rE^H zDnu8ADLWm@mn5iJ9w+ErLcs_^;t$MWcv=XMIlqL&D0LFv2?=`7RcNI{pTc5x;GmK} zg6q2C<4IP&QcleF2It@kiWsU=5C?zUP8b?OoDs}#DN!ZiVi=ozYZZ^<$a;;i0u8Nc zDn=Lx;>W`cfZWpEpE<{0Wo8@oY9`1;!(275+`Os?f_`&aBu1T%$3jAnyZ$=Qr)-3N z2J8=br-E(JtF7mK5?VeuB1RZl3)PY`eONX#v!N@2sa$nt-m`5F+fss{;p<`CYp_dq z)}L{wS%!&Edw#WL$f=q%0{4Y)Pzr{##wauiXeI8WNRGBz9T8}GJF1Ep9vEO!jV1Z? z;{L8;-&Hfv_JRU-T?c|4149&|8P1Y)U{-$&-8w-)S)h?t*tpMHO68;TjZ*KE=L(8& z6Jw{a=j>4Alkewiody}UENCLOEbDscN%*d}w65Q8UeCSUzh26b{C1-kk4MaZeghT} zE(sPIFLGya3i9GSr$t%L^t$zw6d{=Wnc?_4p-XF(4oy!W?k`2JD?p&j3V(XU8?>Mf zQC}6goK&`3RrYinsPUTU@bjJBd;!{=|T(aU|6 z4qNV6&h9;pzxTd-_g#*Zat}9a>X+f)%vD1&W&ThcP;`tFuvHDlPMzIO4T7_cLbq$j zIIpKu@xISyxD2lf#9;3z!;kMuLQZToUqBCX{`aS$SW)Enr$w60i)HuE+rj z5Eare>H-Gg8M>MWYsb@YDk zAgNd?+qLSqrX`2s3co@Dx}DV+uELhTwiOn5cE>@cJ9#|$t3cAUK~S!ywl<|t{fcqujp zEalh!3XH^rfIEsEpl(V&&Iv`o%^w2cg*1DBC^L#k1qi?o7~$YR%5X!%)qeDS7K98E z3)m_zahf|s_O2r?=(j%{!WsV}1$f*+>qJZ=nRu~`LAi(i z83!_Duqeu35(`T~rP4?ecT#6HH+60z8iJ`0XbLSY{HDcA2r2}O-fp|F+ZcaALI zQG^zn7B^r^AzU)G90dNjZD$+Q%oTgS>PkcuXMC9aWW{^I(D`&KYioGN3V%^Z!}NT5 z(8FuDlAQW6w)S}CO7ipIDArC3dnzk-o^~S54@Rs%PW}H!Ek` zUMQ~n&i=*6b%KM>)oJw2Cx194AN-#ZBHTWt?5cI)i1=QKM4p~zFs4dSds9h`lk&5o z#-GU0XQP(452$3PpoK*W>N8Ryfe;=Q5m4rjWh;bOe8>2A$|l7N&b%oe>pO4zVuCg;YRPCP32Z?l-Srk z0&IRFop7Rj;yWX?Lnir2iwfpX zZ}=fLrHP}%WF^YUrgU-F^_?FOa7r9ozQBK2OQ zQ21E+y%OT5$;p#qT${pU*j;o?a&T~NTWD2d)}!p1~Qs`)ew9$vd3dqGNE;^@of#Q~-}lX;~J(UbBO-&v{J$7_5N zo{zp(v)r|}zj6-k7f)xc3k-%qBkv#~YA(jXP~5!mv^?Km8Sdlt4`Fj+RI8}O+z-t; z!H*+)=RWWEwMIUg|IAXuOYh8rcniecgPOn0Q}Fm!v`?}aM#WjI#ZotDzJ1e+lZP@T z$t_I?IHa7adg9PIGy|4gB7WP#)&WN;E3?>{P0LSo#7J3G_fu@)$w1KcK)LNtI{XVV zVY+-lkizu9gq9dbQU&P`fb`d!TxYvs24QTb&0%>e@>249H?dK~C(PkN42s$SNJ1zm zAZGx0;D(ku1Xx$n;X63#M&P*eS9w<^+fb;f>qN&COzDIfVfZil@xV%1U>1YgT& zmDTMQ=f&rrk~G*g@GrG>ieE4RFh?87@*;tyPat6gC-Zh&+lpFzUQ&kB+H((fm!xF zFF!7P-*#?3XB=YUH^!-C9192hX?~V%0o*@%IlhISP*VHS%E&cptz_4J+AR@b-*|7- zqRagQl3S@eZ(3w9XDH7ms6*)3K2AeKHsuftnnvAPX9?gHaDHIvoB$!UlxTG7htcDq z3$U4jh)sG#a+cDmM$w9l#4(7r?d0Wzjd6_G;Lz~Wb3mN}Alu*uw6WAuh;ULDPlVYY za7Xf384*zIZra?iPo3Cq#HJBdu_&G>z?M1^F)+N~ypjRTxIQssOUq}I7*Id!?*#m$ zFTV3=Ih&3cno7`3o?3$W8sm>LDiQ;wttW!j-nV@vzDoWNp{F&eh04Wv=FLO2-{ATv zd)Y*Xq>uk5N9>LW-w3_I|=xSuP$M zioduyrA`{(ZB1P(JUtN03&XH7FD?hXU==z<5Z`VKKwT`R5`Zbi@JGK_#21kdF0#CI zfI6lGzJ(M_>_POV0kg^nY>@Tq5W6f$@v?Zb~h=juh=bdhCprrA07X$auG+J>-{PxlWVi%^_Il;aHhvp z;?2szzHb(Kq?g>$&*To}W?!%8>F&G?mnr(K#nVEI;-LdhjTU@x>^QZaEi!JBmYhsUZ2aS)hc1E%sL7OUES&t$zJv5n7tRhmWs+*I)NB&#-7#FUKp}B*Q6+ zX&)a+j0tD@c^o<2TvL2PoVuJ6iPf;aTlXw!T!Q66!zIE9-z$wY5RnEB?e0^VZ+-5* zG4^!Rj2Qo7Ua8}~Ud|B%m*Z|G@df4H-Sp*sZ*<*#ZS(l>|?fo z&Cy@xY=(a4VTDmkCe*WsB~x%in|%wyhoj#5L7DOQIZziP?i+85>584WBpHw=d-^dB zfGbJGN9qEuNeE9J7{oy-j~WNy9&Nirynal{9_#I?^wLiXO@UehOi1$A`}eCBA0f( z-O7IIa5{Uy+4`ka^4*q=D!qxx0iY zUT79x4FC6$60A;1B;a>B!^jsKDo)3Ayzh|y=zJn(RP^zQ+Dz&p) zDV~|iYkGnwvM9v4bq}>WC}|x*As4WgdWk%ydVcBk=*1W$OSl62FO3`3p0|!8;o3+O?C3&y<9PWQ<3SD?=1KQKg&2Z^b#pZw)LiBvD5u z=u|6sTw&{IU*eSIQuIdc-nylRaIK53f4jimw@JuFX{nRY5oBQN zGJd`P0U~BQF|S)3Sm#tH^pFsNwM}qs^FAOv;0mRe#jyj zG_k_Ji@?N(#CGe4v*C!-=ZxGfD)G%@N*`jX1c<;$qjn7B4O@nSY8L%2ff9O{4ID+1 z?GsObLK7|*zerK7@y^fNqJ`$O zBVM^W{hbG&BGIMi-n=tdf~bOqY$hu|p@@@6&qM_^k z#pnJ*i})x(BMoNaKydHSBxBA2zo7_~53I3fm-%dXS!UJcNB6IlF!PPdD9NO#eeAa* ztb`&5cshpnGP_BlFhgZo+mxoJ4D5ai7g&$}io(FKLfOnoh+ncb?;#Mj?`DK3@z`6% zh@yaD7i3AIu~F=Y8K)$Fth>YEgWhdnHpQ3o0y81uk@|RIcqG<|VxHBI;k_!cv9~sq zKsKx~TVwByIq640YzvPl9`+PaB?bzE6`sewIw)UkQoILJV(I8>LTm4~I6RctU~-ss zbmYBnOa($c@v8LPe%U5zU%WmTV_UXjk$f2Q@?iZ=O>f5=mNV6S;qSz4`xawPWty>L znJ)1#`7=sz6Zt=OR?l(Yr#zi9M(&Mx0LraYM0Y(!=5r-?jfobgTgMwU<1{0xVuvz3 z=~@O+JJNWl0?$h^&}F_&PwCbL9DME<0-h&vTsE+CCcCGo489zn4=_U}NNX<9TFWf! z+nW0PX*vPOQX#KIC@ojC*7iqsg2O=d)D2f+FG2_`gDkMB^nh-B2!Ri3V6T zCMDN$J*fYIw5Kk%Nd=b3ko#cmm#-?RpvR0j&CXV-xEQ1%O59+Dj)NuiS(m~^FDp$$ z#@{=O2n#sd{oYR~NGyeR=uEn?9-f{1$yxJS&Gy4$AVhz{{dq{EjFIo}xRK(I+Q-UTl)LU*aHOW{2WZUJn8({UaCBH)?C#X` zWW`}hk$Mwq*8aw+F~O)Qu@zbDF@P!g!QSL9E|PFD>}s6N$BnynkT-<*2V%&*i+n5L zckygzI)p zvci*UR z#G2>9199=NNYpH9eV^WU@OyVSse%!6u@fNe18SCyy3EGVbkab^*5g zDX4Mz`{@|t`c?hXOR61FvOPrFtFtV$uW%LP0(C9|m(DUCrSwD@h7;!)rz5hdBTBu}Vp`D8Xd@pG^=&c@(+m1iU$wnL{D1`pFR3O-7nlI0c} zUaGNL`W*q4^g+_TZdCMzy^1lB=jwG3KWrpFXnIph+(V^QRcxQd@eld$?Q!tdL{_pl z5`DbKUc2ASO;l~v;%o}wc?|Z4Af0F&CSh#xm zYqGf!E&ik0xUQw@j;nZgO7?eKOMgpu+JIja{p&A1ZLZcA=dZ2hSjq36304DFAXBiY zMT#>cbozs_(X;BeTO1oFHQPeVFMHkX$xB(%yW1}#%7U$Ma!S{|L{m{KkYAPKkdP7f zyyTW0&!5EIlu(fLFM8}ct{|m?P=vISi~M&lTvlA%()TJf(&60_Ti63dENamNBis(Y zj`51GG%i+q?VU>y`KEvMg$1&f2T5Q>vzl+qqo4K(ysllepN8mFxQMCO^J|ex1oUS5 zGwaBAK@H2Sw51T>YN4AMe}wTU5(dMBvtUBNeW8-#VQ*(<)!^o*?d><+44_B_B8opu z#<%X`IUFSl^{Ba2noPoHQ1BVqk`T)q)_GnC{$ZaO4k~rNMFnk#a;%maK1DLy5(~ao zwBIOu`+7e-eqHpxp5^;ozL?_GH}fVDy;hYlshV5<^lJ^7TdD2+tc_ z^p<#&)ky*A%ps1vpT}!y#2#DqLtVl3J4u?^UG?=fO;o607drr0;-AAs_Y8^ape>6! z{Qgw;hFL7M!QQ#Hp|g zC^>+Xbm2m+?Mnw-U_%nyevr!WTlYCNwI{GG0bJxYM=;AgPYmOIYZAXcH_X{+EZK77 z2M^~D+K%Vx)GjXK!{easul?8NH#0x|2|4XI)!K|_oF$Z61|OP;=;*&@u|AEXGQ6xC z$>D6Ioj_QvjAGz7xQM?Rf!?-L4TIphMRT!dpH1(yB~*RUZ*WC-Q#UJCLOx^=dJv%) zigP1QQj`$FN!BLYmDyBj+w%gnW<9nMm4S)@isSiZjPMO06+QS2p}YUFV58sfSDI z-TOW$K1{dz$Z5Tmv1G1~V2MRZXjP~)mKcSKV##thtj7H&())p}x|9-qYSb$=E{W(q zw-4+iuHi@1@WK#p5h2|-88eWfUnJ(@U(WgZA($S0PD;~^KHimC@0%wG4aLlKzA|xt z*uEaWTV5@h#ZMTuZ7unAHeeDOu6yY72k+FO4)`PMC~rFSZ+5+<21JQdIA=ye+v=M zV^rWBq4zIB zGn~Y)7>OCNO{WQn*46;fQhQG&FB4i@Z&4dkhyu~GfDvVYvJP6GDPf=^&3OIdcYN(g z+bM_dXK(m+Lg6ePB-R%igE$c!5g}hBTC^7l;Aj;o3olv96Xc|6(-4NY@Jeahajci) zZiklSH@hS*xk8LbI?y-S$aPD;RzPt`0Uho!GnNo(+QpifTpHdIsQ_?RppLG&L-zi{ z@l{z^xG9uE+S_2h=le6Ex13BHE#I@s5ALD@zw+Ls-qajE<(W1(ju|jsFBDi+xP{cT zFc$vV_%l9Tx@+p*4)c!(L5;ITl=VR}9w{p=>yO`t{;B1Un7Jp}H%g-fBkwMT9ukjG z;$d=3oen>wFx{3srEj(F=A-LU%wpiYjZPy@kmb2bw1jK*rIVpmAHH4^5%=D;4ykOY zhcK^e%Z896QkWCDzSFCgOV|aVX<8P3Rh}H8Axgol-05Y!cfyZKa)DT3(r!PcYz;!u zhZU6&sd^exZMsIZZ$xzsa^`E-&UAeIK~6a7)LfHay^xN^nsP{s*u(Q&ibc!R zp#hZ4|K@TX4;~#iK!`w=Zaa{7emp?E@>H~l=F8Y*jHDyQ(X`WsdK?nwPal|cz0=0o z34~^7;+Z8C`*zL)H&GLzsmla0c5T|a(K}Nd-|M7+Ojrum1=qS;@55b371tH-PS(L2 zc=;Wdjn%;FO^y(P&%$iE_4oI~!=xb%DE02|5dMEK3OfHtBQ{tB;GtzfP=S2uq{}O< zY{+}5R?Y=0u!^fFu z=A{<7DB{-OfqTANuDGN8=!)WT{+2iIaaoz+ z?zrwvXCvXvk8ql`-jICmwju^%kgsISKfPX}u93D32r~M-ExnQhE6t7gC!isg_mXxW zvSApSh?zOJRSXWVp5+f=zQDz(pR2`MposKLn;FZBUT*OW%pY?^t|E>6?ud z+@_u;ae{DRg;YGIR6^g_6TE(SL1Hv98ry6HyhH`!)|FTNUAt4&lOGq1A4kBff(*lK zP`a8ByvsMbX|(9wtx`kdZ`gD=OVT4>#0y2z*Wa|Clu>ncyVBWO5&Rqou4YW`2NMl8 zB$2k!PEP~cO4ry_?$l=rkTAUuaRgw1_n$8_jF?GKm}qv(MEEJ_8sAf;Z+DJG^Bg>`jV%?F997q|93Fgb!sX63#Q3_- zU^A6C5D@^JtZ~A^BWOmDnM!weYSW(iAIw@t-hD>qp#={)sH8S&l2}w!-&V~LY?)GP ze*Rf@dwIS&c3x3|&C@;{Xl{otSs2>1MOSn&IQ|YV5~Nd>CE>>_1<5ZVx6Q~0ZNV97 zOAfCDi0C&(jj9-+o&93#BRld%iE+@wA6L*zGqFh*Dx-KcYCLxRfW4_)D;@5MkLk`m z4(F^*Mh3yT9kSxYQkhzlN=xFlx7lc`O$FStABYCZ?ENZCT8zQxdDl($dQ~yN{fKH% z?oSpuCm_O5jzBIK^vBPUnYY8+Bn`VLrrhV^mp%7}Xhl!N(3( z_EiR+*E0m|*XuDDI;h@M7DXg$$cC=?ej+{Q7ksbMX(uS4614reX`2mYfD1j282qF- zC@@Ui2r0+L6k;)1KUr)I)q?0Y2TA2!y$m2kr08woBFu0??5ZFX5u*fa7lBjNU1>8_ zFzaqQnd3BM?#|5jp57$!@IEs_Qep--dx1@sHEEh}1D9sxWC0+7_DBoEEdtj|$n1Ao zyfmxGpl?q3(ZU0mUSrjMspjy&)b%JFh&xfh4H_O7-g|T(h;j%w^!b_p+?}`^VZUH( z`w(sA*N(j|=67mCJd&lSYW0O-;Pi))Brk8=^bnh|SF~|_%-Ca>9(eg)FHIRbnOac7 z2~zUh%DK&ufltUAVvEfOeb}kZmNXW(t~w>yaAK%{{e5mNL(EbiH|OSBWZwj}MY-TO z8MQH%1t2j3-U!MF+Yo*o$F20RUbC@wW=SYX5R;_=EgcGiKJw9?S56!o(gSArm07L z5ASgMD{ZF#SA`|)L3_CbyhUXpiioUktF0OmT(e~kx$mVH<|Di0^a(j;2=04hGmr3{ zslL#0Vc;&Us#%WvJP?19v)y~48Piy}<5qpSaZMb5hc1(idc#AH0%Zyg;)2W9Y`4U) z(dFqi006q_`JaxDcAIe$Ca zsE^Q&-f@Ca{GzA?&Z{AD29BSC^E-YBODDKy!~EIQp*to_BqMOQZmDC+BFO>AR_Uv3 znOKuP-yA=^`$hJD5Urw2Ste&mgEY(6zKUClPeow zD)`QTe{uw14~nfsEuKSv7@O}%msvNIrvLnz6OipM#H|0_*%_qe61tA#7ZUhXy6 zIk!cHJ*LwmKkarT+4F)?8MRELW#0N~WeUFhaPF!67-BtT{^h>DYO`{k9kIWrKZ%J~ ztM$H1XgaPIJ4qH$Jd?4{P%tm!pm&3<5~Gt^#JKl!{lHIfJYx=gD(haqvG23StuknM zPZ3+y%gdg{jV|cyRBwwjb0W0N^T^Kmj4uJik|q;1vsI(1Lh*Q%P^GGJ@xwB5Xe2L~ zTv$I=hG3Q+7a$Fp9bM7VX-}LaiEX-&9A(1E(d7_+CQObhp9S-DTkDVoitS8_Q-qye z0#i`NjfvSZM=r!ER7&J`SxQ-89%%?Y*?KWW^dawJ%W+|+P-tHQ zx#2LBU+8xHWX7aTc_U;>Gu7uRY_ay-2zTD@0Jr^Y`V+bZidsPufJe(nA=%QyNYrS` z;r1Jroxu-+yFENHVd2BgGpMQ-;ll)a3=8ytLl)<>xl;*Mq6D z+7?TN)pDi0`Y|q-^W$r5wyKZ3b}eny20>{AQeAbrYd#;Sa@W7upy7MI1@fwgu>-~V zhWBr8kTin$v0lSB)L^&VBNy0hHWxhhZ82KM^XOQ%axO0L0T(m~aYZ9aWq&F73lj z_6TB$U7z7M1F{f}Z+?dGlpF*F?(Tt+xks>;XhN}vOq>x-;Hht@YNXS1vwpFf8>O92 znnv!)pZ5`9m>sw9(JsFK7HabOp)#%47fY4=I=`SUFn3S`R4SYB$5!0Dhr-FX6I63` z#qHz!CEa&8V~NEBQ}7kF)ohjG&Z<1lw3vo^D&azoNk)xfGM{L|?AP~uk~Kx)EG!#r zKo%BG67{yDZhJ`Y8uS&WQW&>WX_IL<^3LN58r%%%jSD3;8n;5Kc6 zAX!ft2ZLQ{R40N^!t`6*%ta6$*C4Xp)t4;-PlI(p0bOIi1OPiJsx%$VgG}dI_~+b& z=-20>_l8|4^f5yigT42)I%Dr^m($)ZSNx^$%$V1kp1?PL%~*WtXW!QVkhP13M0Q`!R#t4+yRVBDU!qAU(|fn;E>nBiw=d`5%N68Ut|nD* zv?fTI$eR~UEo|8`ESn-BB#l&DUQ9IFgKWk`hTgNXG?mHDo{k=ev+d=x`3h!WliUo7-{hII*A%UKeQwKG93f(dL0@pJY|^CGw`+cP_w6n+ulU%;f{iV8 z-ns@L92EH$q;cpx%+UMZ1hC=nCZZTuoxX4`4OSY`hFrCmG!riiuDGeYGH2crl%8YO z6KvU*o^$pa2pm98gDcXx$W1>~Ri>xYge|HlL$tJlCaX>|XTdT^7)YC?QyFBFhV-y= zQxab7h9h zjw}ZjUr}L<#Ne%opz;S((Q)YkD1Dq5#LZD71XdoA0cplZV3GZ7(D|_u>n-&oT;QOi zxfFd_Kd}R@i}Jv-Sa>)qIs>ndSWh^NY&wPUo?b*MYf$pBZ(!y9U3l`jKAeA!AKAXN zG*#%lg{+HS4LBP5G-Vxxh{5pE;O^K)o!u>Ba3YNMg*r^gy0AK$UKpTPYa4;;rU?megdkn09ApoH}K9W#uH} zZL#-<50_*vy>xx}^_J=0%33JVLLxV0Dis7_CLMS}!J<+u!u5ZOd)@ z-?iE1(3?(L-^{w6c%S=cca>l6>F3tU%g~>CG&{&vCkpmNKLAx`-f@Q^oit@293krL z6BM2`2{-@n`or`-fdNr#rnZ@MngoN0b2`hZ>ZFJX2x#)_+?ouS$av$7m)!n^;HvVq z%wLd#j9f|ZM4E4|yDr|+G(?*KG@(@;xJgmG?x78%dkBH15>(vTi0*5Sz}`0|O6;{j zSb&gX7$Vb={SX`hD6OFB!C9flgu!3$e{hx5-5&?#^;R9h^`&Xs{;btV&Ts;@K&I3-)9zgtPs%t+i0c0?LU z`VKKGl?7InEQc8t*Efi+PmaruIJCeWg&a5Alh--m-_XM%GtrB)QF7ICbUg6_0%SH= zsx-w!#6l!XD1v=h8qJrW+wzPzo;$5ubhCBK3iDB{;1Xzc%B-=(F(+;-zx<>3RV17$ zJCj1NtPyonCZm4#)VF2Hu>M$gN&2JbZHv6Jr`Fdn6-sp}%-(LGq(u5Yd=aQ6r90pE z03gf&C$b@|*vq9Yoa?3|OMDfb`_+lw-=g1~Y~Ag1+f_?XIrqvFg(ef_xi}gPaAWT> z&E65qY-!w7RCuM8qb100Yb}+9o4~+Bn$aI5FtC^nWC#QZ5HeW_2rK}G>Q)*vDf72aoB5gQV2sDwr#Z*{pSP* zzS<8p8zMOxkqe=6^`74=;vuZU0_D===^HP`ICo2m4Uurtb@P&WLjcDD$V;iQ>qHY) zj3Ux~69fXh0BXk&8S@F-ZLQ!YD-m1baG>Mb{GzRbo9VL zA1~e_m>IWx=R6O=sn|5j%329#03s*E?FlIm+b5P#vxj%1aK&-xoBRT-!}QUpCe0-` zQ&e1hO?81^I%ma|<_0qC?{H*hsG1#yv+uRS?7r7d8M^m-r%bP&jxr;F!DtjEbfOhn zVFj5_#GQCewEx}cL#!}$)kimk){yX5)k9l68^*x{aH7Rx^=Bl8dG%xqRpq<$03hZ~ z(@sZSCFq`5C3k`}v+x(X9kX28ths+@jUn1m=j{AkU4ZJYh=aFOuiCC`X|malR|@*S z&FOhdH)ff5AT*V(d!Q3{_5}+NB;l|K46>v#vKd2y0X>>zJ7%(uYa(c3wIc2>Acp8N ztVo)yNH(D8vXQA|2X3*DpwO0#4%jXuP~1tLqXnWXkO`wJh2qQWk!edHepeR$NC9kb z!WB@HgxnPPQrJM#IHMB)lw+KjPnb-e2=_VklSz?GVZ;oICA~C`?{mWyIu7=UZ~_#D zIuL21YwVLN3kef|g6ujzj4fT396xKto7$pzE0t+YtBXV0 z_W!={XGr+Ze!Q@ zQJ}s7Lz(0{2V`ZK(E8q}=sPF0h8}TKMmcjZ;|jjzRubA1b@n3u&Yu&`cuhJ1A>;Cz z=B5z;XXF0@14UFGYP=j7nGIf|+|qB5bxnoL1R#j+;=(4@=w_11puL6BxBwta72Mti z#2&;N2cku}n-%Cr2OQT)DBm@OMicrhP0t6@sJw9o+FSM^^;{Od(y(0a%(8^G)`=w* zPNC@(^PoLbjEs^&h%SchA^VdAI8;`Ex+Vof14(p`WZ(;V;N@rn33jT#gACZsSU%Gb z$7cyzZi(wFZ13E1>)f)9-&18Fk41uRq@>n2MRe3{Vj`NmC}J0){~|k1nFcds5!ptj zSO|vu9@-+qQxW&acC)*A#bGOcP~7Ljvu7ju=MBWFeDqmkqG(JsQ?Zqa=!s(I;Ky~~ z<_gGcM|_@5nbL4E{y;W)cVi=F(=qtk4BvK6A;Yz@OGk3p6c&=kuRN_OU;}Ns?lV7RhEbTzqQK zJeoV}nS3IUJ7q3^)1>#h#it@mi!I4KA&#xh(jZ;E!_f;zH?SRqEBhe*TPqN0o! zrjQTz8QA+QK6FAat~jR>sbNmfHMpAsavjK|kA;p#FcM2RNx8s@!6Qpd zDCPDO|(azJw+AJJAuD?R8Gb;)O{V?8SnRhU{gK?SnIR7?CA2 zF*IWrF%&-(zb3+qj`ZwG1z^H$sH#a}hs?@^?#TKPN4^&#rZPgucW=Ot(x!TJ@7h6t z5`@F+OmY)bHosD2dTe?Y=B8&G@dLe4shN2-<}Av@mM-0@f8fOR`hrZ43PJ$*KODIq-b>OUSPL73@wjrz$Gt8W$qjiNGLO26fuh^?3kz%a}g*ynB0g zZu)GgefP1v3T^Y1>Ns|=+5>6%Wa0(;tRgqVi2-$1Yf2?m^cn<09TF?3-w>m=y92qil5 zFgZcVZAZ?+q-rw#ndvHPtX$1uu1b>M&km2lQ(1`GJEx-khC^uEk-#pYi9EREhDrp& zBv7LS47~b}E!(NFd7_XOR!Q3@lJxtTI8sD|hqtaJy|xMS>-zD@>s4HRX(jx0E@QEr z26xz$-BE3grBAjB)PbLt?2m&XZ7Vx8G^5d8;E6nxu2Yaswo8 z>98U*EG1jgM7emjzZstDT6kvqV7=;t9`XuPLE$uSPWECTHBIRNw4`q(*Je%0Wo7a_ zAh0M47vQduVH}z>7xM^snqzU4gd$LelVa&P;gb-HPYURxV zM~-u5FZ@b&=KRj^RhPaN-tpu@-w*#h)mJtdo?C84_E8f4y~L#I>gc*;WO5mwPbvYs zssU<4-R3+1{JW7dncj_rZg3dG&0N%Qdt-b2&63y zL-sJx*@?))sn8_Wq#0ui|Dh&)1;Qn$*)r#d1yFI9|00_*+dU3nRS1)RJp*`j1l>Ij zj$K@cIj4FN?@ytipc`jR+J$?&<|9?2p^&p3SrA7?Fnnky(%W7koZW`A7bkG#r-L|a zc{Q01A!LR|F%sh>AXOymuy4U}8=1&F08I366v@q;X~|yyv{dA5-besYg{vm#ZDoDQpvx79Z zKPN#`4UYf>O*32vr#jIiG}j4@0Y+6_FB^R(+aH4x@?q8u6`03#IBsBcBqde@P7#2f zbKFYYxJSqBo91J@Xbk9l6WIR>s){;s(FYxzzaoScr&Iw^1)0G(hC9cIr7%NL+|I*p zG{SPVvPgWg#jx(cQHC5n*W5-S-1mTg$Fh$` zWJK$5bz<#Ckt;xEfR*GW$TJ8otVGP;1|_S@;E67~DE}Y!-UH6AvRWU0_THzr=_Q%; zgd~uJ8hQ~G5QK{;D2OOhY=9T!s(@YvdqWgN@p7*;MK3CfT%ZdOdo=MgK)!9tvRFf9C}s)cb~e1dU#*q;H5(MRe}jj zKWHB`En5WJOd|C28&H1uH*g<)7UrJw$RXy$nMgr=IvQ(0A-b8{on)`p_ZDkhK%+y2BicDzc~jQ>WPY&8qn$bi+bUOhHxT zVo@^nprS)7nKo;*M(gQHZp5pxIhBx$sgWOQ4PUDINCwUwgy}wnrV~_e;GwVdxR^@# znPx!wO6j-^3yDl=F}jK#Uahj!2^#2pzPWN0eot_JkA`|A!U>qMIwZEPM~p%bJDG&x zjMCJYf59P{&1y+ZP^34j5Tq|qDB3!I9vU{jf@(U1=uNkw^4y(p|N1D5z4jGCR!!)} z(qR${+_rTfu=m^t#vQ;L9Fz9_&XUY4&n$^x#lDVLr-yh9i=vMaY^JrJQr&6H8yAhb zs@@vi8WdM~K$YM#SuDddHPloAsAcWiW#&vb45JV_cCk{>K;0Ih)*&qXQwM`n5Xfu%+u@IkX;?rLn z#OWJsTJUX1PLBiGJVv$-)wooKKiODf<%(`~wj@K(L?Gc>F(Rn?*Vj_hhzynJt5z&J zcXHe0Lj2teoJ4{rr_Fn(2L-JXL1)u-V>I}3ZX^5A*8$AX;9a4!P&QJBpkIGYVA z^?AA*lpQ8?6BmaBlIUgjC;f~P0&9*&am%YqaAmQKc&Y(&CruJ?uxaa7>|H5gQe!hJ zOqb-%hv&(AT#2Bo?yAZPw+vSZspSzx)BM?J8CVUQLa^9>{TcR(hvDA-XPEO36jrGk z>=GF5_24y`9)Y*dL49=x?XhCq0ldkP^%h(jHda3>bL<>mKm|1cw>m&y_zdoHQBqQz z9d=cc&(KqOW%0PWLCDwd^XuxKA@RQ~jIkQAp&)L0(;(`nG(uK(uB^HLZx0yGt}S|u5K`K%F?AoofBmo zR2=b8qK_S$WJ3Pw;Ah&>+C>X%r3!4pr7Raa8%iXmv1 zT_H&^5|6S22$|%tJc0hEVQFbJC|Ix2i*i&Uc)nHuV;;|+ooH$l=+v|woa`_H?EwTP zhf&=WhGi)Jf>9fKD%3LJDk%TqqCOl#Di+4CS1!dl-8~3To`e=!KgD8EimTJ=lSr-X zM$5zw^cG60M9KLGPAGDf!3l`mx#Mz|We~|()6kmUjB4i)V!!wUoc_OYTdqbq>4zK6$z@m#tMbTJ9$a*qI) z1bIBRug9;my`JYAyelO?&+{kRROunMw9A^7wMzzTMuIS6A*_939fhE@D4OD$n6#V1 z1^;F!ezD<)32}m`^{r@ZX-8W}E7~SEqN$?}vDO%@R0vfvc=8Lpks~)^pfJQ^08H3< zf~+OZc?5(aYcfjE48%f~;`F?ySa_apZ5HyBp>+IRzmw6_4NN}U&ev^JrAyAryO!Sq z?MZTtQ3CrX7Et06e=y96O&4a3rR~;qAN7aDsPK#CN%)n4T6m$wVuW>QN!zg%tBQDO zrLRYYL_u;Op$P2|!T}yhsI6?hQn>HYjiepkZ zfc6YI+c=?0at0uDfCQn>SQ2iGLQO&rPB4rd!T!k1X_!Epk+XRK(eK?tp=mG5KfDI! zUi-l@ZPaApEUzXY!xbBFyL97ZgpWA!#L%8Q7pUOFuBejQ}tj91KeVg z446WJ=p<LC<2rQ|0aj9R7Fvm7BRd79hc)eO>?QPVmHwf0}V8#9rmYKX>y8r|k9y+51v z1G%ciws{KK~hoMl2IzLs>zA+Hsu_0kegpeHwse_gc#f6UTaX=%ZfSOnR0fgG!Y z5khj|`UV)UzJ&ej8jzELkXp)()s+a1F%{e)k5;5>5@?K*@%I87x)J&EH8AFcQTXJ! zu%_+{H|Xh>@POhRc*ZC?wYa4_4e!u*zfynXoK52nU<}9feg5s|+g@IIeUp0|Y-5sI zoZM;Rkk>cXz{_tEq*4OhMGgQP#b6%o2TetO zsDS&fybs5G?R|)INU&vS_d0>?lZQ3lfia2>%u#wWa}Ht&MNh8MtyH30jvN9xs&c-J za<&R%u!@eJ_b0wD$*__}UAO?CB;wkkc{D z+u}wb&Qrugmb|Z^Ez?(ZHnn~OMtK@0YAxVG)%Kl*J4y(xiI0ec0Br>23JiA0^Clu3 zqR&ST(eCaxQ*v6N0CF27#mZME<;wD&vnw zq=%vgbzDW4_Gd<#c8MHg62TKsyliLR`nUtw?ih()ah91K{7pUXWnFBT;d)vty(m2U z6mr|jNFA~_-4~@@A+MEz6l_$eOI&Aqyq33IRN}RT_c!z!UEcH%lP93zsJef zd=L$@+JVjimG*we4sSu5}bP!9C zBS?n0?Oqb3qwL91xa|{u6zmR4(v@=noJ@73<=Rt*$tgzOt$BW+?Fj*>Tv55%5a$3Q znlE6g$<3-~z^~DwrrqG_*YX%b`)bbqm~xC(d3~`b7C9a1+l;l#2Qit9y>7-7q#Bzr zVNxD;?^fKkaXoJB*@}CLSs)rgN2(cLA%yT$ZzmR!Ok}EFJwl)OUF2@PU1k%Nd z^yxEd$rS!WW)}!bKm074IP9533=ndQBNJq*m2! z<(vrxRX1$|j{3-omXE#XfpG`03&-5KGjCtD`X^y0+xE+F|6Re#&?Xf70?1_+_64Wz zxw0<2>L|nMGe!kP1O8YJbtz@Mn5#7N)qo*FcEMUQ>owcFx{u}H_{IrH*&f46v6f}4 z*~YsDFz>X3;ZRuc>$CodkNxTtG|ihr_xF$P)bI51y1fdPEIx+&0XK$7#6hyohSOF- zshGn+_aJg30YVRChP+_QjMF*Zwv~k$UM*izn{6mud?g0r=KxF*ScQxz_q7)pfw>d{ zRLB7oRgRKgo6aTT&vNv1*$7+tFX z_TSi#j=BiCid7YMkVCUMpF!86La$LIwA4@>MC_F{FsCm>><8aL{wwFgC=oj7sHf|w zyHW$bUZu|v4GQDZ+uDihgn5X4FCA$i4NJ?1OHEfboEVa64{R3#_y?D|`gwd1eQz^p z*EopoYSQDX$a`1U(QPx`S1%KD(cOo=&pHZaiXne_%3V17=J#RJ!pQ*BNdM8t>s1v@ zC7^1t{JBTyAQ&T9ZlWhtK$Uj%cqpR`8-7e))r23THuBu_6hlu~b)FI@!K1iUu5`s4T(=fWwurr(3v9ZNz@IUnwbhTK%Xdli>3vJVhGve2#~!lY5R* zNaFm)28w51qR-YD31Wp?#=7p6$^q9kVx}3y$I@k-PZo7^DT6Ds8HC$f(U_;7^!I8* z6WUh2g41magGD+QK55%gS_kBCsuV`%$fzT38p+kmSk?%!AO9HTo4x~YWf!nuF1%tv zH8eTUI+e!goJx)aI=fJAoIVu!>5q?ZoZYf++yT7BWA^l>t(bnsH@Cm9bH%bFO>V5H z1(Ir6ssS2eX$OwU` zg2oN2g?3W^!|P$Me*)FN+zV@;gJ72ms;R+m5R-N1DORFWhD|7=GIQa}kt@G_Ldy|* z^^W!H8+QO>4#|sc(hMY&(ZHzMjt|52oB*|C9eG?pH~_wkkEy6=_9j}bCj$+a%Ea5( zJ**aT4ri&y4P8yn;9+_$!T!M^9Ch*GXxpP1Va^d0s=MdI85&ZCEhVQ-iIdz7*1jB$B_&=lXb9zCQjS92@AatHcp&M*Mh^L z0J3DX*)^+Cwg@%No{x!{ZgS`)#7?^aX0wCBm#;x^uZ3j%d2RIOD2tIV7FRs7L#Xs* z;GX!AKTP@6H6Pj4uYTMCjMYZm^a9o6AM(3Q^lkx7BJmfRSsTt}>P8*)ja3w^Z}==h z#&gE#by7g{H&u9$xq|}U>C(kF=ahNm7>ZIZd`ko&F?QC|4yg_rvZUh15sdU^;n+5< z-yj;NG%7tp_pQ;F-dV;y0KjXsZNZNfj5uQA0QYTzZu25m1apUrpK95A+3GYKcx^ak{lx3#ww^C@FG( zyb6~hxz=d8I4;IC-WJS^c<7+-bqdAu`6)5nVi)k6^=pyKmJq5-;{4WD^ls|Jqh$Ey zx&%%s=W%RjCzjENw*wKxS|%VoaWbL@9Ev!7knGaukleBg(R>bpsrw*!)cz=3^Bq{N z(o{SHD=tJ0Jk3Gm~T&$c& z=>;-|X&_uVS}7RoA(let(wd|lzKqhg40@g(z~&ce7aA!e(Hz5sJzG#eA%SFbf*`x8 z8e86SXu!spL^zUy!SEG9B|BQ1LtraM;99jl3GSnCq!CBw23h69bw?`(j%pV$Y}E%) zR@1`~jZ*9!R?0}87G^c{wehQg3Z3x}M};7c(nlC|+=f;|@(DvwWk*j{8Q9?Viw0mu z0;s2-B{P6KX=i?5pcAVGmC(+S?>Q0QzTyJh^3^Zn&UF=`kMCD5;HV87(4{d(%q}6_ zvk@NMLInMz^AALQQ#+FD*P(0%kvQYSs6KTsoSq?Ad$mdlQmK!Qinto|n&s{RI13IP ziv0UmPHjD6pU2AbOEv$1;_F6 z0Q0h6V-tXDU3rH(~gj329aMx|MYKZP1Z;l~)(RjpUavn?`wi46|KN^M@ z{?2K7qxlL`H-16&%-1F=`J>UHNi~|gU|OmYQ6(qVOVIxDauzG{SuD$qXsO5`uKnrH zaojP7;@>a(BJNzgT;Arm_n*G;hATez?ZQ*{AN<1I_nz4Q^x}@8iaLb^-6EADdS7}1 zvtmt{zQ0r$Fh2Kh|C9XJ&z;+l3JtuS zwLR_t#)8DXT)TzLXx3Oau*jluv=We^hEe)LoxH%A1qh}O2MEG9eeF%(+7-q{`=$QmtV%Mx892N>o?=cCm#daKMC~w2d(<4yZ#|4o-gN0=vm%_srydB zp2y6>)V(JFEh*{F1Gn?`<+dx6y}kM(I{?S6m+nf_(~2Eh&(F|lcu!cBd?f=KK^b~J zp>`F1hn}an?urlKqT;CdpT$5~@hD31zZs@$9%A7UTPXms%8s!8eDPeU$q8SFWG)IRtlrBcAeRhSvG_nSpxn$96mb+4D5}&(vzgQVC$<55fOpMY>&)2-8j~qtW;2 z`#8Q6shyuua|&u&lAp&>gdDbe8@END$ z2jBfFe*L>Y*Gjxsef!7Xx$>(Q?;!V`K)^}NS@`@ky5SR_{b~2sWo9a3sj#w*q*V-O;0Atxa zz3c?j$f(`IF}E8Ht~)LoSP)2S%vFEn6F4FiE1ho;nxRfxd%vu)VAdpHtTNx%S$ ze_DE?v!C(jG4Ie5m1H=oDg%1{Oaup`b$>_o@*9RP^KD6IsLL2X;37i^U>_rby(Y9{ zE`cF@yp%4w#T~x#}oqOCs=M~G+Cq?Mb(1R zr7xuhtj36`su3pu$pOTUdehgw`R1F^-rkM{3l_+~xi|mbd+&XnN7}gUH}}wD+(WYl z-$GiRw>OaywiNrYx`h_`uxfA;tEKzwZo0pde$QfbVCb$wCe^Rc-GQbEjrwd!vo@vJ zM@rCiSm-fd@N)yM7TxspwUw?*6$0?^(yA6{jB=_xm;dNlS=m^yK)Wk9eX15vm0(m-SU$;?}YJ>BY-h`$#gq33CQ#7 z$6B9G){Uu289qnAa70De2sDxdIO0uT`O62)LSdtLG=GCFtw?sq4t17^1rEXk7ppx@nMyi<0Xt8x;R5cN`<*55-IbLY545 zQDUDV-GS+&4zs2`p!yIrlT(KVwXc#9oJ=E9Q+_z7!!Vq$_3|zKxYZd12I;$^5CA0? z@o2Je*4bzO_7fjJ>pu=V?BEyP>iRnDrt3cP#CezA`szz-jxWBl9PRHt0-;Y`{QKCM zXI|IZR`>Kfxwgk0z*tPi9hq;iCcGW3Y3Iu>=Ld{_{n|iHVTLvK%+M6N!f&3i_J9+@?Omse{n@)D!lj~v9`w@z)p_UYc_`KFf`ZD3c&tU9XM0xX7UyR`e$`68LYXu+3_i!8AO!EV36vR$K=khEeEl+y+#^p){pI){akM#Lu_j8m?; z;o6S9C-&{mwRY0?f5}F__#e5x#~r{J;{Sj*m=yT$DK5X?qwdeqbN$jFPX=-oSwkvO z+|{=m52unxfm==`#oYr;K7sC?hwQc-lCdJt!A0p6K-cqhE-kbJZU@~tF&X5JwOjDJ z-#?76edV(vQPtPi2b&Cw2}f65brsG$^UNLJG(3+S#xH>0i&TEVn()TqfG^?YRLGbU zqOM#+CccKE=jl+&SN{#^xqOyFPmIzlhIXo|GGLmjY-scBKid778^Z{ozMlM3T|hJk zczmM~)HGvL47lNxoP6WvDe=hi|F^^2@na`PsV%^9tgrv>x!cKGIeIL((#&Iiw!dJd1ULr5 zPD@M6n9roXE{qAyVbw7>;p4dD4|C8m@k*p7d>U5k*KqEqmg1SG-$RbzDj>xZg8EQX z#js@GwOw4E#) zS42Je(YEGAXxgnm?MSYnt4J<>N#505cg|0mN(;c#Q+)i&0GAc3^jZb-b7h{=ow5*% zS)v7Ka#Kve&n>9=e)`QdxzDffIkmY0T0%!55}6TTDjpE`A28{N{t;+MqO>X_h$C&8 z7#`_H{{BB<@apd$*z=pamu?)$oiOeI{)rEYVJDczi0WPU)WlrLFgu1WZ&{;>L7n8{ zRm?2Fu_Vss&Ye5vbD27&5z&c5wC$aSAN|C`86P^z z=fAXp;QQ6=G05<6-$=9jC0RBPhRskzxmA$@9~2l{NV5IQ%+!_ zA~SK-;LSdlPTq03&JqM*>P|evm#ov;8-|a=g_Gdu8H3P7D%pkY?eq>98F2e-m4b?* z%FQKY_cuibo2AMn1Q264v>1@;2k=LC8J?x(+SQJ)bO}{h;6lwERGpkU5y<69a^$(i z!|Jrc^nFL@v0ZBsdj46I|Kk^C*N=a3@7nc!7mquDf6^m>@gGCxBl*Z zF1X-=zvCgu5j&D@?^b;Ycq1MH52Nr@(-imp*VK8nZe6V@M~%~xY`d?=rMUyHr*Z=9 zxa2W1D1)aWyQ&SisQf}QX(;-ygjZr+6g`I9C`mqxPz&!wCInMZ($@KpZ;D^_%JkjNs zeGyBSF2~}cWNl)gF8EjbFlj_jFRs|30AE#iU5nh}K zG;{-yr$?m8ms;*EiLalYEZnI&p$tlHc?jR^t5h_%b2&z4TXxBzq_x}znPkG;`@4o0q z5A+ogA9n!%L`Tp~cbK%Rx;6cHJ;uq?JBl79r9|QVVU#RRk)U0K46yXZ81X+a8}#{Hh5_4ajBj;FQw6)e|b z0YQJqt%>*Qw=e|$^A64Yf9`^=uQ!oMhG0c3F?gACU?@#IMg;=>O|K>Z>Zvh13i5ld zayvTSclG;=CO=awY$fd$YH397#Wb9vhd?MO8FL& z_vBfZF2_GcsBPQ<{6h|Rc!FV+RXy7EGsV7Sl%oS$pGl?=g6aaaRFNfj|4!dx{`~p) z(T{%g#$iY>jywPOYboy)hKpFaOmPJ+yX-3T_4Nyb?7|DbgjZkPaRAJsMbDr#!r{wA zQCIf@&v*?h8<;LAn48g}S&url>Ul5=jfuBq1#(0Lj!M)qFKNhD|XJ zRopL`Ma?+W4P35zP0lsALjF;y67_FL>$GbIkzbS{{~3W54wQb}`Pv``iFOMEJv<_hIrxey?SC ze#sHYj%<{_J^b+FIP}nCMRtsxz-y1p;0ml*-i7@SpMz3mn2q^_VD;+N z6jm(!`#)OEK=fd8Zhs|+Gz~RfJt+aQ1Bgg(gb6)q*YI`!b+tq`^`LINv1>z0IQy@- z6v|j#DE&YgxU4 z&NEfw(su;hDm}FY)m{hA;vqzWYC~tnr&+Y=+BjfN=3=`0MRGhNsX7q^O|?%zrIf>M z-}%C)tzh&M+m=roe)66>`eXIeIzM&ZCtf}3u)Xh(C1TIfsg}ka!2bis%2lhw&0co8 zNK|=-=G$rRx}j^;uBpdM=@KCi(hT}SpiD}kkZ|CevaP+-*z%p};nWS2kx)~#D#-vRIuf3MOl ztPT0l2!M=7Nqv>H8n0PHM=I3!rLD}G2477co3FF&s+I~%iGi4|Mq6Z{6>rGCV9YEMrTnDH;f+vkVkn*i${hg|c^M!cmbN{&r;b;V)908wWcv2Ha z?$`#mw*)s4fs?PmCd21I>VN3-E^lr|nh?PtIqNE|g?J{55QSuUx=n0u!Q82nBTl(A zA(!cy(7Ac_-v55_V<(#7*u zL*XbMO2)9BkXj-dLnAq#u%HuqRI!R^ID&f1#b93#o+XD+mrSCqp$;u=Z5SLG!qDI* zJomS)ZBIYyoSrMVr_Y$P=MN8Bc;KV6_T2lfOD{V6PvZ{Y|5^b6g~{B~%Q^stqf7j< zm~90s4O0(g(7$W_DVYZBtI#sU4Rp}r?gsiUBj|htZC@vnb?rO$6Y2Q`&~hru_8xfX z-do4~w7P~iw6(Hvj$qpKJ$Cu?&zLde%^$!Hpt9mM4uE&`Ff86}5z?|>&Zq{z>((as zO5eX@Ym$}js`O;gn*7`H6u*MO16L*Uc?t-~SQ{IHNYryo4l#T)YRT{p8B*%$q@O=3 z%Ta?`R41X9{`T_#wyT(jJbtXg2|z~%jy4=P1?3eL^e@ZFxvmI=@TX`HPjUQ5XrYM= zKSU=ql&c^V2_sJ5b%1{I8VS%z)ukL{vRP~^Wa)fuluJb!3^HZf6x1i8GNHUeZ`?n; zt>dYO{`~PrANn}iG;3b4Jps!LA>T=LLQU7q6&JeTvpD8FT51firUYU);$cm9Ah0U5#; z(x}W)HGT2HdWVNEePHW;Buz--o!=(Iw#f+uQb~I4I;{B5#b9mi)fCd*+1!NnkpSXF z`b?z?vV}aNv8aS4WuESvh$BK_pGoguDUqWI#4&kl8%o1ND3bBBOXKFS&70O?Go4eA zoJ5k)K_VKV&k%+~aZS2&{nS3UaBk=7#pmub|Ngc6?0>|=ANb%${(R~Ok9ug_0sJo= zAve>(Y&Jjsm$;wFBCe-<0rX5Z&#eu#v{)>nCI!Cz;V7~?4+7zBr??m>{0+zwv=1+! zH``Mo1(UWlG9Fac0_k6qgE$OmR%D&$pSgdR&Oe?=$+R3e>#%VDk7N3bIoP;i^_ZT^ zRRZo*eDfOVBrR?3E9lxv1;}HOOdeYuRx;q8O3cZG-`ZdvOEviUwNuZ~3Yt15^VN*f?Lz8_}TeIdJ*h)s+)42zBG_E#&J`q+Tb_oUW zm@!rva?KFh_nU?Fzg&Zto*l&V6wWqS27~;|MgQ)YvkoEW18eN_vO-k%*@d zA%kvdYDIvY(a6XE{Uk?dNp=%aD^#ZPqDVo!^Fqb*YJyimM?j<3$535Uic2BG zJGJVM?93(^xu?FId-ZHyzt_vpJ^uLz9{lU-3oiZg zA3uHOG2f$u)_}9>GO^_;s_jf z+;L;LKn-einN}#OH32al+VEh2J`4W1Ue^y1pvHkIC!wbKsQfE^5HgrV zlSvLBig+6tTFiwNkJHZ<`g2m16j?Wbg#sOwTad(}t!n!U>Z_8Vp=TR%Hp1c8CSx-g z_TRPz_kDi_C_ocU{|Y&hC_4`x@g4|Ef>Xp!t7@uml{`ScP(&ixjMmmR1PJA9+PE6a zmMulTSVE3Mg^~0K1_uVANaLyJhT@Rx5ums9_p!&mXfiSMyi??ys3lW|v+q7UuY$=L!V#fca~rqCZOp|oA&4l-wEI`-WJ<+6qLCz~ z&)ySF^$GO!c45)8&mj_yVaBvcIOu@=(a=yQ=blXuV#~Uf`1SQy%y{AD6;IuL=Z&Y% zYK#17+yT4;$MWUN15L8b?EKwL4}ZqWd#-T zp%AA^|BlC!Xl!gmIz3Eip(@uX8u17<-6kw`RP_N)bHYi&fqF5`(OpQPtUaPo<# z;lrn&ig&;3aJ05H?+`u?ZtKD0_x>JNe&bts?@{l&^S(#^=cv6VrJfuQ0d{u<0F^y0 zFWtloR7k6?ZU=@Yns5nAB&GdKvp);KdK(D9Q0=yngJ1Wr)22<^rB@4vbR9o(iZW7r zTg{QM67hx&8*sx7H{d5f`3XBb{N*oy8N2bzdL*-9zP}k11mp;xpBH*b&GO^@MK}D* zY)^OeV@iL%t6FfCk}_%oIbF@(Gg)7e;^<<*h8eMtXb8ft&||B4c%>dP{vO)>N9a~0 zpoQi>=%_UU4Nhsf2M)|QEs@n+4Grxe1pU&yYZ~%Qy1!k2) zmH>i@r1TlMgd~D=9^88DkfE0HdD#~d$vB3F`f2yC=*o}cE;^M8VzC$+ni?=LG=Or| zmK=mbP9qYnLu*SL8dE8>wX|c}oY~mYy%CQ;@)V9d>Lfhyz$5tMowwoik9BL^t*wk_70qS?ia9Z^Jbi~kAbgU@^63b>@U@gJAmEo0KD>4k@fb}NGe5QQL@yd zV!)c^#?ye@s-R)v0Qf4iyL{NHrv3&>!p9$f{4TxPD3QlhCCBtlJN$jhlqn)YddVf1 zV6VOQdJCu9tHKo??7@T>N446TGS5y|LUhZWluNagn!0vcM?nj8xZ8CKsu5y@AP52Q zXuwj|Mv`EEvVoryBtt6Ed-M^yAfsoMGnc2ib1aLo2r@+rd^(;%1ed3Om_+pvWpTLiG(N|bSnbMM>4}0 z8tkX{tB`@_2?dl;Vzv@JzM-)N*=$-=muzwXF+yIc`lO(RNURYD9eg;Z&uGP?58sWA zoAbE#`rB~tz5k6v58Fp**tvX>kV2V0mMv49xLT0U=a3%BU}TuDc@o$D{&6gv<|hB} z>)UP_cL2M+0#Ke{8p8^bI^GVuv_BuvsP&esZZ}B))<{5a1^(xi?jG0IU+4JLr#>b1 z`LQ0eW^MO6iQ`pivG~;PyGT6mP!fQK7)#X+>C&G)s-Of-%n{t=Y4g^y-%_sAJHBM) zwJ3+7XDu=^V1f?C*vZx~U0+9Qu*L<-GbeyYV><-5Jx%s;^moPi7|z#}GQeGKqd`C4MK!Xb*uCEhTigbW;t zC-Ni1;?Sx>C3eIC6iP+O5B2tTVuW^o9Y7$_JFI}fORTb7OdeJJIYM6vAaRZ*cz+@@OGx_u!cTQ0@h#4^NSbDZr~qm z{P)~*&zN71hl}p;RVPjawtbFHd(-Z@Naa^luY;Zh#5=Evq81LdB-5@G)NAzedkG`ECs#bv#?;T9M132~*-03|PGTBbB1 zIT_k9d&uxt*;sQ!KfD$DAou9g$aZg#GvFE;_d;?5^-6LU!{rk447ce!4u)c4&{b9+ zVSNYszFC2&NV|NZz8)>DZDgPp?c^~j`-OsGgecq!hofkyt0$BYM1&j)=Rk_ZEWJ({ z{k=nIY?y$94my+`6U4*!KY{}fJQXj#{5%dhUXLGlZZ zyIszd2}pFly**v1()EAO@h4(r>#EDf9l-9a0HEAp@M2~-X;@m%&Q}Ij5>rZLMtw7` z77HC6KmC>Mtobw zzf_T#0?oPv=t>N3It8V>Z))lt^q6iq8s4kn9}51v!lv_dqSfVkKPT%9H7!U&0on;; zu^@s$rNLlm;uTYIZ@j)6FF#_#p!h!DOUBkyg1vPF`Q>T!tO(-OMM12+ejAKcA*A}Z zA@}41az+gMM|9F}1sUpaSn)Wy*}%4|GM39OQJ5ie<^d&0%45^RF>*f5v`c4Ep~rBU zkgEYa1A_AaEiIEUX;O!v2S$P+dVIhNX`Mp4{E<4eG&kY7XP(D_hn|Le@B1|x>u8k~ z%R(*Tu1?!73#Wkj29j51)WJ?oM^wD_MEk(xQD`2zHg}Bkyx$?a_4V}IWH=i}jr9>S`XJC1@o z;e->UjK?8CL&M*H=O6y?hb77P_b=b5RDPL~-2Zi8@OxU`>n$8ZKUMX4IcL8K$dT4x z!>A2N(6j$cJ&IeaDtjKb0|n$)HE&<%2n_fmzG&wqI39?w=%?ZZ@KoU8jEf)sVh(P( zrV*856(jjDs<|o#wgj>GmDzY;?GgAx=2Serd@2HcHd^ZAD0MC+!z~l+H^c#S(rpzP zXD%F}P(q1{h9hCb$RU)A8QNhB1nm{Ei9ch3;_;^D78LSn3=R&85qf%(FdJ|~Lo*sE z#_!zPNjtWU!GQrG3I&2uBx6amGfyB?l_cLj`=5+I-T5mppNOB!pNlEvC3??HhWiIx zDJLtbbJcWKyC!}Ysunvn3|B};jV%+cNGx#Xco}ea9WM8saf3%zwWOMsj{8-MtLrxb zLGc2j(HM%{4w@N4sxhSW>9=GU8 zwG}tscq6X9`f5D)+;fuAXX-B3`1$sRuW!T@Y&VihtfcfD5SkA}4$yrGjXOWjenOko zb)#AU>;O1^rxkDVFikynTj_6W`7M7)4|IQkKLfy18GE-jD?m2|@s=1N!yqfMc!%aj zA4_)!IyS1|DrO&4N5*E*PVAy(Y8?5s2jZE5ccDL0K;9~2E|EM+aR$-qmHU133c@zba*ypgC~#F~=fFm+h~Axeu{;Op?Kdo}(Cv zBr&mLBD%Ua3OWb|V@M-<`m zPHNPiOpE17w459=t&oxik1*G}9z)xDP%R80(Kr#IXiA`(IFGS71MY6 Hw=)ip@R zy!rESek4@u|;z1~X^Q+#xS;?6Jr00_IDo#2ufL4Ei86P+UZ~_%SsJ zC^Vb=-d?I|5S;!R*uR9Z^MBIHeN{hKb@{0ZfGZh&mI7CE67_st51KZG(Fwh-8odSh z0-!1fASnP#Y4Qui<$)g&PYgulzARJAeDQD)LllBI;b?LNhFNok22|*G(;P;mT10Ya z8>^v7CcWs%h!U>rV2kYj7P{#Ygk2jE-fanLJ5~N1Rf_2&s*BO`1O;%TP6eHMngA?TXI8( zQE^8_Kn$e-Y((oNStN!;(E{`MBZ(QbW6(lNuf=fR7WzWF5s4)bNj1x^AoJ?BZxr%g zXL=7q>g-=?4uB74=l%F6Kf&(^*8l9P$k2)zE+ z`Pie6V*1QIFm3AOH{d6DqX>j=vH~drs;sA7f0=d^5yktLxZkOjMCIAs1Aw5U_ACkk zJTs!3fqXdc>7D>KSjCi7Its4lRe7~J0a7qzS@j4*e=e)qQaa;ae@VES&gkWG{mKHp zf29tYVw8M{EsaH1CXHCGB=!C({ktM6g{thgncmyxj!LZ@?$c{|e4N z^If$@Bn~@@^gM?Bk!YO4fdUE?ro_m(b2p*8odlg*rS~ILk%)!lImMzgiV(CKo2%4l zxs1thaNGgB-DCdVhpycG{Qb)l&U5pmamDcU?6{YmewMSS4z7Zk?Vzxv86c;t~sU?c&2~EfWc}g0rv9SsH+z4IUA{k~-&XvD2n_jfJsh!T%p%|R& z|0O{(l}b?(dQ}Q1LZLWTFI$2I`@IL>y6RH7BE0)^0+ES5Z1B-|T*yTI10(Xjv58TI z6q$zq%sAM@cE4WLHu5kzOCP&ej`9D=RKF{(B z5`%d@3}whF(BFZR?}d}?ggv+%R%{~7F?~X)LWbhM&5mw4( zruSthaNL-FN^(5|0hR1E&49r0NR&dpNLbKM zI7)Fm$MEDJCbV~;zpqzXd3$>{)9JV4s;j<^rUp~01AH;qp!0cl)(QH))?ssJAL_}` zBx4atM0%o{G&*gnM9zgpUpeduhm;dFwG^G__e~j!RY@Rb_P7JsO@|%Y>xO)3?&T@G ztcO@QwXyP!G_nwkY_3Na7JJH_&wQo#R2f-oggdy z1XVS_FuYnVU6*J_2}b;G^qg!dfoz3Skcw{@CxhWLDYKFg{p2YITj?Asw97X~Vi@5# zoHYV?+?Y4o?8UWsE@y@#aWV33Jzc6b*?&JnRV=P!yA=%|v}F zffrwR73W=eCEj<;-clt|i9=5kgOO+qTRS)51e=5N_Cmw;Wdnd?QRR}2* zIZTMC#v?_m_G(JUhAs!H3MxA&bK2@v%R_VK&Z~^`0N!>Ouy9M(IP5>m)rf}8hBU6o zg(i5+J>2X6)QyMlC=$eML*v|OXlSjc@F0!Kz%rD(9zkjALxc{TN@~8Cswzv0zN=xZA z`gI(?TgVc!AbGdsozRqqdrQ~)6+~AUkI^iRJa3$QWfnJ zC!@Eo2Q%j#j*BilS8XPaE$3M*79{C7Ot62+l2^zPq{Lb9bz*%%Ra!PAEaWs}o}7$9 z*Ci2;NiIa3rC(4n{8FJtR&u?qcsLZ9H;w>y(~*lFbh(**?vsu7;-DGgY;i?ksYSm> z%Q>w1??GI+W)StaHQ~Gyn{mRS2`t!~=T_%Y?ad%Fv>wjzT0#UYUeN(7F&$=XGWnAz zoXQaGKp9bri6##g2wKW*K_$Bxne-4aw4DAHp%9@Sq3Z20@_z$TA5_gkfoZ$`VbZtJ zc3HPuua9JRSM&mW_Moc&OPa;Bgz*<-nQtckSei$m zxBuE}%RE6(qX-*@9mYtJ8~`T(IX^R!L2z(T5`e?n_&NUXGZ+y#%B#o(U_+9+!2lDy z6rZ0%87}2jDrGX(ykzqEe0ewK(7=G!4-^f-qU0BnsT8WEoa8~As)Isq1YO+)eD~@L zF?VK@gnp`9vMNr4a{wz>u0qAO(ArWb?{87O6AT8VoXSU-*4N!y9%pD4h!hlm&YBzZa5b1zi{Z4=T1FsWb?+qq(Za<2k4Shtj9I#YSuw9 zq+ryV4THGsXM_04^%0!*o>qM5y$QVUkR~+EZUSu=$PVUE9#{iocpa=L!TiKj7_n&x z#G530>z4Xu7m85`5UZa=i_1lc!ih>@D?M*eWVR!bjpSFZMj-k-81W;>5gefiJVs*Y zA4FJxn}E=Ct&F)_%wOvOYArrgw4rKQGs7E|Q}8@Zpt5uuwNq10Hbh{9GyVjTgRbNN z{CIz~TA~%0EPu?no*c}x2<-^%ya_oMn^6RdY~)qLkH7nGqsM3Hxj~WVvZMs(I3?Lp zxsN{>2oo@JWryY%J)Kt9C=k$ShGBx^haIle>?P)=e-?6CX#=mTZ$f>23~N@e#i56v zfU`bwyebO{Wf+q53sQ*CwRHoAM{=Us$R%Co6L9ZufiK1!EkyIrED)Ps-*~|Cef_}Mx+B~ zxKaA)y%NQ*gffy1GvGDtMNVJ<Gnq}!;3%0IEENN; z-$N()csg-;6*-_ksj^~l>h3ds9gw>c!;{IAkyuQPB{=MfB$#iwT0YHyPTHyXmUmxQ zxBqfhU&gCgs-a5e`E@((6|M*rQ z0}V4}+vQSUm_Qskj%rznc(A^oT~&=e;ixq4m?kvr=c1>7!| z5D&JXV{#kH#X*YM1Nh`Q=c2hOqzOMf)U+(+Kieyk1K37kLzpgASachMtTeH%1tme6K1>}MmR>hK?a^ZBoHy&x{t8Vs--kJgHB`%n~}?pAQV_k z@bCqM;>{G6aP^@@vHj$nhSX3JURXYDcQ+sG035p_lYpUHr#%t<)Y^ZZtubprOLciF z{%7d#C=P&Y=;5Ap3y?u6Nd-@zuB(TNm{MN!v^+Z-1v>~fmRu%G6 zfdiqCpbL)kIhSBr5lo%lA`L&bqjrDJSIFnh<%HVI&MF)ZN+{*eT40aqI@Q#;19&IG zfnz^?#mn)DoBAI8$uIktE=EJBiYVFgdGmnBvlbR@p^$)s!f*px8^h8MUXjsUHlAKO zK(|3O-Vn!WM>pZ(k2Ye)6d<4G!J`4Vw2OF!HRKT1!HCuoDwrxaGt9bo5y=;LWMo`h z4!7+`&S4%Z#chHN%DHVYvl&_pSws{42vXcCy$JL?1X|TD>=TW4ZvsG3fE}URD8u*b z|I!ld>O8Yso1Wx10-2sylU3uAmUP|m>^)IbvXm~M>DRgqKlv|BSR6vQItdt{f9J|c zg6{Mx{GQykmq`o!@7BA2Kb=C3jY}RMQ1c4}mIp9et2Cu_$ML?y4v7_gH9f=C)d`0D zj2IH}D50^OLl6d%HR~G@XTSshV>hfAqOHQt>dZgkuM zyhF!+hn@5v%bR9Cz3rJl{a5!3cOPtatipv~-W&hE-xREWrW3!qZ5bYX-bH7I;>!3G zBpS-_DtTn-i{~9;D3imDcjxfLsw!Uj?Nmg=owRsesWNzs+_*WWkcCrt5tY7IVZ|mO zP&W-$-BefXdY}mlv7iInNF*#0L-Xk`Y%}H-?G#W z4-bANk;&#I-@uH+a3~@>eux{MR60}7mo&uTFyiBDQJ0Kiuzwqt zE?bF_Oo5O@40W*teTFhhg%Xmnl$xukOOb>agX0e19X#gE*>l;vIbS{G)dN0s+{pT8 zzp$cv@$t>MEts=+1HSu*qVwmL@E)K z&M%R&HiCMQsR=oT853n4hRk-lhi;wpkR=EtCnHcl9agfPHurk^I}23~(asV=ym2OC z4SP_CkSA2I5&7Z<6mnb1KnM~inh;JjO58b`RP#rdd2a&%Xav9u)$^Ugb_qgHD+U`{ z`_I)JcYhX$u4l<`6`AbIZMkZfS0z53>-Th0(DYR?RKOdsinJ@XVEsS`3IyvbWN5(( z?Xa1wbo_AwFvB}7LG2*De?{7RD}EYXrP2J6ZvO9t0GRQ|mnazUr<}VhOTq~rYwqf* zhMb9|l71{p7L5k5X3cUu|I!LNjWCiFoW9+@?;|}0$919lg z`5@@FZ27xp4{TWS(Y~i&ya;zc-F(o&4LI%FC*icO_ha3C>+sP3Y{tD$I(TUl?N1)} z@5gZHzO4u*s>pSFieljD0hZ80qpt4!3dFRWbp@6F6{rj>MymMFZ{3K6hy4pqeE*TCmdlb4$MdE{+)#XS+O3fQl^D{)2?rJZ zm<-#_4xrkee~S?^ zXh9$x*NV2=cPU~g`2sE8DN46W1jX`qW_UFb3pEnl)h)xCz2@m=8wNg(QU+$@G>ni^ zzM*q5rMbls(v>0QLN#Ad1V=Q|FaxZY*No-eGf)+}flBIChlY`@cvAmQGmk^$11fY` z0-E$=%4|MKwviFDhG0P2F;u4CqW5IuS56@)aGbUKD-{M(JYjUrOLPi_+L1tHbwJO&$-~rje~>6 zSH5)R*M9gw7cRdhiDM3*fQe^J!+S4&H{D7&=b;VgTGEe!S83N~_|F?b(5v<6i0qZf zVyP}UWBb_GQ~Cl%NR_?p42K9?Ve~D5m1vU?Ay7XPCTAywg1nVpCW2UM61=)8s1%1` z7rIc)twp}KM?!>fG)|6!9Esnuyt90P|0fv*=7$kZ&4I{b-p(PYo!eBB;kv*tRRVDm zocn;(;6;7QR8y7w?n^2C!L9it$=G{}X^<_ppyUy}50y|T+A_h%8X00CH*o-2CjM~e zo*)1vDC#(#mhmD(*R)>_W4MdZ6bdtU1~PN6s%H7}-OfMF5#k$d9aVs6%h} zX54w#pV2#zM@xH~ggy@0bVYE$#d?-5ikzrpL&Llsf9=! z4e@kFU1C-%s_3>1ZHG6}Z3E26i_)DKsNaJ^gy}Lw)APvLl=A{NLrrrKX_!l>pbrk+ zisU5nwCIACO(8-v!rZbP*m;P+8h|1M$~ApquR4;PldeCgDu6dSE6{?#dU}vQ z*i(^w484^}a!y!;>NN#O7^V*YUCHKWa!KTEi(+bm`?R}O%2|XrtQWOkhW~kaZIwo3 z!xn9RZj!PLJ;;N*0YiiYN-|X_ATsI<$s^JS5RL{BizbnZ*P&x#JJzjRrWAh&i4{1h z8%~e|h+ys7GCp$tiI~}u5=k#*`2NnX@)e9YxcP|tfmq{^6P}zv3|fYkJFt*U#IR-4 z8a(pI-{>R9F?Zfn5hLX?qr-g_a5a)(BM&1IkCFqiq~}6+M@XfC-Xrr*>j3V#>(28Z ze)P!?6f4DdFJ8PTUdR>EKQKgbZJgq!h)ij1YoCNYX3gt9=-`7MTCn$?zujlvoCp7r z=lJRacb&5D&37JjDD5tTWDNbmAo?lp+_b0ZRECq{(OxRi!Ja-N~%VaDsW&bw>T3oiRH{5LGW+n#n%)6tnNOOuLxWTCn+*9%>ppYg7{XxSNcQ&OYY~jZk;|mfK4~`2IQ;{1UQ+khgdMM@ zh@@v9avz9YMU@>GU0;UqO#hYPp&=7nwr<4IvLgr?BILsiIayQ^%Q_;kAyauAZ8@^_xT^jyyBT4H!T_9X531W#9I-qp98x*gmQMXv@DMdtS4X7NqItM;z5=EBn;ppoGR$+M7&uGJH!zfe#y^N%`IwdNX_XO{_e`+ zprr)G-c<|?_aINuKl;im0+M+3=WB28=|QA=g0q~vFY)N0SjodN+YpV#gsRIYm8bhk zPEoFBHrI(c^XAjXWtHFrrcId(r?nY%i6pvu`|;d!OK|Lm{sl)IFbTPIMzu6+Ty7dh zZ4v?}92xdE)+G^1)}cO`l%58j7R&-5Lj(Qj>K?$9sk4wuCS+{~O(jY0w*@QNHBZWq zGU`k!A*R{@bZEw_S=tU0z`^D?7x1Gjrw-Lm`> zuZ|DM0VE4r9)vH^FL~e~ZCHvnjEl5~(oS{KhH{JQ#?AsZ)2m{4mK1>vjSV)`(JN5v zfI+B0=P9@zvQ%D8`VTZ0m)p|jO9h!VN?W&h^sGOtCK1yr!F7=WajVo(v>66BCbP9xc2dPvu5}hq7rRWWkY479DAU?Vihcf<%F#gB z>~}EB5>NQ<>h7lZhp}qaGI)J{_`EJ8;}N=@AkH}RGphACU$8pa@A5i3GjRz_5m4LO3eSaW-Ymi<72xsgSfQ$WQ2vD*;%W}lH2-ad|Ajw3biw6Ue*3Y`fv8sBP%Hh{>~ofpaF>xLC9F$A-;Ws6 zwsJn!AEE_rKz(hMR8{r$_X~SVU3C>Y+nUkY7ss?2M`F^XN%>KuM?XIO@M%ws8{N3% zU%k(Ln^y*NS6{W!`OXI;<0Notw+o~FPUND!i03#EWh2X45LxAtRHmnj862oGC0*44 z)vwN(W3J(>AnRXC$Y8_}on9^kD+%8F=s@`C00ijhy68X%TdwMv7YVdk?tqYHs_L;~ zPD#x#)GR2@W`YA^N#!$onYV!5gOP*`hLOUlR4Fp@r*)kyzN1pCUnbFsT%rYqbTd6m z7g>Hz^Eu(RWuWI%)&LENaEl+$^AvKXQcl)XUhZ=*r1Hq6AjLF>1g*IBmwfGVg0n#q zRPwJi3BVP*-K}Xs#i{_w1msA;2e5AaSlsiv2N6Ozp%qKvr|Wk?k$&zcC7IwXssSsV zrKdex=M}V7zm`gB~$`X`!sa^>F zY%6HO3Q7!}O}!k8+g74Gk=nta&Q=IB(32n0kPXgRit$MrTsU&)P`;bcK&`@6ozsoLuqc2b< zGv(~$x8-w5?Ap2ylV{Drthq<6TCm{w2j|V2`WT&;)IW2tdoDTqUFV~(%*$2}MTV5m z`1}A~@9M(1Q_sP$o!ij8avgGnwF*HeQsFG}78PEeHj|40W3&Z5beBE!Z+w6mnlOgr zivCem8Yb227~i0gVspY)K^DNzRfd`%AKlIF0e{zJkfl`76%)fE_yuc*xmoHV=ls1R zz!Pmux}PNJ(X9GCZ#5j`2H4BS!WJA(-i22U?#RXH=RR^h%EUtEl6#ODSOzWLs_ObV zjVEclf>po+;o@Sl4Qp(GD1$$d?*igtWti z)fl9Z1^;e!gA@BV=W+7YQ3SjCF*%=+;GbGQ4Xq?)1)C}1$b&No6w{7Q!pVU^T~|m$ z(tkFmO!wiOzwrCfhbI$hgeod%os_ajb3H#P-b^lyK&TA6wjaQG7k(FieDFsY=pV2$ z44RO|#N#RHBM1h4rA!0ITsXGEdy&ngNx`Ir(ws8^icnOsB=aV*psRWWyWFc-cgaZP z#1Qg0G97;!pk>9A$;5XLZyYi9KiUQO>gUe9|AD7ozSK{e*F}rKg3j%dyiq)MnKzcT zG*4=gS#G2lBH@U%a%SjoILX(lCZ$nbGaTgsH#V$Y1wEQVb(tGGNFaj*;ap?^x2${{ zZ@>Q1>|dAF%szVF{F^Vi{EGX|K7Q^`tr*fL6aMFZd4_YzvUys=NaP!aVq!qUAKqAp zr!Kz&PyFWBaCdg0_SvVATeTdi)EUTn*|39i%yCT z{=l9D`JW*SpUkm<6jB2OpX2>Vx4s9h<3mCOBVa2ZBh`ntKqFm~ltHeazy*_7R>5YB zLOM4<2R5k+c2rf0g*XZ&S3r3GpcsPX7K~DTA7C343MjH*7u^>tomgxImaACw>>U5l zJ$8J&p%=T`x-iAsi>&p^YwEo`U{r={&^_e~`GbK+t2MdkSF?h#+pQAjg5^xhY`%ij z?lZ@t5TB5MPZ%|p^izV247p3rN}O=g$@1BGi=&V0_c=q**VltksDdoK(-PofSF|Zr zh1pC_jXm@F#E;MBRO;R#q$oD45lOdZF61RG$$ce^8cd6wx`>O4t-_pXAhh%kxwf_& zZ@lr}O88HnH}jFFUwik0_&cl9C}O`;c`7IRWgo`cWm`P^~Xi?dQ;xd z&N^z&GhT-l|GUEf$3LEH{_ep=_GsFj@CPu#XTwKJSKwQRPQs(lKaU2+dVW9bN6dor zob%zDaTL6bLuk{TaP+mq9?g>^M$--wJxESl!|t4pbzvRr+YRjP z%p=lA!Vt?rPmsTwV(V%OQKgYpW3d@}npQ!WSqk2hAUSk+NW*M;xD!|18^^m%WGT~j zQjQ+fHkQL5a0$h9mP?Qawju7f?e8RJZ0zs*+>H-piGU zhN+C0E-b{VkDoIVsxioJDU}?Z?F^yajHE3~zhl)F3?>JWR3kleG8ucLva;&6|40OI z`9)_uwtVf!7mgk?o*-4P_)82qIq%6ZU#OH*Ir+DK^2s=0qM9_asH!2M5BSk?U=Q{k z*oz^3bin zdw<1?(<_|#iyU109$j=w`qm%cY1`3sChv)s}$i4I=GMhd^dedguvP{COp+8$dhp9Hkw8rZB86jBguif-4FAtb_bD)6H z%{pdQ<}j@yhmqtelvmo}ts>=8M*gIilqUxe-KJ0g+MOz1zz6}PFcL8x8^{X1v!n$N zFVQfp%8Sp;tHfEy1TkwuEkdL7Fk&eTL+w7f+DrfMKO z0b1KAu=3-i{Jg4w(ztK7qiJ1b%xyxIt*Ek8sjMbGzl<-jNIHsT^NdWg*@9)Q4aEsy zQ#}aE{j|$ww0E|nyrPOMdYn#)$Nz3 zdrBr^1l3I$9->>l2Am0y?1AL@b7JshegLQVI8&n857zryZo59HSW8VzGU&RQUH^#8 z{o5#jE5Ca2J#Vetap7?bPe)tJURpR0X}^LTB96M+#1&9%Eus*};xcsNvB}(U5gv%h zfR4sdlaWvL~(AiM4c+%v9V&Lv=L*g%l2J z>A`uwzaQrwI^l0WEOXv3Tp%x3dl!6fEk?yVuVLio4LEYkJ|T7gfKJp_Q_eZLE3^i> zvfys10e3|2ZMz(zs> zwQ!an24|>_+=K=az*ce*Qi@@hTsA{;Z3n$nK_LazK`3y`p2sNRNxYT=c@8wYD6{YX08WO!5z%5HZm8ge>oV<%2lxr%(DFAR=e=@wIAh4b-I8%->2cb&>d-hTu%}V^4FtK*FJwRrvfxU%={ zB1*;v@Wxwj;O;*>giYN8aFe?bqC?t6%J*~MxoiCscYk+!Z}Z;akvnd>6Zik|d=K}F zR4~B=VTVW#?uu%H&O>q0>J8ZNxeKuEiN`I6l$6TDzXz5sAt@$HHG2+l{3*bkqyPFs zY~KMac?DSh7TVUY!h6jzyyE~q%Bgq&2L;PLZd6p(p}MvXK0-VhgHb~ck#v$=nH0)% zF$~uRFwPrAW0{HCN(X$^gbK>(MGDJZMaqYe&fY}tl+?#FVX5v6z~%{A^j~VSE*GX4uvwN|5o#7lnHwpxfZVp5 zV-RnXVISO}+EE{HFr!B-!^dyBeo{*5i@A){~tS?gL7 zERLNp0SME7wUI)}@Nf}Q08ZiA%c?qjDFIeczc|)Qp>GvrW9yG%3$jcw&xxU7!Q~<$ zE&(pDsv=~NL(f1N9((+0oO;|?ba(YDSk6T~s^w7$FY7nEP0nnVNl4w+eh!qgeCQyC-dP$+ciW`{!tr)XZ8?Ek`KPMUO9Nsvh{y$0qY+Lu?p*LNB(^kzB zz~*fqqpv@Xk)ubFuN6fuoe|CJBR^V58j~3r!pSf(%-r{+F@2mBuz4|l!Z>)01m1u1 zJxQ&3NW*{Y2iM_-?_CKO`Dg2wzlZlfT#2pQcOnvv$pV*^S7F-JX;^T~T$H;F+;r!y z_|=l-LQ2W?+>;t7;jxQ9vt{V(_l--fX?O6v4#UfpbY$P?UNol{!$yzCFZS%iw|pV& z|7aCP)YSoG$#Lmt(YbjyJ_-deo-F>j=m1Hu512R=IQIfz;Yq;AQGa<+xJ7v7a^ThH zfDNnh@w#<*En)~V=n7V1?av-jTBhASTKkQVCkP6M-OFL?3~0WsNkPN#M`bQrpt+$@w`!rY@tN=;}$ zCC#TuM_4h~BsQR`0wqPrZYAgM33-e@WV9HguI^58YsxBX(AV3J@srQMOD{ZufG19d zDy@`?&0az{eCr-B8?rcBTia<%?J_{r?{Ua`*|+ER9b| z^#iUNjfHy`j~YGZ)c+_2aNbELw0mnu*7xe`|F?LwilM*vhr%&TvrcA$3A4;Cn7;srk?I?CJEg+ zW(KGBcEHEVfSwC8=2*($WG)c@%L~-m18iCiy!0dnmM=$Btbnakk3uK?F4sbo^8u!3 zNstfDzG^ZOMQ49ET6=rZ(-%f09)pL_L4!GfQO+>N1q-OJ;XJeh*^xt$YH(uNsxX$U zNuV|Ef-69-m7T5=>q9oBBGX)Mn#~j&%xsu8CWLRCTZs!!AQYD1p(*xK%CXo9C@5c7 zW511@PGCVz+9g>;v00T5t;6etGeAnf?@{&f+%P1Fy&%8GA%(i(E)49-;Op1#!&94M z;7J^f$YD+g7d^9_oKb56=ih|_%U7QhXXxisUqmMyJb=jbKdJN`dyEXtc!%d zYzSIO8O+<$jLUDkT?s#*ny-EqO=Kx9Y@7@y!QlzqDoWe;I=%OGxG}D31m@N>;(|;R zGZw!Dyg`tkToW8M5BTiofoXp>@UyO(UZm7dJQd{;LN1Gb3H$Z8V9v%(*nj1<$W0gz zC;6%M7=G?3 zd^YGnczqWZzt)7e-%H`cJ$AHZJ#hO9YCJlfHs+?|+6tD=4ZHhs#oZdtm^%hOcNo!x z>Pt{1z>q$7@#l+U!MFxKLzbVUG{>2Mf|dX0T(?B&c?f_5`M2$JXI71t93~JK{}0@W2c}C94`j@Oe+?km)sqj#0nHu znPFuBOciwFYyk;qCR>oLb#ZyMWF!0-GkTn4F{M0Ly7IIVMCX8Ye@`pkd}}G8MB0n` zVQ|?s;dbQAmCOf7CIk_A{T^%Jta%W471@#vqol~xXBeui%PdicC`C$0h2vxCZ2HB2 zR0jV5i9mM0&(eUqwrv{s{EM$GI%@ujs4eqKj(XIX34{O+$LbH3V_!=L=FFNcW1yLB zbvwBSUVjB99y%6jg11er&Co~?<2@Z%y=jXq$6Y^r1V6g&axA;^7CdYkL#QH*Ce-b5DX%<3{VgHfZF(>2XeXk)M|5 zUTg=3)(__@9!&grH_DGW7H>Upzj~;fuK^x?4(CjmhE6&djdY;Xw9Bkz%efe2pbzb2 z30J%Pcu{xbo$?w)gXI{~*Nwo6r2r`{ytM>4bTSC${I@k*LWl1=w_S?`+YVr?*8%Oh zN1;~^L;9$>A{ax54aE?0pMvEfxCxFrO&iL{5>-_MQ08$7C0WewMGJ!1M8IOjoBOc; zt!C)^J27TV5K}IghBMEu!O^2L7~#&*v)d7mdr;7VVOW*xqAmLI8D zSP*~&>7;wbHi*Vslja|;g3P4y$dI&VNfG9_7J$otbx!@c3H}GAzri3sn>jhMX%lrd z9@t4~+;CeHF1@z}134Rp1ss@6@0m;j>9wN%QXQd2ga|Mfp(z$0 zH&Tf(mM?!F(G)*N9fmd3lK=07oz~yOLq#HCG`DqNfE2pZ<0C}svbYn9LS1B5gt#rz z{*8l~5mOt~lP&s|6hJc8JbvQjtN&vZz|A*Y_g>Bn)dW2r^u<#+Wb|lEojL{K?p8eZ z)U%j(+zAMh&pczsB&>RWDZ$zljz8`=40QL%w3J||TrBKv^1sg@0a$S8Oq_kfLVWzx zL)gA<3-W$Hx?*v1C+yOFWmv@$hNkA$ag`QpZ7J8J#m|tyCP>)7Pn&b-nAynu>_L=$ z_p8FNo&I1oStf#oi3}=T6_TD@*wTs3r0I7pc^y82&3JP$@a-#b9VxNL=$FP5jO_03 zmu-s0<5CkoY2rlGl0dp+QFurR?W8?_jfCeFR{*Q38YFEr`u%m#_G|*acM}oqB+RoDgFlX1>5UQDh}5xU4D zLJFfV;)185me$aY&n&3NiF4`My2(A_Nke*Z7NA~gOycUlJi-1V{#_fRIPE*z@yyyV>PS&caTG8cFw~N(T1BoXDl@O^jVqm8Y&<(6A;_{0gg;+J=0NaI+H89Nq-jvI?DYnEZh&JKKw;QWr& z?_$IH4VZuO$!OWT8LKz%!;Lro0@vN}O>BGWaeVON{f zFjR^`RPH%%qXVj2yzhhnGI|CTku>TEHuk*sAX3fEsJQbEl->0!1g^UQsh3|w{tu7C zzi|V;7q($(ID)qpFGfv$Jvp8&z<*tcr4`k<%@M$OvKqbNFn)jEeV89uD$`z`6r*}6R);m!Gn7+e{MCV9zO&NFQ0~m_Y!4gDnJ5~)hx+Qp4I#TGh^HK=p^|E!3tFFC1azBQRLPJe}V0^D?!m>IV zWkgvxhN_wdj3mX&Xo-v0JZ?H)%rQvoxNpx+TJMNVhi2%`Ie$)TJFF4(R&AfWHeQesk4`-ft zKKcLS@!V67VCR8WeE!m}W90BgjHs!=4NpFY$y2ApjD`s%jKVCkm@d+|`?hR`X|KQ+ zF1sA)??8871c%I+4UM2YbKymkacFL*q!i2f8Z`snOTUToA6yEp`v89X(F)w%oWu=3z7Y!vk*Feuub_uM|I%@@ z(7#u~_-3OBdhMPV;N6f*fy>0MbeI?rOybf6UCK9BudTRWL zZre%EYD49adW6WO@Ksi0{Imiofqirkcfd!k$ne@Bh(;pl?d?VPkZQEYQg}9*!_tTM zVbcA(an$UOG5w@r7;|z1F1qa)Tr?2DDbH*Ly6F9T(*o%=o(muhMmE(4U$87cT_?rX zKglDsO=MVl?IduVOSiiT_WMZ*yAY4?pwt*aZcS3Fzr1lTp*$1kae1_1l>Ga_JXb}+ zaSq#MtP$YW5HcyYv5OC{OA!%A<(YlQkX}TUf|J89QTt*wpc-((-F0?h=;0|t4rF67 zvGCjy?Iz@uqGzZZIud@LhW>cI)Pt{Pppdevs1PX6rM{e@Vqy_iL0s>jN=6Z(wf4LH zs2Qo6HH^exrC4=&mV#ydNm0b2@k}bU z_@9x*|8*B&`?}@FU4PvT-|$w|X`Ol-WvQpmq z&f9O}^fS(oDX&3t1#EObQQFp>1kZnx?7>z0_5pYOv;_aZPuIQUt6#-R`tzLc-HgId zu7%m#FTyX~fBYQ%VL8OXGtNZW@e5!+{5zx{xEIOt24tp9h12InifbR5nx&b=&7WOY zhvDPKppo1J=1<_WBKzcg(=z=>j6|U{ZCKUR7p$3wY6bzj1Oalfy84nh;jHtq@Tke;%SYv& zyyR}C69ZWJ!Ddv{4T0aq&1yNJ3g@OCRn3~0?;J?vR$itVW0#LT5N7vf_rS2G4@t>2 zoyl~pA5D9AqNSsk6r4@6SGvV7SPXo!0*FWYAD=vJ`qTdr3gDerUU_o!j{QRhVtwf9 z>cZIZlQDGIa4da$33d<~Sh(;6j2tzJ4p19z`N_}lnF}w$lyRdmL!y7VP1 z-@F65vkcEY{4o5n4m3v%G>jQTo0vt4X|ZXcxm+_qLLBLAMSFL*q>2oi$_?8rf9hbr zHT}#<$bz)-1cF^Y?x_|()+UE*Ldb_bdJ;!<4Zu@XgAZSQMfv@!KLEaRK7QLU5_j5s zn5waLv*SQZiyYJsKKu|9Ca9{wb!*p_guj*qjeXuOx|a@{6ZeK&@y)Jg;Mey8mt86E z|JqGA;n&xEA1mlSj=J=_DE#Ucm}Gs;SW<+)l*eVilgCblqi~bEQTdH;!4vNX?zt0@ zeQju^gO;ytfU~xSB^15QP3Y_F6^7d&Jxi#j7Q@CgqGm_~Tn)9bFMAV1-d%BTGq& zF3n2VA!H>^AGiLJ;$Rnogg= zJi3moc}#+I9K_3I)zDZb^WYGqLxz1iMFH{8I92Em1PKkraGxb<5w|4Vy^;Gh^oA&I&hMhaH zrMU%BS~tJjL(q~wUZ#GNr6GdPo6UK)x zzl<8r;ggS#FQ134?jWuq^f9`ifh<&+ro&n=CQ8Tz~XILw9vKdEu~|(gxwq@ z?4>lh^=E|uG>bI=)=T-&HWVk4>$J0)8ZyMp>lR}XSNC!J$KlW|u00hr%oo&P5+}Km zc1}$a3gAW`X*DNzpsZ>nxpWOA$Z_SuG37VC$K~0Xr^SG|1ToE?>`ZYdhVKlcyA0)rqP;!A0)IAqbY0p}M*aHT7k3&ElwXhm^v{ zTc#X7^YwpLCjVCzz>Y1OPhYum1%^$SOvZ@$S{=|+No-!fR>&gi8tV`v0bKv#3M^l} z4VQi6dsw^bJv{u#GnjVRaNPTgUrOp{^ynG*{?{(TikF^2KP_&MEHCrQbB{IW`MHqJ z>DDl!VFa?FYVtE3D3CU-uc^j?Ew?txWd!Hq*ns~?!_^!ybeoLgIu zZ5y}X7eBoNvyVDTJ$>Fvk;dMXx5p55=93S6L?xG)H7?0&(17b5K~egijHSjvm1Nx3|iq1Lz=_uX$bA zeeuQUdE^oJcz7f|Vg1o3qkhf|m|NGNYso8U-tZn$gj$lPodGu?0_VE-;ePWi@W>L= z?GgddvS}%TVc*$MTwe5ZvhX|(n^u|?MOa=Y!lX=F+kxhG1AcD~AwLJeYy?@E+%$_g z31B2`AVn@gq_Y4EzzWK66M&yYXF$uVQCL~4xF=`5@`L_dwEl+m@5LB^ZBQAl4a(;i z)?rPt>ZF+fMH-W=+`mng2$$071zlkPt%xJ6&&U>pTt$}-VndqKLRDo#7@E(g#BgX< zj$ZD~Ff9r(RYb(md8X~sgj<05|J;I7b9zC!ZuGNEp6gQxZKjh520aIP1FS3sD;Q>7 z*35(R5OvG-;|keyGV$ntgaSwu5>-oHUp&X@CqF2W6e0xP)`9*`$+0?J4)hRwHb^tK zw6|h(<7oW;H$TJ7!>6OCqYdBqf8Q11A3u36&N%i6ytCw4u}tZBLOKQWc||u}%Pc_Y z1a2a0{q|1P8R_>r!K!8b{=EpP9LLTJHd@jbQ(FxcGu5;j;~yDN$G88oqe{%0j5ox zMiwQ9owRjBNVpd7-++;HknlVS{{$ZLnZhw=osEy)Uxt_Io=$I^h{A^}Wp|9G_D>}I zPUesIII;7*bJ6$Q^Wb?x1%j4*%){@!gr27DsGYwMLw@jM)RIC9wO{di9KOU~8;9;@BDQ_r6Vww(=`GW8|G|6(9RxC-408#DD!e61Qd4PPj zbgL+eg_mnFJa%#gNMUk^Ak%pl3d;Rpf>ka{ci5~4)D&wWtiA%XG{#M{ihndj2KpCI zojLo!e}n?qk_Zobb@OI;U4EG9m;_^4y_iFa94lBGD#3^~4hdrw8@-pLi-T>mkhF@-gO@ zd9kK;7=Bk@iM^{=XP1c5mH!t}_s^&`pmuEe1eCz3TOpsc0> zEd=8$>n7m%Bd1~Gnzz&;px+T_W>Yig%4@xN=-~%M_cyqZJg?=YO zLdgmsLxNqPg~m3^3P8rWs=*p2~R%#G{%e@_oolawfoCA0E>PHy!t$5 zZdi?(1oyW-w+N5F_B?)6Hym&F4!|+xaI}$z?=)>#XgBe~t~KyaI+Wap_kgNu^bz7Y z_VhEbbD0**ZF|+IMb~4*+nC!4^jj<>+dd0@Lkr6ONg98FKX4l|5?b-8i69!@HV+N zw-TGkSnmiA4udG~9^%+(mi4r#$(T^nAO(;iw~xoC7YBVRQV>Hb_+*3uOQ~UzaM)PU zY0~A#^#plBr!K$OLIY|>fu`9?1vv^`m{LF_t;QDZm;wQYjBK|NLeNbKi%NQ$&nQn= zW+N6S6yWFUYpN2^fKiHhNSCBFV~m@ZA_LKlQx2cK_TNSU?7ZOYZ#b5&x}EuJ*_7K0 zX*dajI;|lPjT_#=)8i&$32Dto;wiivOQ4A@J!!yNa^lQ%MqrbRS#$FV93TN`7*dN= zYb*9{--aw*M84NB!wa!{G8t-hfid$)d!r0+;sVFg7{dgfGgC6?{ntg>f?F$Y&K3`LheVaDphHI|DIp>}CmmioB!DZi6ucdDS zPd|o}+kp zZ_{yn$@GxrC*g0bAVL|I@-m+qQO@$}}a2rX~ET;zSzjFlmDzyk2b1 zu`K?d3cnJ3w}k*~r9#+)O)>UC)qaja!k>m3_noy|1KXf0sh)HKZD{iQc4AX-L$;EKlL>BbY#AVaU zXc&T2nBO28k6!s{$nB@10Ct{!?A5+km;Z$M9Jnl$7o5orxyDoHX=8at0k;yf!Y%YBV0hH@S*{)wk{(kH<XKE+xqM8Kp-G{kw9 zfLJNBB(TLmT@eM?2MND|{aWeoHW7Zaq&W0JmfmXRQ7(ct-itpsWj$B+&jN!*SAm5_ zv1sXv-kUAEUQ{r;kap@U%seZQtuNDzi?ZY4q^86HI4>{ghbQsq*3V75j8*eE+-kUq zMOdm8;|Mmp)k&C_fS=SJSod0N7KU;b~Q0Crrs@U#F6e=vj`M{^B=SUj;LugN4>Q?nRO93Ihh znP>zqX9Clhe{bj^SeVM-%Kk9IZYT0wP2%^)6;@xj(@LV78DaGd_(Xsk6eSvd3QUYK;kArMO!OV>mHt4SGH zMECc|A&q#TwGC57j>Ln1_`^TG7(<5vU;Bo7t#}vMwgq5D*_m@n%yV%G8$t^TOHEDAij33mWauCk)1(&hS4sGdLACm(W!a0q ze(}#mi|>%%QH`$ppVaYd7Fn?6a_Fj5I!~XQ{tE#?y%hbo(t^T2SP<9GZd2(!n`tY( zk=2#W?okxxQUqjIuwSzx3k9<@&DUl(MVOVlU`RY6r#VZgK}|Tal#NAZ%7MS47gHz& z8LeQ6?jQw3tHD!=QyJ-f$lLQ$xyXWD9ty}B7iS9=S%39X+pijL9*c#){%Ilie@Ovs zzwGo8{wLmfg{RBrc##CkK&G*(NUCXNRSeZH&K@TDtC?sL`7x6a{Nlwp>%L#%!QKcK zlNVV|TGvjnJRCJKaq2Y0V*}XHp@M%$%{dAog8wbe?c~QQP0fK8BOHUjq5_-x+K~{p zV7ov$n>Ap;ZdLj*vd}GhW(R3;K2*Krq7b&jBGZXYB>X=lAIu$%;_)}%l=%by(%0Pi z>NV(V_s*SIaN>z*r5*ku!MLmYW55eg`e)#c?b!AHivx+=8?;= z7T#bv67gs$VxG5r{hWmaqL#4Eq`yz}XsD)r$;jc=#c$;ZNi{umYj^G64Wp(4-=fdL<{fzYnP)JObM~L|*XB)|a5BOEc3O*TjVylL z)eAiG4Dx540JF8@Pl|c|g6Na*7ex5;{R7y$U_P>RJ%`6P#n z(MHkIdnGWalz_{!_zq14`HDj?HQlgg=qa$wTj!uZb3X@r`-Kdr;7m)2+tiTk}B%fNORrFAQWdIa8)2T6^$6tNY7=V4niwT z1j;o6Jei0a-4v0^!62xh0B&o~XA$ck_&i2_dgt<=RsfE>7cKJ|wz`}zKx>u*$I|V2 zE9hhmeN^?z1#9k`6GmSj97h}j+l3b(a?dTu?b{Cy$Azqh6z27>sIP&)#)-bpPNb44 z(jQ*jar>P(=j0>t%iC^1f)qrkp!9x@;SwpI2rW$8K)?Dp-HIn`ioOYw12)B<&81_g z4Ame{o7?UW;yVM~nB({3b9J={uUUgT$mc)(tg}9K;oti4$2jq%lhEmK;s4nU+}cc{ z`Rn_U`@(rZdzTe;*8Ya&SHhp`>A~K)MHzZ9J`_l?I6o#}GXS>QD?)Oc`i&t>)>r<3aeilfWbbITx7 z5_0C5>2zj4C`oO;SB=p^la z3F)I>?KuG4em8PgTneqTS75zWllm7V-xNA67XEB+ANC)86!N=vi(8Ws;ZuVq#3GU+ z_7H4-B^JYKI%q$1x-h>yh)67qJV6~>zzdtt0W(8BXd)%kZ3BBXu&x?7+ssjz2!Tb_Wxa z<|EPYWuNx>{D&35?kg|)ns?RquOn1OH%AM}X(5Yk$JDKys1Pt%AssHX2oJ!1+^Nvd zJPYxgu7cS&KyP!BWzLpLI{Cc?TC@!LvrVxmTpqV*@JON)x7~3k?zs9gMB_=}YfI9B zwQDK>W#`%I^uC}sK%dnPJ(N;mtQ1z#`u~dl{f^2yEGQ(=O-fd}&7x_t_?^%zeb7m$ zxni)8$iP90pjo8Pek1|b}jS3@fcks#+` zBgANu%fo#mS+?qy(kll2Hqq-1(lC8Y>M65N^D-UDMebavEPyl#JJWF4j1&*e6k2b$ z+o4=SMnZO%HFN{ktU}WY_!S)+T|s#s#41fg1w>h57H8uLxo$tm$fpt zax(nq$|~JF7?ViRpGVN4|7ps=lamj{1AYA%N>=mP7hWj&a==u2jMHiLZ~mJBxxe?d ze(hSEMm~Rs*N3yn68&)pA-AipLyp`Stv>=Yp7_h1eO7sEQTS6N^i2yFz&y|*urwn_ zQnB3Sq##E9TT?uOyXaS^>t1~0@mGL})v(`2Zq}oZLF}c^9o~$StF^B#T2X z*SmCrS9=0H+5>Gt5N^8v-E8kz5UQf3`5>&v(j&*>S}9X z4+h{&B#@275RXR1>T}ugtMq!C-kakQh+MHpLd|_Q)zuC7{1?xINZpiruaevfdw_FQ&)j&8PmmOy*xFD;AWWI6SmS$w&*;o zkAF`u)*b%YHd;k!s#4VurJxn76|GnSU*GAl$qWMSX%V{g5+%DP^#$R9?hhwSn)2BH zM1}4rRsdbQH#_oo|L&EtF=LS>Sn1$#NgTX0Eiy>f&C+t2x5Bx!u>E1!k3AXMf(0b} z*T75|C{))=!w!$k&Uwp_bNDbTo4`w?EMBEee4e!ZhpgX8i@Pk}u!^i!A))yFm`mQp zk?2egF)jom?Od=K@K=^0Kvp)z3V<{{w__$_(NaOFK^okhNaIdASbHW-z^yrgz1`h- zcIi79*4Su0<(a@DvMa~Z>k#hxJL#WV)U|8Y;0#OnPa#+2DH49$53WV-_FJG0M5VR& zuL{44D2ec=_wL4lBj=#d(&6&TtP`2^6l(geK}uUi_SMuKn+)YtzOkmMWSFh~5SaC&k*lde ze#A%^d$u9-#>>!1xNW1x!5ni4azer(S$0u^EYODC3p3zBkX%A{Z!2DJ?!z-2gy#4T z8zIhCq!rSeIB81s#D&LPdG}qvdYJ!S8Fb$kWhP_2IBC~n*_9drrxXO4P(o;P+9f-{ z5T6Un+;)$+3QXC>l-^7bkwjmA_c&3qB#h{TFFaJk8mLiS$_NMqoFT24#_)jf|jBUt*IvA&l7~TOVJ7Yh+Y@N z!Zd1Wf#>;s_#AEQp9v^?aReGd3kDpDZ2@ymQOU4n2XJqVm z(C?5)tJhaXaG!gn2ax8)WerRU;I1?&hhZb|4WApC&71My{rBV4(@wYU|4YC_PXm`s zA^1Vo`ABjJ+^5kqHT**hx?%l#oW=n^e*h;pUwH=Mx7LvBMN00-1@N3S5AG|j zK!8w>qo)-QHFe?k$n0hnKd|9&Mv% z+CnbG9vQfiM=c%bq4X-_YEC}P+ycxlm!U>^Nkt~}1Cn>0Nyd=dz6t5~-XsM;N^!_= z7_|)~T$=DT8dj}4$AWTnMtJ+Vm%hy7pz{#J6TN+S+~-GERS13#E=U_~PI&u{IrgYm zXV0E?>d$`un^J+ys%0@@bgRNLt9SubMn?Tyx2wvE?ylA^9Cp~u5B{fmbUqORXkWi(hl0^M3%Y z9S;nP0uNUMpCwn|nB(b?{gyE13=-PsG@;5xDV_`AZd zqNt7$Ly_9J5iN6%BsYQlRPwzGWF>VDUa6KQiM(@4jsT-f!{u}z6Lo|*3qlr)JZ9uS zcnKML#eVZM_)j_q8o5?=W>x})2`*Z3IfVL~ zNmmN#IB6}~6WT-g%W1Dv_JUiaIbgsQqXmiUC?%KSf-+J_6&@X{``WRnH-gn=)u^hg zKzS;G9zuXAQVt^;8}qYgPP_JrXI{AT&zJOtC97{6H@xcXws3X^lXGUW843EaRV|n< zv9LC2x3vqNQe>Pyiv}z&0$Ru!;^H!0mxIn}e@_c`H8tU=!;X-$+;pxWN=h3vNr?rS zEqZ@{Km4?&UbkEL{$Q0es|mrTm4Y-yNlLoV@)20KG1*5?cjuE6Cr*77|ASwjNC6aH zd+km)!?6MhM^l?B`0)6km6wwe$f?>;Q?cvtOgz233aA-^)YH#Od#MONEo4DTgjKZJ zVWzn-O8i6_r$&Ean48SzMG<(&zdMUI+H&Ed}~NOcCK5GOD?<+H~jd=*3(@JthgPxcpTlc z!F|2J9ls#q|0W6l^+5b5fO8UhQyWok3y{!-q&Ca1r-9(Tw1VU1Dj#p!gfmY$8Lgxk zXOa8y?9N>X-f$E0H~xsQd6=#f|Lbf%hJw6~5krvR4#@fQ$X};*tl{}LB=%)N7%7L0 zF)vti?q#I7RpDpSy7(9)(9e45<*^EMxXuCl>Aruv5o;d!6|VB>*jrzPkp#CR9o>i% z4CWkkKbcK+3RtRoJe`_>0*clJgz z!?__y42}&d8$f53BmLYvVzXOqwp@o`Wd}H3kje9!tKp>qQiNu@4?F2R=FgfV3_hHx zNN4g0xa~63Q?`^NpyZzRw6()MrVLhVpB2@&275>l5hWI7t6WInKldy|!##Tk`ui^Y zpYGEAy9%Iv>#BNf&w+F7Jd=;P%&)%;1@fKqE8c~!vPwvmq~omK_@-5k2i91ep6->I+0UG=qCwPh=g zn>7pf4=(dHY9QM(zT=EFucJEa>?vswK!*9TU#l;>3k^Dw6@&?+%!eX+gpZuM*;Q} zAugu}-Vh-(9<4ok4EB=S_uD`a4TR9955zFDKZ?nuEDSrNFuU|`@FXDBIHbDuY*I33 z6G7kx8z+|2OCy=!9e>~OEkE$qH-S~IQ`WIvq)aM`RH4kE#8vc@i#S3nuN7vjrHJpd_H zmx29+f;;=tC?layF;XIh7i2le7p!t^Lzs{2>g!Qn7LYY8SVclAAdNp60-}{@PShB- zL^6`;=G2q9a#=(&2AWB*BHU`3%8BjZGT#7gZcj3bAo;exuc^Z` zHC0&D*@;mE#a?>-bz$T^_%$2kWCBy4A-Mf@;Pzkt$@4$f{~RuF`8HXJ31}{q;}+i@ zoKQ=yL*QXym)*aAKTcV=5KZJaPV{^6@{XNo{Lv4Q|MATSh5v8l`4#LZ;a|Q2Eyv9h zDk?5i;+#8YH@H=Xqt~4Nl$)vM~gOvT&ZGH4tM;m(ww-S ztmocP0HIt)I?h;0ySU?wtQ3#?Dl4yr-{(VLp9(hmy$-3zV5S_6pnhl1fb`PyU`xM` zu2WHg4DD-Me*zjQ0cOXIL=)1|o8~_gB3bKkVg)Ju4tj>MbkF7NiWLvP__`L2xUTBm z*yk;${bBdx>Gn3NRf1a?6vSIaZa)SakBHq7|q0ce->!APJ0} zas(!isYfgt5#(FMgpAxgm{!!SnlH1|{(SH#@Km8pI)RSn1IJCD zIcxL(22aP|MF2)m{|rwB`NRaRjnyAuV9XG>F8wdKFZ(KdKlv$)OLoI(89;8uVq{mn zLuQG5JI*7MpUF?_;es3^Mm{V-=5#@k9Z0Z6Qx#}dyJKlkgK1Sknby)sfW{$*CFY=w z(hI02SoT%2DCg1bzm?44c{im3Wwb?(ONpeJ{PF zNICyJ=WbpNj9LNQ@{v_z=8z40u>UQ5b?=wyuZ;*7y!gHEBYd@XA^EVXW?=umeK_U# z1lSG*LGz_Ot z<{+}LFynFBg8vb6n{r;iik|aqdy64AW##2La&%`|8TQdNs|Tkn%K$mLZd zOL=V#hLO_G5On7b&Ms0euT)i`DG|rl6Io0kp^wU=XT>7g4X4B(0_3Z(m0dyi@Kh{{ z4}4`P8(NRi^jxWU0%3A}xR!syxKWF$szP6T{`uGb;e7a#WgGfWJ$}}dP+7;zEzO-L z#t2RD)MJLjgdhL z$C9WDdW2=FNCHw6`(h7)KB&Urp!lnLKi-36DuM(1_I`He>?4=sf9dP*P6zJ#^*u`* z2RcvG-hCP7x}BvV4VtYQuCII>{@bsCPNpV2X9Du8cEBtf0mJ8{g(Uxqi5EFdl1ZyP zC}~9&eBHFthMG|{3G(knI*8KZNSmheix@Yu@2ygfd9j3EvSeO@m^_~OJrb4|9ZoE( zC`U(i2>;a+#thovZ_&mknws#LGtR(6f3Mi5e+EfVJE`I$CGhi9|1%^!^lYXZiQgquD(5LOX#6oi_ps;Uk?g7Uq+-D1HQ z62}uMWJ$w}7&e6VFOR0yR)Wz%3~wBR&z=7n95G`mDhV0z7%MKaY1zLUOW$}C@4WpE zmUnexCig(lK9w_LFc}3e30;VracF;cWDa++dZpwy#M{b``KX6`#d9UnwjpN zuBub@R-H3v?DuMFn;+=%1+DDdxGRt={!G?kp&Zqa5)0*>I%X3h^pjvwPchABMmW#~ zDRU&A{N>LvslthdrY^WWIjF2Cp|mR|hJ`SI+du~eTDPHky1hhemen)|{k>hNsjIqb z=8QRiz&~*Pw+Nu4Iba%ITns-!MAcyv)lr%Io)aC2{_Y`4I@=*pD$K@j&MBcAt51kJ za{Dg?gjL1tvnT>E8HbAgd`D=uAbHf3XW3JS>4OT< zJ!H^#H?E${@Q zgHnK2MhcQygZq@~4IMQZ=U#pliae%2os6!iz_bO6abxW<{PM9!@zX!9#?$nf+)GHr zNgsAMIjqkkA#9_Q+(O6Not=eDn*&}B0?gdQ^$)rtxp|rIdNbWOu3WXT`+w`E-}uRa z@11}C?B5X5xumtZ^O~MO-=ttDD0uvtwON~!GKc{jJEfF%hXKB>K7^RBLUs|f&q96u z0lfM48ccokPI!9!=dJO=djYCqEX{VXhuN=~P>AFyU z`I~3N{;x5^4%K8A6v+aV3gcJ%w?g^{KPB|5v1pNA2T3|PoTQ@wRnk)gRrHr?C_rzu z6#Zth-WE&|%0V#N#vO%}IxHzDL=#1s&f~{%|9$u2yN~=|Q>Y2Owgq!$WBaKFA@K3W zp+lJSgGb5uzs>2=f1mSnIeJa8+1^y_D_+?@*>-8cJf zX4Ftb?WKt7aoFKdRGkMvLqKMe9QC+uw{QAn`?LSAjo_Sx)5doBd#~x}@LduJMoP8m zJfq0%IWK3GU^S&2#7#VA3zSFz?IAaQ@YFN7X7NZ=pQxcLWr#m_V%-vEjw=){t4@^I)Du;o*RGDUH5Np3MuwS$jjeQ zJ_e?d#Za5;DKK*)N>MRPH+pv`6pA*c#g|b!@HI#_@}6s6NA$Vh!^qpanHf+lvKVO5 z-Kvg-QqVsMO`lx@N&_|Ak!p%iQ`3d|)Omk8puL7790YX8W*4x{ed-h(W*HZa7=;xC z@5WG$)=P%_@WT(|h5@X-|I@`CXNwok$0tXRk@4r_HOl$t{nwA6eCq)uJ9^0YLw_Ik zleae&<|6p}m(cXpYXv$v-P|MfPuhu5TQWS!olQ526Z;4rzCgy?=yJkL|4U>*JVVY+ zD%o~2aDvoL6rH*$a=R(26qXJaI|p49S^Sin+MRBV-IhDeSjmQ*Mu>9jq+qU1AWWa9 zCnHPTlwIu|lxD;!Cv^xo%$;z|Q&&@6MUk)+Kl|0wxcK~8{ins1`8INVW;;`gX_Iq6 zidk11we{vwN@0=kt*@SkCtrOZ7IMtYAz|a98t<>`)1pQ(IY-8CHLPjv%NV*2&=f8ahXHOo4 z>SHGmQ%%S#EJBXgBRCKE8mmfwg8(^So2Y|r*}4@c8=BuT80A~9xb(6v{FBySIDk*r zzg=?6Ew}GGddinoI$|*Lst@DAh=c`m7a?X05u8p!7NjS1%f=&+`+AY6(U^&?=Uoru zvSpA8Tu6TON5r1~6?nVcm`Sk6tnYV=vajAXm3nVkXWUg{{f4gUd!jlCy5_@iZ;L%!KQC^Okq9S-YIw`$x!o*3FgvP)%U;V0xcK?&L zX#RX`*s~XIdcD`l_|JaqF{p$r5*vRH5sh==2H3X`W zUT9r@91&}*HvF87xi7y2gI#n}QDlh+{YX;u?jeWM!`oP9qezP~GV*ZN!n4UY`zhLo z2v#0POIr`+^f_7@#k&bg6cK{nO#989d_1vcwc5!6WT3mNQ#d(;$sk&1nVxFI=<$e0 zdQnx~jW^$2iP=+!XwERoa^Ko)JomJR==|BwYpT2$P~BDp-E~=6DZ1;A;JiiiaKukY zO?25AgwY!*qVoKP)uQe*SxrCK^68!x_$ROFQ%2;*L&>H7X!M#;G&z_11w<1X>jlzz zifKYa0ux1a(Bai+UE?+hSy&WxR>+FVw9J7O*goDyDu8X)lPJ!sQZT$pWcI*tt z72|aeee<3-{@LgG7Y^X(-@E;W2fqKSXHDK*WP4o*^!c%%wF^&;n+oTk0?HYEkcBWO z*8-xV3y}BWC0{4h`W9`8+e_gf0)z5^&c<32-K6L+GC%*{i_7@J|_-F4;z4NBqKU#mR z*;c?6UxF)YR~K%VEV#L-97#H9o)Z`CzoDoY@6_bB>2{8VAqRV))HG>rl{1&Zbk((x z%X6XZ`UJ6GJ_WRO!^rZ;UsEG!40xWymGR{lc?Pqc35_Wz~-=t@mSu3iN<1d zQ~CuXaBgk^>^2MPYip66R|LCN!ofq0c<22Mm^WjHFn-<}=YkpM$x=VNeu~3R)5>F` z4s%^WQ3ud-D<~)_#Nkgqz}1&ub|~yEUgfly>P;qj%Z?r7p}!<+(!>#qBGLHep-}wt zq$1hub|;(^*!+QRG`DmiE3X7+oG}6gx!JIjV-58A(9zL_a4`BoaY@-zFTU{1x-ZiC z{DlK(I=)+8^~N9eKKP?wjg6RW@RG6jb+thaCwW#5OC&ocQcmYC%tylO5x1`#ioqas z(&(m0(v8J^&J;nEni_F)Tc$06>53~MRaQW%+k@y6lsDJ4h++u58RQ5UJ0^8XSHtPi zYIXn&`;!TcnwsU5L=8ZjnO1~~DmPkK#2z^3xhBew*+{r0IY~FGlvxh*@(YnMawNcV z)CafXtrwrg3V#G2jUEdh_lMJQ4jVKGi_bnA(`U?}Jk5p1h6ZfgwhbSyTZb0z)XVVT zXH~~><1c;zeEs(S-uPKoi;UEmoq@pPPoU%ed;5()J^=P71~`P6UIgT8#+pXIrgQhx zxj4B!mFov)vv|8cGWhPKc9AmZ=1atF_{Hzu#PVg6ux7=(SifN{)@=9~GZrqzsNt1J zgnd}Ob~UyagiP&$SL@Rx7I`0Z(EnbAL{B#z+Lhrxk<>&D_r7auCIUJ+>uJ-r8$BQq#AiC06 z*H5-u5h*K&wYLY4v++Ok9PqX45u=nyibnpv@w;6xl7sYr|53Dm@8Nz!kLp$K6qQz3 z&-n+k-SW}z;q5+h0B&}A%v?*kq{-?aNN&WXH{Obc(}&^J=bpxjPqrhopqSvhf*rf| z%5(R?Ln< zuO9~UFci{fDx%10%9)EQg z;K-is7G+1eaWVG2J*81UfsgckdRw`}UinhkpV6?P4;lskue)78VOf zpt58PcTw>uWL)Fo19$&%w5+KXX})RbR9No19rCatP+LzR{`6CbZ`mVADy(?ErtGTK7L6KHZIu3onS&D1(=^i-H)M*QYM?`-u$p@=GA_6P zCZ0^|If>10y^2@&9Kr{MMQAUkv`5kU5;#+yP3Yh*N*89m@DgzCHHfuzP^uIAo5s&0 zu!f8bdN|Sh;KS(r(WCt=y%C+nLoUEs`b{ue?C`kV@ML9U$dF3WCCDiQ|6vKG0k6OO zLc_Q3y=zcSn_oqG{ZrRpodw7#EN+eYI-H%&Ez={a)_K=Qd7rze6cZ@VoIZIHit=;u zVRbcD#v*74_9D{SiX0w_ptM1CW{dGsp7GYU@QloR1Su~M28xVo{Q-pEe;3N9yI>kW z6NXE!hH1$>sEHoL_8x&D7>3LfYOLNO=`B-Yqu-=6jR}egO}R$Ue;afm2!qge7k_Ja z2@ZILMMIf(nV>!l4j3Ku{wMY$^ubDmYZ@Vsorua=i?D3oEX+*?F=FG#nBClr3#24& zuB*rWeSH}8#_Le7x(e~XW&E1Hlm@Bz9GzD9?tc)SkNu}!?34SUf2!GsWjj+2AU41O z@IW5#eeI#>A2vvW^H9u4u=6A5!elBDdVz|;Ls3}d#n3Smk;D0>%S-Uxga3H=5ty=y zanVJ~FmiYWUVH8r*n6NJ^A;>YL4G!7&6$OUs)Km*?Uk4~eF>H>nS(>yKSJ%v7My>{ zrSP|(LYvQs=l}3B%5v>uS0KV%fU%^`-uvf$)GWnrMljGzh~hXhvI{VD_y}S6EXQtR z5mw!y^26qIv8bi8@x6C`b?ZG3#L_1C1#|$s1`Qvz;oz=MmT&mvv)ry=pV%Aj?r4MG z7eIdbP)wXV7c-_zLk{KD8*6Lu4mpBTAwQC>&B*SHz(r92Wb6t>FKrk?Ba8rVy=CW6 zgmeME8bsfD6LCTs#?jMYy5<&g1Pka!r}x`)5K@Scgu^1{#kIyDtr0`;xf?V^6{(+} zUKNTi!rZuD$dySCmo{fbH?ShqTw8ewgx9Y|aO-YR$V2J8WtcR74yHL} zjNiT&Wi~q2_ufZ><-W=4WV-`$mIpFLG{b<0Owms~JT6VI?vA_B^|L4R$Zrtiu&Kx& zgVw7b*HHkg#D#UOyNKT5#|l1GFju9gVqpj{Be);6ns2Dd3W5*1`sL^AQn`Otdzx_GdgC?9w zj@)YDGE63tlARn%E)MKDim%@O5U##xsvxQe)3wtIezG3;PX}$0_p`$#l-G2s2?nDT zTsUTj#Dy{Lolh$20J=OCM%hAXL`d4Y`=eic<(gYVX%qZ{)c^*ri>|(W%HAD&Htalc zd|E8*hmE4DudoO09j$P?Gf^>oI2K%cBc?4_gk7I*#OtrWiVfj77LZ|`)6tAsc_qj# zE=1hpCP*HE5{+sMv8>PTV4?^zpqwDowvz~c=T=DHal`)Y@417Wk8X&n~;lrlHRK=oPd(rA>jRXD;W*XANXLfXTv;l6p}$dBK0Sc?Clk#8j4EC z63_%1d7N2}^dR`-hY_SC#IpQq*zf!i;)6#ZvEnVbmMjLk`;csGpcKMS51x1=N9XH? z;txRe`JnXjqZcaY$ooG>xc0c-&_kKEWFlja_3!P62SEPh0A}6P5D!24_j=R z9Nt!9s_uA_!HorNwY%`s$F^bioMk8(It)Qy3qISv8$-s=hr?w>X0{i<|HYf=jvFz5 z^hmhK8IK<~78_T-g#G)EVd`0zz+*R}x~fi0`PCCD*syUG<}SGwcinllFjj7TW%Zhr z{D=A{9Em!|KRGC0H&d^fkd>VwX6AWUHx`Z#(CkwBM_?im-fnc6<}bX=m^QyJXbs@c z*OQNY=au)~UwKt)j}MNlESM;Ymljo^AghpqsTt*GjKoB`xq6Qs#-?@ePq%LVK7+1+ju=bmrkpnqDpPpkuG7v{Iet5#1s1?>qGevs>)rzI~bLwPhipWie<|YJz88H1)`+96u2% z9d~Yi5nAhxp}wvOS6qDqCQY4)TnBLH*S-#S#TcA5e>y?(5vVN7#e=uqg!*0+F1_pm zLTP5?mlUA6p$6MNT#XO5RO2_Vt;O}1OhK?OC@8IjMqW}Q>ku^-<#hDtOU*5>U0puG zsh{CtG8Ti@Hmj*#Yh9X((odSr1fgmymaIMSdGVa{m$s%&@C%v(3|!OZ&3||5__5pM zcr>rIp|P@~qXYg3&uI6G9J_~%eu!4Al%x9 z41&?wbi+zc4-#Co;~QC)G>FdwLo5v8^@!{^_VIeeUU~+G%t}fPZiMlY3n1}i+y4Df zyZi!rvh&f}&J-O`D;h-^->12L9=lbU zxWwTRvX=^_HQYHD@pU2Q>k$nxsqMSi03()+Cebx#V9`j9(5fo(dv*mzlO4T@D4OXn zTXcBu(~Eo^k`XQR+0BDkX0)4a2-5dhp`XNC?PinVXNgx!bguyEOVl%_c`dh9st*t8NazPtkG zU3DXtU$_W)S=l&v;2=!oRO{;MQ95iE9(njyFlLE_V`2s%7>9H~?RbCbOBTa=oa5SavV@!&tH>nd+(8#X5B>3R%7^!wBs37xh?<#p$|8;^ zNQN9HhZkjHQ|6SD6%AqVJU$d8K-DFPpnfJr!VgsQHlotF|a(&{hKs3u0nT>RYi zCu$V~96W6|Q5=ggS$i5yQ1 zI$3q1ysfQSz(wvI=l$N!_EywZ*TSBakC|sL#X0lmBgbUKuBKCXm-6JAfRFP2R(SkT zQ7q)*nrhOv@fgA@Y_tXoCA)+OvOR)hKCyE%!h{Hv+D=%mybk7@Z-Z2njl{uyNH%xE zzD(IRB)aLad}Itf5*tV)5Ta`rA}AduV`5H3mi&q(B!MR4ik@tUo_mu> zSopkha&iz&u-2Rdji-*Ip|KU2S>%LWZq!!o$DYrtF@DM{*y#O=%gS)-_+Gs6`g>S> z>9v?Wbrha{{D=5p(+*s4?qVF=y%WPGo{jH5bTdp!RI~^8^##z{-UAbzD~oMfm`qtMO$8dz?>19C|&lGVqdoNR&|jX`!gw8E9D>8fc{hT23TGwVq7I$)OC?jEwl9v<<6 zxugQtkz-)W&(mfQLJ`rJX!K;knw0?u!C?;_pPdZEW>5s5p3D)EQW-&p%4CO}25>54 zH(|Kbj0@@ghxYo>-r0ri^gi8*F#5>Q6D-3`DFru+8<{m%FC?&G%PCSyol!>U$cUaO zjURziA09_7C@Q9(M+yE{(KT*DK|z7&t!MI%-P^YS)=X4XmLVGGLupA7*8TALd6W84O4a}V~1OXoPCX{jFL^XW=7_2s{;LqogSe}B* zWYQ0c_WUz(jp_ZETaO2e1oG0k8~zkoo@TvsxLi2CcYo8<&%OMMwE2CB9YAVj6%^Oa zS#r(`vu8}+WLD#)HHQyXG`2Pi-nv*MjDX*VuJ(2`H#NbWk%L)hFT+BDrFnECY(8-e zt0{6Ei3AX(zscl20ycWPQ|Qs9ZW^xsv*Ch}f|QjdWR{d8`w@BLMJPLu!ZiOvnD4n4 z#u*b3KSYS2wo#1C%1)QgMUc?ssU%sy6(PFWB%4(bm#AFeYi@%S3d2-b0Na>R6x|3z zbax8|V>2C}*$@|8hLSFeDdrZ);3TV^9EydG&!}_UC4_W&loe>KCXA%Nxr!p>LKdN* ze7#07B4joq&O#HSV3`nne~OC!v1T5k;X)dBI2oBZg0~V4+(?uZ+IY+4vYWr(u6;E>M+p0Z!({Q;rmtl)jiYzkdM-(4QLQ6`q`V*5cpKnLhP1isL0U zhYy!GceEo$H+WxPAA%H#c-)i`L0(BY<}F)_MGF@q+iAm=s^eHiko-_MfN)0(yuJ{e zEVpE}kRvc^6U3^vYbhFkY%WN-UKs3VC`Ug>bmi+ve6$0G@$+H5{~;J>Pek(Qeleyj z5tNk)77OE7HR(oOnn4@ZVMuGC*Chxq_zlQ;sXg5=c*r^Q`Ni{vv(QN6MU-c0ami#C zQ+{IVO~=Jd+`&1#1dZ!37N;DU-`8P9x!sBjj55xr=$a9Vp+1s82j|cf{@K-WYGG!f zOf~ht0t?Ib(eHe$$46G+u6-pCT{bUyx$HX*8#S6ql# zs867Vs;Yx%>j_{4Asm~Ti9KzoJ$e9jRR_@8<;V43e-IZg8IM3OT`Pl(*5+1%^a`@P z8A2!|k5ExTz87_ew&KA%Zp8W>$B|oDMnB7i&B}_p$pLNIl1`j~0gA_}UNfNcAruh` z`nTj26ug@@zkeYIa2gR5)y+C<$?s=PIdiKi5h<%Za%51KuS*oU{DcNN$qBSjzS`2- zj_k5Z%w4inOyhZ-c5FR%4C@II9F3C0=xl+LZd#9O5KTMm2o$aCF1FTKM?j_Mi=1qV z^foB9M-W~0CgN*8g*;&aZ1+A0(^=DyXsAZwNEIYeo=3AY0rRTv<-9m4w}$i8IEI6_nh8kPUa; zeJ3hPvk3l&MAMej=|+A*E^>3SMC8xS&BThAp24-(-H4FUN{GOM%*Z+Qe_U919qP%W!Vx6c5saP%>o*>NY3Y0@eu`>)4+H*y z=&P5^M&SrV{w=Iu8#CrsVu|y3K>-C3<=Np#Mm>_LTJw?aLG-hg`}GV280hDJJ53Im zs-8!a62W-`vYbv#A!Klc$$&E`J?MxgQ59DZqNjye@mMy(Z`2r&-X!O9B};qv`4Epp zkWcBuSs7j|r$;Hhr$3g&@n8U5+~kyqz~OMg$~z#j2&G{GbaXQ*NP*}j2y*Lo<4IK2 zRN+`vJ%*2-fv??gxtQW)_8LW}r{-MUMh??O$JpI=64zdKDf$c^7%fg%Eq0Vt3}bG7 zxCjBnbU}<14c_T5^vk4|0r`5`>~>TgJn-D`QKJu}&F^2>0i;%5NmWrbg z%?2r_?#QvqPKr`7%Dw&F?KnxsUR!k%P0gLiDk;XqSu?O;-a?EXT!Fo{HTc|UMiu4N zM_U>YKUs^i%zW59nS!TYi#TS{6ay~CnQdB|vC9Fakr2WAZz2BHDi{ie!gT!|uv~vN zB)f{(rp-d8OGrLjZF-@>pp$bY(Z8FhxAic2Ns7Zi71>3fE>f(;5CR@zMj@#u!%B+Q zKtAm(xZgq6SdExhKT1x;?XY7Ep`U9gotegeA5Nf_oL!&OE)L>taz>Y!SfM6~Af-Tz zCL+OJB!WH2A-^@%?ZCxmGbYh%CwqIaHx`HLbiu`XbFlv9XJkO zS1V2&IRt-5#q~Gc$t<}-d6!8r1*Rc`PU^y}tg`&G?|ln@ShpD&xjE?S=sf9^8|&)JdRg%oah5+uGw&FjY$9~fi;SW&%w2jO=1rf31ILeIbAn89$}~7C zOK^D4eyH6+l;-8bL{U7#4Ly=cP+}oPBFedW4kH2&Vdy$UHmpMYrFS5C3ShqCYcSt( zJ>)zWV%t80+Tqu#?%Yoxs@DlEb}9N$k+_MKRO72o?yB#FDcXKG^lzoq-}lQs$vTI+ zQTwINYOEC@HRli|BMpoFaVv(pt+>c$#yt9cv@eKT37K4DH6X4egw{cdT!Y0^6#5-E z;Y8^gX2=SL+f7(buU8U{V>3P4$-!DE?FvOgqDbi?hZ1OSLT_ILLx+wKMNNw>8@Jwk zE6N9XMdObw>m8M>Nlyrf8G&NqUOafuH_+yfAs*_X&nJOpmt2Eoi)JI!V^4MX^k1q} z27m!td1^{ZoKlmvmWKLWyLUb`d)|Vy^?d=>|F{w8e`~FM`?d4eZ`yeO-ktlV`&b8$ z@?w^i&dV>s$T4Fvn<7ksTgIgqEklo7fXAQuDLD~0wys$XWyfwf_V2?8ic*sX4G|=l zfpAzvaBj#ks2a((W^+6uO!++B{K;-I1_H;no9==6D_26!ru_B&R}p>UCs5k`FcLhK za&OW-J1AFA#6^FE$L@rK&d9Oziz^ zJ3Po^x~gX9ea{1xG7NN^A~oN5q^G@ou(_FRl1MhotRD za7Q5TPRRW*+aP%TIRhE)vSMZ|icREL8|iz8k)9Jz5RxE=5)R;0<4FX=Nu0Cr0xUac zKH`a}fdA@%$x6*^4X_yL-%uAh4JR(Y`er}V6* ze-?`yd4>7N&nv))!J{$!jA6*i&qbJwuI|uY^nA7n-h+ow+SY|h73FZbGSC-|2$maz z@BvAR&`GUO$JAwl#Iy~`mM(FtTb5i2+g*1;F3Ne?e8WAspseWu{$5=O_B2xF8tAQF4wYY@9reNl*7vj-QZSc;W|7 z;Vajihu%;?XykDb5IC)6VRhKiQd@qK~Tc0Pr!hw05w!Gx6ER^#xzO`L@oq>HV7{fInX|X3sx%!G+6T zY_2CDCD%P&J|SvKNH9yiwIuyk+6#ZBH4fvo5L+>GROI#E|sz2e-9E_pF+ zc4-IjH`lCri;kRo@$%Q5~ zJ$r9nAqLHzht85x95+fh)!Kx%s-wuJ+|=vNM1q@XgtCxHL+h$eI7(>)lYAI#7AVK| zBmCAYNNm^!!=$;e+;$Jl=PrO6?L~b1K7igwwzEc`P0#c7h%RY7h8lliDoseig5+tI zW8pHiO1lt?5XR32Nk&YO)xvu9s^&;UQB#4gkEo-FRL_E>BMOBl@+7?|sj1MYdToKp z5`tvB`4rhNA_F|!)r~DYfW&+D@g(K&gK^<`%izv%h>1oyCBiZQ(XeB2xY+o!#ndN5 zdnN|85i&Tme;=xAPQja#BVIEYiiq~$I7R;U);7A#4xtLfLt3J5f{v}e>cqo?hYdTL zHoJ5R@IP8VdiXnXcc9l54~4Gl>h;|ah$cowcz`AnCdh1pH#Zk~Ik_mL6rpHvrPxkv ztv`Y04eQ|8cMy5?CowuJ2c^YD;ODW@t5MwWNl{3Xg=Qf~=mcbz%W9}+`au}8hQR*) zAHaO}9H>nv5P#{nh`sVUZ{`caPcY+9Qg;IV60lm`L02>(gG`D7qMDL8)3+0OYfjO{ zKn2qe9hWH?(O8eUX-JV%V|SWQ;Ub|y*AXJ)R#a{DxqswV9jHaC_2{cwZ4ucHix_AA zN>2c9(r--!)z3R~5gz^Scad4@f!X8K3y~W2nvkzDX(Ho1*j0lV-3!Qfa zAFo@FlWo0ldcB&=IT^Z{$zJGy2UQG3Wn~GHah@lzqpjss)Be3X23>LW^~to^r5(Wk z)w=7(Yp(VOqW1*C(Q#plnh_qbVFNNdkW)~Cp~Ht^Du(uCpTkTusb!i zAteqwp{l&R95D;QBh3z{9iQ*pb@!Zk^M95$xwHfLUt4$Ic-`_qDD=%9zkfMRz)#!oFm>=_M(u z6$+D*#tuw3Ia*F38Q_|{4fZ>}1?$&ugk(!1_UdmC`{l2pwDiDew~-^r)R_Mg8WIp4 zgQ~U#D3pyR z-B!rhDSF$q-m=V1N8uO>7oHD{uE2Re{V5!md=2;BbQ7{G@{yIFgG4l2?cYnAYYtK~)w@Xw6xfnHhuXzzbX-ivQOd<9vq?sKOA{I!8qrGm zXd)01TZCnkr=#qG^KdL4z#rDG69X?fRx|9pb!gzhBeU50Qj;cai%+nF(AVxP$Qg9A zC;i$M;;){7(k;Vs-EFYmbr;>Nu&51F=;`d9%f2 z77aLxstcm>-y8H?T-N#xL`Sh?ObNu+C#RKE`ypKirFkpOnBUx!R@DJIMqC#L$KZ*3~%2pj4eVKh5YUQr6W&7`FoDs*(B z6&zVtkPE9GGI+C9)A_Smtn@si*ty^WAh#3O96R{KCCe^Yn>M#E-ujmyW_RESQO8i49cI1W!tbLe6KVq83Dc|Acs$7heI#!{3GLrhAas z@D3tBd=!ZTRT?Q+ajvNNGh`N>g`$BcK>^$#CJ&itL-uBA#=_fX$rNf=w4s`$zT?1u zpVYSuxzUD)p%kr&2)c5Tj@@9~z39b8Nfg4vc5T8&^pjX~8#T$wgpi}Y65a#-#yj=sL2Kp-}o z6~3O1L{n?)f2K_>odW#B);Djyeo9YY@Y{XC__@r+8>L9a+<6(<+3+~5_;|xwbOvIW zI({PB>W&FYt1_CXz2f!FCKEc^+R@h0i@c(IWH4=8B1L~H^>_NE z_BaIPJNp}h38ig-?|Tx&IWA%_#=F0`mYHB9sqq4;EJVVogR1BGdJGl~M_javD;g8B zK@e?--zu^;w;;Q+p<2uc*H?+>7z&Gp1Y>0IMD*TwH%ygy}x$D=sTJE7yX$5PICbBwxN-b%+AdpE?aW$#jDe1mUaMN z3`cPN)x(2P^=ov8ezVgTKt^scW=)=ovXUZX73B!@eTvY*o}Hg!-RhM%bmAn+=y~(m z5!f>@BEJ}RG75$D1Hy4KeAfLji0wm>DsV-Phi`&Ds12=}4q@SN*zS1{wy#_YwXYsM z7hDL_@I`Px{S!!51yU|zZqGpCF}R+gJmBtkcY zBz(Re^!WPV$?(GCb_!Xw6z)*fRQ|6Q1ofVQ{@Q@9;O3&|RUi3$_4r9smZeQBy$kS# zS?8R8QRn#=U$lP9`qeu+yW77~bFvn-wY6xcJU*fDxT+nQ*|``tVJxOhor*ImD^cIx zj#Zsq*cp$Yqo*CFE*~-|(z3=~(rVS_=DBx3*0%aIRZ)j%GnSoZivD$ototJ(e|Qg) zw+L$e5yU=t2hsOGMbe*up>hNaMOjcfx+p~`f#s6(k?1*v_(xmB4uH^C)H7}ki8B#t zN@>TSxBu$Zc^(r^#>fYe)37-~mQDX#MBPE85Q27`puX9GhQT9%%5oIv=fdf-X#yaG zWP-tv=vK75>|!@X`77j}{i6?m7Ccm)O{lA*IkA7wz6qnpjZLIYEbRckaO7+FFJ1+LcgGH9|6x<7lrz^pn-( z3^qgYDKL#254petiC_rx6vRH-%=kf5Ku$3brI0|1Z%;j~(#zfR5=CHSW{JWh zJCFqD<(wmsqcSjWzr}%?ib|-1OHh!L4UfkuG!nSL#|2Y%W)ALa&;z?Z9iSPxbb10} zp#8I>u-olO(Dm7|^Ro++y#uPi8r+AS_NVhKv}6vE#<#jG;r3;q_2nOvc&XioG9yj5VuP zV$H{!g|6QWdYn%VU`B2pax-%^N5D-viHPVh>?bJUX+WWR6ayj=t=%}%Co28iO3dTK z#=+%CR#yqVfmDA#PXmhlUT-Is#e9I$&$GwdfePyjWMn{fyAh}7@^m3942cXy%;l+q zeTg>;T`o6P4;c&7Wfx;yc_oGpD;HgmtmMlwXGU^nzL|G-I8<9f4l1Qz3Uwgi;)8CI4-HjC|7Q1s6+Mf zYDx_{;R^%_Vk_|G7GUV4$rwLzBBqQO0Wamrn`>*ZE|I|TfDf_m4rIlWa2id3nR08R zRg26F=UEt&Be)O}q2DvBF*6N|0U}v!DJHwSMdVL1JCDw#Cj`^f0Yrlue$a=CRPnm- zdZD-|k{e9AGBMK@a^%;Zl3=nCgBd1rKn7nA-tFjyVfq4`Iif;j_ExSHB$EBM&MCoZ z_>a>Btf@&#?n&UtPv>Bx=kDCLrK_gyUG! zMh=Ry^C7ui%mG3c6NSvX1QeDHNv)9wypzCrc`OKp90+=Xg5FEfsm8=SfUajCSOg@4 z#svUPJcM@zq^wLNDe@;&iEZB$Z*Tm~jwv74uZ8slF-$7{y z@Gr4`{Jn>Uba!=qy`$52O?!{uD~yt^RbLgaImbR~U_67?Tg3^kqp&S-C|RJMK)3 zI%5R#iwjU(S`0%xiW57wV*Sduv2xW1sP7G6B)!f;GOAgwObjJQV9xL&!90D02pIMo zRK3MG)Q5N%bN|Oh#~^bJaBHnBSOXx~i)HOY)BbmPp?b3k-gD=#j5v=Mn>CSDg^nW{ z4&Y=@H}*y~!#_liqM}kvn=}*i7oLO3)5l}m#t#XdSTJ|V*(fQ<2H7<^fv83@(ocD& zIRH)zc+8g-p5A=zH8i((`n zs2z*^*G+tD!L1q@_Vk+jbRjl zEzV3NOd0_Qvl%1MjaX+VIe;i)sbQZuk0!H|h-=&h`a`lh3Hs+ku^5oxG=+>fVPYEc z2*SNRsPp--D;5)mUrmpaijkN%XD;TgjrSFck1Nb*W1pguX zx;pPT)zorpyRUCpLRCZ)O)L_FZ1G_HyBWy)s5k->YI@XqsN0JMeN|oIzkr_BovLKPi*&5*-OIgq%NM6kCTbv>Qf6;I+*di|5+Dh7?7fO%x}GiS|4<&X-3?l$;3+wuA5yRc^M z`>3j_CiGy$*vT_-+474qcJxRT7Z$*3Ho;_)`ip?aPaMa_^&jBvH{L)|*~phKz2>Xe zo_p3TC4EPv9l*cs`u_cQFK=pVd8oBBFfJ(ub&~M+1!1;&Fm}RZN)N_i*x(8b8brCa z5ooWg#pX5d;q}*F$KIn=$fDPnMUOcaJH{52AgibV{^llhclRPDX#Nzf_l~15p#XC{ z4hv7-S*(yeE~v~qKzV=A--W}39=1ml_=H}s1xAb*KLO{Qy$sW*&q6*c9-A%jb$8+O zBm1yv!)ol?yAPpQ61jv#oK^$sYpY=+hcb5jc#Ie|8u|GJFc~DYw>4uor8L#YPrzVy z9=-6AtL}W{+u!&w{pqJ2KzixxyZ7F`ti7ZC+ihJvQzK-M@k9(Ee-N_ChM{97Vj)G~ zitT@MdfUE(U=gsXdTLP0EyYYpW-$@$XI3JP@Tw3EHN;dH z2@P0H7ML^a2qq#pOga81v4n{DK5`dhC(p)`W#?k*l&M11S5XsUz~}Ixeb}&mE%uV( zN8<^2z1eV+6X7a;FF6Kg24=YL_xm9k4MJ_0>BzR@ydn_hX)M2%qG+8WL3rb4%yzty}wdqec?Eup2|Ks|>J$FxS?&|t> ztIxlTjZRS#f+fdDP=DyKQJ64(5-KW6QCwDnyu2*dH&-qd((|OX$O#A|4(WJ_ue(3rK9VX zPG9ehVam_r6t!a%nPpgzS5St@vu0uHgfS>CDL{Uf8&Ch>LHy{quOMl0h{B&>0A?Nl zatNAYZ&LL92cvP651oLA@B0=ePaF+58FpVdg!c9p?Ay5+pM12Qa{a^fw~~nX9t&q% z6J~ry?2Y%a#rB;pzv80z7iRxz_FoSyVcM6leZObBXZPuH@73qa(^ck8s5qoA#KC=P zU6-J;VeYAvCzU!CkC#5*ka#>!A~LjHbDMBt@9+6`N?kWPCQLj&)k5i@#-`KDA8*}$ z|L}?+&a20>H&*{v2kxq~UF8?j`5btzOZUZ?-FLly))cK?r857|<5T?iJnN-iP6gIY zOTNC?TRyG)$FFtyuV3!fm*|X`p&HS2f;$rjbHQjhm9__6CUGV2c;t_`c`|hF|qng#d3-&qw3cH7uljzhYhC<V;5fqFZvudtyI~3W}?BVCcznzbu7QvE$RQJ)ur%XLsQqS?>hJ7 zqg_1HKf8K-yuatmr)cX-;pQMmdT)8R`|q*HxpQr~nGQa9axbAEB|rcEg1DwX3ljuB zYPkN-5V_dm$HL{iPg{LGL-MiSmuJp?+sCs)|KGQn>GuBdC%kmd0Owtqh# zKl3qTlZKE#4_BMA=*9>qqnSQu&DtOTXy&(@k$1rpm|Q&8fAL!Xzuwy~z6r>H@@YZo e|M+Fk#KU09w>oa=|Ex(2K;Y@>=d#Wzp$P!FfJAu! literal 0 HcmV?d00001 diff --git a/src/playground/blocks/hardwareLite/block_robotis_koalabot_lite.js b/src/playground/blocks/hardwareLite/block_robotis_koalabot_lite.js new file mode 100644 index 0000000000..1399b83cc9 --- /dev/null +++ b/src/playground/blocks/hardwareLite/block_robotis_koalabot_lite.js @@ -0,0 +1,6434 @@ +'use strict'; + +const INST_NONE = 0; +const INST_READ = 2; +const INST_WRITE = 3; +const INST_DXL_SYNCWRITE = 4; +const INST_DXL_REGWRITE = 5; +const INST_DXL_ACTION = 6; +const INST_BYPASS_READ = 0xa2; +const INST_BYPASS_WRITE = 0xa3; + +const INST_STATUS = 0x55; + +const PACKET_STATE_IDLE = 0; +const PACKET_STATE_RESERVED = 1; +const PACKET_STATE_ID = 2; +const PACKET_STATE_LENGTH_L = 3; +const PACKET_STATE_LENGTH_H = 4; +const PACKET_STATE_DATA = 5; +const PACKET_STATE_CRC_L = 6; +const PACKET_STATE_CRC_H = 7; + +const DEFAULT_DELAY = 50; + +const rxPacket = { + header: [0, 0, 0], + reserved: 0, + id: 0, + cmd: 0, + error: 0, + type: 0, + index: 0, + packetLength: 0, + paramLength: 0, + crc: 0, + crcReceived: 0, + checksum: 0, + checksumReceived: 0, + data: [], +}; + +const addrMap = [ + [0, 4, 302], + [4, 1, 42], + [5, 1, 44], + [6, 1, 45], + [7, 1, 47], + [8, 1, 50], + [9, 1, 51], + [10, 1, 52], + [11, 1, 68], + [12, 2, 70], + [14, 2, 72], + [16, 2, 74], + [18, 2, 76], + [20, 2, 78], + [22, 2, 80], + [24, 2, 82], + [26, 2, 84], + [28, 1, 86], + [29, 1, 87], + [30, 2, 88], + [32, 2, 90], + [34, 1, 112], + [35, 1, 118], + [36, 1, 119], + [37, 1, 122], + [38, 1, 123], + [39, 1, 124], + [40, 1, 125], + [41, 1, 160], + [42, 1, 220], + [43, 2, 360], + [45, 2, 362], + [47, 2, 364], + [49, 2, 366], + [51, 2, 368], + [53, 2, 370], + [55, 1, 372], + [56, 1, 373], + [57, 1, 374], + [58, 1, 375], + [59, 1, 376], + [60, 1, 377], + [61, 1, 378], + [62, 1, 379], + [63, 1, 380], + [64, 1, 381], + [65, 1, 382], + [66, 1, 383], + [67, 1, 500], + [68, 1, 501], + [69, 8, 502], + [77, 1, 700], + [78, 1, 810], + [79, 1, 2134], + [80, 1, 5015], + [81, 1, 5030], + [82, 1, 5031], + [83, 1, 5040], +]; + +const addrMap2 = [ + [153, 1, 4000], + [154, 2, 4003], + [156, 1, 4005], + [157, 1, 4006], + [158, 2, 4009], + [160, 2, 4011], + [162, 2, 4013], + [164, 2, 4015], + [166, 2, 4017], + [168, 2, 4019], + [170, 2, 4021], + [172, 2, 4023], + [174, 2, 4025], + [176, 2, 4027], + [178, 1, 4031], + [179, 1, 4032], + [180, 1, 4033], + [181, 2, 4036], + [183, 2, 4038], + [185, 2, 4040], + [187, 2, 4042], + [189, 2, 4044], + [191, 2, 4046], + [193, 2, 4048], + [195, 2, 4050], +]; + +const crcTable = [ + 0x0000, 0x8005, 0x800f, 0x000a, 0x801b, 0x001e, 0x0014, 0x8011, 0x8033, 0x0036, 0x003c, 0x8039, + 0x0028, 0x802d, 0x8027, 0x0022, 0x8063, 0x0066, 0x006c, 0x8069, 0x0078, 0x807d, 0x8077, 0x0072, + 0x0050, 0x8055, 0x805f, 0x005a, 0x804b, 0x004e, 0x0044, 0x8041, 0x80c3, 0x00c6, 0x00cc, 0x80c9, + 0x00d8, 0x80dd, 0x80d7, 0x00d2, 0x00f0, 0x80f5, 0x80ff, 0x00fa, 0x80eb, 0x00ee, 0x00e4, 0x80e1, + 0x00a0, 0x80a5, 0x80af, 0x00aa, 0x80bb, 0x00be, 0x00b4, 0x80b1, 0x8093, 0x0096, 0x009c, 0x8099, + 0x0088, 0x808d, 0x8087, 0x0082, 0x8183, 0x0186, 0x018c, 0x8189, 0x0198, 0x819d, 0x8197, 0x0192, + 0x01b0, 0x81b5, 0x81bf, 0x01ba, 0x81ab, 0x01ae, 0x01a4, 0x81a1, 0x01e0, 0x81e5, 0x81ef, 0x01ea, + 0x81fb, 0x01fe, 0x01f4, 0x81f1, 0x81d3, 0x01d6, 0x01dc, 0x81d9, 0x01c8, 0x81cd, 0x81c7, 0x01c2, + 0x0140, 0x8145, 0x814f, 0x014a, 0x815b, 0x015e, 0x0154, 0x8151, 0x8173, 0x0176, 0x017c, 0x8179, + 0x0168, 0x816d, 0x8167, 0x0162, 0x8123, 0x0126, 0x012c, 0x8129, 0x0138, 0x813d, 0x8137, 0x0132, + 0x0110, 0x8115, 0x811f, 0x011a, 0x810b, 0x010e, 0x0104, 0x8101, 0x8303, 0x0306, 0x030c, 0x8309, + 0x0318, 0x831d, 0x8317, 0x0312, 0x0330, 0x8335, 0x833f, 0x033a, 0x832b, 0x032e, 0x0324, 0x8321, + 0x0360, 0x8365, 0x836f, 0x036a, 0x837b, 0x037e, 0x0374, 0x8371, 0x8353, 0x0356, 0x035c, 0x8359, + 0x0348, 0x834d, 0x8347, 0x0342, 0x03c0, 0x83c5, 0x83cf, 0x03ca, 0x83db, 0x03de, 0x03d4, 0x83d1, + 0x83f3, 0x03f6, 0x03fc, 0x83f9, 0x03e8, 0x83ed, 0x83e7, 0x03e2, 0x83a3, 0x03a6, 0x03ac, 0x83a9, + 0x03b8, 0x83bd, 0x83b7, 0x03b2, 0x0390, 0x8395, 0x839f, 0x039a, 0x838b, 0x038e, 0x0384, 0x8381, + 0x0280, 0x8285, 0x828f, 0x028a, 0x829b, 0x029e, 0x0294, 0x8291, 0x82b3, 0x02b6, 0x02bc, 0x82b9, + 0x02a8, 0x82ad, 0x82a7, 0x02a2, 0x82e3, 0x02e6, 0x02ec, 0x82e9, 0x02f8, 0x82fd, 0x82f7, 0x02f2, + 0x02d0, 0x82d5, 0x82df, 0x02da, 0x82cb, 0x02ce, 0x02c4, 0x82c1, 0x8243, 0x0246, 0x024c, 0x8249, + 0x0258, 0x825d, 0x8257, 0x0252, 0x0270, 0x8275, 0x827f, 0x027a, 0x826b, 0x026e, 0x0264, 0x8261, + 0x0220, 0x8225, 0x822f, 0x022a, 0x823b, 0x023e, 0x0234, 0x8231, 0x8213, 0x0216, 0x021c, 0x8219, + 0x0208, 0x820d, 0x8207, 0x0202, +]; + +const rb100_last_valid_value = []; +let bg_color = 0; +let beat_per_minute = 75; +let camera_id_for_use = 0; + +(function () { + Entry.RobotisKoalabotLite = new (class RobotisKoalabotLite { + constructor() { + this.id = '070C01'; + this.url = 'http://www.robotis.com'; + this.imageName = 'robotis_koalabot_lite.png'; + this.name = 'RobotisKoalabotLite'; + this.blockMenuBlocks = [ + // 주행 제어 + 'robotis_koalabot_lite_drive_simple', + 'robotis_koalabot_lite_drive_advanced', + 'robotis_koalabot_lite_drive_seperate', + 'robotis_koalabot_lite_drive_angle', + 'robotis_koalabot_lite_go_distance', + 'robotis_koalabot_lite_turn_angle', + 'robotis_koalabot_lite_follow_line', + 'robotis_koalabot_lite_stop_at_cross', + 'robotis_koalabot_lite_turn_at_line', + 'robotis_koalabot_lite_drive_stop', + + // 값 블록 + 'robotis_koalabot_lite_cm_ir_value', + 'robotis_koalabot_lite_cm_ir_compare', + 'robotis_koalabot_lite_detectFrontObj', + 'robotis_koalabot_lite_cm_btn_value', + 'robotis_koalabot_lite_cm_joystick_value', + 'robotis_koalabot_lite_mic', + 'robotis_koalabot_lite_detectSound_compare', + 'robotis_koalabot_lite_imu', + 'robotis_koalabot_lite_roll_pitch', + 'robotis_koalabot_lite_distance_value', + 'robotis_koalabot_lite_distance_compare', + 'robotis_koalabot_lite_dxl_value', + 'robotis_koalabot_lite_line_cross_compare', + + // 소리 + 'robotis_koalabot_lite_scale_simple', + 'robotis_koalabot_lite_scale_advanced', + 'robotis_koalabot_lite_rest_simple', + 'robotis_koalabot_lite_rest_advanced', + 'robotis_koalabot_lite_beat_per_minute', + 'robotis_koalabot_lite_Hello', + 'robotis_koalabot_lite_effectSound', + 'robotis_koalabot_lite_record', + 'robotis_koalabot_lite_playRecord', + + // LCD 제어 + 'robotis_koalabot_lite_screen', + 'robotis_koalabot_lite_anim_screen', + 'robotis_koalabot_lite_icon_screen_food_plant', + 'robotis_koalabot_lite_icon_screen_animal_human', + 'robotis_koalabot_lite_icon_screen_object_tool', + 'robotis_koalabot_lite_icon_screen_vehicle_number', + 'robotis_koalabot_lite_text_screen', + 'robotis_koalabot_lite_text_screen_redraw', + 'robotis_koalabot_lite_pixel', + 'robotis_koalabot_lite_LCDColor', + 'robotis_koalabot_lite_LCDBright', + + // LED 제어 + 'robotis_koalabot_lite_cm_led', + 'robotis_koalabot_lite_cm_led_pattern', + + // AI 카메라 값 블록 + 'robotis_koalabot_lite_ai_camera_connection_status', + 'robotis_koalabot_lite_ai_camera_if_detected', + + 'robotis_koalabot_lite_ai_camera_block_value_closest_to_center', + 'robotis_koalabot_lite_ai_camera_arrow_value_closest_to_center', + 'robotis_koalabot_lite_ai_camera_number_of_learned_id', + 'robotis_koalabot_lite_ai_camera_block_value_of_id', + 'robotis_koalabot_lite_ai_camera_arrow_value_of_id', + + 'robotis_koalabot_lite_ai_camera_if_learned_id', + 'robotis_koalabot_lite_ai_camera_if_detected_id_type', + + // AI Camera 제어 + 'robotis_koalabot_lite_ai_camera_set_mode', + 'robotis_koalabot_lite_ai_camera_print_custom_text', + 'robotis_koalabot_lite_ai_camera_clear_custom_text', + ]; + this.portData = { + baudRate: 115200, + dataBits: 8, + parity: 'none', + stopBits: 1, + connectionType: 'bytestream', + bufferSize: 128, + constantServing: true, + }; + this.duration = 15; + this.setZero(); + + this.timeouts = []; + + this.robotisBuffer = []; // buffer to transmit to H/W + this.receiveBuffer = []; // buffer to receive from H/W + this.dataBuffer = []; // saved control table value buffer + + this.packetReceiveState = 0; + this.headerCount = 0; + + this.dxlPositions = []; + + this.pirPir = []; + this.pirTemperature = []; + this.pirHumidity = []; + this.pirBrightness = []; + this.distanceDistance = []; + this.distanceButton = []; + this.distanceBrightness = []; + } + + setZero() { + this.timeouts = []; + this.__removeAllTimeouts(); + this.robotisBuffer = []; + this.robotisBuffer.push([INST_WRITE, 2100, 1, 1]); + camera_id_for_use = 0; + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + } + } + + __removeTimeout(id) { + clearTimeout(id); + const idx = this.timeouts.indexOf(id); + if (idx >= 0) { + this.timeouts.splice(idx, 1); + } + } + + __removeAllTimeouts() { + const timeouts = this.timeouts; + for (const i in timeouts) { + clearTimeout(timeouts[i]); + } + this.timeouts = []; + } + + getMonitorPort() { + return { ...this.sensory, ...this.motoring, ...this.lineTracer }; + } + + writePacket(id, address, length, value) { + if (length > 256) { + console.log(`######### invalid length: ${length}`); + return null; + } + console.log('######### writePacket'); + const packet = []; + let i = 0; + packet.push(0xff); + packet.push(0xff); + packet.push(0xfd); + packet.push(0x00); + packet.push(id); + packet.push(length + 5); + packet.push(0x00); + packet.push(INST_WRITE); + packet.push(this.getLowByte(address)); + packet.push(this.getHighByte(address)); + switch (length) { + case 1: + packet.push(this.getLowByte(value)); + break; + case 2: + packet.push(this.getLowByte(value)); + packet.push(this.getHighByte(value)); + break; + case 4: + packet.push(this.getLowByte(this.getLowWord(value))); + packet.push(this.getHighByte(this.getLowWord(value))); + packet.push(this.getLowByte(this.getHighWord(value))); + packet.push(this.getHighByte(this.getHighWord(value))); + break; + default: + for (i = 0; i < length; i++) { + if (typeof value[i] == 'number') { + packet.push(value[i]); + } else if (typeof value[i] == 'string') { + packet.push(value[i].charCodeAt(0)); + } + } + break; + } + const crc = this.updateCRC(0, packet, packet.length); + packet.push(this.getLowByte(crc)); + packet.push(this.getHighByte(crc)); + return packet; + } + + makeWord(a, b) { + return (a & 0xff) | ((b & 0xff) << 8); + } + + getLowByte(a) { + return a & 0xff; + } + + getHighByte(a) { + return (a >> 8) & 0xff; + } + + getLowWord(a) { + return a & 0xffff; + } + + getHighWord(a) { + return (a >> 16) & 0xffff; + } + + updateCRC(crcAccum, dataBlkPtr, dataBlkSize) { + let i = 0; + let j = 0; + let crc = crcAccum; + + for (j = 0; j < dataBlkSize; j++) { + i = ((crc >> 8) ^ dataBlkPtr[j]) & 0xff; + crc = (crc << 8) ^ crcTable[i]; + } + + return crc; + } + + removeStuffing(buffer, length) { + let i = 0; + let stuffLength = 0; + let index = 0; + + for (i = 0; i < length; i++) { + if (i >= 2) { + if (buffer[i - 2] == 0xff && buffer[i - 1] == 0xff && buffer[i] == 0xfd) { + i++; + stuffLength++; + } + } + buffer[index++] = buffer[i]; + } + + return stuffLength; + } + + postCallReturn(script, data, ms) { + /* + if (data == null) { + Entry.engine.isContinue = false; + return script.callReturn(); + } else if (data.length == 0) { + Entry.engine.isContinue = false; + return script.callReturn(); + } + */ + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + for (let i = 0; i < data.length; i++) { + this.robotisBuffer.push(data[i]); + } + //delay ms + setTimeout(() => { + script.timeFlag = 0; + }, ms); + return script; + } else if (script.timeFlag) { + return script; + } else { + delete script.isStart; + delete script.timeFlag; + Entry.engine.isContinue = false; + return script.callReturn(); + } + } + + setLanguage() { + return { + ko: { + template: { + // 주행 제어 + robotis_koalabot_lite_drive_simple: '속도 %1 (으)로 %2 하기 %3', + robotis_koalabot_lite_drive_advanced: + '왼쪽바퀴 %1 속도로 %2, 오른쪽바퀴 %3 속도로 %4 %5', + robotis_koalabot_lite_drive_seperate: + '%1 바퀴 %2 속도로 %3 으로 회전하기 %4', + robotis_koalabot_lite_drive_angle: + '양쪽 바퀴 %1 도만큼 %2 으로 회전하기 %3', + robotis_koalabot_lite_go_distance: '%1 cm %2 하기 %3', + robotis_koalabot_lite_turn_angle: '로봇 %1 도 %2 하기%3', + robotis_koalabot_lite_follow_line: '%1 속도로 라인 따라가기 %2', + robotis_koalabot_lite_stop_at_cross: '교차로 %1 에서 멈추기 %2', + robotis_koalabot_lite_turn_at_line: '교차로에서 %1 하고 멈추기 %2', + robotis_koalabot_lite_drive_stop: '정지하기 %1', + + // 값 블록 + robotis_koalabot_lite_cm_ir_value: '%1 적외선센서 값', + robotis_koalabot_lite_cm_ir_compare: '%1 적외선센서 값이 %2 보다 %3', + robotis_koalabot_lite_detectFrontObj: '%1의 앞에 물체가 있으면', + robotis_koalabot_lite_cm_btn_value: '로봇의 %1 버튼을 눌렀을 때', + robotis_koalabot_lite_cm_joystick_value: + '로봇의 노랑 조이스틱 위치가 %1 이면', + robotis_koalabot_lite_mic: '소리의 크기(dB)', + robotis_koalabot_lite_detectSound_compare: '소리가 로봇의 %1에서 들리면', + robotis_koalabot_lite_imu: '%1축의 %2 값', + robotis_koalabot_lite_roll_pitch: '로봇의 %1 값', + robotis_koalabot_lite_distance_value: '%1 값', + robotis_koalabot_lite_distance_compare: '%1 값이 %2보다 %3', + robotis_koalabot_lite_line_cross_compare: '교차로 모양이 %1이면', + robotis_koalabot_lite_dxl_value: '%1의 각도값', + + // 소리 + robotis_koalabot_lite_scale_simple: '옥타브%1 로 %2 음을 %3로 연주하기 %4', + robotis_koalabot_lite_scale_advanced: + '옥타브%1 로 %2 음을 %3박자 연주하기 %4', + robotis_koalabot_lite_rest_simple: '%1 %2', + robotis_koalabot_lite_rest_advanced: '쉼표 %1 박자 %2', + robotis_koalabot_lite_beat_per_minute: '연주 빠르기를 %1 (으)로 정하기 %2', + robotis_koalabot_lite_Hello: '로봇 %1 말하기 %2', + robotis_koalabot_lite_effectSound: '효과음 %1 재생하기 %2', + robotis_koalabot_lite_record: '소리 %1번에 녹음하기 %2', + robotis_koalabot_lite_playRecord: '소리 %1번을 재생하기 %2', + + // LCD 제어 + robotis_koalabot_lite_screen: '화면 표정을 %1 %2 (으)로 정하기 %3', + robotis_koalabot_lite_anim_screen: + '화면 애니메이션을 %1 %2 (으)로 정하기 %3', + robotis_koalabot_lite_icon_screen_food_plant: + '화면에 [음식/식물]중 %1 (%2, %3)위치에 %4 크기로 표시 %5', + robotis_koalabot_lite_icon_screen_animal_human: + '화면에 [동물/사람]중 %1 (%2, %3)위치에 %4 크기로 표시 %5', + robotis_koalabot_lite_icon_screen_object_tool: + '화면에 [물건/도구]중 %1 (%2, %3)위치에 %4 크기로 표시 %5', + robotis_koalabot_lite_icon_screen_vehicle_number: + '화면에 [탈것/숫자]중 %1 (%2, %3)위치에 %4 크기로 표시 %5', + robotis_koalabot_lite_text_screen: + '화면에 %1 (%2, %3)위치에 %4 로 %5으로 표시 %6', + robotis_koalabot_lite_text_screen_redraw: + '화면에 %1 (%2, %3)위치에 %4으로 새로 표시 %5', + robotis_koalabot_lite_pixel: '화면 (%1, %2)위치에 %3 색 점 표시 %4', + robotis_koalabot_lite_LCDBright: '화면 밝기를 %1 (으)로 정하기 %2', + robotis_koalabot_lite_LCDColor: '화면 색상을 %1 (으)로 정하기 %2', + + // LED 제어 + robotis_koalabot_lite_cm_led: '로봇 %1 LED %2 %3', + robotis_koalabot_lite_cm_led_pattern: 'LED %1 %2로 깜박이기 %3', + + // AI Camera 값 블록 + robotis_koalabot_lite_ai_camera_connection_status: 'AI 카메라 %1이면', + robotis_koalabot_lite_ai_camera_if_detected: 'AI 카메라 %1 이/가 표시되면', + + robotis_koalabot_lite_ai_camera_block_value_closest_to_center: + 'AI 카메라 화면 중앙과 가장 가까운 사각형의 %1', + robotis_koalabot_lite_ai_camera_arrow_value_closest_to_center: + 'AI 카메라 화면 중앙과 가장 가까운 화살표의 %1', + robotis_koalabot_lite_ai_camera_number_of_learned_id: + 'AI 카메라 학습한 ID의 갯수', + robotis_koalabot_lite_ai_camera_block_value_of_id: + 'AI 카메라 감지된 ID가 %1인 사각형의 %2', + robotis_koalabot_lite_ai_camera_arrow_value_of_id: + 'AI 카메라 감지된 ID가 %1인 화살표의 %2', + + robotis_koalabot_lite_ai_camera_if_learned_id: + 'AI 카메라 ID가 %1인 데이터를 학습하였으면', + robotis_koalabot_lite_ai_camera_if_detected_id_type: + 'AI 카메라 ID가 %1인 %2데이터를 인식하였으면', + + // AI 카메라 제어 + robotis_koalabot_lite_ai_camera_set_mode: + 'AI 카메라 모드를 %1(으)로 설정 %2', + robotis_koalabot_lite_ai_camera_print_custom_text: + 'AI 카메라 화면 위치 (%1,%2)에 %3를 보여주기%4', + robotis_koalabot_lite_ai_camera_clear_custom_text: + 'AI 카메라 화면의 글 지우기 %1', + }, + Helper: { + // 주행 제어 + robotis_koalabot_lite_drive_simple: + '코알라봇을 지정한 속도와 방향으로 주행\n속도범위: -100 ~ 100\n속도단위: %', + robotis_koalabot_lite_drive_advanced: + '코알라봇의 좌,우 바퀴를 각각 지정한 속도와 방향으로 회전\n속도범위: -100 ~ 100\n속도단위: %', + robotis_koalabot_lite_drive_seperate: + '코알라봇의 지정한 바퀴를 지정한 속도와 방향으로 회전\n속도범위: -100 ~ 100\n속도단위: %', + robotis_koalabot_lite_drive_angle: + '코알라봇의 지정한 바퀴를 지정한 방향과 지정한 각도만큼 회전\n각도범위: -5760 ~ 5760\n각도단위: 도', + robotis_koalabot_lite_go_distance: + '지정거리만큼 앞 또는 뒤로 이동\n거리범위: -1000 ~ 1000\n거리단위: mm', + robotis_koalabot_lite_turn_angle: + '지정한 각도와 방향으로 제자리회전\n각도범위: -360 ~ 360\n각도단위: 도', + robotis_koalabot_lite_follow_line: + '지정한 수준의 속도로 라인 따라가기 시작', + robotis_koalabot_lite_stop_at_cross: '지정한 교차로에서 멈추기', + robotis_koalabot_lite_turn_at_line: '교차로에서 지정한 회전을 하고 멈추기', + robotis_koalabot_lite_drive_stop: '코알라봇 정지하기', + + // 값 블록 + robotis_koalabot_lite_cm_ir_value: + '지정한 번호의 IR 센서 값(범위: 0 ~ 200)', + robotis_koalabot_lite_cm_ir_compare: + "지정한 번호의 IR 센서 값과 지정한 값의 비교식이 맞으면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_koalabot_lite_detectFrontObj: + "지정한 센서 앞에 물체가 감지되면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_koalabot_lite_cm_btn_value: + "지정한 버튼이 눌렸다가 해제되면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_koalabot_lite_cm_joystick_value: + "조이스틱 위치가 지정한 상태이면 '참', 아니면 '거짓'으로 판단합니다..", + robotis_koalabot_lite_mic: + '마이크로 감지된 소리의 세기를 데시벨(dB)로 표시합니다.', + robotis_koalabot_lite_detectSound_compare: + "소리가 나는 방향이 지정한 방향과 동일하면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_koalabot_lite_imu: + '지정한 축의 지정한 가속도센서/자이로센서의 값\n범위: -100 ~ 100', + robotis_koalabot_lite_roll_pitch: + 'roll/pitch 값\nroll: -180° ~ 180°, pitch: -90° ~ 90°', + robotis_koalabot_lite_distance_value: + '지정한 센서값\n거리범위: 0 ~ 1000mm\n밝기범위: 0 ~ 100%\n버튼센서: 0(눌리지 않음) / 1(눌림)', + robotis_koalabot_lite_distance_compare: + "지정한 센서값의 지정한 수식이 맞으면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_koalabot_lite_line_cross_compare: + "지정한 교차로 모양이면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_koalabot_lite_dxl_value: + '지정한 모터의 위치 각도값\n범위: -180° ~ 180°', + + // 소리 + robotis_koalabot_lite_scale_simple: '지정한 옥타브, 음계, 음표로 연주하기', + robotis_koalabot_lite_scale_advanced: + '지정한 옥타브, 음계, 박자로 연주하기', + robotis_koalabot_lite_rest_simple: '지정한 쉼표 쉬기', + robotis_koalabot_lite_rest_advanced: '지정한 박자 쉬기', + robotis_koalabot_lite_beat_per_minute: + '연주 빠르기를 지정하기 (BPM)\n범위: 10 ~ 600', + robotis_koalabot_lite_Hello: '로봇이 지정한 말소리를 재생하기', + robotis_koalabot_lite_effectSound: '로봇이 지정한 효과음을 재생하기', + robotis_koalabot_lite_record: '지정번호 보관함에 녹음하여 저장하기', + robotis_koalabot_lite_playRecord: '지정번호 보관함의 녹음음성을 재생하기', + + // LCD 제어 + robotis_koalabot_lite_screen: '제어기 화면배경의 캐릭터와 표정을 설정', + robotis_koalabot_lite_anim_screen: + '제어기 화면 애니메이션의 캐릭터와 표정을 설정', + robotis_koalabot_lite_icon_screen_food_plant: + '화면에 [음식/식물]중 특정 아이콘을 표시할 위치와 크기를 설정\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120\n크기: 0 ~ 200', + robotis_koalabot_lite_icon_screen_animal_human: + '화면에 [동물/사람]중 특정 아이콘을 표시할 위치와 크기를 설정\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120\n크기: 0 ~ 200', + robotis_koalabot_lite_icon_screen_object_tool: + '화면에 [물건/도구]중 특정 아이콘을 표시할 위치와 크기를 설정\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120\n크기: 0 ~ 200', + robotis_koalabot_lite_icon_screen_vehicle_number: + '화면에 [탈것/숫자]중 특정 아이콘을 표시할 위치와 크기를 설정\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120\n크기: 0 ~ 200', + robotis_koalabot_lite_text_screen: + '화면에 지정한 문구를 표시할 위치와 폰트크기, 색상을 설정\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120', + robotis_koalabot_lite_text_screen_redraw: + '화면에 지정한 문구를 새롭게(문구의 배경 지움) 표시할 위치와 색상을 설정\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120\n크기: 0 ~ 200', + robotis_koalabot_lite_pixel: + '화면에 표시할 점의 위치와 색상을 설정\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120', + robotis_koalabot_lite_LCDBright: '화면 밝기를 설정\n밝기범위: 1% ~ 100%', + robotis_koalabot_lite_LCDColor: '화면 색상을 설정', + + // LED 제어 + robotis_koalabot_lite_cm_led: '제어기의 지정한 LED를 켜거나 끄기', + robotis_koalabot_lite_cm_led_pattern: '제어기의 LED의 깜박임 패턴 설정', + + // AI Camera 값 블록 + robotis_koalabot_lite_ai_camera_connection_status: + "AI 카메라가 연결된 상태이면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_koalabot_lite_ai_camera_if_detected: + "AI 카메라의 LCD화면에 선택한 기호(사각형/화살표)가 표시되면 '참', 아니면 '거짓'으로 판단합니다.", + + robotis_koalabot_lite_ai_camera_block_value_closest_to_center: + 'AI 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/학습ID', + robotis_koalabot_lite_ai_camera_arrow_value_closest_to_center: + 'AI 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/학습ID', + robotis_koalabot_lite_ai_camera_number_of_learned_id: + 'AI 카메라가 학습한 ID의 갯수', + robotis_koalabot_lite_ai_camera_block_value_of_id: + 'AI 카메라가 감지한 사각형중 지정한 ID의 사각형의 X좌표/Y좌표/너비/높이', + robotis_koalabot_lite_ai_camera_arrow_value_of_id: + 'AI 카메라가 감지한 화살표중 지정한 ID의 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표', + + robotis_koalabot_lite_ai_camera_if_learned_id: + "AI 카메라가 지정한 ID인 데이터를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_koalabot_lite_ai_camera_if_detected_id_type: + "AI 카메라가 지정한 ID인 지정한 데이터(사각형/화살표)를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", + + // AI 카메라 제어 + robotis_koalabot_lite_ai_camera_set_mode: 'AI 카메라의 모드를 설정', + robotis_koalabot_lite_ai_camera_print_custom_text: + 'AI 카메라 화면의 지정한 위치에 지정한 문구 출력\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120', + robotis_koalabot_lite_ai_camera_clear_custom_text: + 'AI 카메라 화면에 표시한 모든 문구 지우기', + }, + Blocks: { + robotis_red: '빨강', + robotis_orange: '주황', + robotis_yellow: '노랑', + robotis_green: '초록', + robotis_blue: '파랑', + robotis_brown: '갈색', + robotis_black: '검정', + robotis_white: '흰색', + robotis_left: '왼쪽', + robotis_center: '중앙', + robotis_right: '오른쪽', + robotis_both: '양쪽', + robotis_rgee: '알쥐', + robotis_rla: '알라', + robotis_kkokdu: '꼭두', + robotis_korean1: '안녕하세요', + robotis_korean2: '반가워요', + robotis_korean3: '알겠어요', + robotis_korean4: '아니에요', + robotis_korean5: '모르겠어요', + robotis_korean6: '좋아요', + robotis_korean7: '싫어요', + robotis_korean8: '이름을말하세요', + robotis_korean9: '무엇을도와줄까?', + robotis_korean10: '잘했어', + robotis_korean11: '괜찮아', + robotis_korean12: '다시해보자', + robotis_korean13: '고마워', + robotis_korean14: '다시말해줄래?', + robotis_korean15: '최고야!', + robotis_korean16: '신나요', + robotis_korean17: '즐거워요', + robotis_korean18: '미안해요', + robotis_korean19: '화나요', + robotis_korean20: '부끄러워요', + robotis_korean21: '무서워요', + robotis_korean22: '속상해요', + robotis_korean23: '사랑해요', + robotis_korean24: '예뻐요', + robotis_korean25: '신기해요', + robotis_korean26: '초조해요', + robotis_korean27: '앞으로가자', + robotis_korean28: '뒤로가자', + robotis_korean29: '일어나자', + robotis_korean30: '넘어졌네?', + robotis_korean31: '오예', + robotis_korean32: '아싸', + robotis_korean33: '어머', + robotis_korean34: '이런', + robotis_korean35: '오호', + robotis_korean36: '하하하', + robotis_korean37: '호호호', + robotis_korean38: '졸려', + robotis_korean39: '자장가를들려줘', + robotis_korean40: '안녕', + robotis_korean41: '배고프다', + robotis_korean42: '도토리땡긴다', + robotis_korean43: '아.씻고싶어', + robotis_korean44: '비누목욕시간이야', + robotis_korean45: '심심한데', + robotis_korean46: '간식먹을까', + robotis_korean47: '아파요', + robotis_korean48: '약은없나요?', + robotis_korean49: '어디로가야하지?', + robotis_korean50: '와아도착이다', + robotis_korean51: '왼쪽으로가자', + robotis_korean52: '오른쪽으로가자', + robotis_korean53: '깜짝이야', + robotis_korean54: '찾았다', + robotis_korean55: '여긴없네', + robotis_korean56: '혹시나불렀어?', + robotis_korean57: '내려주세요', + robotis_korean58: '앗', + robotis_korean59: '힝', + robotis_korean60: '이익', + robotis_dog: '개', + robotis_frog: '개구리', + robotis_cat: '고양이', + robotis_chicken: '닭', + robotis_tiger: '호랑이', + robotis_mouse: '쥐', + robotis_ambul: '앰뷸런스', + robotis_Horn: '경적(빵빵)', + robotis_siren: '사이렌(경찰차)', + robotis_whistle: '호루라기', + robotis_gun: '총소리', + robotis_clap: '박수소리', + robotis_melody1: '멜로디1', + robotis_melody2: '멜로디2', + robotis_melody3: '멜로디3', + robotis_melody4: '멜로디4', + robotis_forward: '앞으로', + robotis_backward: '뒤로', + robotis_acceleration: '가속도', + robotis_gyro: '자이로', + robotis_run: '실행', + robotis_cancel: '취소', + robotis_push: '눌림', + robotis_notPush: '안눌림', + robotis_play: '연주', + robotis_rest: '쉼표', + robotis_face01: '와하하', + robotis_face02: '싱글벙글', + robotis_face03: '큭큭큭', + robotis_face04: '냠냠', + robotis_face05: '겁먹음', + robotis_face06: '답답', + robotis_face07: '갸우뚱', + robotis_face08: '어벙벙', + robotis_face09: '고함', + robotis_face10: '화남', + robotis_face11: '킁킁(왼쪽)', + robotis_face12: '킁킁(오른쪽)', + robotis_face13: '킁킁(아래)', + robotis_face14: '안심', + robotis_face15: '기절', + robotis_face16: '헤롱헤롱', + robotis_face17: '하품', + robotis_face18: '졸림', + robotis_face19: '잠듦', + robotis_face20: '마음앓이', + robotis_face21: '폭풍눈물', + robotis_face22: '목욕', + robotis_face23: '햐트뿅뿅', + + robotis_pattern1: '패턴1', + robotis_pattern2: '패턴2', + robotis_pattern3: '패턴3', + robotis_moveF: '전진', + robotis_moveB: '후진', + robotis_moveL: '좌회전', + robotis_moveR: '우회전', + robotis_moveU: 'U턴', + robotis_moveL_in_place: '제자리 좌회전', + robotis_moveR_in_place: '제자리 우회전', + robotis_moveU_in_place: '제자리 U턴', + robotis_moveRG1: '일어서기', + robotis_moveRG2: '앉기', + robotis_moveRG3: '발버둥', + robotis_moveRG4: '발들기', + robotis_fast: '빠른', + robotis_normal: '보통', + robotis_slow: '느린', + robotis_stop: '정지', + robotis_roll: '좌우 회전각 (roll)', + robotis_pitch: '앞뒤 회전각 (pitch)', + robotis_direction_forward: '전진방향', + robotis_direction_backward: '후진방향', + robotis_stMotion1: '기본자세', + robotis_stMotion2: '전진', + robotis_stMotion3: '우전진', + robotis_stMotion4: '좌전진', + robotis_stMotion5: '후진', + robotis_stMotion6: '오른쪽으로', + robotis_stMotion7: '왼쪽으로', + robotis_stMotion8: '우회전', + robotis_stMotion9: '좌회전', + robotis_spMotion1: '오른손 들기', + robotis_spMotion2: '오른손 내리기', + robotis_spMotion3: '왼손 들기', + robotis_spMotion4: '왼손 내리기', + robotis_spMotion5: '양손 들기', + robotis_spMotion6: '양손 내리기', + robotis_spMotion7: '뒤로 넘어지기', + robotis_spMotion8: '앞으로 넘어지기', + robotis_spMotion9: '앞으로 일어서기', + robotis_spMotion10: '뒤로 일어서기', + robotis_spMotion11: '방어', + robotis_spMotion12: '공격1', + robotis_spMotion13: '공격2', + robotis_spMotion14: '공격3', + robotis_spMotion15: '공격4', + robotis_screen1: '가위', + robotis_screen2: '바위', + robotis_screen3: '보', + robotis_icon_food_plant_1: '우유', + robotis_icon_food_plant_2: '나무', + robotis_icon_food_plant_3: '스프', + robotis_icon_food_plant_4: '케익', + robotis_icon_food_plant_5: '물', + robotis_icon_food_plant_6: '주스', + robotis_icon_food_plant_7: '당근', + robotis_icon_food_plant_8: '사과', + robotis_icon_food_plant_9: '오렌지', + robotis_icon_food_plant_10: '고기', + robotis_icon_food_plant_11: '화분', + robotis_icon_food_plant_12: '장미', + robotis_icon_food_plant_13: '포도', + robotis_icon_food_plant_14: '감자', + robotis_icon_food_plant_15: '사탕', + robotis_icon_food_plant_16: '치즈', + robotis_icon_food_plant_17: '식빵', + robotis_icon_food_plant_18: '꽃들', + robotis_icon_food_plant_19: '커피', + robotis_icon_food_plant_20: '튤립', + robotis_icon_food_plant_21: '바나나', + robotis_icon_food_plant_22: '과일들', + robotis_icon_food_plant_23: '햄버거', + robotis_icon_food_plant_24: '피자', + robotis_icon_animal_human_1: '시바견', + robotis_icon_animal_human_2: '강아지', + robotis_icon_animal_human_3: '곰', + robotis_icon_animal_human_4: '새', + robotis_icon_animal_human_5: '오리', + robotis_icon_animal_human_6: '사자', + robotis_icon_animal_human_7: '호랑이', + robotis_icon_animal_human_8: '말', + robotis_icon_animal_human_9: '양', + robotis_icon_animal_human_10: '상어1(왼쪽)', + robotis_icon_animal_human_11: '상어1(오른쪽)', + robotis_icon_animal_human_12: '상어2(왼쪽)', + robotis_icon_animal_human_13: '상어2(오른쪽)', + robotis_icon_animal_human_14: '물고기1', + robotis_icon_animal_human_15: '물고기2', + robotis_icon_animal_human_16: '물고기3', + robotis_icon_animal_human_17: '문어', + robotis_icon_animal_human_18: '원숭이', + robotis_icon_animal_human_19: '닭', + robotis_icon_animal_human_20: '돼지', + robotis_icon_animal_human_21: '사람(살찐)', + robotis_icon_animal_human_22: '사람(수영복)', + robotis_icon_animal_human_23: '아기', + robotis_icon_animal_human_24: '사람(달리는)', + robotis_icon_animal_human_25: '사람(노래하는)', + robotis_icon_animal_human_26: '사람(앉은)', + robotis_icon_animal_human_27: '사람(화난)', + robotis_icon_animal_human_28: '사람(만세)', + robotis_icon_animal_human_29: '왕', + robotis_icon_animal_human_30: '왕자', + robotis_icon_animal_human_31: '공주', + robotis_icon_animal_human_32: '요리사', + robotis_icon_animal_human_33: '의사', + robotis_icon_animal_human_34: '간호사', + robotis_icon_object_tool_1: '가방', + robotis_icon_object_tool_2: '상자', + robotis_icon_object_tool_3: '머그컵', + robotis_icon_object_tool_4: '모자(중절모)', + robotis_icon_object_tool_5: '모자(캡모자)', + robotis_icon_object_tool_6: '열쇠', + robotis_icon_object_tool_7: '장난감', + robotis_icon_object_tool_8: '책', + robotis_icon_object_tool_9: '곰인형', + robotis_icon_object_tool_10: '드럼', + robotis_icon_object_tool_11: '메모장', + robotis_icon_object_tool_12: '볼펜', + robotis_icon_object_tool_13: '책상', + robotis_icon_object_tool_14: '테이블', + robotis_icon_object_tool_15: '의자', + robotis_icon_object_tool_16: '침대', + robotis_icon_object_tool_17: '텐트', + robotis_icon_object_tool_18: '접시', + robotis_icon_object_tool_19: '축구공', + robotis_icon_object_tool_20: '종', + robotis_icon_object_tool_21: '손목시계', + robotis_icon_object_tool_22: '신발', + robotis_icon_object_tool_23: '전등', + robotis_icon_object_tool_24: '라디오', + robotis_icon_object_tool_25: '지폐', + robotis_icon_object_tool_26: '자', + robotis_icon_object_tool_27: '카메라', + robotis_icon_object_tool_28: '스푼', + robotis_icon_object_tool_29: '건반', + robotis_icon_object_tool_30: '달력', + robotis_icon_object_tool_31: '칼', + robotis_icon_object_tool_32: '풍선', + robotis_icon_object_tool_33: '물통', + robotis_icon_object_tool_34: '나무막대(세로)', + robotis_icon_object_tool_35: '나무막대(가로)', + robotis_icon_object_tool_36: '낚시바늘', + robotis_icon_vehicle_number_1: '자동차', + robotis_icon_vehicle_number_2: '버스', + robotis_icon_vehicle_number_3: '트럭', + robotis_icon_vehicle_number_4: '지프', + robotis_icon_vehicle_number_5: '자전거', + robotis_icon_vehicle_number_6: '전철', + robotis_icon_vehicle_number_7: '기차', + robotis_icon_vehicle_number_8: '비행기', + robotis_icon_vehicle_number_9: '전투기(세로)', + robotis_icon_vehicle_number_10: '전투기(가로)', + robotis_icon_vehicle_number_11: '로켓', + robotis_icon_vehicle_number_12: '어선', + robotis_icon_vehicle_number_13: '여객선', + robotis_icon_vehicle_number_14: '잠수항(왼쪽)', + robotis_icon_vehicle_number_15: '잠수함(오른쪽)', + robotis_icon_vehicle_number_16: '비행기(왼쪽)', + robotis_icon_vehicle_number_17: '비행기(오른쪽)', + robotis_icon_vehicle_number_18: '비행기(윗쪽)', + robotis_icon_vehicle_number_19: '우주선(왼쪽)', + robotis_icon_vehicle_number_20: '우주선(오른쪽)', + robotis_icon_vehicle_number_21: '우주선(윗쪽)', + robotis_icon_vehicle_number_22: '주사위(1)', + robotis_icon_vehicle_number_23: '주사위(2)', + robotis_icon_vehicle_number_24: '주사위(3)', + robotis_icon_vehicle_number_25: '주사위(4)', + robotis_icon_vehicle_number_26: '주사위(5)', + robotis_icon_vehicle_number_27: '주사위(6)', + robotis_icon_vehicle_number_28: '0', + robotis_icon_vehicle_number_29: '1', + robotis_icon_vehicle_number_30: '2', + robotis_icon_vehicle_number_31: '3', + robotis_icon_vehicle_number_32: '4', + robotis_icon_vehicle_number_33: '5', + robotis_icon_vehicle_number_34: '6', + robotis_icon_vehicle_number_35: '7', + robotis_icon_vehicle_number_36: '8', + robotis_icon_vehicle_number_37: '9', + robotis_icon_vehicle_number_38: '10', + robotis_speed_fast: '빠른 속도', + robotis_speed_midium: '중간 속도', + robotis_speed_slow: '느린 속도', + robotis_clockwise: '시계방향', + robotis_counterclockwise: '반시계방향', + robotis_up: '들기', + robotis_down: '내리기', + robotis_if_greater: '크면', + robotis_if_smaller: '작으면', + robotis_if_equal: '같으면', + robotis_front_right: '앞 오른쪽', + robotis_front_left: '앞 왼쪽', + robotis_bottom_right: '아래 오른쪽', + robotis_bottom_left: '아래 왼쪽', + robotis_side_right: '우측', + robotis_side_left: '좌측', + robotis_front_ir_sensor: '적외선센서', + robotis_distance_sensor: '거리센서', + robotis_front: '앞', + robotis_right: '오른쪽', + robotis_left_wheel: '왼쪽바퀴', + robotis_right_wheel: '오른쪽바퀴', + // https://namu.wiki/w/%EC%9D%8C%ED%91%9C + robotis_beat_sound_8th_note: '8분음표 (♪)', + robotis_beat_sound_dotted_8th_note: '점8분음표 (♪.)', + robotis_beat_sound_quarter_note: '4분음표 (♩)', + robotis_beat_sound_dotted_quarter_note: '점4분음표 (♩.)', + robotis_beat_sound_half_note: '2분음표 (𝅗𝅥)', + robotis_beat_sound_dotted_half_note: '점2분음표 (𝅗𝅥.)', + robotis_beat_sound_whole_note: '온음표 (𝅝)', + robotis_beat_sound_dotted_note: '점온음표 (𝅝.)', + robotis_beat_rest_8th_note: '8분쉼표 (𝄾)', + robotis_beat_rest_dotted_8th_note: '점8분쉼표 (𝄾.)', + robotis_beat_rest_quarter_note: '4분쉼표 (𝄽)', + robotis_beat_rest_dotted_quarter_note: '점4분쉼표 (𝄽.)', + robotis_beat_rest_half_note: '2분쉼표 (𝄼)', + robotis_beat_rest_dotted_half_note: '점2분쉼표 (𝄼˙)', + robotis_beat_rest_whole_note: '온쉼표 (𝄻)', + robotis_beat_rest_dotted_note: '점온쉼표 (𝄻˙)', + robotis_line_cross_type_0: '|', + robotis_line_cross_type_1: ' (공백)', + robotis_line_cross_type_5: '🞣', + robotis_line_cross_type_6: '⏉', + robotis_line_cross_type_7: '⊣', + robotis_line_cross_type_8: '⊢', + robotis_line_cross_type_9: '⏋', + robotis_line_cross_type_10: '⎾', + robotis_line_cross_type_11: '¦', + robotis_line_cross_type_12: '︙', + + robotis_connected: '연결', + robotis_disconnected: '없음', + robotis_ai_camera_mode_face_recognition: '얼굴인식', + robotis_ai_camera_mode_object_tracking: '물체추적', + robotis_ai_camera_mode_object_recognition: '물체인식', + robotis_ai_camera_mode_line_tracking: '라인인식', + robotis_ai_camera_mode_color_recognition: '색상인식', + robotis_ai_camera_mode_tag_recognition: '태그인식', + robotis_ai_camera_mode_object_classification: '물체분류', + robotis_ai_camera_block: '사각형', + robotis_ai_camera_arrow: '화살표', + robotis_ai_camera_center_block_center_x: '중심 X좌표', + robotis_ai_camera_center_block_center_y: '중심 Y좌표', + robotis_ai_camera_center_block_width: '너비', + robotis_ai_camera_center_block_height: '높이', + robotis_ai_camera_center_leared_id: '학습ID', + robotis_ai_camera_center_arrow_origin_x: '시작점 X좌표', + robotis_ai_camera_center_arrow_origin_y: '시작점 Y좌표', + robotis_ai_camera_center_arrow_target_x: '끝점 X좌표', + robotis_ai_camera_center_arrow_target_y: '끝점 Y좌표', + }, + }, + en: { + template: { + // 주행 제어 + robotis_koalabot_lite_drive_simple: 'Move %2 with velocity %1 %3', + robotis_koalabot_lite_drive_advanced: + 'Left wheel %2 with velocity %1, right wheel %4 with velocity %3 %5', + robotis_koalabot_lite_drive_seperate: + '%1 wheel rotate %3 with velocity %2 %4', + robotis_koalabot_lite_drive_angle: 'Both wheels rotate %1 degree %2 %3', + robotis_koalabot_lite_go_distance: 'Moves %2 %1 cm %3', + robotis_koalabot_lite_turn_angle: 'Rotates %1 degree(s) %2 in place %3', + robotis_koalabot_lite_follow_line: 'Follow line with %1 speed %2', + robotis_koalabot_lite_stop_at_cross: 'Stop at cross %1 %2', + robotis_koalabot_lite_turn_at_line: '%1 at cross and stop %2', + robotis_koalabot_lite_drive_stop: 'Stop %1', + + // 값 블록 + robotis_koalabot_lite_cm_ir_value: 'Value of %1 IR Sensor', + robotis_koalabot_lite_cm_ir_compare: + 'If the number %1 IR sensor value is %3 than %2', + robotis_koalabot_lite_detectFrontObj: + 'If there is an object in front of %1', + robotis_koalabot_lite_cm_btn_value: "When the robot's %1 button is pressed", + robotis_koalabot_lite_cm_joystick_value: + "If the robot's yellow joystick position is %1", + robotis_koalabot_lite_mic: 'MIC volume(dB)', + robotis_koalabot_lite_detectSound_compare: + 'If sound is detected from %1 of the robot', + robotis_koalabot_lite_imu: "%1 axis' %2 value", + robotis_koalabot_lite_roll_pitch: '%1 value of the controller', + robotis_koalabot_lite_distance_value: '%1 value', + robotis_koalabot_lite_distance_compare: 'If %1 value is %3 than %2', + robotis_koalabot_lite_line_cross_compare: 'If the type of cross is %1', + robotis_koalabot_lite_dxl_value: 'The angle of ID %1', + + // 소리 + robotis_koalabot_lite_scale_simple: + 'Play the note %2 as %3 in octave %1 %4', + robotis_koalabot_lite_scale_advanced: + 'Play the note %2 in octave %1 for %3 beat %4', + robotis_koalabot_lite_rest_simple: '%1 %2', + robotis_koalabot_lite_rest_advanced: 'Rest %1 beat %2', + robotis_koalabot_lite_beat_per_minute: 'Set playing speed to %1 %2', + robotis_koalabot_lite_Hello: 'Robot speaks %1 %2', + robotis_koalabot_lite_effectSound: 'Play sound effect %1 %2', + robotis_koalabot_lite_record: 'Record to sound slot %1 %2', + robotis_koalabot_lite_playRecord: 'Play sound from slot %1 %2', + + // LCD 제어 + robotis_koalabot_lite_screen: 'Set screen expression to %1 %2 %3', + robotis_koalabot_lite_anim_screen: 'Set screen animation to %1 %2 %3', + robotis_koalabot_lite_icon_screen_food_plant: + 'Display %1 from [Food/Plants] at position (%2, %3) in size %4 %5', + robotis_koalabot_lite_icon_screen_animal_human: + 'Display %1 from [Animal/Human] at position (%2, %3) in size %4 %5', + robotis_koalabot_lite_icon_screen_object_tool: + 'Display %1 from [Object/Tool] at position (%2, %3) in size %4 %5', + robotis_koalabot_lite_icon_screen_vehicle_number: + 'Display %1 from [Vehicle/Number] at position (%2, %3) in size %4 %5', + robotis_koalabot_lite_text_screen: + 'Display %1 in %5 in %4 at (%2, %3) on the screen %6', + robotis_koalabot_lite_text_screen_redraw: + 'Newly display %1 in %4 at (%2, %3) %5', + robotis_koalabot_lite_pixel: 'Display %3 colored dot at (%1, %2) %4', + robotis_koalabot_lite_LCDBright: 'Set screen brightness as %1 %2', + robotis_koalabot_lite_LCDColor: 'Set screen color as %1 %2', + + // LED 제어 + robotis_koalabot_lite_cm_led: "%2 the robot's %1 LED %3", + robotis_koalabot_lite_cm_led_pattern: 'LED %1 blinks at a %2 speed %3', + + // AI Camera 값 블록 + robotis_koalabot_lite_ai_camera_connection_status: 'AI Camera: If %1', + robotis_koalabot_lite_ai_camera_if_detected: + 'AI Camera: If %1 is displayed', + + robotis_koalabot_lite_ai_camera_block_value_closest_to_center: + 'AI Camera: %1 of the rectangle closest to the center of the screen', + robotis_koalabot_lite_ai_camera_arrow_value_closest_to_center: + 'AI Camera: %1 of the arrow closest to the center of the screen', + robotis_koalabot_lite_ai_camera_number_of_learned_id: + 'AI Camera: the number of learned ID', + robotis_koalabot_lite_ai_camera_block_value_of_id: + 'AI Camera: %2 of rectangle with detected ID %1', + robotis_koalabot_lite_ai_camera_arrow_value_of_id: + 'AI Camera: %2 of arrow with detected ID %1', + + robotis_koalabot_lite_ai_camera_if_learned_id: + 'AI Camera: If learned data with ID %1', + robotis_koalabot_lite_ai_camera_if_detected_id_type: + 'AI Camera: If learned %2 data with ID %1', + + // AI 카메라 제어 + robotis_koalabot_lite_ai_camera_set_mode: 'AI Camera: Set mode to %1 %2', + robotis_koalabot_lite_ai_camera_print_custom_text: + 'AI Camera: Display %3 at screen position (%1, %2) %4', + robotis_koalabot_lite_ai_camera_clear_custom_text: + 'AI Camera: Clear screen text %1', + }, + Blocks: { + // Driving Control + robotis_koalabot_lite_drive_simple: + 'Drive the robot at the specified speed and direction\nSpeed range: -100 ~ 100\nSpeed unit: %', + robotis_koalabot_lite_drive_advanced: + 'Rotate the left and right wheels of the robot at the specified speed and direction\nSpeed range: -100 ~ 100\nSpeed unit: %', + robotis_koalabot_lite_drive_seperate: + 'Rotate the specified wheel of the robot at the specified speed and direction\nSpeed range: -100 ~ 100\nSpeed unit: %', + robotis_koalabot_lite_drive_angle: + 'Rotate the two wheels of the robot in the specified direction and by the specified angle\nAngle range: -5760 ~ 5760\nAngle unit: degrees', + robotis_koalabot_lite_go_distance: + 'Move forward or backward by the specified distance\nDistance range: -1000 ~ 1000\nDistance unit: mm', + robotis_koalabot_lite_turn_angle: + 'Rotate in place by the specified angle and direction\nAngle range: -360 ~ 360\nAngle unit: degrees', + robotis_koalabot_lite_follow_line: + 'Start following the line at the specified speed', + robotis_koalabot_lite_stop_at_cross: 'Stop at the specified intersection', + robotis_koalabot_lite_turn_at_line: + 'Make the specified turn at the intersection and stop', + robotis_koalabot_lite_drive_stop: 'Stop the robot', + + // Value Blocks + robotis_koalabot_lite_cm_ir_value: + 'IR sensor value of the specified number (range: 0 ~ 200)', + robotis_koalabot_lite_cm_ir_compare: + "If the IR sensor value of the specified number matches the specified value, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_detectFrontObj: + "If an object is detected in front of the specified sensor, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_cm_btn_value: + "If the specified button is clicked, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_cm_joystick_value: + "If the joystick position is in the specified state, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_mic: + 'Displays the intensity of the sound detected by the microphone in decibels (dB).', + robotis_koalabot_lite_detectSound_compare: + "If the direction of the sound matches the specified direction, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_imu: + 'Value of the specified accelerometer/gyro sensor on the specified axis\nRange: -100 ~ 100', + robotis_koalabot_lite_roll_pitch: + 'roll/pitch value\nroll: -180° ~ 180°, pitch: -90° ~ 90°', + robotis_koalabot_lite_distance_value: + 'Value of the specified sensor\nDistance range: 0 ~ 1000mm\nIlluminance range: 0 ~ 100%\nButton sensor: 0 (not pressed) / 1 (pressed)', + robotis_koalabot_lite_distance_compare: + "If the specified equation of the specified sensor value is correct, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_line_cross_compare: + "If the specified intersection shape is correct, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_dxl_value: + 'Position angle value of the specified motor\nRange: -180° ~ 180°', + + // Sound + robotis_koalabot_lite_scale_simple: + 'Play with the specified octave, scale, and note', + robotis_koalabot_lite_scale_advanced: + 'Play with the specified octave, scale, and beat', + robotis_koalabot_lite_rest_simple: 'Rest for the specified rest note', + robotis_koalabot_lite_rest_advanced: 'Rest for the specified beat', + robotis_koalabot_lite_beat_per_minute: + 'Set the playing speed (BPM)\nRange: 10 ~ 600', + robotis_koalabot_lite_Hello: 'Play the specified voice of the robot', + robotis_koalabot_lite_effectSound: + 'Play the specified sound effect of the robot', + robotis_koalabot_lite_record: + 'Record and save to the specified number storage', + robotis_koalabot_lite_playRecord: + 'Play the recorded voice in the specified number storage', + + // LCD Control + robotis_koalabot_lite_screen: + 'Set the character and expression of the controller screen background', + robotis_koalabot_lite_anim_screen: + 'Set the character and expression of the controller screen animation', + robotis_koalabot_lite_icon_screen_food_plant: + 'Set the position and size of a specific icon in [food/plant] on the screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120\nSize: 0 ~ 200', + robotis_koalabot_lite_icon_screen_animal_human: + 'Set the position and size of a specific icon in [animal/human] on the screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120\nSize: 0 ~ 200', + robotis_koalabot_lite_icon_screen_object_tool: + 'Set the position and size of a specific icon in [object/tool] on the screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120\nSize: 0 ~ 200', + robotis_koalabot_lite_icon_screen_vehicle_number: + 'Set the position and size of a specific icon in [vehicle/number] on the screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120\nSize: 0 ~ 200', + robotis_koalabot_lite_text_screen: + 'Set the position, font size, and color of the specified text on the screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120', + robotis_koalabot_lite_text_screen_redraw: + 'Set the position and color of the specified text to be newly displayed (clearing the background of the text) on the screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120\nSize: 0 ~ 200', + robotis_koalabot_lite_pixel: + 'Set the position and color of the dot to be displayed on the screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120', + robotis_koalabot_lite_LCDBright: + 'Set the screen brightness\nBrightness range: 0% ~ 100%', + robotis_koalabot_lite_LCDColor: 'Set the screen color', + + // LED Control + robotis_koalabot_lite_cm_led: + 'Turn the specified LED of the controller on or off', + robotis_koalabot_lite_cm_led_pattern: + 'Set the blinking pattern of LEDs of the controller', + + // AI Camera Value Blocks + robotis_koalabot_lite_ai_camera_connection_status: + "If the AI camera is connected, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_ai_camera_if_detected: + "If the selected symbol (rectangle/arrow) is displayed on the LCD screen of the AI camera, it is determined as 'true'; otherwise, 'false'.", + + robotis_koalabot_lite_ai_camera_block_value_closest_to_center: + 'X coordinate/Y coordinate/width/height/learning ID of the rectangle closest to the center of the AI camera screen', + robotis_koalabot_lite_ai_camera_arrow_value_closest_to_center: + 'Starting point X coordinate/starting point Y coordinate/end point X coordinate/end point Y coordinate/learning ID of the arrow closest to the center of the AI camera screen', + robotis_koalabot_lite_ai_camera_number_of_learned_id: + 'Number of IDs learned by the AI camera', + robotis_koalabot_lite_ai_camera_block_value_of_id: + 'X coordinate/Y coordinate/width/height of the rectangle with the specified ID detected by the AI camera', + robotis_koalabot_lite_ai_camera_arrow_value_of_id: + 'Starting point X coordinate/starting point Y coordinate/end point X coordinate/end point Y coordinate of the arrow with the specified ID detected by the AI camera', + + robotis_koalabot_lite_ai_camera_if_learned_id: + "If the AI camera has learned data with the specified ID, it is determined as 'true'; otherwise, 'false'.", + robotis_koalabot_lite_ai_camera_if_detected_id_type: + "If the AI camera has learned the specified data (rectangle/arrow) with the specified ID, it is determined as 'true'; otherwise, 'false'.", + + // AI Camera Control + robotis_koalabot_lite_ai_camera_set_mode: 'Set the mode of the AI camera', + robotis_koalabot_lite_ai_camera_print_custom_text: + 'Print the specified text at the specified position on the AI camera screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120', + robotis_koalabot_lite_ai_camera_clear_custom_text: + 'Clear all texts displayed on the AI camera screen', + }, + + Blocks: { + robotis_red: 'Red', + robotis_orange: 'Orange', + robotis_yellow: 'Yellow', + robotis_green: 'Green', + robotis_blue: 'Blue', + robotis_brown: 'Brown', + robotis_black: 'Black', + robotis_white: 'White', + robotis_left: 'Left', + robotis_center: 'Center', + robotis_right: 'Right', + robotis_both: 'Both', + robotis_rgee: 'R-GEE', + robotis_rla: 'KODALA', + robotis_kkokdu: 'TIG', + robotis_korean1: 'Hello!', + robotis_korean2: 'Great to see you.', + robotis_korean3: 'Okay ~', + robotis_korean4: 'No!', + robotis_korean5: "I don't know.", + robotis_korean6: 'I like it.', + robotis_korean7: "I don't like it.", + robotis_korean8: 'What is your name? ', + robotis_korean9: 'How can I help you? ', + robotis_korean10: 'Great job! ', + robotis_korean11: "It's alright.", + robotis_korean12: "Let's do it again! ", + robotis_korean13: 'Thank you! ', + robotis_korean14: 'Can you say that one more time?', + robotis_korean15: 'Awesome!', + robotis_korean16: "I'm excited! ", + robotis_korean17: "I'm having a great time! ", + robotis_korean18: "I'm sorry.", + robotis_korean19: "I'm angry! ", + robotis_korean20: "I'm embarassed.", + robotis_korean21: "I'm scared.", + robotis_korean22: "I'm upset.", + robotis_korean23: 'I love you.', + robotis_korean24: 'Very pretty! ', + robotis_korean25: 'Interesting.', + robotis_korean26: "I'm nervous.", + robotis_korean27: "Let's move forward! ", + robotis_korean28: "Let's move backward! ", + robotis_korean29: "Let's stand up! ", + robotis_korean30: 'Did you fall down? ', + robotis_korean31: 'Oh Yeah~', + robotis_korean32: 'Sweet! ', + robotis_korean33: 'Oh no', + robotis_korean34: 'My My ', + robotis_korean35: 'Whoo hoo! ', + robotis_korean36: 'Ha Ha Ha', + robotis_korean37: 'Ho Ho Ho ', + robotis_korean38: "I'm sleepy.", + robotis_korean39: 'Sing me a bedtime song! ', + robotis_korean40: 'Hello!', + robotis_korean41: "I'm hungry.", + robotis_korean42: "I'm craving an acorn! ", + robotis_korean43: 'I want to take a bath! ', + robotis_korean44: 'Time for a bath! ', + robotis_korean45: "I'm bored. ", + robotis_korean46: 'Do you want a snack? ', + robotis_korean47: "I'm sick.", + robotis_korean48: 'Do you have any medicine? ', + robotis_korean49: 'Where do we have to go? ', + robotis_korean50: "We're here! ", + robotis_korean51: "Let's go to the left side! ", + robotis_korean52: "Let's go to the right side! ", + robotis_korean53: 'Oh my, you scared me! ', + robotis_korean54: 'Found you! ', + robotis_korean55: "There's nothing here. ", + robotis_korean56: 'Did you call me?', + robotis_korean57: 'Please let me down. ', + robotis_korean58: 'Oops! ', + robotis_korean59: 'Hmmph! ', + robotis_korean60: 'Eek! ', + robotis_dog: 'Dog', + robotis_frog: 'Frog', + robotis_cat: 'Cat', + robotis_chicken: 'Rooster', + robotis_tiger: 'Tiger', + robotis_mouse: 'Mouse', + robotis_whistle: 'Whistle', + robotis_ambul: 'Ambulance', + robotis_Horn: 'CarHorn', + robotis_siren: 'Siren', + robotis_gun: 'Gunshot', + robotis_clap: 'Clap', + robotis_melody1: 'Melody1', + robotis_melody2: 'Melody2', + robotis_melody3: 'Melody3', + robotis_melody4: 'Melody4', + robotis_forward: 'Forward', + robotis_backward: 'Backward', + robotis_acceleration: 'acceleration', + robotis_gyro: 'gyro', + robotis_run: 'Run', + robotis_cancel: 'Cancel', + robotis_push: 'Pressed', + robotis_notPush: 'Unpressed', + robotis_play: 'Play', + robotis_rest: 'Rest', + robotis_face01: 'Haha', + robotis_face02: 'Smile', + robotis_face03: 'Laugh', + robotis_face04: 'Yum Yum', + robotis_face05: 'Scared', + robotis_face06: 'Uncomfortable', + robotis_face07: 'Confused', + robotis_face08: 'Dazed', + robotis_face09: 'Yell', + robotis_face10: 'Angry', + robotis_face11: 'Sniff (Left)', + robotis_face12: 'Sniff (Right)', + robotis_face13: 'Sniff (Down)', + robotis_face14: 'Whew', + robotis_face15: 'Faint', + robotis_face16: 'Dizzy', + robotis_face17: 'Yawn', + robotis_face18: 'Sleepy', + robotis_face19: 'Sleep', + robotis_face20: 'Sad', + robotis_face21: 'Cry', + robotis_face22: 'Bath', + robotis_face23: 'Heart-Eyes', + + robotis_pattern1: 'Pattern1', + robotis_pattern2: 'Pattern2', + robotis_pattern3: 'Pattern3', + robotis_moveF: 'Forward', + robotis_moveB: 'Backward', + robotis_moveL: 'LeftTurn', + robotis_moveR: 'RightTurn', + robotis_moveU: 'U-turn', + robotis_moveL_in_place: 'Turn left in place', + robotis_moveR_in_place: 'Trun right in place', + robotis_moveU_in_place: 'U-turn in place', + robotis_moveRG1: 'Stand', + robotis_moveRG2: 'Sit', + robotis_moveRG3: 'Struggle', + robotis_moveRG4: 'RaiseFeet', + robotis_fast: 'Fast', + robotis_normal: 'Normal', + robotis_slow: 'Slow', + robotis_stop: 'Stop', + robotis_roll: 'Left-right rotate angle (roll)', + robotis_pitch: 'Forward-backward rotate angle (pitch)', + robotis_direction_forward: 'Forward', + robotis_direction_backward: 'Backward', + robotis_stMotion1: 'Standard', + robotis_stMotion2: 'Forward', + robotis_stMotion3: 'TurnRight', + robotis_stMotion4: 'TurnLeft', + robotis_stMotion5: 'Backward', + robotis_stMotion6: 'ToRight', + robotis_stMotion7: 'ToLeft', + robotis_stMotion8: 'TurnAroundRight', + robotis_stMotion9: 'TurnAroundLeft', + robotis_spMotion1: 'RightHandUp', + robotis_spMotion2: 'RightHandDown', + robotis_spMotion3: 'LeftHandUp', + robotis_spMotion4: 'LeftHandDown', + robotis_spMotion5: 'BothHandsUp', + robotis_spMotion6: 'BothHandsDown', + robotis_spMotion7: 'FallBackward', + robotis_spMotion8: 'FallForward', + robotis_spMotion9: 'StandForward', + robotis_spMotion10: 'StandBackward', + robotis_spMotion11: 'Defence', + robotis_spMotion12: 'Offense1', + robotis_spMotion13: 'Offense2', + robotis_spMotion14: 'Offense3', + robotis_spMotion15: 'Offense4', + robotis_screen1: 'Sissor', + robotis_screen2: 'Rock', + robotis_screen3: 'Paper', + robotis_icon_food_plant_1: 'Milk', + robotis_icon_food_plant_2: 'Tree', + robotis_icon_food_plant_3: 'Soup', + robotis_icon_food_plant_4: 'Cake', + robotis_icon_food_plant_5: 'Water', + robotis_icon_food_plant_6: 'Juice', + robotis_icon_food_plant_7: 'Carrot', + robotis_icon_food_plant_8: 'Apple', + robotis_icon_food_plant_9: 'Orange', + robotis_icon_food_plant_10: 'Meat', + robotis_icon_food_plant_11: 'Flowerpot', + robotis_icon_food_plant_12: 'Rose', + robotis_icon_food_plant_13: 'Grape', + robotis_icon_food_plant_14: 'Potato', + robotis_icon_food_plant_15: 'Candy', + robotis_icon_food_plant_16: 'Cheese', + robotis_icon_food_plant_17: 'Bread', + robotis_icon_food_plant_18: 'Flowers', + robotis_icon_food_plant_19: 'Coffee', + robotis_icon_food_plant_20: 'Tulip', + robotis_icon_food_plant_21: 'Banana', + robotis_icon_food_plant_22: 'Fruits', + robotis_icon_food_plant_23: 'Hamburger', + robotis_icon_food_plant_24: 'Pizza', + robotis_icon_animal_human_1: 'Shiba Dog', + robotis_icon_animal_human_2: 'Puppy', + robotis_icon_animal_human_3: 'Bear', + robotis_icon_animal_human_4: 'Bird', + robotis_icon_animal_human_5: 'Duck', + robotis_icon_animal_human_6: 'Lion', + robotis_icon_animal_human_7: 'Tiger', + robotis_icon_animal_human_8: 'Horse', + robotis_icon_animal_human_9: 'Sheep', + robotis_icon_animal_human_10: 'Shark 1 (Left)', + robotis_icon_animal_human_11: 'Shark 1 (Right)', + robotis_icon_animal_human_12: 'Shark 2 (Left)', + robotis_icon_animal_human_13: 'Shark 2 (Right)', + robotis_icon_animal_human_14: 'Fish 1', + robotis_icon_animal_human_15: 'Fish 2', + robotis_icon_animal_human_16: 'Fish 3', + robotis_icon_animal_human_17: 'Octopus', + robotis_icon_animal_human_18: 'Monkey', + robotis_icon_animal_human_19: 'Chicken', + robotis_icon_animal_human_20: 'Pig', + robotis_icon_animal_human_21: 'Person (Chubby)', + robotis_icon_animal_human_22: 'Person (Swimsuit)', + robotis_icon_animal_human_23: 'Baby', + robotis_icon_animal_human_24: 'Person (Running)', + robotis_icon_animal_human_25: 'Person (Singing)', + robotis_icon_animal_human_26: 'Person (Sitting)', + robotis_icon_animal_human_27: 'Person (Angry)', + robotis_icon_animal_human_28: 'Person (Cheering)', + robotis_icon_animal_human_29: 'King', + robotis_icon_animal_human_30: 'Prince', + robotis_icon_animal_human_31: 'Princess', + robotis_icon_animal_human_32: 'Chef', + robotis_icon_animal_human_33: 'Doctor', + robotis_icon_animal_human_34: 'Nurse', + robotis_icon_object_tool_1: 'Bag', + robotis_icon_object_tool_2: 'Box', + robotis_icon_object_tool_3: 'Mug', + robotis_icon_object_tool_4: 'Hat (Fedora)', + robotis_icon_object_tool_5: 'Hat (Cap)', + robotis_icon_object_tool_6: 'Key', + robotis_icon_object_tool_7: 'Toy', + robotis_icon_object_tool_8: 'Book', + robotis_icon_object_tool_9: 'Teddy Bear', + robotis_icon_object_tool_10: 'Drum', + robotis_icon_object_tool_11: 'Notebook', + robotis_icon_object_tool_12: 'Pen', + robotis_icon_object_tool_13: 'Desk', + robotis_icon_object_tool_14: 'Table', + robotis_icon_object_tool_15: 'Chair', + robotis_icon_object_tool_16: 'Bed', + robotis_icon_object_tool_17: 'Tent', + robotis_icon_object_tool_18: 'Plate', + robotis_icon_object_tool_19: 'Soccer Ball', + robotis_icon_object_tool_20: 'Bell', + robotis_icon_object_tool_21: 'Watch', + robotis_icon_object_tool_22: 'Shoes', + robotis_icon_object_tool_23: 'Lamp', + robotis_icon_object_tool_24: 'Radio', + robotis_icon_object_tool_25: 'Banknote', + robotis_icon_object_tool_26: 'Ruler', + robotis_icon_object_tool_27: 'Camera', + robotis_icon_object_tool_28: 'Spoon', + robotis_icon_object_tool_29: 'Keyboard', + robotis_icon_object_tool_30: 'Calendar', + robotis_icon_object_tool_31: 'Knife', + robotis_icon_object_tool_32: 'Balloon', + robotis_icon_object_tool_33: 'Water Bottle', + robotis_icon_object_tool_34: 'Wooden Stick (Horizontal)', + robotis_icon_object_tool_35: 'Wooden Stick (Vertical)', + robotis_icon_object_tool_36: 'Fishing Hook', + robotis_icon_vehicle_number_1: 'Car', + robotis_icon_vehicle_number_2: 'Bus', + robotis_icon_vehicle_number_3: 'Truck', + robotis_icon_vehicle_number_4: 'Jeep', + robotis_icon_vehicle_number_5: 'Bicycle', + robotis_icon_vehicle_number_6: 'Subway', + robotis_icon_vehicle_number_7: 'Train', + robotis_icon_vehicle_number_8: 'Airplane', + robotis_icon_vehicle_number_9: 'Fighter Jet (Vertical)', + robotis_icon_vehicle_number_10: 'Fighter Jet (Horizontal)', + robotis_icon_vehicle_number_11: 'Rocket', + robotis_icon_vehicle_number_12: 'Fishing Boat', + robotis_icon_vehicle_number_13: 'Passenger Ship', + robotis_icon_vehicle_number_14: 'Submarine (Left)', + robotis_icon_vehicle_number_15: 'Submarine (Right)', + robotis_icon_vehicle_number_16: 'Airplane (Left)', + robotis_icon_vehicle_number_17: 'Airplane (Right)', + robotis_icon_vehicle_number_18: 'Airplane (Top)', + robotis_icon_vehicle_number_19: 'Spaceship (Left)', + robotis_icon_vehicle_number_20: 'Spaceship (Right)', + robotis_icon_vehicle_number_21: 'Spaceship (Top)', + robotis_icon_vehicle_number_22: 'Dice (1)', + robotis_icon_vehicle_number_23: 'Dice (2)', + robotis_icon_vehicle_number_24: 'Dice (3)', + robotis_icon_vehicle_number_25: 'Dice (4)', + robotis_icon_vehicle_number_26: 'Dice (5)', + robotis_icon_vehicle_number_27: 'Dice (6)', + robotis_icon_vehicle_number_28: '0', + robotis_icon_vehicle_number_29: '1', + robotis_icon_vehicle_number_30: '2', + robotis_icon_vehicle_number_31: '3', + robotis_icon_vehicle_number_32: '4', + robotis_icon_vehicle_number_33: '5', + robotis_icon_vehicle_number_34: '6', + robotis_icon_vehicle_number_35: '7', + robotis_icon_vehicle_number_36: '8', + robotis_icon_vehicle_number_37: '9', + robotis_icon_vehicle_number_38: '10', + robotis_speed_fast: 'Fast Speed', + robotis_speed_midium: 'Medium Speed', + robotis_speed_slow: 'Slow Speed', + robotis_clockwise: 'Clockwise', + robotis_counterclockwise: 'Counterclockwise', + robotis_up: 'Lift', + robotis_down: 'Lower', + robotis_if_greater: 'If Greater', + robotis_if_smaller: 'If Smaller', + robotis_if_equal: 'If Equal', + robotis_front_right: 'Front Right', + robotis_front_left: 'Front Left', + robotis_bottom_right: 'Bottom Right', + robotis_bottom_left: 'Bottom Left', + robotis_side_right: 'Right Edge', + robotis_side_left: 'Left Edge', + robotis_front_ir_sensor: 'Infrared Sensor', + robotis_distance_sensor: 'Distance Sensor', + robotis_front: 'Front', + robotis_right: 'Right', + robotis_left_wheel: 'Left Wheel', + robotis_right_wheel: 'Right Wheel', + robotis_beat_sound_8th_note: 'Eighth Note (♪)', + robotis_beat_sound_dotted_8th_note: 'Dotted Eighth Note (♪.)', + robotis_beat_sound_quarter_note: 'Quarter Note (♩)', + robotis_beat_sound_dotted_quarter_note: 'Dotted Quarter Note (♩.)', + robotis_beat_sound_half_note: 'Half Note (𝅗𝅥)', + robotis_beat_sound_dotted_half_note: 'Dotted Half Note (𝅗𝅥.)', + robotis_beat_sound_whole_note: 'Whole Note (𝅝)', + robotis_beat_sound_dotted_note: 'Dotted Whole Note (𝅝.)', + robotis_beat_rest_8th_note: 'Eighth Rest (𝄾)', + robotis_beat_rest_dotted_8th_note: 'Dotted Eighth Rest (𝄾.)', + robotis_beat_rest_quarter_note: 'Quarter Rest (𝄽)', + robotis_beat_rest_dotted_quarter_note: 'Dotted Quarter Rest (𝄽.)', + robotis_beat_rest_half_note: 'Half Rest (𝄼)', + robotis_beat_rest_dotted_half_note: 'Dotted Half Rest (𝄼˙)', + robotis_beat_rest_whole_note: 'Whole Rest (𝄻)', + robotis_beat_rest_dotted_note: 'Dotted Whole Rest (𝄻˙)', + robotis_line_cross_type_0: '|', + robotis_line_cross_type_1: ' (Blank)', + robotis_line_cross_type_5: '🞣', + robotis_line_cross_type_6: '⏉', + robotis_line_cross_type_7: '⊣', + robotis_line_cross_type_8: '⊢', + robotis_line_cross_type_9: '⏋', + robotis_line_cross_type_10: '⎾', + robotis_line_cross_type_11: '¦', + robotis_line_cross_type_12: '︙', + robotis_connected: 'Connected', + robotis_disconnected: 'Not connected', + robotis_ai_camera_mode_face_recognition: 'Face Recognition', + robotis_ai_camera_mode_object_tracking: 'Object Tracking', + robotis_ai_camera_mode_object_recognition: 'Object Recognition', + robotis_ai_camera_mode_line_tracking: 'Line Tracking', + robotis_ai_camera_mode_color_recognition: 'Color Recognition', + robotis_ai_camera_mode_tag_recognition: 'Tag Recognition', + robotis_ai_camera_mode_object_classification: 'Object Classification', + robotis_ai_camera_block: 'Block', + robotis_ai_camera_arrow: 'Arrow', + robotis_ai_camera_center_block_center_x: 'Center X Coordinate', + robotis_ai_camera_center_block_center_y: 'Center Y Coordinate', + robotis_ai_camera_center_block_width: 'Width', + robotis_ai_camera_center_block_height: 'Height', + robotis_ai_camera_center_leared_id: 'Learned ID', + robotis_ai_camera_center_arrow_origin_x: 'Start X Coordinate', + robotis_ai_camera_center_arrow_origin_y: 'Start Y Coordinate', + robotis_ai_camera_center_arrow_target_x: 'End X Coordinate', + robotis_ai_camera_center_arrow_target_y: 'End Y Coordinate', + }, + }, + }; + } + getBlocks() { + return { + robotis_koalabot_lite_drive_simple: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_moveF, '1'], + [Lang.Blocks.robotis_moveB, '2'], + [Lang.Blocks.robotis_moveL_in_place, '3'], + [Lang.Blocks.robotis_moveR_in_place, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [5, null, null], + type: 'robotis_koalabot_lite_drive_simple', + }, + paramsKeyMap: { + SPEED: 0, + DIRECTION: 1, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + const speed = script.getNumberValue('SPEED', script); + const direction = script.getField('DIRECTION', script); + + const data_instruction = INST_WRITE; + const data_address = 710; + const data_length = 2; + let data_value = 0; + + switch (direction) { + case '1': + data_value = speed * 256 + speed; + break; + case '2': + data_value = (256 - speed) * 256 + (256 - speed); + break; + case '3': + data_value = speed * 256 + (256 - speed); + break; + case '4': + data_value = (256 - speed) * 256 + speed; + break; + default: + data_value = 0; + break; + } + + const data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.go_simple(%1, %2)'], + }, + }, + robotis_koalabot_lite_drive_advanced: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_moveF, '1'], + [Lang.Blocks.robotis_moveB, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_moveF, '1'], + [Lang.Blocks.robotis_moveB, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['5'], + }, + null, + { + type: 'number', + params: ['5'], + }, + null, + ], + type: 'robotis_koalabot_lite_drive_advanced', + }, + paramsKeyMap: { + LEFT_SPEED: 0, + LEFT_DIRECTION: 1, + RIGHT_SPEED: 2, + RIGHT_DIRECTION: 3, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let leftSpeed = script.getNumberValue('LEFT_SPEED', script); + const leftDirection = script.getField('LEFT_DIRECTION', script); + let rightSpeed = script.getNumberValue('RIGHT_SPEED', script); + const rightDirection = script.getField('RIGHT_DIRECTION', script); + + let data_instruction = INST_WRITE; + let data_address = 710; + let data_length = 2; + let data_value = 0; + + if (leftSpeed < -100) { + leftSpeed = -100; + } else if (leftSpeed > 100) { + leftSpeed = 100; + } + + if (rightSpeed < -100) { + rightSpeed = -100; + } else if (rightSpeed > 100) { + rightSpeed = 100; + } + + if (leftDirection == '2') { + leftSpeed = -leftSpeed; + } + if (rightDirection == '2') { + rightSpeed = -rightSpeed; + } + + if (leftSpeed < 0) { + leftSpeed = 256 + leftSpeed; + } + if (rightSpeed < 0) { + rightSpeed = 256 + rightSpeed; + } + + data_value = leftSpeed + rightSpeed * 256; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.go_advanced(%1, %2)'], + }, + }, + robotis_koalabot_lite_drive_seperate: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_left, '1'], + [Lang.Blocks.robotis_right, '0'], + [Lang.Blocks.robotis_both, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_direction_forward, '1'], + [Lang.Blocks.robotis_direction_backward, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'number', + params: ['5'], + }, + null, + ], + type: 'robotis_koalabot_lite_drive_seperate', + }, + paramsKeyMap: { + WHEEL_SIDE: 0, + WHEEL_SPEED: 1, + WHEEL_DIRECTION: 2, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let wheelSide = script.getNumberValue('WHEEL_SIDE', script); + let wheelSpeed = script.getNumberValue('WHEEL_SPEED', script); + let wheelDirection = script.getNumberValue('WHEEL_DIRECTION', script); + + let leftSpeed = 0; + let rightSpeed = 0; + let data_instruction = INST_WRITE; + let data_address = 710; + let data_length = 2; + let data_value = 0; + + if (wheelSpeed < -100) { + wheelSpeed = -100; + } else if (wheelSpeed > 100) { + wheelSpeed = 100; + } + + wheelSpeed = (wheelSpeed + 256) % 256; + if (wheelDirection == '2') { + wheelSpeed = (256 - wheelSpeed) % 256; + } + + if (wheelSide == 1) { + leftSpeed = wheelSpeed; + rightSpeed = 127; // 속도제어 안함 + } else if (wheelSide == 0) { + leftSpeed = 127; // 속도제어 안함 + rightSpeed = wheelSpeed; + } else { + leftSpeed = wheelSpeed; + rightSpeed = wheelSpeed; + } + + data_value = leftSpeed + rightSpeed * 256; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + 25 //DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.go_seperate(%1, %2)'], + }, + }, + robotis_koalabot_lite_drive_angle: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_direction_forward, '1'], + [Lang.Blocks.robotis_direction_backward, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['180'], + }, + null, + ], + type: 'robotis_koalabot_lite_drive_angle', + }, + paramsKeyMap: { + WHEEL_ANGLE: 0, + WHEEL_DIRECTION: 1, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let wheelAngle = script.getNumberValue('WHEEL_ANGLE', script); + let wheelDirection = script.getNumberValue('WHEEL_DIRECTION', script); + + const data_instruction = INST_WRITE; + let data_address = 580; + let data_length = 8; + let angleValue = 0; + let data_buf_left = []; + let data_buf_right = []; + let i = 0; + let speed = 50; + + if (wheelDirection == '2') { + wheelAngle = -wheelAngle; + } + + wheelAngle = Math.round((wheelAngle * 4096) / 360); + + if (wheelAngle > 65535) { + wheelAngle = 65535; + } else if (wheelAngle < -65535) { + wheelAngle = -65535; + } + + angleValue = wheelAngle; + if (wheelAngle < 0) { + angleValue = 65536 + angleValue; + } + data_buf_left.push(35); + data_buf_left.push(0); + data_buf_left.push(speed % 256); + data_buf_left.push(Math.floor(speed / 256)); + data_buf_left.push(angleValue % 256); + data_buf_left.push(Math.floor(angleValue / 256) % 256); + if (wheelAngle >= 0) { + data_buf_left.push(0); + data_buf_left.push(0); + } else { + data_buf_left.push(0xff); + data_buf_left.push(0xff); + } + + data_buf_right.push(36); + data_buf_right.push(0); + data_buf_right.push(speed % 256); + data_buf_right.push(Math.floor(speed / 256)); + data_buf_right.push(angleValue % 256); + data_buf_right.push(Math.floor(angleValue / 256) % 256); + if (wheelAngle >= 0) { + data_buf_right.push(0); + data_buf_right.push(0); + } else { + data_buf_right.push(0xff); + data_buf_right.push(0xff); + } + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_buf_left], + [data_instruction, data_address, data_length, data_buf_right], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.go_angle(%1, %2)'], + }, + }, + robotis_koalabot_lite_go_distance: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_moveF, '1'], + [Lang.Blocks.robotis_moveB, '-1'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['5'], + }, + null, + ], + type: 'robotis_koalabot_lite_go_distance', + }, + + paramsKeyMap: { + DISTANCE: 0, + DIRECTION: 1, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(entity, script) { + let distance = script.getNumberValue('DISTANCE', script); + let direction = script.getField('DIRECTION', script); + + if (distance > 1000) { + distance = 1000; + } else if (distance < -1000) { + distance = -1000; + } + + let data_instruction = INST_WRITE; + let data_address = 270; + let data_length = 4; + let data_value = Math.floor(10 * distance * direction); + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + + data_sendqueue.push([data_instruction, 66, 2, 50491]); + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 150 * Math.abs(distance) + 1200 + //DEFAULT_DELAY + ); + }, + syntax: { js: [], py: ['Koalabot.dxl_each_control(%1)'] }, + }, + + robotis_koalabot_lite_turn_angle: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_moveL_in_place, '1'], + [Lang.Blocks.robotis_moveR_in_place, '-1'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['90'], + }, + null, + ], + type: 'robotis_koalabot_lite_turn_angle', + }, + + paramsKeyMap: { + ANGLE: 0, + DIRECTION: 1, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(entity, script) { + let angle = script.getNumberValue('ANGLE', script); + let direction = script.getNumberValue('DIRECTION', script); + + angle *= direction; + + if (angle > 360) { + angle = 360; + } else if (angle < -360) { + angle = -360; + } + + let data_instruction = INST_WRITE; + let data_address = 270; + let data_length = 4; + let data_value = Math.floor(angle); + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + + data_sendqueue.push([data_instruction, 66, 2, 50492]); + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + Math.abs(angle) * 16 + 1500 + //DEFAULT_DELAY + ); + }, + syntax: { js: [], py: ['Koalabot.dxl_each_control(%1)'] }, + }, + robotis_koalabot_lite_follow_line: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_slow, '1'], + [Lang.Blocks.robotis_normal, '2'], + [Lang.Blocks.robotis_fast, '3'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_follow_line', + }, + paramsKeyMap: { + SPEED: 0, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let speed_level = script.getNumberValue('SPEED', script); + + let data_instruction = INST_WRITE; + let data_address = 5200; + let data_length = 1; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, speed_level], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.follow_line(%1)'], + }, + }, + robotis_koalabot_lite_stop_at_cross: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_line_cross_type_5, '5'], + [Lang.Blocks.robotis_line_cross_type_6, '6'], + [Lang.Blocks.robotis_line_cross_type_7, '7'], + [Lang.Blocks.robotis_line_cross_type_8, '8'], + ], + value: '5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_stop_at_cross', + }, + paramsKeyMap: { + CROSS: 0, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + async func(sprite, script) { + // instruction / address / length / value / default length + let cross_type = script.getNumberValue('CROSS', script); + let data_address = 5201; + + // max 10 seconds + for (let i = 0; i < 100; i++) { + await Entry.Utils.sleep(100); + if (Entry.RobotisKoalabotLite.dataBuffer[data_address] == cross_type) { + break; + } + if (Entry.engine.isState('stop') == true) { + break; + } + } + + let data_sendqueue = [[INST_WRITE, 5200, 1, 0]]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.stop_at_cross(%1)'], + }, + }, + robotis_koalabot_lite_turn_at_line: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_moveL_in_place, '0'], + [Lang.Blocks.robotis_moveR_in_place, '1'], + [Lang.Blocks.robotis_moveU_in_place, '2'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_turn_at_line', + }, + paramsKeyMap: { + TURN_TYPE: 0, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let turn_type = script.getNumberValue('TURN_TYPE', script); + + let data_instruction = INST_WRITE; + let data_address = 66; + let data_length = 2; + let extra_delay = 0; + + switch (turn_type) { + case 0: + case 1: + extra_delay = 2000; + break; + + case 2: + extra_delay = 3500; + break; + } + + let data_sendqueue = [ + [data_instruction, data_address, data_length, 50045 + turn_type], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + extra_delay + ); + }, + syntax: { + js: [], + py: ['Koalabot.turn_at_line(%1)'], + }, + }, + robotis_koalabot_lite_drive_stop: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_drive_stop', + }, + paramsKeyMap: { + DIRECTION: 0, + }, + class: 'robotis_koalabot_lite_move', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + + let data_instruction = INST_WRITE; + let data_address = 710; + let data_length = 2; + let data_value = 0; + + let data_sendqueue = [ + [data_instruction, 5200, 1, 0], + [data_instruction, data_address, data_length, data_value], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.stop(%1, %2)'], + }, + }, + + robotis_koalabot_lite_cm_ir_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_front_right, '360'], + [Lang.Blocks.robotis_front_left, '362'], + [Lang.Blocks.robotis_bottom_right, '364'], + [Lang.Blocks.robotis_bottom_left, '366'], + [Lang.Blocks.robotis_side_right, '368'], + [Lang.Blocks.robotis_side_left, '370'], + ], + value: '360', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_cm_ir_value', + }, + paramsKeyMap: { + VALUE: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + const scope = script.executor.scope; + + const data_default_address = script.getNumberValue('VALUE'); + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_default_address]; + if (result == undefined) { + result = rb100_last_valid_value[data_default_address]; + } else { + rb100_last_valid_value[data_default_address] = result; + } + if (typeof result == 'undefined') { + return 0; + } + return Math.round((result % 65536) / 2); + }, + syntax: { + js: [], + py: ['Koalabot.ir_value(%1)'], + }, + }, + robotis_koalabot_lite_cm_ir_compare: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_front_right, '360'], + [Lang.Blocks.robotis_front_left, '362'], + [Lang.Blocks.robotis_bottom_right, '364'], + [Lang.Blocks.robotis_bottom_left, '366'], + [Lang.Blocks.robotis_side_right, '368'], + [Lang.Blocks.robotis_side_left, '370'], + ], + value: '360', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_if_greater, '0'], + [Lang.Blocks.robotis_if_smaller, '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null, 50, null], + type: 'robotis_koalabot_lite_cm_ir_compare', + }, + paramsKeyMap: { + VALUE: 0, + COMPARE_VAL: 1, + COMPARE_OP: 2, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = script.getNumberValue('VALUE'); + let compareValue = script.getNumberValue('COMPARE_VAL'); + let compareOP = script.getNumberValue('COMPARE_OP'); + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (result == undefined) { + return false; + } + + result = Math.round((result % 65536) / 2); + + switch (compareOP) { + case 0: + return result > compareValue; + case 1: + return result < compareValue; + default: + return false; + } + }, + syntax: { + js: [], + py: ['Koalabot.ir_compare(%1)'], + }, + }, + robotis_koalabot_lite_detectFrontObj: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_front_ir_sensor, '0'], + [Lang.Blocks.robotis_distance_sensor, '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_detectFrontObj', + }, + paramsKeyMap: { + SENSOR: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + + // instruction / address / length / value / default length + let sensorType = script.getNumberValue('SENSOR'); + let ir_1 = 0; + let ir_2 = 0; + + if (sensorType == 0) { + ir_1 = Entry.RobotisKoalabotLite.dataBuffer[360]; + ir_2 = Entry.RobotisKoalabotLite.dataBuffer[362]; + if (ir_1 == undefined) { + ir_1 = 0; + } + if (ir_2 == undefined) { + ir_2 = 0; + } + return ir_1 > 100 || ir_2 > 100; + } else if (sensorType == 1) { + result = Entry.RobotisKoalabotLite.distanceDistance[0]; + if (result == undefined) { + return false; + } else { + return result < 200; + } + } + }, + syntax: { + js: [], + py: ['Koalabot.detectFrontObj()'], + }, + }, + robotis_koalabot_lite_cm_btn_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_blue, '47'], + [Lang.Blocks.robotis_red, '44'], + ], + value: '47', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_cm_btn_value', + }, + paramsKeyMap: { + VALUE: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = script.getNumberValue('VALUE'); + let compareValue = 1; + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + if (result == undefined) { + return false; + } + + return result == compareValue; + }, + syntax: { + js: [], + py: ['Koalabot.btn_value(%1)'], + }, + }, + robotis_koalabot_lite_cm_joystick_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_center, '0'], + ['←', '1'], + ['→', '2'], + ['↑', '3'], + ['↓', '4'], + ['↖', '5'], + ['↗', '6'], + ['↙', '7'], + ['↘', '8'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_cm_joystick_value', + }, + paramsKeyMap: { + COMPARE_VAL: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = 50; + let compareValue = script.getNumberValue('COMPARE_VAL', script); + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + if (result == undefined) { + return false; + } + + return result == compareValue; + }, + syntax: { + js: [], + py: ['Koalabot.joystick_value()'], + }, + }, + robotis_koalabot_lite_mic: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_mic', + }, + paramsKeyMap: { + VALUE: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + async func(sprite, script) { + let scope = script.executor.scope; + let data_address = 119; + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (typeof result == 'undefined') { + return 0; + } + return result; + }, + syntax: { + js: [], + py: ['Koalabot.mic()'], + }, + }, + robotis_koalabot_lite_detectSound_compare: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_left, '1'], + [Lang.Blocks.robotis_center, '0'], + [Lang.Blocks.robotis_right, '255'], + ], + value: '255', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_detectSound_compare', + }, + paramsKeyMap: { + VALUE: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = 5031; + let compareValue = script.getNumberValue('VALUE'); + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + if (result == undefined) { + return false; + } + + return result == compareValue; + }, + syntax: { + js: [], + py: ['Koalabot.detectSound_compare(%1)'], + }, + }, + robotis_koalabot_lite_imu: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['x', '78'], //72 + ['y', '80'], //74 + ['z', '82'], //76 + ], + value: '78', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_acceleration, '0'], //72 + [Lang.Blocks.robotis_gyro, '6'], //74 + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_imu', + }, + paramsKeyMap: { + AXIS: 0, + MODE: 1, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = + script.getField('AXIS', script) - script.getField('MODE', script); + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (typeof result == 'undefined') { + return 0; + } + return result; + }, + syntax: { + js: [], + py: ['Koalabot.imu()'], + }, + }, + robotis_koalabot_lite_roll_pitch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_roll, '70'], //72 + [Lang.Blocks.robotis_pitch, '88'], //74 + ], + value: '70', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_roll_pitch', + }, + paramsKeyMap: { + AXIS: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = script.getNumberValue('AXIS'); + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (typeof result == 'undefined') { + return 0; + } + return result; + }, + syntax: { + js: [], + py: ['Koalabot.roll_pitch(%1)'], + }, + }, + robotis_koalabot_lite_distance_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_sensing_distance, '25'], + [Lang.Blocks.robotis_sensing_button, '24'], + [Lang.Blocks.robotis_sensing_brightness, '30'], + ], + value: '25', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_distance_value', + }, + paramsKeyMap: { + ADDR: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = script.getNumberValue('ADDR'); + + let result = 0; + + switch (data_address) { + case 25: + result = Entry.RobotisKoalabotLite.distanceDistance[0]; + break; + + case 24: + result = Entry.RobotisKoalabotLite.distanceButton[0]; + break; + + case 30: + result = Entry.RobotisKoalabotLite.distanceBrightness[0]; + break; + } + + if (typeof result == 'undefined') { + return 0; + } + + if (data_address == 25) { + if (result > 1000) result = 1000; + } + return result; + }, + syntax: { + js: [], + py: ['Koalabot.distance_value(%1)'], + }, + }, + robotis_koalabot_lite_distance_compare: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_sensing_distance, '25'], + [Lang.Blocks.robotis_sensing_button, '24'], + [Lang.Blocks.robotis_sensing_brightness, '30'], + ], + value: '25', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + value: '', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_if_greater, '0'], + [Lang.Blocks.robotis_if_smaller, '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'number', + params: [0], + }, + null, + ], + type: 'robotis_koalabot_lite_distance_compare', + }, + paramsKeyMap: { + ADDR: 0, + COMPARE_VAL: 1, + COMPARE_OP: 2, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + + let data_address = script.getNumberValue('ADDR'); + let compareValue = script.getNumberValue('COMPARE_VAL'); + let compareOP = script.getNumberValue('COMPARE_OP'); + + let result = 0; + + switch (data_address) { + case 25: + result = Entry.RobotisKoalabotLite.distanceDistance[0]; + break; + + case 24: + result = Entry.RobotisKoalabotLite.distanceButton[0]; + break; + + case 30: + result = Entry.RobotisKoalabotLite.distanceBrightness[0]; + break; + } + + if (typeof result == 'undefined') { + return false; + } + + if (data_address == 25) { + if (result > 1000) result = 1000; + } + + switch (compareOP) { + case 0: + return result > compareValue; + case 1: + return result < compareValue; + case 2: + return result == compareValue; + default: + return false; + } + }, + syntax: { + js: [], + py: ['Koalabot.distance_compare(%1)'], + }, + }, + robotis_koalabot_lite_dxl_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_left_wheel, '36'], + [Lang.Blocks.robotis_right_wheel, '35'], + ], + value: '36', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_dxl_value_angle, '1'], + [Lang.Blocks.robotis_dxl_value_velocity, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [36, null], + type: 'robotis_koalabot_lite_dxl_value', + }, + paramsKeyMap: { + ID: 0, + TYPE: 1, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + + let dxl_id = script.getNumberValue('ID'); + //var data_type = script.getNumberValue('TYPE'); + + let result = Entry.RobotisKoalabotLite.dxlPositions[dxl_id]; + + if (typeof result == 'undefined') { + return 0; + } + result = 180 - Math.round((result * 360) / 4096); + while (result < -180) { + result += 360; + } + while (result > 180) { + result -= 360; + } + + return result; + }, + syntax: { + js: [], + py: ['Koalabot.get_dxl_value(%1)'], + }, + }, + robotis_koalabot_lite_line_cross_compare: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_line_cross_type_5, '5'], + [Lang.Blocks.robotis_line_cross_type_6, '6'], + [Lang.Blocks.robotis_line_cross_type_7, '7'], + [Lang.Blocks.robotis_line_cross_type_8, '8'], + ], + value: '5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_line_cross_compare', + }, + paramsKeyMap: { + VALUE: 0, + }, + class: 'robotis_koalabot_lite_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = 5201; + let compareValue = script.getNumberValue('VALUE'); + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (result == undefined) { + return false; + } + + return result == compareValue; + }, + syntax: { + js: [], + py: ['Koalabot.line_cross_compare(%1)'], + }, + }, + + robotis_koalabot_lite_screen: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_rla, '2'], + [Lang.Blocks.robotis_rgee, '0'], + [Lang.Blocks.robotis_kkokdu, '3'], + ], + value: '2', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_car_anim01, '2817'], + [Lang.Blocks.robotis_car_anim02, '2818'], + [Lang.Blocks.robotis_car_anim03, '2819'], + [Lang.Blocks.robotis_car_anim04, '2820'], + [Lang.Blocks.robotis_car_anim05, '2821'], + + [Lang.Blocks.robotis_car_anim06, '2822'], + //[Lang.Blocks.robotis_car_anim07, '2823'], + [Lang.Blocks.robotis_car_anim08, '2824'], + [Lang.Blocks.robotis_car_anim09, '2825'], + [Lang.Blocks.robotis_car_anim10, '2826'], + + [Lang.Blocks.robotis_car_anim11, '2827'], + [Lang.Blocks.robotis_car_anim12, '2828'], + //[Lang.Blocks.robotis_car_anim13, '2829'], + [Lang.Blocks.robotis_car_anim14, '2830'], + [Lang.Blocks.robotis_car_anim15, '2831'], + + [Lang.Blocks.robotis_car_anim16, '2832'], + [Lang.Blocks.robotis_car_anim17, '2833'], + [Lang.Blocks.robotis_car_anim18, '2834'], + [Lang.Blocks.robotis_car_anim19, '2835'], + ], + value: '2817', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_screen', + }, + paramsKeyMap: { + ROBOT_TYPE: 0, + BACKGROUND: 1, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let robotType = script.getNumberValue('ROBOT_TYPE', script); + let screenValue = script.getNumberValue('BACKGROUND', script); + + let data_instruction = INST_WRITE; + let data_address = 163; + let data_length = 2; + let data_value = screenValue + robotType * 256; + + if (robotType == 0) { + switch (screenValue) { + case 2817: + data_value = 2841; + break; + + case 2818: + data_value = 2842; + break; + + case 2819: + data_value = 2820; + break; + + case 2820: + data_value = 2817; + break; + + case 2821: + data_value = 2819; + break; + + case 2822: + data_value = 2818; + break; + + //case 2823: + // break; + + case 2824: + data_value = 2826; + break; + + case 2825: + data_value = 2836; + break; + + case 2826: + data_value = 2837; + break; + + case 2827: + data_value = 2843; + break; + + case 2828: + data_value = 2831; + break; + + //case 2829: + // break; + + case 2830: + data_value = 2833; + break; + + case 2831: + data_value = 2834; + break; + + case 2832: + data_value = 2828; + break; + + case 2833: + data_value = 2827; + break; + + case 2834: + data_value = 2829; + break; + + case 2835: + data_value = 2840; + break; + + default: + data_value = 2841; + break; + } + } + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + [INST_WRITE, 162, 1, 1], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 200 + ); + }, + syntax: { js: [], py: ['Koalabot.screen(%1)'] }, + }, + + robotis_koalabot_lite_anim_screen: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_rla, '0'], + [Lang.Blocks.robotis_rgee, '-1'], + [Lang.Blocks.robotis_kkokdu, '1'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_car_anim01, '30978'], + [Lang.Blocks.robotis_car_anim02, '30981'], + //[Lang.Blocks.robotis_car_anim03, '30982'], + [Lang.Blocks.robotis_car_anim04, '30983'], + [Lang.Blocks.robotis_car_anim05, '30984'], + + [Lang.Blocks.robotis_car_anim06, '30985'], + [Lang.Blocks.robotis_car_anim07, '30986'], + [Lang.Blocks.robotis_car_anim08, '30987'], + [Lang.Blocks.robotis_car_anim09, '30988'], + [Lang.Blocks.robotis_car_anim10, '30989'], + + [Lang.Blocks.robotis_car_anim11, '30990'], + [Lang.Blocks.robotis_car_anim12, '30991'], + //[Lang.Blocks.robotis_car_anim13, '30992'], + [Lang.Blocks.robotis_car_anim14, '30993'], + [Lang.Blocks.robotis_car_anim15, '30994'], + + [Lang.Blocks.robotis_car_anim16, '30995'], + [Lang.Blocks.robotis_car_anim17, '30996'], + [Lang.Blocks.robotis_car_anim18, '30997'], + [Lang.Blocks.robotis_car_anim19, '30998'], + ], + value: '30978', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_anim_screen', + }, + paramsKeyMap: { + ROBOT_TYPE: 0, + BACKGROUND: 1, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let robotType = script.getNumberValue('ROBOT_TYPE', script); + let screenValue = script.getNumberValue('BACKGROUND', script); + + let data_instruction = INST_WRITE; + let data_address = 163; + let data_length = 2; + let data_value = screenValue; + + if (robotType >= 0) { + data_value += 256 * robotType; + } else { + switch (screenValue) { + case 30978: + data_value = 30724; + break; + + case 30981: + data_value = 30761; + break; + + //case 30982: + // break; + + case 30983: + data_value = 30748; + break; + + case 30984: + data_value = 30750; + break; + + case 30985: + data_value = 30749; + break; + + //case 30986: + // break; + + case 30987: + data_value = 30739; + break; + + case 30988: + data_value = 30751; + break; + + case 30989: + data_value = 30752; + break; + + case 30990: + data_value = 30762; + break; + + case 30991: + data_value = 30736; + break; + + //case 30992: + // break; + + case 30993: + data_value = 30742; + break; + + case 30994: + data_value = 30743; + break; + + case 30995: + data_value = 30734; + break; + + case 30996: + data_value = 30733; + break; + + case 30997: + data_value = 30732; + break; + + case 30998: + data_value = 30760; + break; + + default: + data_value = 30724; + break; + } + } + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + [INST_WRITE, 162, 1, 1], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY //+ 1000 + ); + }, + syntax: { js: [], py: ['Koalabot.animation_screen(%1)'] }, + }, + robotis_koalabot_lite_icon_screen_food_plant: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_icon_food_plant_1, '10496'], + [Lang.Blocks.robotis_icon_food_plant_2, '10497'], + [Lang.Blocks.robotis_icon_food_plant_3, '10498'], + [Lang.Blocks.robotis_icon_food_plant_4, '10499'], + [Lang.Blocks.robotis_icon_food_plant_5, '10500'], + [Lang.Blocks.robotis_icon_food_plant_6, '10501'], + [Lang.Blocks.robotis_icon_food_plant_7, '10502'], + [Lang.Blocks.robotis_icon_food_plant_8, '10503'], + [Lang.Blocks.robotis_icon_food_plant_9, '10504'], + [Lang.Blocks.robotis_icon_food_plant_10, '10505'], + [Lang.Blocks.robotis_icon_food_plant_11, '10506'], + [Lang.Blocks.robotis_icon_food_plant_12, '10507'], + [Lang.Blocks.robotis_icon_food_plant_13, '10508'], + [Lang.Blocks.robotis_icon_food_plant_14, '10509'], + [Lang.Blocks.robotis_icon_food_plant_15, '10510'], + [Lang.Blocks.robotis_icon_food_plant_16, '10511'], + [Lang.Blocks.robotis_icon_food_plant_17, '10512'], + [Lang.Blocks.robotis_icon_food_plant_18, '10513'], + [Lang.Blocks.robotis_icon_food_plant_19, '10514'], + [Lang.Blocks.robotis_icon_food_plant_20, '10515'], + [Lang.Blocks.robotis_icon_food_plant_21, '10516'], + [Lang.Blocks.robotis_icon_food_plant_22, '10517'], + [Lang.Blocks.robotis_icon_food_plant_23, '10518'], + [Lang.Blocks.robotis_icon_food_plant_24, '10519'], + ], + value: '10496', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['0'], + }, + 50, + null, + ], + type: 'robotis_koalabot_lite_icon_screen_food_plant', + }, + paramsKeyMap: { + ICON: 0, + X: 1, + Y: 2, + SIZE: 3, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let iconNum = script.getField('ICON', script); + let x = script.getNumberValue('X', script); + let y = script.getNumberValue('Y', script); + let size = script.getNumberValue('SIZE', script) * 2; + + let data_instruction = INST_WRITE; + let data_address = 166; + let data_length = 2; + let data_value = 10496; + + if (x < -160) { + x = -160; + } else if (x > 160) { + x = 160; + } + + if (y < -120) { + y = -120; + } else if (y > 120) { + y = 120; + } + + if (size < 0) { + size = 0; + } else if (size > 400) { + size = 400; + } + + data_value = iconNum; + + let data_sendqueue = [ + [INST_WRITE, 130, 2, x], + [INST_WRITE, 132, 2, y], + [INST_WRITE, 149, 2, size], + [data_instruction, data_address, data_length, data_value], + [INST_WRITE, 162, 1, 1], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 200 + ); + }, + syntax: { + js: [], + py: ['Koalabot.icon_screen_food_and_plant(%1,%2,%3,%4)'], + }, + }, + robotis_koalabot_lite_icon_screen_animal_human: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_icon_animal_human_1, '10752'], + [Lang.Blocks.robotis_icon_animal_human_2, '10753'], + [Lang.Blocks.robotis_icon_animal_human_3, '10754'], + [Lang.Blocks.robotis_icon_animal_human_4, '10755'], + [Lang.Blocks.robotis_icon_animal_human_5, '10756'], + [Lang.Blocks.robotis_icon_animal_human_6, '10757'], + [Lang.Blocks.robotis_icon_animal_human_7, '10758'], + [Lang.Blocks.robotis_icon_animal_human_8, '10759'], + [Lang.Blocks.robotis_icon_animal_human_9, '10760'], + [Lang.Blocks.robotis_icon_animal_human_10, '11787'], + [Lang.Blocks.robotis_icon_animal_human_11, '11788'], + [Lang.Blocks.robotis_icon_animal_human_12, '11789'], + [Lang.Blocks.robotis_icon_animal_human_13, '11790'], + [Lang.Blocks.robotis_icon_animal_human_14, '11805'], + [Lang.Blocks.robotis_icon_animal_human_15, '11806'], + [Lang.Blocks.robotis_icon_animal_human_16, '11807'], + [Lang.Blocks.robotis_icon_animal_human_17, '11808'], + [Lang.Blocks.robotis_icon_animal_human_18, '10761'], + [Lang.Blocks.robotis_icon_animal_human_19, '10762'], + [Lang.Blocks.robotis_icon_animal_human_20, '10763'], + [Lang.Blocks.robotis_icon_animal_human_21, '10764'], + [Lang.Blocks.robotis_icon_animal_human_22, '10765'], + [Lang.Blocks.robotis_icon_animal_human_23, '10766'], + [Lang.Blocks.robotis_icon_animal_human_24, '10767'], + [Lang.Blocks.robotis_icon_animal_human_25, '10768'], + [Lang.Blocks.robotis_icon_animal_human_26, '10769'], + [Lang.Blocks.robotis_icon_animal_human_27, '10770'], + [Lang.Blocks.robotis_icon_animal_human_28, '10771'], + [Lang.Blocks.robotis_icon_animal_human_29, '10772'], + [Lang.Blocks.robotis_icon_animal_human_30, '10773'], + [Lang.Blocks.robotis_icon_animal_human_31, '10774'], + [Lang.Blocks.robotis_icon_animal_human_32, '10775'], + [Lang.Blocks.robotis_icon_animal_human_33, '10776'], + [Lang.Blocks.robotis_icon_animal_human_34, '10777'], + ], + value: '10752', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['0'], + }, + 50, + null, + ], + type: 'robotis_koalabot_lite_icon_screen_animal_human', + }, + paramsKeyMap: { + ICON: 0, + X: 1, + Y: 2, + SIZE: 3, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let iconNum = script.getField('ICON', script); + let x = script.getNumberValue('X', script); + let y = script.getNumberValue('Y', script); + let size = script.getNumberValue('SIZE', script) * 2; + + let data_instruction = INST_WRITE; + let data_address = 166; + let data_length = 2; + let data_value = 10496; + + if (x < -160) { + x = -160; + } else if (x > 160) { + x = 160; + } + + if (y < -120) { + y = -120; + } else if (y > 120) { + y = 120; + } + + if (size < 0) { + size = 0; + } else if (size > 400) { + size = 400; + } + + data_value = iconNum; + + let data_sendqueue = [ + [INST_WRITE, 130, 2, x], + [INST_WRITE, 132, 2, y], + [INST_WRITE, 149, 2, size], + [data_instruction, data_address, data_length, data_value], + [INST_WRITE, 162, 1, 1], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 200 + ); + }, + syntax: { + js: [], + py: ['Koalabot.icon_screen_animal_and_human(%1,%2,%3,%4)'], + }, + }, + robotis_koalabot_lite_icon_screen_object_tool: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_icon_object_tool_1, '11008'], + [Lang.Blocks.robotis_icon_object_tool_2, '11009'], + [Lang.Blocks.robotis_icon_object_tool_3, '11010'], + [Lang.Blocks.robotis_icon_object_tool_4, '11011'], + [Lang.Blocks.robotis_icon_object_tool_5, '11012'], + [Lang.Blocks.robotis_icon_object_tool_6, '11013'], + [Lang.Blocks.robotis_icon_object_tool_7, '11014'], + [Lang.Blocks.robotis_icon_object_tool_8, '11015'], + [Lang.Blocks.robotis_icon_object_tool_9, '11016'], + [Lang.Blocks.robotis_icon_object_tool_10, '11017'], + [Lang.Blocks.robotis_icon_object_tool_11, '11018'], + [Lang.Blocks.robotis_icon_object_tool_12, '11019'], + [Lang.Blocks.robotis_icon_object_tool_13, '11020'], + [Lang.Blocks.robotis_icon_object_tool_14, '11021'], + [Lang.Blocks.robotis_icon_object_tool_15, '11022'], + [Lang.Blocks.robotis_icon_object_tool_16, '11023'], + [Lang.Blocks.robotis_icon_object_tool_17, '11024'], + [Lang.Blocks.robotis_icon_object_tool_18, '11025'], + [Lang.Blocks.robotis_icon_object_tool_19, '11026'], + [Lang.Blocks.robotis_icon_object_tool_20, '11027'], + [Lang.Blocks.robotis_icon_object_tool_21, '11028'], + [Lang.Blocks.robotis_icon_object_tool_22, '11029'], + [Lang.Blocks.robotis_icon_object_tool_23, '11030'], + [Lang.Blocks.robotis_icon_object_tool_24, '11031'], + [Lang.Blocks.robotis_icon_object_tool_25, '11032'], + [Lang.Blocks.robotis_icon_object_tool_26, '11033'], + [Lang.Blocks.robotis_icon_object_tool_27, '11034'], + [Lang.Blocks.robotis_icon_object_tool_28, '11035'], + [Lang.Blocks.robotis_icon_object_tool_29, '11036'], + [Lang.Blocks.robotis_icon_object_tool_30, '11037'], + [Lang.Blocks.robotis_icon_object_tool_31, '11038'], + [Lang.Blocks.robotis_icon_object_tool_32, '11039'], + [Lang.Blocks.robotis_icon_object_tool_33, '11040'], + [Lang.Blocks.robotis_icon_object_tool_34, '11801'], + [Lang.Blocks.robotis_icon_object_tool_35, '11802'], + [Lang.Blocks.robotis_icon_object_tool_36, '11809'], + ], + value: '11008', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['0'], + }, + 50, + null, + ], + type: 'robotis_koalabot_lite_icon_screen_object_tool', + }, + paramsKeyMap: { + ICON: 0, + X: 1, + Y: 2, + SIZE: 3, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let iconNum = script.getField('ICON', script); + let x = script.getNumberValue('X', script); + let y = script.getNumberValue('Y', script); + let size = script.getNumberValue('SIZE', script) * 2; + + let data_instruction = INST_WRITE; + let data_address = 166; + let data_length = 2; + let data_value = 10496; + + if (x < -160) { + x = -160; + } else if (x > 160) { + x = 160; + } + + if (y < -120) { + y = -120; + } else if (y > 120) { + y = 120; + } + + if (size < 0) { + size = 0; + } else if (size > 400) { + size = 400; + } + + data_value = iconNum; + + let data_sendqueue = [ + [INST_WRITE, 130, 2, x], + [INST_WRITE, 132, 2, y], + [INST_WRITE, 149, 2, size], + [data_instruction, data_address, data_length, data_value], + [INST_WRITE, 162, 1, 1], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 200 + ); + }, + syntax: { + js: [], + py: ['Koalabot.icon_screen_object_and_tool(%1,%2,%3,%4)'], + }, + }, + robotis_koalabot_lite_icon_screen_vehicle_number: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_icon_vehicle_number_1, '11264'], + [Lang.Blocks.robotis_icon_vehicle_number_2, '11265'], + [Lang.Blocks.robotis_icon_vehicle_number_3, '11266'], + [Lang.Blocks.robotis_icon_vehicle_number_4, '11267'], + [Lang.Blocks.robotis_icon_vehicle_number_5, '11268'], + [Lang.Blocks.robotis_icon_vehicle_number_6, '11269'], + [Lang.Blocks.robotis_icon_vehicle_number_7, '11270'], + [Lang.Blocks.robotis_icon_vehicle_number_8, '11271'], + [Lang.Blocks.robotis_icon_vehicle_number_9, '11272'], + [Lang.Blocks.robotis_icon_vehicle_number_10, '11273'], + [Lang.Blocks.robotis_icon_vehicle_number_11, '11274'], + [Lang.Blocks.robotis_icon_vehicle_number_12, '11275'], + [Lang.Blocks.robotis_icon_vehicle_number_13, '11276'], + [Lang.Blocks.robotis_icon_vehicle_number_14, '11776'], + [Lang.Blocks.robotis_icon_vehicle_number_15, '11777'], + [Lang.Blocks.robotis_icon_vehicle_number_16, '11778'], + [Lang.Blocks.robotis_icon_vehicle_number_17, '11779'], + [Lang.Blocks.robotis_icon_vehicle_number_18, '11780'], + [Lang.Blocks.robotis_icon_vehicle_number_19, '11781'], + [Lang.Blocks.robotis_icon_vehicle_number_20, '11782'], + [Lang.Blocks.robotis_icon_vehicle_number_21, '11783'], + [Lang.Blocks.robotis_icon_vehicle_number_22, '11277'], + [Lang.Blocks.robotis_icon_vehicle_number_23, '11278'], + [Lang.Blocks.robotis_icon_vehicle_number_24, '11279'], + [Lang.Blocks.robotis_icon_vehicle_number_25, '11280'], + [Lang.Blocks.robotis_icon_vehicle_number_26, '11281'], + [Lang.Blocks.robotis_icon_vehicle_number_27, '11282'], + [Lang.Blocks.robotis_icon_vehicle_number_28, '11283'], + [Lang.Blocks.robotis_icon_vehicle_number_29, '11284'], + [Lang.Blocks.robotis_icon_vehicle_number_30, '11285'], + [Lang.Blocks.robotis_icon_vehicle_number_31, '11286'], + [Lang.Blocks.robotis_icon_vehicle_number_32, '11287'], + [Lang.Blocks.robotis_icon_vehicle_number_33, '11288'], + [Lang.Blocks.robotis_icon_vehicle_number_34, '11289'], + [Lang.Blocks.robotis_icon_vehicle_number_35, '11290'], + [Lang.Blocks.robotis_icon_vehicle_number_36, '11291'], + [Lang.Blocks.robotis_icon_vehicle_number_37, '11292'], + [Lang.Blocks.robotis_icon_vehicle_number_38, '11293'], + ], + value: '11264', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['0'], + }, + 50, + null, + ], + type: 'robotis_koalabot_lite_icon_screen_vehicle_number', + }, + paramsKeyMap: { + ICON: 0, + X: 1, + Y: 2, + SIZE: 3, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let iconNum = script.getField('ICON', script); + let x = script.getNumberValue('X', script); + let y = script.getNumberValue('Y', script); + let size = script.getNumberValue('SIZE', script) * 2; + + let data_instruction = INST_WRITE; + let data_address = 166; + let data_length = 2; + let data_value = 10496; + + if (x < -160) { + x = -160; + } else if (x > 160) { + x = 160; + } + + if (y < -120) { + y = -120; + } else if (y > 120) { + y = 120; + } + + if (size < 0) { + size = 0; + } else if (size > 400) { + size = 400; + } + + data_value = iconNum; + + let data_sendqueue = [ + [INST_WRITE, 130, 2, x], + [INST_WRITE, 132, 2, y], + [INST_WRITE, 149, 2, size], + [data_instruction, data_address, data_length, data_value], + [INST_WRITE, 162, 1, 1], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 200 + ); + }, + syntax: { + js: [], + py: ['Koalabot.icon_screen_vehicle_and_number(%1,%2,%3,%4)'], + }, + }, + robotis_koalabot_lite_text_screen: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_screen_text_font_small, '0'], + [Lang.Blocks.robotis_screen_text_font_big, '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_red, '224'], + [Lang.Blocks.robotis_orange, '244'], + [Lang.Blocks.robotis_yellow, '252'], + [Lang.Blocks.robotis_green, '28'], + [Lang.Blocks.robotis_blue, '3'], + [Lang.Blocks.robotis_darkblue, '2'], + [Lang.Blocks.robotis_purple, '130'], + [Lang.Blocks.robotis_brown, '173'], + [Lang.Blocks.robotis_black, '0'], + [Lang.Blocks.robotis_white, '255'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + ' ', + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['0'], + }, + null, + null, + ], + type: 'robotis_koalabot_lite_text_screen', + }, + paramsKeyMap: { + TEXT: 0, + X: 1, + Y: 2, + FONT: 3, + COLOR: 4, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let text = script.getStringValue('TEXT', script); + let x = script.getNumberValue('X', script); + let y = script.getNumberValue('Y', script); + let font = script.getNumberValue('FONT', script); + let color = script.getNumberValue('COLOR', script); + let data_buf = []; + let i = 0; + + let data_instruction = INST_WRITE; + let data_address = 900; + let data_length = 2; + + if (x < -160) { + x = -160; + } else if (x > 160) { + x = 160; + } + + if (y < -120) { + y = -120; + } else if (y > 120) { + y = 120; + } + + let encoder = new TextEncoder('utf-8'); + let byteArray = encoder.encode(text); + + data_buf.push(x % 256); + data_buf.push(Math.floor(x / 256)); + data_buf.push(y % 256); + data_buf.push(Math.floor(y / 256)); + data_buf.push(font); + data_buf.push(0); + data_buf.push(0); + data_buf.push(color); + data_buf.push(byteArray.length); + for (i = 0; i < byteArray.length; i++) { + data_buf.push(byteArray[i]); + } + + data_length = 9 + byteArray.length; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_buf], + [INST_WRITE, 162, 1, 1], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 200 + ); + }, + syntax: { + js: [], + py: ['Koalabot.text_screen(%1,%2,%3,%4,%5)'], + }, + }, + robotis_koalabot_lite_pixel: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_red, '224'], + [Lang.Blocks.robotis_orange, '244'], + [Lang.Blocks.robotis_yellow, '252'], + [Lang.Blocks.robotis_green, '28'], + [Lang.Blocks.robotis_blue, '3'], + [Lang.Blocks.robotis_darkblue, '2'], + [Lang.Blocks.robotis_purple, '130'], + [Lang.Blocks.robotis_brown, '173'], + [Lang.Blocks.robotis_black, '0'], + [Lang.Blocks.robotis_white, '255'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['0'], + }, + null, + ], + type: 'robotis_koalabot_lite_pixel', + }, + paramsKeyMap: { + X: 0, + Y: 1, + COLOR: 2, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let x = script.getNumberValue('X', script); + let y = script.getNumberValue('Y', script); + let color = script.getNumberValue('COLOR', script); + let data_buf = []; + + let data_instruction = INST_WRITE; + let data_address = 130; + let data_length = 11; + + if (x < -160) { + x = -160; + } else if (x > 160) { + x = 160; + } + + if (y < -120) { + y = -120; + } else if (y > 120) { + y = 120; + } + + data_buf.push(x % 256); + data_buf.push(Math.floor(x / 256)); + data_buf.push(y % 256); + data_buf.push(Math.floor(y / 256)); + data_buf.push(0); + data_buf.push(0); + data_buf.push(0); + data_buf.push(0); + data_buf.push(0); + data_buf.push(0); + data_buf.push(color); + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_buf], + [INST_WRITE, 161, 2, 1 * 256 + 8], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 100 + ); + }, + syntax: { + js: [], + py: ['Koalabot.pixel(%1,%2,%3)'], + }, + }, + robotis_koalabot_lite_text_screen_redraw: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_red, '224'], + [Lang.Blocks.robotis_orange, '244'], + [Lang.Blocks.robotis_yellow, '252'], + [Lang.Blocks.robotis_green, '28'], + [Lang.Blocks.robotis_blue, '3'], + [Lang.Blocks.robotis_darkblue, '2'], + [Lang.Blocks.robotis_purple, '130'], + [Lang.Blocks.robotis_brown, '173'], + [Lang.Blocks.robotis_black, '0'], + [Lang.Blocks.robotis_white, '255'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + ' ', + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['0'], + }, + null, + ], + type: 'robotis_koalabot_lite_text_screen_redraw', + }, + paramsKeyMap: { + TEXT: 0, + X: 1, + Y: 2, + COLOR: 3, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let text = script.getStringValue('TEXT', script); + let x = script.getNumberValue('X', script); + let y = script.getNumberValue('Y', script); + let font = 0; + let color = script.getNumberValue('COLOR', script); + let data_buf = []; + let i = 0; + + if (x < -160) { + x = -160; + } else if (x > 160) { + x = 160; + } + + if (y < -120) { + y = -120; + } else if (y > 120) { + y = 120; + } + + let encoder = new TextEncoder('utf-8'); + let byteArray = encoder.encode(text); + + data_buf.push(x % 256); + data_buf.push(Math.floor(x / 256)); + data_buf.push(y % 256); + data_buf.push(Math.floor(y / 256)); + data_buf.push(font); + data_buf.push(1); + data_buf.push(bg_color); + data_buf.push(color); + data_buf.push(byteArray.length); + for (i = 0; i < byteArray.length; i++) { + data_buf.push(byteArray[i]); + } + + let data_instruction = INST_WRITE; + let data_address = 900; + let data_length = 9 + byteArray.length; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_buf], + [INST_WRITE, 162, 1, 1], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 100 + ); + }, + syntax: { + js: [], + py: ['Koalabot.text_screen_redraw(%1,%2,%3,%4)'], + }, + }, + robotis_koalabot_lite_LCDBright: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [50], + type: 'robotis_koalabot_lite_LCDBright', + }, + paramsKeyMap: { + BRIGHT: 0, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let bright = script.getNumberValue('BRIGHT', script); + + let data_instruction = INST_WRITE; + let data_address = 180; + let data_length = 1; + let data_value = 0; + + bright = Math.min(Math.max(bright, 0), 100); + + data_value = bright; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.LCDBright(%1)'], + }, + }, + robotis_koalabot_lite_LCDColor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_red, '224'], + [Lang.Blocks.robotis_orange, '244'], + [Lang.Blocks.robotis_yellow, '252'], + [Lang.Blocks.robotis_green, '28'], + [Lang.Blocks.robotis_blue, '3'], + [Lang.Blocks.robotis_darkblue, '2'], + [Lang.Blocks.robotis_purple, '130'], + [Lang.Blocks.robotis_brown, '173'], + [Lang.Blocks.robotis_black, '0'], + [Lang.Blocks.robotis_white, '255'], + ], + value: '224', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_LCDColor', + }, + paramsKeyMap: { + COLOR: 0, + }, + class: 'robotis_koalabot_lite_lcd', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let color = script.getNumberValue('COLOR', script); + + let data_instruction = INST_WRITE; + let data_address = 163; + let data_length = 2; + let data_value = 0; + + data_value = color; + bg_color = color; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + [INST_WRITE, 162, 1, 1], + ]; + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + 100 + ); + }, + syntax: { + js: [], + py: ['Koalabot.LCDColor(%1)'], + }, + }, + + robotis_koalabot_lite_cm_led: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_left, '1'], + [Lang.Blocks.robotis_right, '2'], + [Lang.Blocks.robotis_both, '3'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_common_on, '1'], + [Lang.Blocks.robotis_common_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null, null], + type: 'robotis_koalabot_lite_cm_led', + }, + paramsKeyMap: { + RB_LED: 0, + VALUE: 1, + }, + class: 'robotis_koalabot_lite_led', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let cmLed = script.getField('RB_LED', script); + let value = script.getField('VALUE', script); + + let data_instruction = INST_WRITE; + let data_address = 40; + let data_length = 1; + let data_value = 0; + + if (cmLed == 1) { + data_value = 200 * value; + } else if (cmLed == 2) { + data_address = 41; + data_value = 200 * value; + } else if (cmLed == 3) { + data_address = 40; + data_length = 2; + data_value = 200 * 257 * value; + } else { + data_value = value * cmLed; + } + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { js: [], py: ['Koalabot.led(%1, %2)'] }, + }, + robotis_koalabot_lite_cm_led_pattern: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_pattern1, '11'], + [Lang.Blocks.robotis_pattern2, '21'], + [Lang.Blocks.robotis_pattern3, '31'], + ], + value: '11', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_speed_fast, '0'], + [Lang.Blocks.robotis_speed_midium, '1'], + [Lang.Blocks.robotis_speed_slow, '2'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null, null], + type: 'robotis_koalabot_lite_cm_led_pattern', + }, + paramsKeyMap: { + PATTERN: 0, + SPEED: 1, + }, + class: 'robotis_koalabot_lite_led', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let pattern = script.getNumberValue('PATTERN', script); + let speed = script.getNumberValue('SPEED', script); + + let data_instruction = INST_WRITE; + let data_address = 40; + let data_length = 1; + let data_value = 0; + + data_value = pattern + speed; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { js: [], py: ['Koalabot.led_pattern(%1, %2)'] }, + }, + + robotis_koalabot_lite_scale_simple: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.General.note_c + '', '1'], + [Lang.General.note_c + '#', '2'], + [Lang.General.note_d + '', '3'], + [Lang.General.note_d + '#', '4'], + [Lang.General.note_e + '', '5'], + [Lang.General.note_f + '', '6'], + [Lang.General.note_f + '#', '7'], + [Lang.General.note_g + '', '8'], + [Lang.General.note_g + '#', '9'], + [Lang.General.note_a + '', '10'], + [Lang.General.note_a + '#', '11'], + [Lang.General.note_b + '', '12'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_beat_sound_8th_note, '3'], + [Lang.Blocks.robotis_beat_sound_dotted_8th_note, '4'], + [Lang.Blocks.robotis_beat_sound_quarter_note, '5'], + [Lang.Blocks.robotis_beat_sound_dotted_quarter_note, '6'], + [Lang.Blocks.robotis_beat_sound_half_note, '7'], + [Lang.Blocks.robotis_beat_sound_dotted_half_note, '8'], + [Lang.Blocks.robotis_beat_sound_whole_note, '9'], + [Lang.Blocks.robotis_beat_sound_dotted_note, '10'], + ], + value: '5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null, null, null], + type: 'robotis_koalabot_lite_scale_simple', + }, + paramsKeyMap: { + CM_BUZZER_OCTAV: 0, + CM_BUZZER_INDEX: 1, + CM_BUZZER_NOTE: 2, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let cmBuzzerIndex = script.getNumberValue('CM_BUZZER_INDEX', script); + let cmBuzzerOffset = script.getNumberValue('CM_BUZZER_OCTAV', script); + let cmBuzzerNote = script.getNumberValue('CM_BUZZER_NOTE', script); + let cmBuzzerTime = 0; + + let data_instruction = INST_WRITE; + let data_address = 0; + let data_value = 0; + let interval = 0; + let data_buf = []; + + switch (cmBuzzerNote) { + case 3: + cmBuzzerTime = Math.round((60 * 1000) / beat_per_minute / 2); + break; + + case 4: + cmBuzzerTime = Math.round( + ((60 * 1000) / beat_per_minute / 2) * 1.5 + ); + break; + + case 5: + cmBuzzerTime = Math.round((60 * 1000) / beat_per_minute); + break; + + case 6: + cmBuzzerTime = Math.round(((60 * 1000) / beat_per_minute) * 1.5); + break; + + case 7: + cmBuzzerTime = Math.round(((60 * 1000) / beat_per_minute) * 2); + break; + + case 8: + cmBuzzerTime = Math.round( + ((60 * 1000) / beat_per_minute) * 2 * 1.5 + ); + break; + + case 9: + cmBuzzerTime = Math.round(((60 * 1000) / beat_per_minute) * 4); + break; + + case 10: + cmBuzzerTime = Math.round( + ((60 * 1000) / beat_per_minute) * 4 * 1.5 + ); + break; + } + + data_address = 740; + // data_value_1 = cmBuzzerTime * 10; + // TODO 텍스트 입력으로 바꾸고 최대는 5초 : 0.5 초 하려면 5를 입력 - console.log(parseInt(0.59 * 10)); max 는 5초 + data_value = cmBuzzerTime; + if (data_value < 0) { + data_value = 0; + } + if (data_value > 50000) { + data_value = 50000; + } + + data_buf.push(data_value % 256); + data_buf.push(Math.floor(data_value / 256)); + + data_value = cmBuzzerIndex + (cmBuzzerOffset - 1) * 12; + data_buf.push(Math.floor(data_value)); + + // console.log("buzzer send"); + let data_sendqueue = [[data_instruction, data_address, 3, data_buf]]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + cmBuzzerTime + interval + ); + }, + syntax: { + js: [], + py: ['Koalabot.scale_simple(%1, %2, %3)'], + }, + }, + robotis_koalabot_lite_scale_advanced: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.General.note_c + '', '1'], + [Lang.General.note_c + '#', '2'], + [Lang.General.note_d + '', '3'], + [Lang.General.note_d + '#', '4'], + [Lang.General.note_e + '', '5'], + [Lang.General.note_f + '', '6'], + [Lang.General.note_f + '#', '7'], + [Lang.General.note_g + '', '8'], + [Lang.General.note_g + '#', '9'], + [Lang.General.note_a + '', '10'], + [Lang.General.note_a + '#', '11'], + [Lang.General.note_b + '', '12'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null, 1, null], + type: 'robotis_koalabot_lite_scale_advanced', + }, + paramsKeyMap: { + CM_BUZZER_OCTAV: 0, + CM_BUZZER_INDEX: 1, + CM_BUZZER_BEAT: 2, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let cmBuzzerIndex = script.getNumberValue('CM_BUZZER_INDEX', script); + let cmBuzzerOffset = script.getNumberValue('CM_BUZZER_OCTAV', script); + let cmBuzzerBeat = script.getNumberValue('CM_BUZZER_BEAT', script); + let cmBuzzerTime = 0; + + cmBuzzerBeat = Math.min(Math.max(cmBuzzerBeat, 0), 100); + + let data_instruction = INST_WRITE; + let data_address_1 = 0; + let data_length_1 = 0; + let data_value_1 = 0; + let data_address_2 = 0; + let data_length_2 = 0; + let data_value_2 = 0; + let interval = 0; + + cmBuzzerTime = Math.round(((60 * 1000) / beat_per_minute) * cmBuzzerBeat); + + data_address_1 = 740; + data_length_1 = 2; + // data_value_1 = cmBuzzerTime * 10; + // TODO 텍스트 입력으로 바꾸고 최대는 5초 : 0.5 초 하려면 5를 입력 - console.log(parseInt(0.59 * 10)); max 는 5초 + data_value_1 = cmBuzzerTime; + if (data_value_1 < 0) { + data_value_1 = 0; + } + if (data_value_1 > 50000) { + data_value_1 = 50000; + } + + data_address_2 = 742; + data_length_2 = 1; + data_value_2 = cmBuzzerIndex + (cmBuzzerOffset - 1) * 12; + + // console.log("buzzer send"); + let data_sendqueue = [ + [data_instruction, data_address_1, data_length_1, data_value_1], + [data_instruction, data_address_2, data_length_2, data_value_2], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + cmBuzzerTime + interval + ); + }, + syntax: { + js: [], + py: ['Koalabot.scale_advanced(%1, %2, %3)'], + }, + }, + robotis_koalabot_lite_rest_simple: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_beat_rest_8th_note, '3'], + [Lang.Blocks.robotis_beat_rest_quarter_note, '5'], + [Lang.Blocks.robotis_beat_rest_half_note, '7'], + [Lang.Blocks.robotis_beat_rest_whole_note, '9'], + ], + value: '5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_rest_simple', + }, + paramsKeyMap: { + CM_BUZZER_NOTE: 0, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let cmBuzzerNote = script.getNumberValue('CM_BUZZER_NOTE', script); + let cmBuzzerTime = 0; + + let interval = 0; + + switch (cmBuzzerNote) { + case 3: + cmBuzzerTime = Math.round((60 * 1000) / beat_per_minute / 2); + break; + + case 5: + cmBuzzerTime = Math.round((60 * 1000) / beat_per_minute); + break; + + case 7: + cmBuzzerTime = Math.round(((60 * 1000) / beat_per_minute) * 2); + break; + + case 9: + cmBuzzerTime = Math.round(((60 * 1000) / beat_per_minute) * 4); + break; + } + + let data_sendqueue = []; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + cmBuzzerTime + interval + ); + }, + syntax: { + js: [], + py: ['Koalabot.rest_simple(%1)'], + }, + }, + robotis_koalabot_lite_rest_advanced: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1, null], + type: 'robotis_koalabot_lite_rest_advanced', + }, + paramsKeyMap: { + CM_BUZZER_BEAT: 0, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let cmBuzzerBeat = script.getNumberValue('CM_BUZZER_BEAT', script); + let cmBuzzerTime = 0; + + let interval = 0; + + cmBuzzerBeat = Math.min(Math.max(cmBuzzerBeat, 0), 100); + + cmBuzzerTime = Math.round(((60 * 1000) / beat_per_minute) * cmBuzzerBeat); + + let data_sendqueue = []; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + cmBuzzerTime + interval + ); + }, + syntax: { + js: [], + py: ['Koalabot.rest_advanced(%1)'], + }, + }, + robotis_koalabot_lite_beat_per_minute: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [75, null], + type: 'robotis_koalabot_lite_beat_per_minute', + }, + paramsKeyMap: { + CM_BUZZER_BPM: 0, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let cmBuzzerBpm = script.getNumberValue('CM_BUZZER_BPM', script); + + beat_per_minute = Math.min(Math.max(cmBuzzerBpm, 10), 600); + + // console.log("buzzer send"); + let data_sendqueue = []; + + return Entry.RobotisKoalabotLite.postCallReturn(script, data_sendqueue, 0); + }, + syntax: { + js: [], + py: ['Koalabot.set_bpm(%1)'], + }, + }, + + robotis_koalabot_lite_Hello: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_korean1, '0'], + [Lang.Blocks.robotis_korean2, '1'], + [Lang.Blocks.robotis_korean3, '2'], + [Lang.Blocks.robotis_korean4, '3'], + [Lang.Blocks.robotis_korean5, '4'], + [Lang.Blocks.robotis_korean6, '5'], + [Lang.Blocks.robotis_korean7, '6'], + [Lang.Blocks.robotis_korean8, '7'], + [Lang.Blocks.robotis_korean9, '8'], + [Lang.Blocks.robotis_korean10, '9'], + [Lang.Blocks.robotis_korean11, '10'], + [Lang.Blocks.robotis_korean12, '11'], + [Lang.Blocks.robotis_korean13, '12'], + [Lang.Blocks.robotis_korean14, '13'], + [Lang.Blocks.robotis_korean15, '14'], + [Lang.Blocks.robotis_korean16, '15'], + [Lang.Blocks.robotis_korean17, '16'], + [Lang.Blocks.robotis_korean18, '17'], + [Lang.Blocks.robotis_korean19, '18'], + [Lang.Blocks.robotis_korean20, '19'], + [Lang.Blocks.robotis_korean21, '20'], + [Lang.Blocks.robotis_korean22, '21'], + [Lang.Blocks.robotis_korean23, '22'], + [Lang.Blocks.robotis_korean24, '23'], + [Lang.Blocks.robotis_korean25, '24'], + [Lang.Blocks.robotis_korean26, '25'], + [Lang.Blocks.robotis_korean27, '26'], + [Lang.Blocks.robotis_korean28, '27'], + [Lang.Blocks.robotis_korean29, '28'], + [Lang.Blocks.robotis_korean30, '29'], + [Lang.Blocks.robotis_korean31, '30'], + [Lang.Blocks.robotis_korean32, '31'], + [Lang.Blocks.robotis_korean33, '32'], + [Lang.Blocks.robotis_korean34, '33'], + [Lang.Blocks.robotis_korean35, '34'], + [Lang.Blocks.robotis_korean36, '35'], + [Lang.Blocks.robotis_korean37, '36'], + [Lang.Blocks.robotis_korean38, '37'], + [Lang.Blocks.robotis_korean39, '38'], + [Lang.Blocks.robotis_korean40, '39'], + [Lang.Blocks.robotis_korean41, '40'], + [Lang.Blocks.robotis_korean42, '41'], + [Lang.Blocks.robotis_korean43, '42'], + [Lang.Blocks.robotis_korean44, '43'], + [Lang.Blocks.robotis_korean45, '44'], + [Lang.Blocks.robotis_korean46, '45'], + [Lang.Blocks.robotis_korean47, '46'], + [Lang.Blocks.robotis_korean48, '47'], + [Lang.Blocks.robotis_korean49, '48'], + [Lang.Blocks.robotis_korean50, '49'], + [Lang.Blocks.robotis_korean51, '50'], + [Lang.Blocks.robotis_korean52, '51'], + [Lang.Blocks.robotis_korean53, '52'], + [Lang.Blocks.robotis_korean54, '53'], + [Lang.Blocks.robotis_korean55, '54'], + [Lang.Blocks.robotis_korean56, '55'], + [Lang.Blocks.robotis_korean57, '56'], + [Lang.Blocks.robotis_korean58, '57'], + [Lang.Blocks.robotis_korean59, '58'], + [Lang.Blocks.robotis_korean60, '59'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_Hello', + }, + paramsKeyMap: { + HELLO: 0, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let cmHello = script.getField('HELLO', script); + + let data_instruction = INST_WRITE; + let data_address = 110; + let data_length = 2; + let data_value = 0; + + data_value = 25601 + Number(cmHello); + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + [data_instruction, 0, 2, 0], + ]; + + let extraTime = 0; + + if (cmHello == '38' || cmHello == '55') { + extraTime = 2000; + } + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + 2000 + extraTime + ); + }, + syntax: { + js: [], + py: ['Koalabot.speak(%1)'], + }, + }, + robotis_koalabot_lite_effectSound: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_dog, '0'], + [Lang.Blocks.robotis_frog, '1'], + [Lang.Blocks.robotis_cat, '2'], + [Lang.Blocks.robotis_chicken, '7'], + [Lang.Blocks.robotis_tiger, '19'], + [Lang.Blocks.robotis_mouse, '17'], + + [Lang.Blocks.robotis_ambul, '773'], + [Lang.Blocks.robotis_Horn, '781'], + [Lang.Blocks.robotis_siren, '774'], + [Lang.Blocks.robotis_whistle, '274'], + [Lang.Blocks.robotis_gun, '775'], + [Lang.Blocks.robotis_clap, '260'], + + [Lang.Blocks.robotis_melody1, '786'], + [Lang.Blocks.robotis_melody2, '787'], + [Lang.Blocks.robotis_melody3, '788'], + [Lang.Blocks.robotis_melody4, '789'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_effectSound', + }, + paramsKeyMap: { + HELLO: 0, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let cmHello = script.getField('HELLO', script); + + let data_instruction = INST_WRITE; + let data_address = 110; + let data_length = 2; + let data_value = 0; + + data_value = Number(cmHello); + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + [data_instruction, 0, 2, 0], + ]; + + let extraTime = 0; + if ( + cmHello == '272' || + cmHello == '786' || + cmHello == '787' || + cmHello == '788' || + cmHello == '789' + ) { + //오리 + extraTime = 0; + if (cmHello == '788' || cmHello == '789') { + extraTime += 500; + } + } + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + 3000 + extraTime + ); + }, + syntax: { + js: [], + py: ['Koalabot.effect_sound(%1)'], + }, + }, + robotis_koalabot_lite_record: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['1', '0'], + ['2', '1'], + ['3', '2'], + ['4', '3'], + ['5', '4'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_record', + }, + paramsKeyMap: { + ROOM: 0, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let roomNum = script.getField('ROOM', script); + + let data_instruction = INST_WRITE; + let data_address = 115; + let data_length = 1; + let data_value = 0; + + data_value = roomNum; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + 6000 + ); + }, + syntax: { + js: [], + py: ['Koalabot.record(%1)'], + }, + }, + robotis_koalabot_lite_playRecord: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['1', '0'], + ['2', '1'], + ['3', '2'], + ['4', '3'], + ['5', '4'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_playRecord', + }, + paramsKeyMap: { + ROOM: 0, + }, + class: 'robotis_koalabot_lite_sound', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let roomNum = script.getField('ROOM', script); + + let data_instruction = INST_WRITE; + let data_address = 116; + let data_length = 1; + let data_value = 0; + + data_value = roomNum; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + 6000 + ); + }, + syntax: { + js: [], + py: ['Koalabot.playRecord(%1)'], + }, + }, + + robotis_koalabot_lite_ai_camera_block_value_closest_to_center: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_ai_camera_center_block_center_x, '0'], + [Lang.Blocks.robotis_ai_camera_center_block_center_y, '1'], + [Lang.Blocks.robotis_ai_camera_center_block_width, '2'], + [Lang.Blocks.robotis_ai_camera_center_block_height, '3'], + [Lang.Blocks.robotis_ai_camera_center_leared_id, '4'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_ai_camera_block_value_closest_to_center', + }, + paramsKeyMap: { + DATA_TYPE: 0, + }, + class: 'robotis_koalabot_lite_ai_camera_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = 4009; + let data_type = script.getNumberValue('DATA_TYPE'); + data_address += data_type * 2; + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + if (typeof result == 'undefined') { + return 0; + } + + return result; + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_block_value_closest_to_center(%1)'], + }, + }, + robotis_koalabot_lite_ai_camera_arrow_value_closest_to_center: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_ai_camera_center_arrow_origin_x, '0'], + [Lang.Blocks.robotis_ai_camera_center_arrow_origin_y, '1'], + [Lang.Blocks.robotis_ai_camera_center_arrow_target_x, '2'], + [Lang.Blocks.robotis_ai_camera_center_arrow_target_y, '3'], + [Lang.Blocks.robotis_ai_camera_center_leared_id, '4'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_ai_camera_arrow_value_closest_to_center', + }, + paramsKeyMap: { + DATA_TYPE: 0, + }, + class: 'robotis_koalabot_lite_ai_camera_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = 4019; + let data_type = script.getNumberValue('DATA_TYPE'); + data_address += data_type * 2; + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (typeof result == 'undefined') { + return 0; + } + + return result; + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_arrow_value_closest_to_center(%1)'], + }, + }, + robotis_koalabot_lite_ai_camera_number_of_learned_id: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [], + events: {}, + def: { + params: [], + type: 'robotis_koalabot_lite_ai_camera_number_of_learned_id', + }, + paramsKeyMap: {}, + class: 'robotis_koalabot_lite_ai_camera_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = 4003; + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + if (typeof result == 'undefined') { + return 0; + } + + return result; + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_number_of_learned_id()'], + }, + }, + robotis_koalabot_lite_ai_camera_block_value_of_id: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ['7', '7'], + ['8', '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_ai_camera_center_block_center_x, '0'], + [Lang.Blocks.robotis_ai_camera_center_block_center_y, '1'], + [Lang.Blocks.robotis_ai_camera_center_block_width, '2'], + [Lang.Blocks.robotis_ai_camera_center_block_height, '3'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_ai_camera_block_value_of_id', + }, + paramsKeyMap: { + ID: 0, + TYPE: 1, + }, + class: 'robotis_koalabot_lite_ai_camera_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + + // instruction / address / length / value / default length + let data_instruction = INST_WRITE; + let data_address = 4029; // ID_FOR_USE + let data_length = 2; + let data_value = script.getNumberValue('ID'); + + if (data_value != camera_id_for_use) { + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + + Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + camera_id_for_use = data_value; + } + + data_address = 4036; // BLOCK_RESULT_BY_ID_X_CENTER + + data_address += script.getNumberValue('TYPE') * 2; + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (typeof result == 'undefined') { + return 0; + } + + return result; + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_block_value_of_id(%1, %2)'], + }, + }, + robotis_koalabot_lite_ai_camera_arrow_value_of_id: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['5', '5'], + ['6', '6'], + ['7', '7'], + ['8', '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_ai_camera_center_arrow_origin_x, '0'], + [Lang.Blocks.robotis_ai_camera_center_arrow_origin_y, '1'], + [Lang.Blocks.robotis_ai_camera_center_arrow_target_x, '2'], + [Lang.Blocks.robotis_ai_camera_center_arrow_target_y, '3'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null, null], + type: 'robotis_koalabot_lite_ai_camera_arrow_value_of_id', + }, + paramsKeyMap: { + ID: 0, + TYPE: 1, + }, + class: 'robotis_koalabot_lite_ai_camera_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + + // instruction / address / length / value / default length + let data_instruction = INST_WRITE; + let data_address = 4029; // ID_FOR_USE + let data_length = 2; + let data_value = script.getNumberValue('ID'); + + if (data_value != camera_id_for_use) { + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_value], + ]; + + Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + camera_id_for_use = data_value; + } + + data_address = 4044; // ARROW_RESULT_BY_ID_X_ORIGIN + + data_address += script.getNumberValue('TYPE') * 2; + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (typeof result == 'undefined') { + return 0; + } + + return result; + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_arrow_value_of_id(%1, %2)'], + }, + }, + robotis_koalabot_lite_ai_camera_connection_status: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_connected, '1'], + [Lang.Blocks.robotis_disconnected, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_ai_camera_connection_status', + }, + paramsKeyMap: { + STATUS: 0, + }, + class: 'robotis_koalabot_lite_ai_camera_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = 4000; + let compareValue = script.getNumberValue('STATUS'); + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (result == undefined) { + return false; + } + + return result == compareValue; + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_connection_status(%1)'], + }, + }, + robotis_koalabot_lite_ai_camera_if_detected: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_ai_camera_block, '0'], + [Lang.Blocks.robotis_ai_camera_arrow, '1'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_ai_camera_if_detected', + }, + paramsKeyMap: { + DETECT_TYPE: 0, + }, + class: 'robotis_koalabot_lite_ai_camera_value', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + let scope = script.executor.scope; + let data_address = 4005; // block + let detect_type = script.getNumberValue('DETECT_TYPE'); + + if (detect_type == 1) { + data_address = 4006; + } // arrow + + let result = Entry.RobotisKoalabotLite.dataBuffer[data_address]; + + if (result == undefined) { + return false; + } + + return result == 1; + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_if_detected(%1)'], + }, + }, + robotis_koalabot_lite_ai_camera_set_mode: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.robotis_ai_camera_mode_face_recognition, '0'], + [Lang.Blocks.robotis_ai_camera_mode_object_tracking, '1'], + [Lang.Blocks.robotis_ai_camera_mode_object_recognition, '2'], + [Lang.Blocks.robotis_ai_camera_mode_line_tracking, '3'], + [Lang.Blocks.robotis_ai_camera_mode_color_recognition, '4'], + [Lang.Blocks.robotis_ai_camera_mode_tag_recognition, '5'], + [Lang.Blocks.robotis_ai_camera_mode_object_classification, '6'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [null], + type: 'robotis_koalabot_lite_ai_camera_set_mode', + }, + paramsKeyMap: { + AI_CAMERA_MODE: 0, + }, + class: 'robotis_koalabot_lite_ai_camera_set', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let ai_camera_mode = script.getField('AI_CAMERA_MODE', script); + + let data_instruction = INST_WRITE; + let data_address = 4001; + let data_length = 1; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, ai_camera_mode], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.set_ai_camera_mode(%1)'], + }, + }, + robotis_koalabot_lite_ai_camera_print_custom_text: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['0'], + }, + { + type: 'number', + params: ['0'], + }, + 'Hello!', + ], + type: 'robotis_koalabot_lite_ai_camera_print_custom_text', + }, + paramsKeyMap: { + X: 0, + Y: 1, + TEXT: 2, + }, + class: 'robotis_koalabot_lite_ai_camera_set', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + let x = script.getNumberValue('X', script); + let y = script.getNumberValue('Y', script); + let text = script.getStringValue('TEXT', script); + let data_buf = []; + let i = 0; + + // Encode the text as UTF-8 + let encoder = new TextEncoder(); + let utf8Array = encoder.encode(text); + + // utf8Array is now a Uint8Array containing the UTF-8 bytes of the text + let text_len = utf8Array.length; + + if (text_len > 45) text_len = 45; + + if (x < -160) { + x = 160; + } else if (x > 160) { + x = 160; + } + + if (y < -120) { + y = 120; + } else if (y > 120) { + y = 120; + } + + if (x < 0) { + x = 65536 + x; + } + if (y < 0) { + y = 65536 + y; + } + + data_buf.push(x % 256); + data_buf.push(Math.floor(x / 256)); + data_buf.push(y % 256); + data_buf.push(Math.floor(y / 256)); + data_buf.push(0); + data_buf.push(0); + for (i = 0; i < text_len; i++) { + data_buf.push(utf8Array[i]); + } + + let data_instruction = INST_WRITE; + let data_address = 4200; + let data_length = 6 + text_len; + + let data_sendqueue = [ + [data_instruction, data_address, data_length, data_buf], + ]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_print_custom_text(%1,%2,%3)'], + }, + }, + robotis_koalabot_lite_ai_camera_clear_custom_text: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [], + type: 'robotis_koalabot_lite_ai_camera_clear_custom_text', + }, + paramsKeyMap: {}, + class: 'robotis_koalabot_lite_ai_camera_set', + isNotFor: ['RobotisKoalabotLite'], + func(sprite, script) { + // instruction / address / length / value / default length + + let data_instruction = INST_WRITE; + let data_address = 4250; + let data_length = 1; + + let data_sendqueue = [[data_instruction, data_address, data_length, 1]]; + + return Entry.RobotisKoalabotLite.postCallReturn( + script, + data_sendqueue, + DEFAULT_DELAY + ); + }, + syntax: { + js: [], + py: ['Koalabot.ai_camera_clear_custom_text()'], + }, + }, + }; + } + + requestLocalData() { + let packet = null; + if (this.robotisBuffer.length > 0) { + const data = this.robotisBuffer.shift(); + const instruction = data[0]; + const address = data[1]; + const length = data[2]; + const value = data[3]; + const dataBuffer = data[4]; + let id = 0; + + switch (instruction) { + case INST_WRITE: + id = 200; + packet = this.writePacket(id, address, length, value); + break; + case INST_BYPASS_WRITE: + id = value; + packet = this.writePacket(id, address, length, dataBuffer); + break; + } + } + return packet; + } + + handleLocalData(data) { + let stuffLength = 0; + //console.log(`length: ${data.length}`); + for (let i = 0; i < data.length; i++) { + //this.receiveBuffer.push(data[i]); + const dataIn = data[i]; + + switch (this.packetReceiveState) { + case PACKET_STATE_IDLE: + if (this.headerCount >= 2) { + rxPacket.header[2] = dataIn; + + if ( + rxPacket.header[0] == 0xff && + rxPacket.header[1] == 0xff && + rxPacket.header[2] == 0xfd + ) { + this.headerCount = 0; + this.packetReceiveState = PACKET_STATE_RESERVED; + } else { + rxPacket.header[0] = rxPacket.header[1]; + rxPacket.header[1] = rxPacket.header[2]; + rxPacket.header[2] = 0; + } + } else { + rxPacket.header[this.headerCount] = dataIn; + this.headerCount++; + } + break; + + case PACKET_STATE_RESERVED: + if (dataIn == 0xfd) { + this.packetReceiveState = PACKET_STATE_IDLE; + } else { + rxPacket.reserved = dataIn; + this.packetReceiveState = PACKET_STATE_ID; + } + break; + + case PACKET_STATE_ID: + rxPacket.id = dataIn; + this.packetReceiveState = PACKET_STATE_LENGTH_L; + break; + + case PACKET_STATE_LENGTH_L: + rxPacket.packetLength = dataIn; + this.packetReceiveState = PACKET_STATE_LENGTH_H; + break; + + case PACKET_STATE_LENGTH_H: + rxPacket.packetLength |= dataIn << 8; + if (rxPacket.packetLength < 1000) { + this.packetReceiveState = PACKET_STATE_DATA; + } else { + this.packetReceiveState = PACKET_STATE_IDLE; + } + rxPacket.index = 0; + break; + + case PACKET_STATE_DATA: + rxPacket.data[rxPacket.index] = dataIn; + rxPacket.index++; + + if (rxPacket.index >= rxPacket.packetLength - 2) { + this.packetReceiveState = PACKET_STATE_CRC_L; + } + break; + + case PACKET_STATE_CRC_L: + rxPacket.crcReceived = dataIn; + this.packetReceiveState = PACKET_STATE_CRC_H; + break; + + case PACKET_STATE_CRC_H: + rxPacket.crcReceived |= dataIn << 8; + + stuffLength = this.removeStuffing(rxPacket.data, rxPacket.packetLength); + rxPacket.packetLength -= stuffLength; + + rxPacket.cmd = rxPacket.data[0]; + rxPacket.error = rxPacket.data[1]; + + if (rxPacket.cmd == INST_STATUS) { + //console.log(`rx length: ${rxPacket.packetLength}`); + if (rxPacket.packetLength >= 147) { + let tempValue = 0; + for (let i = 0; i < addrMap.length; i++) { + switch (addrMap[i][1]) { + case 1: + this.dataBuffer[addrMap[i][2]] = + rxPacket.data[2 + addrMap[i][0]]; + break; + + case 2: + tempValue = + rxPacket.data[2 + addrMap[i][0]] + + (rxPacket.data[2 + addrMap[i][0] + 1] << 8); + if (tempValue >= 32768) { + tempValue = tempValue - 65536; + } + this.dataBuffer[addrMap[i][2]] = tempValue; + break; + + case 4: + this.dataBuffer[addrMap[i][2]] = + rxPacket.data[2 + addrMap[i][0]] + + (rxPacket.data[2 + addrMap[i][0] + 1] << 8) + + (rxPacket.data[2 + addrMap[i][0] + 2] << 16) + + (rxPacket.data[2 + addrMap[i][0] + 3] << 24); + break; + } + } + + const dxlPositionStartAddr = + addrMap[addrMap.length - 1][0] + addrMap[addrMap.length - 1][1]; + + // DXL Position + for (let i = 0; i < 20; i++) { + const currentId = + rxPacket.data[2 + dxlPositionStartAddr + 3 * i]; + const currentPos = + rxPacket.data[2 + dxlPositionStartAddr + 3 * i + 1] + + (rxPacket.data[2 + dxlPositionStartAddr + 3 * i + 2] << 8); + if (currentId != 0xff && currentPos != 0xffff) { + this.dxlPositions[currentId] = currentPos; + } + } + + const lineCategoryStartAddr = dxlPositionStartAddr + 3 * 20; + // line category + this.dataBuffer[5201] = rxPacket.data[2 + lineCategoryStartAddr]; + + const sensorStartAddr = lineCategoryStartAddr + 1; + + // 온습도+조도+동작감지센서값 + this.pirPir[0] = rxPacket.data[2 + sensorStartAddr]; + this.pirTemperature[0] = rxPacket.data[2 + sensorStartAddr + 1]; + this.pirHumidity[0] = rxPacket.data[2 + sensorStartAddr + 2]; + this.pirBrightness[0] = rxPacket.data[2 + sensorStartAddr + 3]; + + // 거리+버튼+조도센서값 + this.distanceDistance[0] = + rxPacket.data[2 + sensorStartAddr + 4] + + (rxPacket.data[2 + sensorStartAddr + 5] << 8); + this.distanceButton[0] = rxPacket.data[2 + sensorStartAddr + 6]; + this.distanceBrightness[0] = rxPacket.data[2 + sensorStartAddr + 7]; + + for (let i = 0; i < addrMap2.length; i++) { + switch (addrMap2[i][1]) { + case 1: + this.dataBuffer[addrMap2[i][2]] = + rxPacket.data[2 + addrMap2[i][0]]; + break; + + case 2: + tempValue = + rxPacket.data[2 + addrMap2[i][0]] + + (rxPacket.data[2 + addrMap2[i][0] + 1] << 8); + if (tempValue >= 32768) { + tempValue = tempValue - 65536; + } + this.dataBuffer[addrMap2[i][2]] = tempValue; + break; + + case 4: + this.dataBuffer[addrMap2[i][2]] = + rxPacket.data[2 + addrMap2[i][0]] + + (rxPacket.data[2 + addrMap2[i][0] + 1] << 8) + + (rxPacket.data[2 + addrMap2[i][0] + 2] << 16) + + (rxPacket.data[2 + addrMap2[i][0] + 3] << 24); + break; + } + } + } + } + + this.packetReceiveState = PACKET_STATE_IDLE; + break; + + default: + // code block + } + } + } + + requestInitialData() { + this.robotisBuffer = []; + this.robotisBuffer.push([INST_WRITE, 21, 2, 20]); + this.robotisBuffer.push([INST_WRITE, 19, 1, 1]); // bypass 모드 켜기 + this.robotisBuffer.push([INST_WRITE, 20, 1, 0]); // bypass port를 BLE로 설정 + this.robotisBuffer.push([INST_WRITE, 23, 1, 1]); // auto report 기능 켜기 + this.robotisBuffer.push([INST_WRITE, 4250, 1, 1]); // ai_camera 텍스트 지우기 + this.robotisBuffer.push([INST_WRITE, 722, 1, 0]); // dxl 토크 끄기 + //this.robotisBuffer.push([INST_WRITE, 63, 1, 1]); // 부저음 시간 설정 + //this.robotisBuffer.push([INST_WRITE, 60, 1, 70]); // 부저음 발생 + this.robotisBuffer.push([INST_WRITE, 113, 2, 1040]); // "띵" 효과음 발생 + /* + //const ping = [0xff, 0xff, 0xfd, 0x00, 0xc8, 0x03, 0x00, 0x01, 0x3b, 0xfa]; + // run entry mode + const packet = [ + 0xff, 0xff, 0xfd, 0x00, 0xc8, 0x07, 0x00, 0x03, 0x15, 0x00, 0x14, 0x00, 0xc1, 0xb3, + ]; + return packet; + */ + } + + async initialHandshake() { + const status = true; + let sendBuffer = null; + this.requestInitialData(); + while (this.robotisBuffer.length) { + const data = this.robotisBuffer.shift(); + const instruction = data[0]; + const address = data[1]; + const length = data[2]; + const value = data[3]; + const dataBuffer = data[4]; + let id = 0; + + switch (instruction) { + case INST_WRITE: + id = 200; + sendBuffer = this.writePacket(id, address, length, value); + break; + case INST_BYPASS_WRITE: + id = value; + sendBuffer = this.writePacket(id, address, length, dataBuffer); + break; + } + Entry.hwLite.serial.sendAsciiAsBuffer(sendBuffer); + if (instruction == INST_WRITE && address == 2100 && length == 1 && value == 1) { + this.robotisBuffer = []; + } + } + return status; + } + })(); +})(); + +module.exports = Entry.RobotisKoalabotLite; diff --git a/src/playground/blocks/hardwareLite/metadata_robotis_koalabot_lite.json b/src/playground/blocks/hardwareLite/metadata_robotis_koalabot_lite.json new file mode 100644 index 0000000000..0f883869df --- /dev/null +++ b/src/playground/blocks/hardwareLite/metadata_robotis_koalabot_lite.json @@ -0,0 +1,9 @@ +{ + "name": "RobotisKoalabotLite", + "version": "1.0.0", + "type": "hardware", + "title": "코알라봇", + "description": "로보티즈", + "imageName": "robotis_koalabot_lite", + "moduleId": "070C01" +} From d3781e424bbed694672d219613c645f40e7b1e09 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Thu, 26 Sep 2024 15:26:19 +0900 Subject: [PATCH 19/65] =?UTF-8?q?entry=20id=20=EB=B0=9C=EA=B8=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/playground/blocks/hardware/block_avatarbot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/playground/blocks/hardware/block_avatarbot.js b/src/playground/blocks/hardware/block_avatarbot.js index 6ee54a59b7..ce5ec04514 100644 --- a/src/playground/blocks/hardware/block_avatarbot.js +++ b/src/playground/blocks/hardware/block_avatarbot.js @@ -1,7 +1,7 @@ 'use strict'; Entry.avatarbot = { - id: ['99.1'], // 엔트리에서 발급받은 하드웨어 번호를 기술합니다. + id: ['64.1'], // 엔트리에서 발급받은 하드웨어 번호를 기술합니다. name: 'avatarbot', // isNotFor 속성과 대소문자까지 정확하게 매치되어야 합니다. url: 'http://avatarmecha.co.kr', // 생략 가능합니다. 엔트리 사이트에서 홍보시 사용됩니다. imageName: 'avatarbot.png', // images/hardware, images/hw 폴더 내에 존재하는 이미지입니다. From f5cdd732c2c1aa0f81867b20c9beac5404839a9b Mon Sep 17 00:00:00 2001 From: truedo Date: Fri, 27 Sep 2024 14:54:35 +0900 Subject: [PATCH 20/65] =?UTF-8?q?=EC=A3=BC=EB=AF=B8=20=EB=AF=B8=EB=8B=88?= =?UTF-8?q?=20=EC=97=94=ED=8A=B8=EB=A6=AC=20=EB=B8=94=EB=A1=9D=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_zumiMini.js | 2581 +++++++++++++++++ 1 file changed, 2581 insertions(+) create mode 100644 src/playground/blocks/hardware/block_zumiMini.js diff --git a/src/playground/blocks/hardware/block_zumiMini.js b/src/playground/blocks/hardware/block_zumiMini.js new file mode 100644 index 0000000000..e3437ec52e --- /dev/null +++ b/src/playground/blocks/hardware/block_zumiMini.js @@ -0,0 +1,2581 @@ +'use strict'; + +var firstRun = false; +var exCnt = 0, tempCnt = 0; + +Entry.ZumiMini = { + id: '4A.5', + name: 'zumi_mini', // isNotFor 속성과 대소문자까지 정확하게 매치되어야 합니다. + url: 'http://www.robolink.co.kr/', // 생략 가능합니다. 엔트리 사이트에서 홍보시 사용됩니다. + imageName: 'robolink_zumiMini.png', // images/hardware 폴더 내에 존재하는 이미지입니다. 엔트리 사이트에서 홍보시 사용됩니다. + title: { + ko: '로보링크 주미미니', + en: 'Robolink zumi mini', + }, + + setZero: function() { + + console.log("engine set Zero.."); + Entry.hw.sendQueue['req'] = 0x00; + Entry.hw.sendQueue['com'] = 0x00; + Entry.hw.sendQueue['speed'] = 0x00; + Entry.hw.sendQueue['dir'] = 0x00; + Entry.hw.update(); + exCnt = tempCnt; + //console.log("exCnt:" + exCnt); + }, + + afterReceive(pd) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_MOTION_STOP = 25; + + var pStep = Z_WAIT; + var iter = 0; + + //temCnt = Entry.hw.portData.inputData.euler['ROLL']; + //console.log("exCnt: " + exCnt); + + + if (Entry.engine.isState('run')) { + //console.log("engine running.."); + firstRun = false; + tempCnt++; + //console.log("tempCnt: " + tempCnt); + } + else if (Entry.engine.isState('stop')) { + //Entry.hw.sendQueue['req'] = 0x00; + //Entry.hw.sendQueue['com'] = 0xF0; + //Entry.hw.update(); + //console.log("engine stop.."); + if(firstRun == false) + { + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) { + pStep = Z_SEND_PACKET; + console.log("ready start"); + firstRun = true; + } + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) { + pStep = Z_WAIT; //wait until other action ends. + console.log("not ready"); + } + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_MOTION_STOP; + Entry.hw.update(); + console.log("send protocol"); + } + else { + Entry.hw.sendQueue['com'] = 0x00; + Entry.hw.update(); + } + pStep = Z_SEND_PACKET; + //iter++; + } + } + else { + Entry.hw.sendQueue['com'] = 0x00; + Entry.hw.update(); + } + } + } +}; + +// 언어 적용 +Entry.ZumiMini.setLanguage = function () { + return { + ko: { + Blocks: { + FL: '왼쪽', + FR: '오른쪽', + BL: '왼쪽', + BM: '가운데', + BR: '오른쪽', + COLOR: '색상', + RED: '빨강', + GREEN: '녹색', + BLUE: '파랑', + YELLOW: '노랑', + SKY_BLUE: '청록', + PINK: '분홍', + WHITE: '하양', + LED_NORMAL: '기본', + LED_BLINK: '깜빡임', + LED_FLICKER: '깜빡임2', + LED_DIMMING: '디밍', + LED_SUNRISE: '서서히 밝아짐', + LED_SUNSET: '서서히 어두워짐', + LED_RAINBOW: '무지개', + ON: '켜기', + OFF: '끄기', + CAT: '고양이', + HUMAN: '사람', + DETECT: '감지', + CX: 'X좌표', + CY: 'Y좌표', + ID: '번호', + PITCH: '피치', + ROLL: '롤', + YAW: '요우', + FORWARD: '전진', + BACKWARD: '후진', + RAPID: '빠르게', + MID: '보통', + SLOW: '느리게', + LEFT: '왼쪽', + RIGHT: '오른쪽', + CAMERA: '카메라', + EMOTION: '표정', + EMO_CHAOS: '혼란', + EMO_SMILE: '미소', + EMO_LOVE: '사랑', + EMO_CRASH: '안돼!', + EMO_SURPRISE: '놀람', + EMO_NICE: '신남', + EMO_CANTBELIEVE: '미심쩍음', + EMO_SLEEP: '졸림', + EMO_CRY: '슬픔', + EMO_WINK: '윙크', + EMO_BLINK: '깜빡깜빡', + EMO_STOP: '무표정', + SND_USER: '사용자 녹음', + SND_CAT: '고양이', + SND_SHUTTER: '셔터', + SND_FAIL: '실패', + SND_SUCCESS: '성공', + SND_FAIL2: '경고', + SND_HONK: '경적', + SND_HONK2: '경적2', + SND_SIREN: '사이렌', + M1: '왼쪽 모터', + M2: '오른쪽 모터', + CW: '정방향', + CCW: '역방향', + STOP: '멈춤', + }, + template: { + go_forward:'앞으로 가기(10cm) %1', + go_back: '뒤로 가기(10cm) %1', + turn_left: '왼쪽으로 회전 %1', + turn_right: '오른쪽으로 회전 %1', + going_forward_until_sensing : '물체 감지할 때까지 앞으로 가기 %1', + following_line_until_sensing : '교차로 만날 때까지 선 따라가기 %1', + LED_color: 'LED 불빛 %1 동작 %2 %3', + front_sensor: '앞 센서 %1 %2', + bottom_sensor: '바닥 센서 %1 %2', + button_input: '버튼 입력 %1', + face_detector: 'AI 얼굴 %1 %2', + cat_face_detector: 'AI 고양이 얼굴 %1 %2', + color_detector: 'AI 컬러 감지 %1 %2', + april_detector: '에이프릴 텍 감지 %1 %2', + IMU_sensor: '자세 측정 %1 %2', + move_straight: '이동하기 방향 %1 속도 %2 거리 %3cm %4', + move_turn: '회전하기 방향 %1 속도 %2 각도 %3도 %4', + following_line_dist: '선 따라가기 속도 %1 거리 %2cm %3', + move_straight_infinite: '계속 이동하기 방향 %1 속도 %2 %3', + following_line_infinite: '계속 선 따라가기 속도 %1 %2', + motion_stop: '이동 멈추기 %1', + screen_toggle: '화면 바꾸기 %1 %2', + emotion: '표정 변화 %1 %2', + play_sound: '소리내기 %1 %2', + LED_control: 'LED 불빛 %1 효과 %2 동작 %3 %4', + motor_control: '모터 %1 방향 %2 속도 %3 %4', + }, + }, + + en: { + Blocks: { + FL: 'left', + FR: 'right', + BL: 'left', + BM: 'middle', + BR: 'right', + COLOR: '색상', + RED: 'red', + GREEN: 'green', + BLUE: 'blue', + YELLOW: 'yellow', + SKY_BLUE: 'skyblue', + PINK: 'pink', + WHITE: 'white', + LED_NORMAL: 'normal', + LED_BLINK: 'blink', + LED_FLICKER: 'flicker', + LED_DIMMING: 'dimming', + LED_SUNRISE: 'sunrise', + LED_SUNSET: 'sunset', + LED_RAINBOW: 'rainbow', + ON: 'on', + OFF: 'off', + CAT: 'cat', + HUMAN: 'human', + DETECT: 'detection', + CX: 'X_coordinate', + CY: 'Y_coordinate', + ID: 'ID', + PITCH: 'pitch', + ROLL: 'roll', + YAW: 'yaw', + FORWARD: 'forward', + BACKWARD: 'backward', + RAPID: 'rapid', + MID: 'medium', + SLOW: 'slow', + LEFT: 'left', + RIGHT: 'right', + CAMERA: 'camera', + EMOTION: 'emotion', + EMO_CHAOS: 'chaos', + EMO_SMILE: 'smile', + EMO_LOVE: 'love', + EMO_CRASH: 'no!', + EMO_SURPRISE: 'surprise', + EMO_NICE: 'joy', + EMO_CANTBELIEVE: 'cant believe', + EMO_SLEEP: 'sleep', + EMO_CRY: 'cry', + EMO_WINK: 'wink', + EMO_BLINK: 'blink', + EMO_STOP: 'default', + SND_CAT: 'meow', + SND_SHUTTER: 'shutter', + SND_FAIL: 'fail', + SND_SUCCESS: 'success', + SND_FAIL2: 'alarm', + SND_HONK: 'horn', + SND_HONK2: 'horn2', + SND_SIREN: 'siren', + M1: 'left motor', + M2: 'right motor', + CW: 'clock wise', + CCW: 'counter clock wise', + STOP: 'stop', + }, + template: { + go_forward:'going forward(10cm) %1', + go_back : 'going back(10cm) %1', + turn_left : 'turning left %1', + turn_right : 'turning right %1', + going_forward_until_sensing: 'going forward until sensing the object %1', + following_line_until_sensing: 'following the line until meet the intersection %1', + LED_color: 'LED light color %1 action %2 %3', + front_sensor: 'front sensor %1 %2', + bottom_sensor: 'bottom sensor %1 %2', + button_inpput: 'button input %1', + face_detector: 'AI face %1 %2', + cat_face_detector: 'AI cat face %1 %2', + color_detector: 'AI color detection %1 %2', + april_detector: 'apriltag detection %1 %2', + IMU_sensor: ' inertial mesurement %1 %2', + move_straight: 'move direction %1 speed %2 distance %3 cm %4', + move_turn: 'turn %1 speed %2 degree %3 %4', + following_line_dist: 'line following speed %1 distance %2 %3', + move_straight_infinite: 'keep moving direction %1 speed %2 %3', + following_line_infinite: 'keep following line %1 %2', + motion_stop: 'stop moving %1', + screen_toggle: 'toggle screen %1 %2', + emotion: 'change emotion %1 %2', + play_sound: 'play sound %1 %2', + LED_control: 'LED light %1 effect %2 acttion %3 %4', + motor_control: 'motor %1 direction %2 speed %3 %4', + }, + }, + }; +}; + +Entry.ZumiMini.blockMenuBlocks = [ + 'go_forward', + 'go_back', + 'turn_left', + 'turn_right', + 'going_forward_until_sensing', + 'following_line_until_sensing', + 'LED_color', + 'front_sensor', + 'bottom_sensor', + 'button_input', + 'face_detector', + 'cat_face_detector', + 'color_detector', + 'april_detector', + 'move_straight', + 'move_turn', + 'following_line_dist', + 'move_straight_infinite', + 'following_line_infinite', + 'motion_stop', + 'screen_toggle', + 'emotion', + 'LED_control', + 'motor_control', +]; + + +Entry.ZumiMini.getBlocks = function() { + return { + LED_color: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.RED, 'RED'], + [Lang.Blocks.GREEN, 'GREEN'], + [Lang.Blocks.BLUE, 'BLUE'] + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.ON, 'ON'], + [Lang.Blocks.OFF, 'OFF'] + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { type: 'Indicator', img: 'block_icon/zumiMini/led.svg', size: 14 }, + ], + def: { + params: ['BLUE', 'ON', null], + type: 'LED_color', + }, + paramsKeyMap: { + COLOR: 0, + ACTION: 1, + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_LED_RED = 11; + const COMMAND_LED_BLUE = 12; + const COMMAND_LED_GREEN = 13; + const COMMAND_LED_OFF = 14; + + //var exTime = new Date(); + //var firstCheck = true; + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("LED block Start!"); + + var _col = script.getStringField('COLOR', script); + var _act = script.getStringField('ACTION', script); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + + } + resolve(); + }, 200); + }) + .then(() => { + + return new Promise(resolve => { + var ttt = setInterval(() => { + + if(_exit == true) { + console.log("block skip!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + if ((_col == 'RED') && (_act == 'ON')) Entry.hw.sendQueue['com'] = COMMAND_LED_RED; + else if ((_col == 'BLUE') && (_act == 'ON')) Entry.hw.sendQueue['com'] = COMMAND_LED_BLUE; + else if ((_col == 'GREEN') && (_act == 'ON')) Entry.hw.sendQueue['com'] = COMMAND_LED_GREEN; + + if (_act == 'OFF') Entry.hw.sendQueue['com'] = COMMAND_LED_OFF; + + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + + }) + .then(() => { + resolve(); + }) + + }); + }, + }, + + motion_stop: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: "Indicator", + img: "block_icon/zumiMini/motion_stop.svg", + size: 14, + } + ], + def: { + type: "motion_stop" + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_MOTION_STOP = 25; + + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("going turn block Start!"); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + + } + resolve(); + }, 200); + }) + .then(() => { + + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("block skip!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_MOTION_STOP; + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + + }) + .then(() => { + resolve(); + }) + + }); + }, + }, + + move_straight: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.FORWARD, 'FORWARD'], + [Lang.Blocks.BACKWARD, 'BACKWARD'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.RAPID, 'RAPID'], + [Lang.Blocks.MID, 'MID'], + [Lang.Blocks.SLOW, 'SLOW'] + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: "Indicator", + img: "block_icon/zumiMini/move_straight.svg", + size: 14 + }, + ], + def: { + params: ['FORWARD', 'MID', 20, null], + type: 'move_straight', + }, + paramsKeyMap: { + DIR: 0, + SPD: 1, + DIST: 2, + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_GO_UNTIL_DIST = 26; + const DIR_FORWARD = 0; + const DIR_BACKWARD = 1; + const SPEED_RAPID = 3; + const SPEED_MID = 2; + const SPEED_LOW = 1 + + //var exTime = new Date(); + //var firstCheck = true; + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + + console.log("go until distance block Start!"); + + var _dir = script.getStringField('DIR', script) + var _spd = script.getStringField('SPD', script); + var _dist = script.getNumberValue('DIST'); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("block skip!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_GO_UNTIL_DIST; + + if (_dir == 'FORWARD') Entry.hw.sendQueue['dir'] = DIR_FORWARD; + else if (_dir == 'BACKWARD') Entry.hw.sendQueue['dir'] = DIR_BACKWARD; + + if (_spd == 'RAPID') Entry.hw.sendQueue['speed'] = SPEED_RAPID; + else if (_spd == 'MID') Entry.hw.sendQueue['speed'] = SPEED_MID; + else if (_spd == 'SLOW') Entry.hw.sendQueue['speed'] = SPEED_LOW; + + if (_dist < 20) _dist = 20; else if (_dist > 200) _dist = 200; + Entry.hw.sendQueue['dist'] = _dist; + + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + Entry.hw.sendQueue['dir'] = 0x00; + Entry.hw.sendQueue['speed'] = 0x00; + Entry.hw.sendQueue['dist'] = 0x00; + + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + }) + .then(() => { + resolve(); + }) + + }); + }, + }, + + following_line_infinite: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.RAPID, 'RAPID'], + [Lang.Blocks.MID, 'MID'], + [Lang.Blocks.SLOW, 'SLOW'] + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: "Indicator", + img: "block_icon/zumiMini/line_infinite.svg", + size: 14, + }, + ], + def: { + params: ['MID', null], + type: 'following_line_infinite', + }, + paramsKeyMap: { + SPD: 0, + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const COMMAND_TRACE_INFINITE = 30; + const SPEED_RAPID = 3; + const SPEED_MID = 2; + const SPEED_LOW = 1; + + console.log("go move straight infinite block Start!"); + + var _spd = script.getStringField('SPD', script); + + Entry.hw.sendQueue['com'] = COMMAND_TRACE_INFINITE; + + if (_spd == 'RAPID') Entry.hw.sendQueue['speed'] = SPEED_RAPID; + else if (_spd == 'MID') Entry.hw.sendQueue['speed'] = SPEED_MID; + else if (_spd == 'SLOW') Entry.hw.sendQueue['speed'] = SPEED_LOW; + + console.log("send protocol!"); + }, + }, + + move_straight_infinite: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.FORWARD, 'FORWARD'], + [Lang.Blocks.BACKWARD, 'BACKWARD'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.RAPID, 'RAPID'], + [Lang.Blocks.MID, 'MID'], + [Lang.Blocks.SLOW, 'SLOW'] + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: "Indicator", + img: "block_icon/zumiMini/go_infinite.svg", + size: 14, + }, + ], + def: { + params: ['FORWARD', 'MID', null], + type: 'move_straight_infinite', + }, + paramsKeyMap: { + DIR: 0, + SPD: 1, + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const COMMAND_GO_INFINITE = 29; + const DIR_FORWARD = 0; + const DIR_BACKWARD = 1; + const SPEED_RAPID = 3; + const SPEED_MID = 2; + const SPEED_LOW = 1; + + console.log("go move straight infinite block Start!"); + + var _dir = script.getStringField('DIR', script); + var _spd = script.getStringField('SPD', script); + + Entry.hw.sendQueue['com'] = COMMAND_GO_INFINITE; + + if (_dir == 'FORWARD') Entry.hw.sendQueue['dir'] = DIR_FORWARD; + else if (_dir == 'BACKWARD') Entry.hw.sendQueue['dir'] = DIR_BACKWARD; + + if (_spd == 'RAPID') Entry.hw.sendQueue['speed'] = SPEED_RAPID; + else if (_spd == 'MID') Entry.hw.sendQueue['speed'] = SPEED_MID; + else if (_spd == 'SLOW') Entry.hw.sendQueue['speed'] = SPEED_LOW; + + console.log("send protocol!"); + }, + }, + + following_line_dist: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.RAPID, 'RAPID'], + [Lang.Blocks.MID, 'MID'], + [Lang.Blocks.SLOW, 'SLOW'] + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: "Indicator", + img: "block_icon/zumiMini/line_dist.svg", + size: 14 + }, + ], + def: { + params: ['MID', 30, null], + type: 'following_line_dist', + }, + paramsKeyMap: { + SPD: 0, + DIST: 1, + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_LINE_TRACE_DIST = 28; + const SPEED_RAPID = 3; + const SPEED_MID = 2; + const SPEED_LOW = 1 + + //var exTime = new Date(); + //var firstCheck = true; + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("go following line dist block Start!"); + + var _spd = script.getStringField('SPD', script); + var _dist = script.getNumberValue('DIST'); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("block skip!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_LINE_TRACE_DIST; + + if (_spd == 'RAPID') Entry.hw.sendQueue['speed'] = SPEED_RAPID; + else if (_spd == 'MID') Entry.hw.sendQueue['speed'] = SPEED_MID; + else if (_spd == 'SLOW') Entry.hw.sendQueue['speed'] = SPEED_LOW; + + if (_dist < 10) _dist = 10; else if (_dist > 200) _dist = 200; + Entry.hw.sendQueue['dist'] = _dist; + + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + Entry.hw.sendQueue['dir'] = 0x00; + Entry.hw.sendQueue['speed'] = 0x00; + Entry.hw.sendQueue['dist'] = 0x00; + + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + }) + .then(() => { + resolve(); + }) + }); + }, + }, + + move_turn: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.LEFT, 'LEFT'], + [Lang.Blocks.RIGHT, 'RIGHT'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.RAPID, 'RAPID'], + [Lang.Blocks.MID, 'MID'], + [Lang.Blocks.SLOW, 'SLOW'] + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: "Indicator", + img: "block_icon/zumiMini/move_turn.svg", + size: 14 + }, + ], + def: { + params: ['RIGHT', 'MID', 90, null], + type: 'move_turn', + }, + paramsKeyMap: { + DIR: 0, + SPD: 1, + DEG: 2, + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_FREE_TURN = 27; + const DIR_LEFT = 0; + const DIR_RIGHT = 1; + const SPEED_RAPID = 3; + const SPEED_MID = 2; + const SPEED_LOW = 1; + + //var exTime = new Date(); + //var firstCheck = true; + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("go turning block Start!"); + + var _dir = script.getStringField('DIR', script) + var _spd = script.getStringField('SPD', script); + var _deg = script.getNumberValue('DEG'); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("skip block!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_FREE_TURN; + + if (_dir == 'LEFT') Entry.hw.sendQueue['dir'] = DIR_LEFT; + else if (_dir == 'RIGHT') Entry.hw.sendQueue['dir'] = DIR_RIGHT; + + if (_spd == 'RAPID') Entry.hw.sendQueue['speed'] = SPEED_RAPID; + else if (_spd == 'MID') Entry.hw.sendQueue['speed'] = SPEED_MID; + else if (_spd == 'SLOW') Entry.hw.sendQueue['speed'] = SPEED_LOW; + + if (_deg < 5) _deg = 5; else if (_deg > 359) _deg = 359; + var degree = _deg * 0.5; //avoid overflow(8bit) + + //console.log("degree:", degree); + Entry.hw.sendQueue['dist'] = degree; //따로 deg를 위한 딕셔너리는 존재하지 않는다. + + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("exit block!"); + Entry.hw.sendQueue['com'] = 0x00; + Entry.hw.sendQueue['dir'] = 0x00; + Entry.hw.sendQueue['speed'] = 0x00; + Entry.hw.sendQueue['dist'] = 0x00; + + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + }) + .then(() => { + resolve(); + }) + }); + }, + }, + + go_forward: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: "Indicator", + img: "block_icon/zumiMini/gogo.svg", + size: 14 + } + ], + def: { + type: "go_forward" + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_GOGO = 1; + + //var exTime = new Date(); + //var firstCheck = true; + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("going forward block Start!"); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("skip block!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_GOGO; + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + }) + .then(() => { + resolve(); + }) + }); + }, + }, + + go_back: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: "Indicator", + img: "block_icon/zumiMini/go_back.svg", + size: 14 + } + ], + def: { + type: "go_back" + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_BACK = 4; + + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("going back block Start!"); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("skip block!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_BACK; + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + }) + .then(() => { + resolve(); + }) + }); + }, + }, + + turn_left: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: "Indicator", + img: "block_icon/zumiMini/turn_left.svg", + size: 14 + } + ], + def: { + type: "turn_left" + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_LEFT = 2; + + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("turning left block Start!"); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("skip block!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_LEFT; + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("exit block!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + }) + .then(() => { + resolve(); + }) + + }); + }, + }, + + turn_right: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: "Indicator", + img: "block_icon/zumiMini/turn_right.svg", + size: 14 + } + ], + def: { + type: "turn_right" + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_RIGHT = 3; + + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("turning right block Start!"); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("skip block!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_RIGHT; + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("exit block!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + + }) + .then(() => { + resolve(); + }) + + }); + }, + }, + + going_forward_until_sensing: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: "Indicator", + img: "block_icon/zumiMini/go_until.svg", + size: 14 + } + ], + def: { + type: "going_forward_until_sensing" + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_GOSENSOR = 100; + + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("going forward until sensing block Start!"); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("skip block!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_GOSENSOR; + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + }) + .then(() => { + resolve(); + }) + }); + }, + }, + + following_line_until_sensing: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: "Indicator", + img: "block_icon/zumiMini/line_until.svg", + size: 14, + } + ], + def: { + type: "following_line_until_sensing" + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_LINE_TRACING = 101; + + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("following line until sensing block Start!"); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + } + resolve(); + }, 200); + }) + .then(() => { + return new Promise(resolve => { + + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("skip block!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + Entry.hw.sendQueue['com'] = COMMAND_LINE_TRACING; + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + }); + + }) + .then(() => { + resolve(); + }) + + }); + }, + }, + + + front_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.FL, 'FL'], + [Lang.Blocks.FR, 'FR'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/zumiMini/front_sensor.svg', + size: 14, + }, + ], + def: { + params: ['FL', null], + type: 'front_sensor', + }, + paramsKeyMap: { + DIR: 0, + }, + class: 'output', + //isNotFor: ['zumi_mini'], + func: function(sprite, script) { + const sen = script.getStringField('DIR', script); + return Entry.hw.portData.inputData.irSensor[sen]; + }, + }, + + bottom_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.BL, 'BL'], + [Lang.Blocks.BM, 'BM'], + [Lang.Blocks.BR, 'BR'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/zumiMini/bottom_sensor.svg', + size: 14, + }, + ], + def: { + params: ['BL', null], + type: 'bottom_sensor', + }, + paramsKeyMap: { + B_DIR: 0, + }, + class: 'output', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + const sen = script.getStringField('B_DIR', script); + return Entry.hw.portData.inputData.irSensor[sen]; + }, + }, + + button_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Indicator', + img: 'block_icon/zumiMini/button_input.svg', + size: 12, + }, + ], + def: { + type: 'button_input', + }, + class: 'output', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + var bStat = Entry.hw.portData.inputData.euler['ROLL']; + if(bStat == 8) bStat = 'R'; + else if(bStat == 4) bStat = 'B'; + else if(bStat == 2) bStat = 'G'; + else if(bStat == 1) bStat = 'Y'; + else bStat = 'N'; + + return bStat; + }, + }, + + face_detector: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.DETECT, 'DETECT'], + [Lang.Blocks.CX, 'CX'], + [Lang.Blocks.CY, 'CY'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/zumiMini/face_detector.svg', + size: 14, + }, + ], + def: { + params: ['DETECT', null], + type: 'face_detector', + }, + paramsKeyMap: { + PARAM: 0, + }, + class: 'output', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const REQUEST_FACE_DETECTION = 0x01; + Entry.hw.sendQueue['req'] |= REQUEST_FACE_DETECTION; + const sen = script.getStringField('PARAM', script); + var result = Entry.hw.portData.inputData.faceDetect[sen]; + + if ((result == 0x00)&&(sen == 'CX')) result = -1; + else if ((result == 0x00) && (sen == 'CY')) result = -1; + + return result; + }, + }, + + cat_face_detector: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.DETECT, 'DETECT'], + [Lang.Blocks.CX, 'CX'], + [Lang.Blocks.CY, 'CY'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/zumiMini/cat_detector.svg', + size: 14, + }, + ], + def: { + params: ['DETECT', null], + type: 'cat_face_detector', + }, + paramsKeyMap: { + PARAM: 0, + }, + class: 'output', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const REQUEST_USER_DEFINED = 0x10; + Entry.hw.sendQueue['req'] |= REQUEST_USER_DEFINED; + const sen = script.getStringField('PARAM', script); + var result = Entry.hw.portData.inputData.userDefined[sen]; + + if ((result == 0x00) && (sen == 'CX')) result = -1; + else if ((result == 0x00) && (sen == 'CY')) result = -1; + + return result; + }, + }, + + + color_detector: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.COLOR, 'COLOR'], + [Lang.Blocks.CX, 'CX'], + [Lang.Blocks.CY, 'CY'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/zumiMini/color_detector.svg', + size: 14, + }, + ], + def: { + params: ['COLOR', null], + type: 'color_detector', + }, + paramsKeyMap: { + PARAM: 0, + }, + class: 'output', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const REQUEST_COLOR_DETECTION = 0x02; + Entry.hw.sendQueue['req'] |= REQUEST_COLOR_DETECTION; + + const sen = script.getStringField('PARAM', script); + var result = Entry.hw.portData.inputData.colorDetect[sen]; + + if((result == 0xFE) && (sen == 'COLOR')) result = 'NONE'; + else if ((result == 0x00) && (sen == 'COLOR')) result = 'RED'; + else if ((result == 0x01) && (sen == 'COLOR')) result = 'ORANGE'; + else if ((result == 0x02) && (sen == 'COLOR')) result = 'YELLOW'; + else if ((result == 0x03) && (sen == 'COLOR')) result = 'GREEN'; + else if ((result == 0x04) && (sen == 'COLOR')) result = 'CYAN'; + else if ((result == 0x05) && (sen == 'COLOR')) result = 'BLUE'; + else if ((result == 0x06) && (sen == 'COLOR')) result = 'PURPLE'; + + if ((result == 0x00) && (sen == 'CX')) result = -1; + else if ((result == 0x00) && (sen == 'CY')) result = -1; + + return result; + }, + }, + + april_detector: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.ID, 'ID'], + [Lang.Blocks.CX, 'CX'], + [Lang.Blocks.CY, 'CY'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/zumiMini/april_detector.svg', + size: 14, + }, + ], + def: { + params: ['ID', null], + type: 'april_detector', + }, + paramsKeyMap: { + A_INFO: 0, + }, + class: 'output', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const REQUEST_APRIL_DETECTION = 0x04; + Entry.hw.sendQueue['req'] |= REQUEST_APRIL_DETECTION; + + const sen = script.getStringField('A_INFO', script); + var result = Entry.hw.portData.inputData.aprilDetect[sen]; + + if((result == 0xFE) && (sen == 'ID')) result = -1; + if ((result == 0x00) && (sen == 'CX')) result = -1; + else if ((result == 0x00) && (sen == 'CY')) result = -1; + + return result; + }, + }, + + IMU_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.ROLL, 'ROLL'], + [Lang.Blocks.PITCH, 'PITCH'], + [Lang.Blocks.YAW, 'YAW'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 14, + }, + ], + def: { + params: ['PITCH', null], + type: 'IMU_sensor', + }, + paramsKeyMap: { + EULER: 0, + }, + class: 'output', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const REQUEST_IMU_DETECTION = 0x08; + Entry.hw.sendQueue['req'] |= REQUEST_IMU_DETECTION; + const sen = script.getStringField('EULER', script); + const angle = Entry.hw.portData.inputData.euler[sen]; + return angle; + + }, + }, + + screen_toggle: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.CAMERA, 'CAMERA'], + [Lang.Blocks.EMOTION, 'EMOTION'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/zumiMini/screen_toggle.svg', + size: 14, + }, + ], + def: { + params: ['CAMERA', null], + type: 'screen_toggle', + }, + paramsKeyMap: { + TYPE: 0, + }, + class: 'base', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const COMMAND_SCREEN_TOGGLE = 240; + const SCREEN_CAMERA = 1; + const SCREEN_EMOTION = 2; + + var _type = script.getStringField('TYPE', script); + + Entry.hw.sendQueue['com'] = COMMAND_SCREEN_TOGGLE; + + if (_type == 'CAMERA') Entry.hw.sendQueue['speed'] = SCREEN_CAMERA; + else if (_type == 'EMOTION') Entry.hw.sendQueue['speed'] = SCREEN_EMOTION; + + console.log("send protocol!"); + }, + }, + + emotion: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.EMO_SMILE, 'SMILE'], + [Lang.Blocks.EMO_LOVE, 'LOVE'], + [Lang.Blocks.EMO_SURPRISE, 'SURP'], + [Lang.Blocks.EMO_NICE, 'NICE'], + [Lang.Blocks.EMO_CHAOS, 'CHAOS'], + [Lang.Blocks.EMO_CRASH, 'CRASH'], + [Lang.Blocks.EMO_CANTBELIEVE, 'CANTBELIEVE'], + [Lang.Blocks.EMO_SLEEP, 'SLEEP'], + [Lang.Blocks.EMO_CRY, 'CRY'], + [Lang.Blocks.EMO_WINK, 'WINK'], + [Lang.Blocks.EMO_BLINK, 'BLINK'], + [Lang.Blocks.EMO_STOP, 'STOP'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/zumiMini/emotion.svg', + size: 14, + }, + ], + def: { + params: ['SMILE', null], + type: 'emotion', + }, + paramsKeyMap: { + TYPE: 0, + }, + class: 'base', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const COMMAND_EMOTION_CHANGE = 241; + const EMO_BLINK = 1; + const EMO_STOP = 2; + const EMO_SMILE = 3; + const EMO_LOVE = 4; + const EMO_CRASH = 5; + const EMO_SURPRISE = 6; + const EMO_NICE = 7; + const EMO_CANTBELIEVE = 8; + const EMO_SLEEP = 9; + const EMO_CRY = 10; + const EMO_CHAOS = 11; + const EMO_WINK = 14; + + var _type = script.getStringField('TYPE', script); + + Entry.hw.sendQueue['com'] = COMMAND_EMOTION_CHANGE; + + if (_type == 'SMILE') Entry.hw.sendQueue['speed'] = EMO_SMILE; + else if (_type == 'LOVE') Entry.hw.sendQueue['speed'] = EMO_LOVE; + else if (_type == 'SURP') Entry.hw.sendQueue['speed'] = EMO_SURPRISE; + else if (_type == 'NICE') Entry.hw.sendQueue['speed'] = EMO_NICE; + else if (_type == 'CHAOS') Entry.hw.sendQueue['speed'] = EMO_CHAOS; + else if (_type == 'CRASH') Entry.hw.sendQueue['speed'] = EMO_CRASH; + else if (_type == 'CANTBELIEVE') Entry.hw.sendQueue['speed'] = EMO_CANTBELIEVE; + else if (_type == 'SLEEP') Entry.hw.sendQueue['speed'] = EMO_SLEEP; + else if (_type == 'CRY') Entry.hw.sendQueue['speed'] = EMO_CRY; + else if (_type == 'WINK') Entry.hw.sendQueue['speed'] = EMO_WINK; + else if (_type == 'BLINK') Entry.hw.sendQueue['speed'] = EMO_BLINK; + else if (_type == 'STOP') Entry.hw.sendQueue['speed'] = EMO_STOP; + + console.log("send protocol!"); + }, + }, + + play_sound: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.SND_USER, 'USER'], + [Lang.Blocks.SND_CAT, 'CAT'], + [Lang.Blocks.SND_SHUTTER, 'SHUTTER'], + [Lang.Blocks.SND_FAIL, 'FAIL'], + [Lang.Blocks.SND_SUCCESS, 'SUCCESS'], + [Lang.Blocks.SND_FAIL2, 'FAIL2'], + [Lang.Blocks.SND_HONK, 'HONK'], + [Lang.Blocks.SND_HONK2, 'HONK2'], + [Lang.Blocks.SND_SIREN, 'SIREN'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 14, + }, + ], + def: { + params: ['USER', null], + type: 'play_sound', + }, + paramsKeyMap: { + TYPE: 0, + }, + class: 'base', + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const COMMAND_PLAY_SOUND = 242; + const SND_USER = 0; + const SND_CAT = 4; + const SND_SHUTTER = 5; + const SND_FAIL = 1; + const SND_SUCCESS = 3; + const SND_FAIL2 = 2; + const SND_HONK = 6; + const SND_HONK2 = 7; + const SND_SIREN = 8; + + var _type = script.getStringField('TYPE', script); + + Entry.hw.sendQueue['com'] = COMMAND_PLAY_SOUND; + + if (_type == 'USER') Entry.hw.sendQueue['speed'] = SND_USER; + else if (_type == 'CAT') Entry.hw.sendQueue['speed'] = SND_CAT; + else if (_type == 'SHUTTER') Entry.hw.sendQueue['speed'] = SND_SHUTTER; + else if (_type == 'FAIL') Entry.hw.sendQueue['speed'] = SND_FAIL; + else if (_type == 'SUCCESS') Entry.hw.sendQueue['speed'] = SND_SUCCESS; + else if (_type == 'FAIL2') Entry.hw.sendQueue['speed'] = SND_FAIL2; + else if (_type == 'HONK') Entry.hw.sendQueue['speed'] = SND_HONK; + else if (_type == 'HONK2') Entry.hw.sendQueue['speed'] = SND_HONK2; + else if (_type == 'SIREN') Entry.hw.sendQueue['speed'] = SND_SIREN; + console.log("send protocol!"); + }, + }, + + LED_control: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.RED, 'RED'], + [Lang.Blocks.GREEN, 'GREEN'], + [Lang.Blocks.BLUE, 'BLUE'], + [Lang.Blocks.YELLOW, 'YELLOW'], + [Lang.Blocks.SKY_BLUE, 'SKY_BLUE'], + [Lang.Blocks.PINK, 'PINK'], + [Lang.Blocks.WHITE, 'WHITE'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.LED_NORMAL, 'NORMAL'], + [Lang.Blocks.LED_BLINK, 'BLINK'], + [Lang.Blocks.LED_DIMMING, 'DIMMING'], + [Lang.Blocks.LED_SUNRISE, 'SUNRISE'], + [Lang.Blocks.LED_SUNSET, 'SUNSET'], + [Lang.Blocks.LED_FLICKER, 'FLICKER'], + [Lang.Blocks.LED_RAINBOW, 'RAINBOW'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.ON, 'ON'], + [Lang.Blocks.OFF, 'OFF'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { type: 'Indicator', img: 'block_icon/zumiMini/led.svg', size: 14 }, + ], + def: { + params: ['WHITE', 'NORMAL', 'ON', null], + type: 'LED_control', + }, + paramsKeyMap: { + COLOR: 0, + EFFECT: 1, + ACTION: 2, + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_LED_CONTROL = 31; + + const LED_RED = 1; + const LED_BLUE = 2; + const LED_GREEN = 3; + const LED_YELLOW = 4; + const LED_SKY_BLUE = 5; + const LED_PINK = 6; + const LED_WHITE = 7; + + const LED_NORMAL = 0; + const LED_BLINK = 1; + const LED_FLICKER = 2; + const LED_DIMMING = 3; + const LED_SUNRISE = 4; + const LED_SUNSET = 5; + const LED_RAINBOW = 6; + + const LED_OFF = 0; + const LED_ON = 1; + + //var exTime = new Date(); + //var firstCheck = true; + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("LED block Start!"); + + var _col = script.getStringField('COLOR', script); + var _eff = script.getStringField('EFFECT', script); + var _act = script.getStringField('ACTION', script); + + return new Promise(resolve => { + + new Promise(resolve => { + setTimeout(function () { + console.log("exCnt: " + exCnt + " tempCnt:" + tempCnt); + if (exCnt == tempCnt) { + _exit = true; + + } + resolve(); + }, 200); + }) + .then(() => { + + return new Promise(resolve => { + var ttt = setInterval(() => { + + if (_exit == true) { + console.log("block skip!"); + resolve(); + clearInterval(ttt); + } + + var _stat = Entry.hw.portData.inputData['pStat']; + + if ((pStep == Z_WAIT) && (_stat == READY)) pStep = Z_SEND_PACKET; + else if ((pStep == Z_WAIT) && (_stat == PROCESS)) pStep = Z_WAIT; //wait until other action ends. + + if ((pStep == Z_SEND_PACKET) && (_stat == READY)) { //send command until hardware start to action. + + if (iter < 5) { + + Entry.hw.sendQueue['com'] = COMMAND_LED_CONTROL; + + if ((_col == 'RED') && (_act == 'ON')) Entry.hw.sendQueue['speed'] = LED_RED; + else if ((_col == 'BLUE') && (_act == 'ON')) Entry.hw.sendQueue['speed'] = LED_BLUE; + else if ((_col == 'GREEN') && (_act == 'ON')) Entry.hw.sendQueue['speed'] = LED_GREEN; + else if ((_col == 'SKY_BLUE') && (_act == 'ON')) Entry.hw.sendQueue['speed'] = LED_SKY_BLUE; + else if ((_col == 'PINK') && (_act == 'ON')) Entry.hw.sendQueue['speed'] = LED_PINK; + else if ((_col == 'YELLOW') && (_act == 'ON')) Entry.hw.sendQueue['speed'] = LED_YELLOW; + else if ((_col == 'WHITE') && (_act == 'ON')) Entry.hw.sendQueue['speed'] = LED_WHITE; + + if (_eff == 'NORMAL') Entry.hw.sendQueue['dist'] = LED_NORMAL; + else if (_eff == 'BLINK') Entry.hw.sendQueue['dist'] = LED_BLINK; + else if (_eff == 'FLICKER') Entry.hw.sendQueue['dist'] = LED_FLICKER; + else if (_eff == 'DIMMING') Entry.hw.sendQueue['dist'] = LED_DIMMING; + else if (_eff == 'SUNRISE') Entry.hw.sendQueue['dist'] = LED_SUNRISE; + else if (_eff == 'SUNSET') Entry.hw.sendQueue['dist'] = LED_SUNSET; + else if (_eff == 'RAINBOW') Entry.hw.sendQueue['dist'] = LED_RAINBOW; + + if (_act == 'OFF') Entry.hw.sendQueue['dir'] = LED_OFF; + else Entry.hw.sendQueue['dir'] = LED_ON; + + console.log("send protocol!"); + } + else Entry.hw.sendQueue['com'] = 0x00; + + pStep = Z_SEND_PACKET; + //iter++; + } + else if ((pStep == Z_SEND_PACKET) && (_stat == PROCESS)) { + pStep = Z_MOVING; + Entry.hw.sendQueue['com'] = 0x00; + } + + if ((pStep == Z_MOVING) && (_stat == READY)) { + + console.log("block exit!"); + Entry.hw.sendQueue['com'] = 0x00; + pStep = Z_WAIT; + resolve(); + clearInterval(ttt); + } + else if ((pStep == Z_MOVING) && (_stat == PROCESS)) pStep = Z_MOVING; //wait until the action ends. + + }, 50); + + }); + + }) + .then(() => { + resolve(); + }) + + }); + }, + }, + + motor_control: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#ffffff', + skeleton: 'basic', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.M1, 'LEFT'], + [Lang.Blocks.M2, 'RIGHT'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + [Lang.Blocks.CW, 'CW'], + [Lang.Blocks.CCW, 'CCW'], + [Lang.Blocks.STOP, 'STOP'], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: "Indicator", + img: "block_icon/zumiMini/motor_control.svg", + size: 14 + }, + ], + def: { + params: ['LEFT', 'CW', 5, null], + type: 'motor_control', + }, + paramsKeyMap: { + NUM: 0, + DIR: 1, + SPD: 2, + }, + class: "base", + //isNotFor: ['zumi_mini'], + func: function (sprite, script) { + + const Z_WAIT = 0; + const Z_SEND_PACKET = 1; + const Z_MOVING = 2; + + const READY = 0; + const PROCESS = 1; + + const COMMAND_MOTOR1_INFINITE = 32; + const COMMAND_MOTOR2_INFINITE = 33; + const DIR_LEFT = 1; + const DIR_RIGHT = 2; + const DIR_STOP = 3; + + var pStep = Z_WAIT; + var iter = 0; + var _exit = false; + + console.log("go motor control block Start!"); + + var _num = script.getStringField('NUM', script) + var _dir = script.getStringField('DIR', script); + var _spd = script.getNumberValue('SPD'); + + var tSpd = Entry.hw.sendQueue['speed']; + var tDir = Entry.hw.sendQueue['dir']; + + var ex_com = Entry.hw.sendQueue['com']; + + //if ((ex_com != COMMAND_MOTOR1_INFINITE)|| (ex_com != COMMAND_MOTOR2_INFINITE)) { + //tSpd = 0x00; tDir = 0x00; + //} + + var _dirInt = 0; + + if (_dir == 'CW') _dirInt = DIR_LEFT; + else if (_dir == 'CCW') _dirInt = DIR_RIGHT; + else if (_dir == 'STOP') _dirInt = DIR_STOP; + + if (_spd < 0) _spd = 0; else if (_spd > 10) _spd = 10; + + if (_num == 'LEFT') { + Entry.hw.sendQueue['com'] = COMMAND_MOTOR1_INFINITE; + + tSpd = tSpd & 0b11110000; + tSpd = tSpd | _spd; + Entry.hw.sendQueue['speed'] = tSpd; + + tDir = tDir & 0b11110000; + tDir = tDir | _dirInt; + Entry.hw.sendQueue['dir'] = tDir; + } + else if (_num == 'RIGHT') { + Entry.hw.sendQueue['com'] = COMMAND_MOTOR2_INFINITE; + + tSpd = tSpd & 0b00001111; + tSpd = tSpd | (_spd << 4); + Entry.hw.sendQueue['speed'] = tSpd; + + tDir = tDir & 0b00001111; + tDir = tDir | (_dirInt << 4); + Entry.hw.sendQueue['dir'] = tDir; + } + + console.log("send protocol!"); + + }, + }, + + }; +}; + +module.exports = Entry.ZumiMini; \ No newline at end of file From 3b90fe56031d09eb0195f142fe90a8479209481d Mon Sep 17 00:00:00 2001 From: truedo Date: Fri, 27 Sep 2024 14:55:15 +0900 Subject: [PATCH 21/65] =?UTF-8?q?=EC=A3=BC=EB=AF=B8=20=EB=AF=B8=EB=8B=88?= =?UTF-8?q?=20=EB=B8=94=EB=A1=9D=20=EC=95=84=EC=9D=B4=EC=BD=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/block_icon/zumiMini/april_detector.svg | 9 +++++++ images/block_icon/zumiMini/bottom_sensor.svg | 16 +++++++++++ images/block_icon/zumiMini/button_input.svg | 13 +++++++++ images/block_icon/zumiMini/cat_detector.svg | 24 +++++++++++++++++ images/block_icon/zumiMini/color_detector.svg | 12 +++++++++ images/block_icon/zumiMini/emotion.svg | 8 ++++++ images/block_icon/zumiMini/face_detector.svg | 10 +++++++ images/block_icon/zumiMini/front_sensor.svg | 27 +++++++++++++++++++ images/block_icon/zumiMini/go_back.svg | 10 +++++++ images/block_icon/zumiMini/go_infinite.svg | 18 +++++++++++++ images/block_icon/zumiMini/go_until.svg | 14 ++++++++++ images/block_icon/zumiMini/gogo.svg | 10 +++++++ images/block_icon/zumiMini/led.svg | 16 +++++++++++ images/block_icon/zumiMini/line_dist.svg | 12 +++++++++ images/block_icon/zumiMini/line_infinite.svg | 13 +++++++++ images/block_icon/zumiMini/line_until.svg | 12 +++++++++ images/block_icon/zumiMini/motion_stop.svg | 6 +++++ images/block_icon/zumiMini/motor_control.svg | 21 +++++++++++++++ images/block_icon/zumiMini/move_straight.svg | 10 +++++++ images/block_icon/zumiMini/move_turn.svg | 12 +++++++++ images/block_icon/zumiMini/screen_toggle.svg | 9 +++++++ images/block_icon/zumiMini/turn_left.svg | 16 +++++++++++ images/block_icon/zumiMini/turn_right.svg | 14 ++++++++++ 23 files changed, 312 insertions(+) create mode 100644 images/block_icon/zumiMini/april_detector.svg create mode 100644 images/block_icon/zumiMini/bottom_sensor.svg create mode 100644 images/block_icon/zumiMini/button_input.svg create mode 100644 images/block_icon/zumiMini/cat_detector.svg create mode 100644 images/block_icon/zumiMini/color_detector.svg create mode 100644 images/block_icon/zumiMini/emotion.svg create mode 100644 images/block_icon/zumiMini/face_detector.svg create mode 100644 images/block_icon/zumiMini/front_sensor.svg create mode 100644 images/block_icon/zumiMini/go_back.svg create mode 100644 images/block_icon/zumiMini/go_infinite.svg create mode 100644 images/block_icon/zumiMini/go_until.svg create mode 100644 images/block_icon/zumiMini/gogo.svg create mode 100644 images/block_icon/zumiMini/led.svg create mode 100644 images/block_icon/zumiMini/line_dist.svg create mode 100644 images/block_icon/zumiMini/line_infinite.svg create mode 100644 images/block_icon/zumiMini/line_until.svg create mode 100644 images/block_icon/zumiMini/motion_stop.svg create mode 100644 images/block_icon/zumiMini/motor_control.svg create mode 100644 images/block_icon/zumiMini/move_straight.svg create mode 100644 images/block_icon/zumiMini/move_turn.svg create mode 100644 images/block_icon/zumiMini/screen_toggle.svg create mode 100644 images/block_icon/zumiMini/turn_left.svg create mode 100644 images/block_icon/zumiMini/turn_right.svg diff --git a/images/block_icon/zumiMini/april_detector.svg b/images/block_icon/zumiMini/april_detector.svg new file mode 100644 index 0000000000..1ca6868202 --- /dev/null +++ b/images/block_icon/zumiMini/april_detector.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/images/block_icon/zumiMini/bottom_sensor.svg b/images/block_icon/zumiMini/bottom_sensor.svg new file mode 100644 index 0000000000..6f40423ab6 --- /dev/null +++ b/images/block_icon/zumiMini/bottom_sensor.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/button_input.svg b/images/block_icon/zumiMini/button_input.svg new file mode 100644 index 0000000000..5095400829 --- /dev/null +++ b/images/block_icon/zumiMini/button_input.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/cat_detector.svg b/images/block_icon/zumiMini/cat_detector.svg new file mode 100644 index 0000000000..2150b4ea7a --- /dev/null +++ b/images/block_icon/zumiMini/cat_detector.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/color_detector.svg b/images/block_icon/zumiMini/color_detector.svg new file mode 100644 index 0000000000..d3724b5cef --- /dev/null +++ b/images/block_icon/zumiMini/color_detector.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/emotion.svg b/images/block_icon/zumiMini/emotion.svg new file mode 100644 index 0000000000..f805496e7d --- /dev/null +++ b/images/block_icon/zumiMini/emotion.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/images/block_icon/zumiMini/face_detector.svg b/images/block_icon/zumiMini/face_detector.svg new file mode 100644 index 0000000000..15c87a92c7 --- /dev/null +++ b/images/block_icon/zumiMini/face_detector.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/images/block_icon/zumiMini/front_sensor.svg b/images/block_icon/zumiMini/front_sensor.svg new file mode 100644 index 0000000000..d92835c86c --- /dev/null +++ b/images/block_icon/zumiMini/front_sensor.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/go_back.svg b/images/block_icon/zumiMini/go_back.svg new file mode 100644 index 0000000000..43bb00d4a4 --- /dev/null +++ b/images/block_icon/zumiMini/go_back.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/images/block_icon/zumiMini/go_infinite.svg b/images/block_icon/zumiMini/go_infinite.svg new file mode 100644 index 0000000000..260975357f --- /dev/null +++ b/images/block_icon/zumiMini/go_infinite.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/go_until.svg b/images/block_icon/zumiMini/go_until.svg new file mode 100644 index 0000000000..5dc01dbe95 --- /dev/null +++ b/images/block_icon/zumiMini/go_until.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/gogo.svg b/images/block_icon/zumiMini/gogo.svg new file mode 100644 index 0000000000..ab7007b826 --- /dev/null +++ b/images/block_icon/zumiMini/gogo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/images/block_icon/zumiMini/led.svg b/images/block_icon/zumiMini/led.svg new file mode 100644 index 0000000000..fae9a71b0d --- /dev/null +++ b/images/block_icon/zumiMini/led.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/line_dist.svg b/images/block_icon/zumiMini/line_dist.svg new file mode 100644 index 0000000000..fad8a3b6b2 --- /dev/null +++ b/images/block_icon/zumiMini/line_dist.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/line_infinite.svg b/images/block_icon/zumiMini/line_infinite.svg new file mode 100644 index 0000000000..ec6882d133 --- /dev/null +++ b/images/block_icon/zumiMini/line_infinite.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/line_until.svg b/images/block_icon/zumiMini/line_until.svg new file mode 100644 index 0000000000..072e2ec66b --- /dev/null +++ b/images/block_icon/zumiMini/line_until.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/motion_stop.svg b/images/block_icon/zumiMini/motion_stop.svg new file mode 100644 index 0000000000..c8bd0ee418 --- /dev/null +++ b/images/block_icon/zumiMini/motion_stop.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/images/block_icon/zumiMini/motor_control.svg b/images/block_icon/zumiMini/motor_control.svg new file mode 100644 index 0000000000..c28826ee66 --- /dev/null +++ b/images/block_icon/zumiMini/motor_control.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/move_straight.svg b/images/block_icon/zumiMini/move_straight.svg new file mode 100644 index 0000000000..1e8dfe87d0 --- /dev/null +++ b/images/block_icon/zumiMini/move_straight.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/images/block_icon/zumiMini/move_turn.svg b/images/block_icon/zumiMini/move_turn.svg new file mode 100644 index 0000000000..6ce09ea90b --- /dev/null +++ b/images/block_icon/zumiMini/move_turn.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/screen_toggle.svg b/images/block_icon/zumiMini/screen_toggle.svg new file mode 100644 index 0000000000..b6122a6f4e --- /dev/null +++ b/images/block_icon/zumiMini/screen_toggle.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/images/block_icon/zumiMini/turn_left.svg b/images/block_icon/zumiMini/turn_left.svg new file mode 100644 index 0000000000..2330fd5a00 --- /dev/null +++ b/images/block_icon/zumiMini/turn_left.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/images/block_icon/zumiMini/turn_right.svg b/images/block_icon/zumiMini/turn_right.svg new file mode 100644 index 0000000000..c0a47da68c --- /dev/null +++ b/images/block_icon/zumiMini/turn_right.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + From 7437b05dfd1069e447f4f8574caf46d727c88770 Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 4 Oct 2024 18:54:47 +0900 Subject: [PATCH 22/65] =?UTF-8?q?=EB=82=A0=EC=94=A8=EB=B8=94=EB=A1=9D=20?= =?UTF-8?q?=EC=A0=84=EB=B6=81=ED=8A=B9=EB=B3=84=EC=9E=90=EC=B9=98=EB=8F=84?= =?UTF-8?q?=20=EC=A7=80=EC=97=AD=EC=BD=94=EB=93=9C=20=EC=9B=90=EB=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 웨더아이의 지역코드 변경이 지연으로 법정동 코드 원복 --- .../blocks/block_expansion_weather.js | 50 +++++++++++++------ 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/src/playground/blocks/block_expansion_weather.js b/src/playground/blocks/block_expansion_weather.js index 0f7c762d83..485ec68427 100644 --- a/src/playground/blocks/block_expansion_weather.js +++ b/src/playground/blocks/block_expansion_weather.js @@ -385,26 +385,44 @@ Entry.EXPANSION_BLOCK.weather = { taean: '4482500000', }, }, - 'Jeollabuk-do': { - code: '5200000000', + code: '4500000000', sub: { - jeonju: '5211000000', - gunsan_si: '5213000000', - iksan: '5214000000', - jeongeup: '5218000000', - namwon: '5219000000', - gimje_si: '5221000000', - wanju: '5271000000', - jinan: '5272000000', - muju: '5273000000', - jangsu: '5274000000', - imsil: '5275000000', - sunchang: '5277000000', - gochang: '5279000000', - buan: '5280000000', + jeonju: '4511000000', + gunsan_si: '4513000000', + iksan: '4514000000', + jeongeup: '4518000000', + namwon: '4519000000', + gimje_si: '4521000000', + wanju: '4571000000', + jinan: '4572000000', + muju: '4573000000', + jangsu: '4574000000', + imsil: '4575000000', + sunchang: '4577000000', + gochang: '4579000000', + buan: '4580000000', }, }, + // 'Jeollabuk-do': { + // code: '5200000000', + // sub: { + // jeonju: '5211000000', + // gunsan_si: '5213000000', + // iksan: '5214000000', + // jeongeup: '5218000000', + // namwon: '5219000000', + // gimje_si: '5221000000', + // wanju: '5271000000', + // jinan: '5272000000', + // muju: '5273000000', + // jangsu: '5274000000', + // imsil: '5275000000', + // sunchang: '5277000000', + // gochang: '5279000000', + // buan: '5280000000', + // }, + // }, 'Jeollanam-do': { code: '4600000000', sub: { From a4bbdb23158bc36fafb9e94e463f7cf13087220d Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 4 Oct 2024 19:35:56 +0900 Subject: [PATCH 23/65] onsubmit -> onkeydown 13 --- src/class/stage.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/class/stage.js b/src/class/stage.js index 346eb0331d..e8e8757b10 100644 --- a/src/class/stage.js +++ b/src/class/stage.js @@ -604,9 +604,12 @@ Entry.Stage = class Stage { y: posY, readonly: false, topPosition: true, - onsubmit() { - Entry.dispatchEvent('canvasInputComplete'); - }, + onkeydown(event) { + const keyCode = Entry.Utils.inputToKeycode(event); + if (keyCode === 13) { + Entry.dispatchEvent('canvasInputComplete'); + } + } }); if (isWebGL) { From 89756f4a4d38d0d047769e1fa5fa8ff923aab0de Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 4 Oct 2024 20:18:24 +0900 Subject: [PATCH 24/65] test log --- src/class/stage.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/class/stage.js b/src/class/stage.js index e8e8757b10..dbf6ed4e39 100644 --- a/src/class/stage.js +++ b/src/class/stage.js @@ -606,6 +606,7 @@ Entry.Stage = class Stage { topPosition: true, onkeydown(event) { const keyCode = Entry.Utils.inputToKeycode(event); + console.log('onKeydown', isWebGL, keyCode); if (keyCode === 13) { Entry.dispatchEvent('canvasInputComplete'); } From 2fa2a9eca1990af046069ef45d0cb486a86129dd Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 4 Oct 2024 21:50:46 +0900 Subject: [PATCH 25/65] test --- extern/util/CanvasInput.js | 12 ++++++++++-- src/class/stage.js | 10 +++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/extern/util/CanvasInput.js b/extern/util/CanvasInput.js index 69cdf67127..766d4a2ded 100755 --- a/extern/util/CanvasInput.js +++ b/extern/util/CanvasInput.js @@ -142,6 +142,14 @@ true ); // create the hidden input element + window.addEventListener('keydown', (e) => { + if (self._hasFocus) { + var keyCode = e.keyCode || e.which; + console.log('window keydown', keyCode); + // self.keydown(e, self); + } + }, true); + self._hiddenInput = document.createElement('input'); self._hiddenInput.className = 'entryCanvasHiddenInput'; self._hiddenInput.type = 'text'; @@ -822,12 +830,12 @@ * @return {CanvasInput} */ keydown: function keydown(e, self) { - var keyCode = e.which; + var keyCode = e.keyCode || e.which; var isShift = e.shiftKey; var key = null; var startText; var endText; // make sure the correct text field is being updated - + console.log('keydown', keyCode); if (!self._hasFocus) { return; } // fire custom user event diff --git a/src/class/stage.js b/src/class/stage.js index dbf6ed4e39..346eb0331d 100644 --- a/src/class/stage.js +++ b/src/class/stage.js @@ -604,13 +604,9 @@ Entry.Stage = class Stage { y: posY, readonly: false, topPosition: true, - onkeydown(event) { - const keyCode = Entry.Utils.inputToKeycode(event); - console.log('onKeydown', isWebGL, keyCode); - if (keyCode === 13) { - Entry.dispatchEvent('canvasInputComplete'); - } - } + onsubmit() { + Entry.dispatchEvent('canvasInputComplete'); + }, }); if (isWebGL) { From 6a341a6e25d2ae17cca2bc641330b0bd4d0bd753 Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 4 Oct 2024 23:20:14 +0900 Subject: [PATCH 26/65] #8743 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 모바일 keydown이벤트 동작하지 않는 문제 수정. --- extern/util/CanvasInput.js | 27 ++++++++++++++------------- src/class/pixi/etc/PIXICanvasInput.js | 13 ++++++++++++- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/extern/util/CanvasInput.js b/extern/util/CanvasInput.js index 766d4a2ded..a6091802ff 100755 --- a/extern/util/CanvasInput.js +++ b/extern/util/CanvasInput.js @@ -62,7 +62,7 @@ self._selection = [0, 0]; self._wasOver = false; self._topPosition = o.topPosition; // parse box shadow - + self._hasHiddenFocus = false; self.boxShadow(self._boxShadow, true); // calculate the full width and height with padding, borders and shadows self._calcWH(); // setup the off-DOM canvas @@ -142,14 +142,6 @@ true ); // create the hidden input element - window.addEventListener('keydown', (e) => { - if (self._hasFocus) { - var keyCode = e.keyCode || e.which; - console.log('window keydown', keyCode); - // self.keydown(e, self); - } - }, true); - self._hiddenInput = document.createElement('input'); self._hiddenInput.className = 'entryCanvasHiddenInput'; self._hiddenInput.type = 'text'; @@ -189,6 +181,13 @@ } }); // add this to the buffer + self._hiddenInput.addEventListener('focus', function(e) { + self._hasHiddenFocus = true; + }); + self._hiddenInput.addEventListener('blur', function(e) { + self._hasHiddenFocus = false; + }); + inputs.push(self); self._inputsIndex = inputs.length - 1; // draw the text box @@ -775,7 +774,9 @@ input.addEventListener( 'blur', function() { - self.blur(self); + if (!self._hasHiddenFocus) { + self.blur(self); + } }, false ); @@ -784,7 +785,7 @@ } // move the real focus to the hidden input var hasSelection = self._selection[0] > 0 || self._selection[1] > 0; - + self._hasHiddenFocus = true; self._hiddenInput.focus(); self._hiddenInput.selectionStart = hasSelection ? self._selection[0] : self._cursorPos; @@ -830,12 +831,12 @@ * @return {CanvasInput} */ keydown: function keydown(e, self) { - var keyCode = e.keyCode || e.which; + var keyCode = e.which; var isShift = e.shiftKey; var key = null; var startText; var endText; // make sure the correct text field is being updated - console.log('keydown', keyCode); + if (!self._hasFocus) { return; } // fire custom user event diff --git a/src/class/pixi/etc/PIXICanvasInput.js b/src/class/pixi/etc/PIXICanvasInput.js index 6031a42cf0..e800e4407e 100644 --- a/src/class/pixi/etc/PIXICanvasInput.js +++ b/src/class/pixi/etc/PIXICanvasInput.js @@ -59,6 +59,7 @@ import * as PIXI from 'pixi.js'; self._selection = [0, 0]; self._wasOver = false; self._topPosition = o.topPosition; + self._hasHiddenFocus = false; // parse box shadow self.boxShadow(self._boxShadow, true); @@ -183,6 +184,13 @@ import * as PIXI from 'pixi.js'; } }); + self._hiddenInput.addEventListener('focus', function(e) { + self._hasHiddenFocus = true; + }); + self._hiddenInput.addEventListener('blur', function(e) { + self._hasHiddenFocus = false; + }); + // add this to the buffer inputs.push(self); self._inputsIndex = inputs.length - 1; @@ -794,7 +802,9 @@ import * as PIXI from 'pixi.js'; input.addEventListener( 'blur', () => { - self.blur(self); + if (!self._hasHiddenFocus) { + self.blur(self); + } }, false ); @@ -804,6 +814,7 @@ import * as PIXI from 'pixi.js'; // move the real focus to the hidden input const hasSelection = self._selection[0] > 0 || self._selection[1] > 0; + self._hasHiddenFocus = true; self._hiddenInput.focus(); self._hiddenInput.selectionStart = hasSelection ? self._selection[0] : self._cursorPos; self._hiddenInput.selectionEnd = hasSelection ? self._selection[1] : self._cursorPos; From 9abe3af102d39b7caa26b256eee6c33a815fda94 Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 4 Oct 2024 23:55:32 +0900 Subject: [PATCH 27/65] test --- extern/util/CanvasInput.js | 17 +++++------------ src/class/pixi/etc/PIXICanvasInput.js | 14 ++++---------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/extern/util/CanvasInput.js b/extern/util/CanvasInput.js index a6091802ff..dd6931e69e 100755 --- a/extern/util/CanvasInput.js +++ b/extern/util/CanvasInput.js @@ -62,7 +62,6 @@ self._selection = [0, 0]; self._wasOver = false; self._topPosition = o.topPosition; // parse box shadow - self._hasHiddenFocus = false; self.boxShadow(self._boxShadow, true); // calculate the full width and height with padding, borders and shadows self._calcWH(); // setup the off-DOM canvas @@ -181,13 +180,6 @@ } }); // add this to the buffer - self._hiddenInput.addEventListener('focus', function(e) { - self._hasHiddenFocus = true; - }); - self._hiddenInput.addEventListener('blur', function(e) { - self._hasHiddenFocus = false; - }); - inputs.push(self); self._inputsIndex = inputs.length - 1; // draw the text box @@ -748,7 +740,7 @@ nav.indexOf('android') >= 0; // add support for mobile var isMobile = typeof window.orientation !== 'undefined'; - + var hasHiddenFocus = false; if ( isMobile && !isChromeMobile && @@ -774,7 +766,7 @@ input.addEventListener( 'blur', function() { - if (!self._hasHiddenFocus) { + if (!hasHiddenFocus) { self.blur(self); } }, @@ -785,11 +777,12 @@ } // move the real focus to the hidden input var hasSelection = self._selection[0] > 0 || self._selection[1] > 0; - self._hasHiddenFocus = true; + hasHiddenFocus = true; self._hiddenInput.focus(); - + hasHiddenFocus = false; self._hiddenInput.selectionStart = hasSelection ? self._selection[0] : self._cursorPos; self._hiddenInput.selectionEnd = hasSelection ? self._selection[1] : self._cursorPos; + return self.render(); }, diff --git a/src/class/pixi/etc/PIXICanvasInput.js b/src/class/pixi/etc/PIXICanvasInput.js index e800e4407e..a70a9d9365 100644 --- a/src/class/pixi/etc/PIXICanvasInput.js +++ b/src/class/pixi/etc/PIXICanvasInput.js @@ -59,7 +59,6 @@ import * as PIXI from 'pixi.js'; self._selection = [0, 0]; self._wasOver = false; self._topPosition = o.topPosition; - self._hasHiddenFocus = false; // parse box shadow self.boxShadow(self._boxShadow, true); @@ -184,13 +183,6 @@ import * as PIXI from 'pixi.js'; } }); - self._hiddenInput.addEventListener('focus', function(e) { - self._hasHiddenFocus = true; - }); - self._hiddenInput.addEventListener('blur', function(e) { - self._hasHiddenFocus = false; - }); - // add this to the buffer inputs.push(self); self._inputsIndex = inputs.length - 1; @@ -779,6 +771,7 @@ import * as PIXI from 'pixi.js'; // add support for mobile const isMobile = typeof window.orientation !== 'undefined'; + var hasHiddenFocus = false; if ( isMobile && !isChromeMobile && @@ -802,7 +795,7 @@ import * as PIXI from 'pixi.js'; input.addEventListener( 'blur', () => { - if (!self._hasHiddenFocus) { + if (!hasHiddenFocus) { self.blur(self); } }, @@ -814,8 +807,9 @@ import * as PIXI from 'pixi.js'; // move the real focus to the hidden input const hasSelection = self._selection[0] > 0 || self._selection[1] > 0; - self._hasHiddenFocus = true; + hasHiddenFocus = true; self._hiddenInput.focus(); + hasHiddenFocus = false; self._hiddenInput.selectionStart = hasSelection ? self._selection[0] : self._cursorPos; self._hiddenInput.selectionEnd = hasSelection ? self._selection[1] : self._cursorPos; From 6792a178fd5d8ef5248716b3f4e8027d8b83e918 Mon Sep 17 00:00:00 2001 From: lee Date: Sat, 5 Oct 2024 01:05:51 +0900 Subject: [PATCH 28/65] add form --- extern/util/CanvasInput.js | 13 ++++++++++--- src/class/pixi/etc/PIXICanvasInput.js | 11 ++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/extern/util/CanvasInput.js b/extern/util/CanvasInput.js index dd6931e69e..2a7e3035d7 100755 --- a/extern/util/CanvasInput.js +++ b/extern/util/CanvasInput.js @@ -140,7 +140,7 @@ }, true ); // create the hidden input element - + self._hiddenForm = document.createElement('form'); self._hiddenInput = document.createElement('input'); self._hiddenInput.className = 'entryCanvasHiddenInput'; self._hiddenInput.type = 'text'; @@ -156,8 +156,8 @@ if (self._maxlength) { self._hiddenInput.maxLength = self._maxlength; } - - document.body.appendChild(self._hiddenInput); + self._hiddenForm.appendChild(self._hiddenInput); + document.body.appendChild(self._hiddenForm); self._hiddenInput.value = self._value; // setup the keydown listener self._hiddenInput.addEventListener('keydown', function(e) { @@ -772,6 +772,13 @@ }, false ); + input.addEventListener( + 'focus', + () => { + self.focus(); + }, + false + ); } else if (isMobile) { self.value(prompt(self._placeHolder) || ''); } // move the real focus to the hidden input diff --git a/src/class/pixi/etc/PIXICanvasInput.js b/src/class/pixi/etc/PIXICanvasInput.js index a70a9d9365..0c0ce28a9a 100644 --- a/src/class/pixi/etc/PIXICanvasInput.js +++ b/src/class/pixi/etc/PIXICanvasInput.js @@ -143,6 +143,7 @@ import * as PIXI from 'pixi.js'; ); // create the hidden input element + self._hiddenForm = document.createElement('form'); self._hiddenInput = document.createElement('input'); self._hiddenInput.className = 'entryCanvasHiddenInput'; self._hiddenInput.type = 'text'; @@ -157,7 +158,8 @@ import * as PIXI from 'pixi.js'; if (self._maxlength) { self._hiddenInput.maxLength = self._maxlength; } - document.body.appendChild(self._hiddenInput); + self._hiddenForm.appendChild(self._hiddenInput); + document.body.appendChild(self._hiddenForm); self._hiddenInput.value = self._value; // setup the keydown listener @@ -801,6 +803,13 @@ import * as PIXI from 'pixi.js'; }, false ); + input.addEventListener( + 'focus', + () => { + self.focus(); + }, + false + ); } else if (isMobile) { self.value(prompt(self._placeHolder) || ''); } From 56a88617c902bcb706c4a5fedf154b0dd3fcb1d7 Mon Sep 17 00:00:00 2001 From: lee Date: Sat, 5 Oct 2024 01:10:00 +0900 Subject: [PATCH 29/65] canvas wrap hiddeninput by form --- extern/util/CanvasInput.js | 10 ++++++---- src/class/pixi/etc/PIXICanvasInput.js | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/extern/util/CanvasInput.js b/extern/util/CanvasInput.js index 2a7e3035d7..813bba72cf 100755 --- a/extern/util/CanvasInput.js +++ b/extern/util/CanvasInput.js @@ -140,7 +140,7 @@ }, true ); // create the hidden input element - self._hiddenForm = document.createElement('form'); + self._hiddenInput = document.createElement('input'); self._hiddenInput.className = 'entryCanvasHiddenInput'; self._hiddenInput.type = 'text'; @@ -156,8 +156,8 @@ if (self._maxlength) { self._hiddenInput.maxLength = self._maxlength; } - self._hiddenForm.appendChild(self._hiddenInput); - document.body.appendChild(self._hiddenForm); + + document.body.appendChild(self._hiddenInput); self._hiddenInput.value = self._value; // setup the keydown listener self._hiddenInput.addEventListener('keydown', function(e) { @@ -761,7 +761,9 @@ ); input.style.width = self._width; input.style.height = 0; - document.body.appendChild(input); + const form = document.createElement('form'); + form.appendChild(input); + document.body.appendChild(form); input.focus(); input.addEventListener( 'blur', diff --git a/src/class/pixi/etc/PIXICanvasInput.js b/src/class/pixi/etc/PIXICanvasInput.js index 0c0ce28a9a..3565769eee 100644 --- a/src/class/pixi/etc/PIXICanvasInput.js +++ b/src/class/pixi/etc/PIXICanvasInput.js @@ -143,7 +143,6 @@ import * as PIXI from 'pixi.js'; ); // create the hidden input element - self._hiddenForm = document.createElement('form'); self._hiddenInput = document.createElement('input'); self._hiddenInput.className = 'entryCanvasHiddenInput'; self._hiddenInput.type = 'text'; @@ -158,8 +157,7 @@ import * as PIXI from 'pixi.js'; if (self._maxlength) { self._hiddenInput.maxLength = self._maxlength; } - self._hiddenForm.appendChild(self._hiddenInput); - document.body.appendChild(self._hiddenForm); + document.body.appendChild(self._hiddenInput); self._hiddenInput.value = self._value; // setup the keydown listener @@ -792,7 +790,9 @@ import * as PIXI from 'pixi.js'; (self._canvas ? self._canvas.offsetTop : 0)}px`; input.style.width = self._width; input.style.height = 0; - document.body.appendChild(input); + const form = document.createElement('form'); + form.appendChild(input); + document.body.appendChild(form); input.focus(); input.addEventListener( 'blur', From a557c8f887756f0790a71b0b141f6569ac91af98 Mon Sep 17 00:00:00 2001 From: smilepmg Date: Wed, 9 Oct 2024 11:01:50 +0900 Subject: [PATCH 30/65] =?UTF-8?q?=ED=95=B8=EB=93=9C=EC=9D=B4=EB=85=B8?= =?UTF-8?q?=EC=97=90=20=EC=88=98=EC=96=B4=EB=B0=8F=20=EC=82=B0=EC=88=98=20?= =?UTF-8?q?=EB=B8=94=EB=A1=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_handino.js | 397 ++++++++++++++++-- 1 file changed, 370 insertions(+), 27 deletions(-) diff --git a/src/playground/blocks/hardware/block_handino.js b/src/playground/blocks/hardware/block_handino.js index 96772f235f..a4585f7573 100644 --- a/src/playground/blocks/hardware/block_handino.js +++ b/src/playground/blocks/hardware/block_handino.js @@ -1,16 +1,31 @@ 'use strict'; const SERVO_PIN_NUMBERS = [12, 10, 9, 6, 2]; const HAND_MAX_ANGLE = 165; +const HAND_HALF_ANGLE = 60; const HAND_MIN_ANGLE = 0; const HAND_DELAY = 1000; const HAND_TYPE = { ROCK: 0, PAPER: 1, SCISSORS: 2, - THUMBSUP: 3, - PEACE: 4, - PROMISE: 5, - V: 6 + GESTURE_THUMBSUP: 3, + GESTURE_PEACE: 4, + GESTURE_PROMISE: 5, + GESTURE_V: 6, + LANGUAGE_ㄱ:7, + LANGUAGE_ㄴ:8, + LANGUAGE_ㄷ:9, + LANGUAGE_ㄹ:10, + LANGUAGE_ㅁ:11, + LANGUAGE_ㅂ:12, + LANGUAGE_ㅅ:13, + LANGUAGE_ㅇ:14, + LANGUAGE_ㅈ:15, + LANGUAGE_ㅊ:16, + LANGUAGE_ㅋ:17, + LANGUAGE_ㅌ:18, + LANGUAGE_ㅍ:19, + LANGUAGE_ㅎ:20, }; function Lerp(a, b, t) { @@ -30,6 +45,21 @@ function setFinger(idx, angle) }; } +function setFingerDuration(idx, startAngle, targetAngle, duration) +{ + var delayTime = duration*1000; + let func = (i, maxIdx) => { + sleep(i).then(() => { + setFinger(idx, Lerp(startAngle, targetAngle, i/maxIdx)); + }); + }; + + for (var i = 0; i <= delayTime; i+=delayTime/100) + { + func(i, delayTime); + } +} + function setHandType(type) { switch (type) @@ -59,7 +89,7 @@ function setHandType(type) setFinger(3, HAND_MIN_ANGLE); setFinger(4, HAND_MIN_ANGLE); }break; - case HAND_TYPE.THUMBSUP: + case HAND_TYPE.GESTURE_THUMBSUP: { setFinger(0, HAND_MAX_ANGLE); setFinger(1, HAND_MIN_ANGLE); @@ -67,7 +97,7 @@ function setHandType(type) setFinger(3, HAND_MIN_ANGLE); setFinger(4, HAND_MIN_ANGLE); }break; - case HAND_TYPE.PEACE: + case HAND_TYPE.GESTURE_PEACE: { setFinger(0, HAND_MAX_ANGLE); setFinger(1, HAND_MAX_ANGLE); @@ -75,7 +105,7 @@ function setHandType(type) setFinger(3, HAND_MIN_ANGLE); setFinger(4, HAND_MAX_ANGLE); }break; - case HAND_TYPE.PROMISE: + case HAND_TYPE.GESTURE_PROMISE: { setFinger(0, HAND_MIN_ANGLE); setFinger(1, HAND_MIN_ANGLE); @@ -83,7 +113,31 @@ function setHandType(type) setFinger(3, HAND_MIN_ANGLE); setFinger(4, HAND_MAX_ANGLE); }break; - case HAND_TYPE.V: + case HAND_TYPE.GESTURE_V: + { + setFinger(0, HAND_MIN_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㄱ: + { + setFinger(0, HAND_MAX_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MIN_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㄴ: + { + setFinger(0, HAND_MAX_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MIN_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㄷ: { setFinger(0, HAND_MIN_ANGLE); setFinger(1, HAND_MAX_ANGLE); @@ -91,9 +145,123 @@ function setHandType(type) setFinger(3, HAND_MIN_ANGLE); setFinger(4, HAND_MIN_ANGLE); }break; + case HAND_TYPE.LANGUAGE_ㄹ: + { + setFinger(0, HAND_MIN_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MAX_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅁ: + { + setFinger(0, HAND_MIN_ANGLE); + setFinger(1, HAND_HALF_ANGLE); + setFinger(2, HAND_HALF_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅂ: + { + setFinger(0, HAND_MIN_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MAX_ANGLE); + setFinger(4, HAND_MAX_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅅ: + { + setFinger(0, HAND_MIN_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅇ: + { + setFinger(0, HAND_MIN_ANGLE); + setFinger(1, HAND_MIN_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MAX_ANGLE); + setFinger(4, HAND_MAX_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅈ: + { + setFinger(0, HAND_MAX_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅊ: + { + setFinger(0, HAND_MAX_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MAX_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅋ: + { + setFinger(0, HAND_MAX_ANGLE); + setFinger(1, HAND_MIN_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅌ: + { + setFinger(0, HAND_MIN_ANGLE); + setFinger(1, HAND_MAX_ANGLE); + setFinger(2, HAND_MAX_ANGLE); + setFinger(3, HAND_MAX_ANGLE); + setFinger(4, HAND_HALF_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅍ: + { + setFinger(0, HAND_MIN_ANGLE); + setFinger(1, HAND_MIN_ANGLE); + setFinger(2, HAND_MIN_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; + case HAND_TYPE.LANGUAGE_ㅎ: + { + setFinger(0, HAND_MAX_ANGLE); + setFinger(1, HAND_MIN_ANGLE); + setFinger(2, HAND_MIN_ANGLE); + setFinger(3, HAND_MIN_ANGLE); + setFinger(4, HAND_MIN_ANGLE); + }break; } } +function setFingerNumber(n, duration) +{ + if (n <= 5) + { + for (var i = 0; i < 5; i++) + { + let angle = HAND_MIN_ANGLE; + if (i < n) + angle = HAND_MAX_ANGLE; + + setFingerDuration(i, HAND_HALF_ANGLE, angle, duration); + } + } + else + { + for (var i = 0; i < 5; i++) + { + let angle = HAND_MIN_ANGLE; + if (10 - n <= i) + angle = HAND_MAX_ANGLE; + + setFingerDuration(i, HAND_HALF_ANGLE, angle, duration); + } + } +} + function getRandomArbitraryInt(min, max) { return parseInt(Math.random() * (max - min) + min); } @@ -168,16 +336,20 @@ Entry.ArduinoZin.setLanguage = function() { arduino_ext_set_servo_hand_finger_updown: '%1번째 손가락 %2 %3', arduino_ext_set_servo_hand_play_scissors: '랜덤 가위보기하기 %1 %2', arduino_ext_set_servo_hand_finger_updown_same_time: '%1번째 %2번째 %3번째 %4번째 %5번째 손가락 %6 %7 %8', + arduino_ext_set_servo_hand_language: '수어 %1 %2', + arduino_ext_set_servo_hand_arithmetic: '산수 %1 %2 %3', }, }, en: { template: { arduino_ext_set_servo_hand_scissors: 'Rock Paper Scissors %1 %2', arduino_ext_set_servo_hand_count: 'number count %1 %2', - arduino_ext_set_servo_hand_gesture: 'hand gestur %1 %2', + arduino_ext_set_servo_hand_gesture: 'hand gesture %1 %2', arduino_ext_set_servo_hand_finger_updown: '%1 finger %2 %3', arduino_ext_set_servo_hand_play_scissors: 'play rock paper scissors %1 %2', arduino_ext_set_servo_hand_finger_updown_same_time: '%1st %2ed %3rd %4rd %5rd finger %6 %7 %8', + arduino_ext_set_servo_hand_language: 'hand language %1 %2', + arduino_ext_set_servo_hand_arithmetic: 'arithmetic %1 %2 %3', }, }, }; @@ -190,6 +362,8 @@ Entry.ArduinoZin.blockMenuBlocks = [ 'arduino_ext_set_servo_hand_finger_updown', 'arduino_ext_set_servo_hand_play_scissors', 'arduino_ext_set_servo_hand_finger_updown_same_time', + 'arduino_ext_set_servo_hand_language', + 'arduino_ext_set_servo_hand_arithmetic', ]; //region ArduinoZin 아두이노 확장모드 @@ -351,10 +525,10 @@ Entry.ArduinoZin.getBlocks = function() { { type: "Dropdown", options: [ - [ "따봉", HAND_TYPE.THUMBSUP ], - [ "피스", HAND_TYPE.PEACE ], - [ "약속", HAND_TYPE.PROMISE ], - [ "브이", HAND_TYPE.V ], + [ "따봉", HAND_TYPE.GESTURE_THUMBSUP ], + [ "피스", HAND_TYPE.GESTURE_PEACE ], + [ "약속", HAND_TYPE.GESTURE_PROMISE ], + [ "브이", HAND_TYPE.GESTURE_V ], ], fontSize: 11 }, @@ -367,7 +541,7 @@ Entry.ArduinoZin.getBlocks = function() { events: {}, def: { params: [ - HAND_TYPE.THUMBSUP, + HAND_TYPE.GESTURE_THUMBSUP, null, ], type: 'arduino_ext_set_servo_hand_gesture', @@ -447,7 +621,7 @@ Entry.ArduinoZin.getBlocks = function() { func(sprite, script) { const fingerType = script.getNumberValue('FINGER_TYPE', script); const fingerUpDown = script.getNumberValue('FINGER_UPDOWN', script); - let delayTimes = [100, 50, 25, 1]; + let delayTimes = [10, 2.5, 0.5, 0.1]; let startAngle = HAND_MIN_ANGLE; let targetAngle = HAND_MAX_ANGLE; if (fingerUpDown % 2 == 0) @@ -462,23 +636,14 @@ Entry.ArduinoZin.getBlocks = function() { } let delayTime = delayTimes[parseInt(fingerUpDown/2)]; const sq = Entry.hw.sendQueue; - return delayScriptCallReturn(script, HAND_DELAY+delayTime*delayTime, + return delayScriptCallReturn(script, HAND_DELAY+delayTime*1000, ()=>{ if (!sq.SET) { sq.SET = {}; } - - let func = (idx, maxIdx) => { - sleep(idx*delayTime).then(() => { - setFinger(fingerType, Lerp(startAngle, targetAngle, idx/maxIdx)); - }); - }; - - for (var i = 0; i <= delayTime; i++) - { - func(i, delayTime); - } + + setFingerDuration(fingerType, startAngle, targetAngle, delayTime); } ); @@ -691,6 +856,184 @@ Entry.ArduinoZin.getBlocks = function() { }, }, + arduino_ext_set_servo_hand_language: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: "Dropdown", + options: [ + [ "ㄱ", HAND_TYPE.LANGUAGE_ㄱ ], + [ "ㄴ", HAND_TYPE.LANGUAGE_ㄴ ], + [ "ㄷ", HAND_TYPE.LANGUAGE_ㄷ ], + [ "ㄹ", HAND_TYPE.LANGUAGE_ㄹ ], + [ "ㅁ", HAND_TYPE.LANGUAGE_ㅁ ], + [ "ㅂ", HAND_TYPE.LANGUAGE_ㅂ ], + [ "ㅅ", HAND_TYPE.LANGUAGE_ㅅ ], + [ "ㅇ", HAND_TYPE.LANGUAGE_ㅇ ], + [ "ㅈ", HAND_TYPE.LANGUAGE_ㅈ ], + [ "ㅊ", HAND_TYPE.LANGUAGE_ㅊ ], + [ "ㅋ", HAND_TYPE.LANGUAGE_ㅋ ], + [ "ㅌ", HAND_TYPE.LANGUAGE_ㅌ ], + [ "ㅍ", HAND_TYPE.LANGUAGE_ㅍ ], + [ "ㅎ", HAND_TYPE.LANGUAGE_ㅎ ], + ], + fontSize: 11 + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + HAND_TYPE.LANGUAGE_ㄱ, + null, + ], + type: 'arduino_ext_set_servo_hand_language', + }, + paramsKeyMap: { + HAND_TYPE: 0 + }, + class: 'ArduinoZin', + isNotFor: ['ArduinoZin'], + func(sprite, script) { + + const sq = Entry.hw.sendQueue; + return delayScriptCallReturn(script, HAND_DELAY, + ()=>{ + if (!sq.SET) { + sq.SET = {}; + } + + const handType = script.getNumberValue('HAND_TYPE', script); + setHandType(handType); + } + ); + }, + }, + arduino_ext_set_servo_hand_arithmetic: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: "Dropdown", + options: [ + [ "+", 0 ], + [ "-", 1 ], + [ "x", 2 ], + [ "/", 3 ], + ], + fontSize: 11 + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + 0, + 0, + 0, + null, + ], + type: 'arduino_ext_set_servo_hand_arithmetic', + }, + paramsKeyMap: { + OPRND1: 0, + OPTOR: 1, + OPRND2: 2 + }, + class: 'ArduinoZin', + isNotFor: ['ArduinoZin'], + func(sprite, script) { + const sq = Entry.hw.sendQueue; + + if (!script.isStart) { + if (!sq.SET) { + sq.SET = {}; + } + + const oprnd1 = script.getNumberValue('OPRND1', script); + const optor = script.getNumberValue('OPTOR', script); + const oprnd2 = script.getNumberValue('OPRND2', script); + let result = 0; + + switch (optor) + { + case 0: + result = oprnd1 + oprnd2; + break; + case 1: + result = oprnd1 - oprnd2; + break; + case 2: + result = oprnd1 * oprnd2; + break; + case 3: + result = oprnd1 / oprnd2; + break; + } + + // 음수 무시 + result = Math.abs(result.toFixed()); + let strResult = result.toString(); + + script.handCount = 0; + + setFinger(0, HAND_HALF_ANGLE); + setFinger(1, HAND_HALF_ANGLE); + setFinger(2, HAND_HALF_ANGLE); + setFinger(3, HAND_HALF_ANGLE); + setFinger(4, HAND_HALF_ANGLE); + + Entry.ArduinoZin.handTimerId = setInterval(() => { + + let number = parseInt(strResult[script.handCount]); + + setFingerNumber(number, 0.5); + script.handCount++; + + if(script.handCount == strResult.length) { + clearInterval(Entry.ArduinoZin.handTimerId); + setTimeout(()=>{ + script.isLoop = 0; + }, HAND_DELAY); + } + }, HAND_DELAY+HAND_DELAY*2); + + script.isStart = true; + script.isLoop = true; + return script; + } else if (script.isLoop == true) { + return script; + } + + delete script.isLoop; + delete script.isStart; + delete script.handCount; + return script.callReturn(); + }, + }, }; }; //endregion ArduinoZin 아두이노 확장모드 From 13e3ec74cfd5a2c2201eda92fd4b2903036de40c Mon Sep 17 00:00:00 2001 From: MyungHwa Hong Date: Thu, 10 Oct 2024 13:53:47 +0900 Subject: [PATCH 31/65] Update block_altino.js --- .../blocks/hardware/block_altino.js | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/playground/blocks/hardware/block_altino.js b/src/playground/blocks/hardware/block_altino.js index 518ae827eb..cdfa04185b 100644 --- a/src/playground/blocks/hardware/block_altino.js +++ b/src/playground/blocks/hardware/block_altino.js @@ -17,6 +17,7 @@ Entry.Altino = { dot6: 0, dot7: 0, dot8: 0, + command: 0, }, setZero: function() { var portMap = Entry.Altino.PORT_MAP; @@ -69,6 +70,7 @@ Entry.Altino.blockMenuBlocks = [ 'altino_dot_display_hex', 'altino_dot_display_matrix_on', 'altino_dot_display_matrix_off', + 'altino_ir_reset', ]; Entry.Altino.setLanguage = function() { @@ -154,7 +156,7 @@ Entry.Altino.setLanguage = function() { }, template: { altino_analogValue: '알티노 %1 센서값', - altino_stopAll: '정지 %1°%2', + altino_stopAll: '정지 %1%2', altino_dot_display: '표시하기 %1 %2', altino_dot_display_line: '표시하기 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10', altino_dot_display_hex: '표시하기 %1 %2 %3 %4 %5 %6 %7 %8 %9', @@ -167,6 +169,7 @@ Entry.Altino.setLanguage = function() { altino_sound: '소리 %1 %2 %3', altino_steering_hex: '조향 %1%2', altino_steering: '조향 %1°%2', + altino_ir_reset: '알티노 IR 센서 초기화%1', }, }, en: { @@ -250,7 +253,7 @@ Entry.Altino.setLanguage = function() { }, template: { altino_analogValue: 'Altino %1 sensor value', - altino_stopAll: 'Stop %1°%2', + altino_stopAll: 'Stop %1%2', altino_dot_display: 'Display %1 %2', altino_dot_display_line: 'Display %1 %2 %3 %4 %5 %6 %7 %8 %9 %10', altino_dot_display_hex: 'Display %1 %2 %3 %4 %5 %6 %7 %8 %9', @@ -263,6 +266,7 @@ Entry.Altino.setLanguage = function() { altino_sound: 'Sound %1 %2 %3', altino_steering_hex: 'Steering %1%2', altino_steering: 'Steering %1°%2', + altino_ir_reset: 'Reset Altino IR Sensor%1', }, }, }; @@ -1457,6 +1461,38 @@ Entry.Altino.getBlocks = function() { }, syntax: { js: [], py: ['Altino.dot_display_hex(%1, %2, %3, %4, %5, %6, %7, %8)'] }, }, + altino_ir_reset: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null, + ], + type: 'altino_ir_reset', + }, + paramsKeyMap: { + DEVICE : 0, + }, + class: 'altino_output', + isNotFor: ['altino'], + func: function(sprite, script) { + var sq = Entry.hw.sendQueue; + + sq.command = 252; + return script.callReturn(); + }, + syntax: { js: [], py: ['Altino.ir_reset'] }, + }, //endregion Altino 알티노 }; }; From a8b0023514f1e89f2a24cc8345255b68d2dd8203 Mon Sep 17 00:00:00 2001 From: MyungHwa Hong Date: Thu, 10 Oct 2024 13:55:07 +0900 Subject: [PATCH 32/65] Update block_altino_lite.js --- src/playground/blocks/hardware/block_altino_lite.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/playground/blocks/hardware/block_altino_lite.js b/src/playground/blocks/hardware/block_altino_lite.js index a39e199ba2..12d9b3a681 100644 --- a/src/playground/blocks/hardware/block_altino_lite.js +++ b/src/playground/blocks/hardware/block_altino_lite.js @@ -152,7 +152,7 @@ Entry.AltinoLite.setLanguage = function() { altino_lite_sound: '소리 %1 %2 %3', altino_lite_steering_hex: '조향 %1%2', altino_lite_steering: '조향 %1°%2', - altino_lite_ir_reset: '알티노 라이트 IR 센서 초기화', + altino_lite_ir_reset: '알티노 라이트 IR 센서 초기화%1', }, }, en: { @@ -233,7 +233,7 @@ Entry.AltinoLite.setLanguage = function() { altino_lite_sound: 'Sound %1 %2 %3', altino_lite_steering_hex: 'Steering %1%2', altino_lite_steering: 'Steering %1°%2', - altino_lite_ir_reset: 'Reset Altino lite IR Sensor', + altino_lite_ir_reset: 'Reset Altino lite IR Sensor%1', }, }, }; @@ -1416,8 +1416,6 @@ Entry.AltinoLite.getBlocks = function() { func: function(sprite, script) { var sq = Entry.hw.sendQueue; - // sq.rightWheel = 300;//script.getNumberValue('rightWheel'); - // sq.leftWheel = 300;//script.getNumberValue('leftWheel'); sq.ir = 6; return script.callReturn(); }, From 675ea4f94fb3134d10719c2d26a7c3c5579df95e Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Thu, 10 Oct 2024 17:16:56 +0900 Subject: [PATCH 33/65] =?UTF-8?q?fix:=20=EC=97=B0=EA=B2=B0=20=EB=8F=84?= =?UTF-8?q?=EC=9B=80=EB=A7=90=20=ED=81=B4=EB=A6=AD=20=EB=B2=94=EC=9C=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - align left로 설정시 x값이 0으로 고정되어서 center로 변경 - indicator는 align이 안되서 position으로 수정 --- src/playground/block_entry.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/playground/block_entry.js b/src/playground/block_entry.js index 5a36582c73..f65bf07216 100644 --- a/src/playground/block_entry.js +++ b/src/playground/block_entry.js @@ -686,7 +686,6 @@ function getBlocks() { skeleton: 'clickable_text', skeletonOptions: { box: { - offsetX: 60, offsetY: -10, }, }, @@ -699,13 +698,16 @@ function getBlocks() { type: 'Indicator', img: 'question_in_round.svg', size: 9, - align: 'left', + position: { + x: -45, + y: 0, + }, }, { type: 'Text', text: Lang.Blocks.ROBOT_connect_helper, color: EntryStatic.colorSet.common.BUTTON, - align: 'left', + align: 'center', fontSize: 13, }, ], @@ -761,7 +763,6 @@ function getBlocks() { skeleton: 'clickable_text', skeletonOptions: { box: { - offsetX: 70, offsetY: -10, }, }, @@ -774,13 +775,16 @@ function getBlocks() { type: 'Indicator', img: 'question_in_round.svg', size: 9, - align: 'left', + position: { + x: -55, + y: 0, + }, }, { type: 'Text', text: Lang.Blocks.hardware_connect_helper, color: EntryStatic.colorSet.common.BUTTON, - align: 'left', + align: 'center', fontSize: 13, }, ], From ec8db31c839a86f374cea1f5aa79d14797db9055 Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Thu, 10 Oct 2024 17:19:43 +0900 Subject: [PATCH 34/65] =?UTF-8?q?refactor:=20deprecate=20=EB=B8=94?= =?UTF-8?q?=EB=9F=AD=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extern/util/static.js | 4 -- extern/util/static_mini.js | 2 - src/playground/block_entry.js | 94 ----------------------------------- 3 files changed, 100 deletions(-) diff --git a/extern/util/static.js b/extern/util/static.js index 6f42e699b3..a271bf2119 100644 --- a/extern/util/static.js +++ b/extern/util/static.js @@ -494,7 +494,6 @@ EntryStatic.getAllBlocks = function () { 'arduino_open', 'hardware_program_download', 'arduino_cloud_pc_open', - // 'arduino_connect', 'arduino_lite_disconnect', 'hardware_device_name_title', 'hardware_device_name_content', @@ -503,9 +502,6 @@ EntryStatic.getAllBlocks = function () { 'arduino_lite_reconnect', 'hardware_noti_not_installed', 'arduino_lite_download_firmware', - // 'arduino_download_connector', - // 'download_guide', - // 'arduino_download_source', 'arduino_lite_connect', 'arduino_lite_guide', 'arduino_noti', diff --git a/extern/util/static_mini.js b/extern/util/static_mini.js index 6c8969361f..a83bad0a6f 100644 --- a/extern/util/static_mini.js +++ b/extern/util/static_mini.js @@ -467,8 +467,6 @@ EntryStatic.getAllBlocks = function () { 'arduino_open', 'arduino_connect', 'hardware_program_download', - // 'arduino_download_connector', - // 'download_guide', 'arduino_connected', 'hardware_device_name_title', 'hardware_device_name_content', diff --git a/src/playground/block_entry.js b/src/playground/block_entry.js index f65bf07216..4a9e8a3997 100644 --- a/src/playground/block_entry.js +++ b/src/playground/block_entry.js @@ -552,84 +552,6 @@ function getBlocks() { isNotFor: ['arduinoDisconnected'], events: {}, }, - // arduino_download_connector: { - // skeleton: 'clickable_text', - // skeletonOptions: { - // box: { - // offsetX: 3, - // }, - // }, - // isNotFor: ['arduinoDisconnected'], - // color: EntryStatic.colorSet.common.TRANSPARENT, - // class: 'arduino_default', - // params: [ - // { - // type: 'Text', - // text: Lang.Blocks.ARDUINO_download_connector, - // color: EntryStatic.colorSet.common.TEXT, - // align: 'center', - // }, - // ], - // events: { - // mousedown: [ - // function () { - // Entry.hw.downloadConnector(); - // }, - // ], - // }, - // }, - // download_guide: { - // skeleton: 'clickable_text', - // skeletonOptions: { - // box: { - // offsetX: 3, - // }, - // }, - // isNotFor: ['arduinoDisconnected'], - // color: EntryStatic.colorSet.common.TRANSPARENT, - // class: 'arduino_default', - // params: [ - // { - // type: 'Text', - // text: Lang.Blocks.download_guide, - // color: EntryStatic.colorSet.common.TEXT, - // align: 'center', - // }, - // ], - // events: { - // mousedown: [ - // function() { - // Entry.hw.downloadGuide(); - // }, - // ], - // }, - // }, - // arduino_download_source: { - // skeleton: 'clickable_text', - // skeletonOptions: { - // box: { - // offsetX: 3, - // }, - // }, - // isNotFor: ['arduinoDisconnected'], - // color: EntryStatic.colorSet.common.TRANSPARENT, - // params: [ - // { - // type: 'Text', - // text: Lang.Blocks.ARDUINO_download_source, - // color: EntryStatic.colorSet.common.TEXT, - // align: 'center', - // }, - // ], - // class: 'arduino_default', - // events: { - // mousedown: [ - // function () { - // Entry.hw.downloadSource(); - // }, - // ], - // }, - // }, arduino_connected: { skeleton: 'basic_button', color: EntryStatic.colorSet.common.BUTTON_BACKGROUND, @@ -645,22 +567,6 @@ function getBlocks() { events: {}, }, - // arduino_connect: { - // skeleton: 'basic_text', - // color: EntryStatic.colorSet.common.TRANSPARENT, - // template: '%1', - // isNotFor: ['arduinoConnect'], - // class: 'arduino_default', - // params: [ - // { - // type: 'Text', - // text: Lang.Blocks.ARDUINO_connect, - // color: EntryStatic.colorSet.common.TEXT, - // align: 'center', - // }, - // ], - // events: {}, - // }, arduino_reconnect: { skeleton: 'basic_button', color: EntryStatic.colorSet.common.BUTTON_BACKGROUND, From 197170986db7f54da4f41a79561049a03d46ba59 Mon Sep 17 00:00:00 2001 From: moon Date: Fri, 11 Oct 2024 17:50:18 +0900 Subject: [PATCH 35/65] =?UTF-8?q?=EC=83=89=EC=83=81=20=ED=8C=8C=EB=9D=BC?= =?UTF-8?q?=EB=AF=B8=ED=84=B0=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20(=EB=85=B9=EC=83=89=20->=20=EC=B4=88=EB=A1=9D)=20?= =?UTF-8?q?=EC=9E=90=EC=9C=A8=EC=A3=BC=EC=B0=A8=20=EB=B8=94=EB=9F=AD=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/playground/blocks/hardware/block_neo.js | 16 ++++++++-------- .../blocks/hardwareLite/block_neo_lite.js | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/playground/blocks/hardware/block_neo.js b/src/playground/blocks/hardware/block_neo.js index bbfd5fd1ab..f0d1155972 100644 --- a/src/playground/blocks/hardware/block_neo.js +++ b/src/playground/blocks/hardware/block_neo.js @@ -170,11 +170,11 @@ Entry.Neo = new (class Neo { 'neo_auto_driving_sensor_start', 'neo_auto_driving_stop', // auto parking - 'neo_auto_parking_title', - 'neo_auto_parking_start', + // 'neo_auto_parking_title', + // 'neo_auto_parking_start', // line tracer - 'neo_line_tracer_title', + // 'neo_line_tracer_title', 'neo_line_tracer_start', 'neo_line_cross_move', 'neo_line_cross_turn', @@ -689,7 +689,7 @@ Entry.Neo = new (class Neo { neo_color_white: '흰색', neo_color_red: '빨강', neo_color_yellow: '노랑', - neo_color_green: '녹색', + neo_color_green: '초록', neo_color_blue: '파랑', neo_button_1: '버튼1', @@ -1830,7 +1830,7 @@ Entry.Neo = new (class Neo { SPEED: 0, DURATION: 1, }, - class: 'neo_line_tracer', + class: 'neo_auto_driving', isNotFor: ['neo'], func: (sprite, script) => { if (!script.exec_phase) { @@ -1913,7 +1913,7 @@ Entry.Neo = new (class Neo { paramsKeyMap: { COUNT: 0, }, - class: 'neo_line_tracer', + class: 'neo_auto_driving', isNotFor: ['neo'], func: (sprite, script) => { if (!script.exec_phase) { @@ -1963,7 +1963,7 @@ Entry.Neo = new (class Neo { paramsKeyMap: { DIRECTION: 0, }, - class: 'neo_line_tracer', + class: 'neo_auto_driving', isNotFor: ['neo'], func: (sprite, script) => { if (!script.exec_phase) { @@ -1995,7 +1995,7 @@ Entry.Neo = new (class Neo { type: 'neo_line_cross_reached', }, paramsKeyMap: {}, - class: 'neo_line_tracer', + class: 'neo_auto_driving', isNotFor: ['neo'], func: (sprite, script) => { const sensorData = Entry.hw.portData['sensor']; diff --git a/src/playground/blocks/hardwareLite/block_neo_lite.js b/src/playground/blocks/hardwareLite/block_neo_lite.js index 93d4ca6c94..74093443bc 100644 --- a/src/playground/blocks/hardwareLite/block_neo_lite.js +++ b/src/playground/blocks/hardwareLite/block_neo_lite.js @@ -211,10 +211,10 @@ 'neo_lite_auto_driving_sensor_start', 'neo_lite_auto_driving_stop', // auto parking - 'neo_lite_auto_parking_title', - 'neo_lite_auto_parking_start', + // 'neo_lite_auto_parking_title', + // 'neo_lite_auto_parking_start', // line tracer - 'neo_lite_line_tracer_title', + // 'neo_lite_line_tracer_title', 'neo_lite_line_tracer_start', 'neo_lite_line_cross_move', 'neo_lite_line_cross_turn', @@ -1080,7 +1080,7 @@ neo_lite_color_white: '흰색', neo_lite_color_red: '빨강', neo_lite_color_yellow: '노랑', - neo_lite_color_green: '녹색', + neo_lite_color_green: '초록', neo_lite_color_blue: '파랑', neo_lite_button_1: '버튼1', @@ -2225,7 +2225,7 @@ SPEED: 0, DURATION: 1, }, - class: 'neo_lite_line_tracer', + class: 'neo_lite_auto_driving', isNotFor: ['NeoLite'], func: (sprite, script) => { if (!script.exec_phase) { @@ -2310,7 +2310,7 @@ paramsKeyMap: { COUNT: 0, }, - class: 'neo_lite_line_tracer', + class: 'neo_lite_auto_driving', isNotFor: ['NeoLite'], func: (sprite, script) => { if (!script.exec_phase) { @@ -2360,7 +2360,7 @@ paramsKeyMap: { DIRECTION: 0, }, - class: 'neo_lite_line_tracer', + class: 'neo_lite_auto_driving', isNotFor: ['NeoLite'], func: (sprite, script) => { if (!script.exec_phase) { @@ -2392,7 +2392,7 @@ type: 'neo_lite_line_cross_reached', }, paramsKeyMap: {}, - class: 'neo_lite_line_tracer', + class: 'neo_lite_auto_driving', isNotFor: ['NeoLite'], func: (sprite, script) => { const sensorData = this.sensorValues; From 9a0559845edd51d03078c1281b3dfe9380085359 Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Sun, 13 Oct 2024 17:04:40 +0900 Subject: [PATCH 36/65] =?UTF-8?q?=EC=BD=94=EC=95=8C=EB=9D=BC=EB=B4=87=20?= =?UTF-8?q?=EC=95=A0=EB=8B=88=EB=A9=94=EC=9D=B4=EC=85=98=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=EB=A1=9C=EB=B4=87=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardwareLite/block_robotis_koalabot_lite.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/playground/blocks/hardwareLite/block_robotis_koalabot_lite.js b/src/playground/blocks/hardwareLite/block_robotis_koalabot_lite.js index 1399b83cc9..82312165de 100644 --- a/src/playground/blocks/hardwareLite/block_robotis_koalabot_lite.js +++ b/src/playground/blocks/hardwareLite/block_robotis_koalabot_lite.js @@ -3391,7 +3391,7 @@ let camera_id_for_use = 0; [Lang.Blocks.robotis_rgee, '-1'], [Lang.Blocks.robotis_kkokdu, '1'], ], - value: '1', + value: '0', fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, From f7667232f9517942c5182e74880558bba944cfaf Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Mon, 14 Oct 2024 17:27:57 +0900 Subject: [PATCH 37/65] =?UTF-8?q?lang=20:=20=EB=A7=88=EC=9D=B4=ED=81=AC?= =?UTF-8?q?=EB=A1=9C=EB=B9=84=ED=8A=B8=20=ED=83=80=EC=9D=B4=ED=8B=80?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/playground/blocks/hardware/block_microbit.js | 6 +++--- src/playground/blocks/hardware/block_microbit2.js | 4 ++-- src/playground/blocks/hardwareLite/block_microbit2_lite.js | 4 ++-- .../blocks/hardwareLite/block_microbit2ble_lite.js | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/playground/blocks/hardware/block_microbit.js b/src/playground/blocks/hardware/block_microbit.js index 412c7f88e9..e15a89f7c2 100644 --- a/src/playground/blocks/hardware/block_microbit.js +++ b/src/playground/blocks/hardware/block_microbit.js @@ -10,8 +10,8 @@ Entry.Microbit = new (class Microbit { this.url = 'http://microbit.org/ko/'; this.imageName = 'microbit.png'; this.title = { - en: 'Microbit', - ko: '마이크로비트', + en: 'Microbit V1', + ko: '마이크로비트 V1', }; this.name = 'microbit'; this.blockIds = {}; @@ -146,7 +146,7 @@ Entry.Microbit.blockMenuBlocks = [ // "microbit_radio_receive_event", //endregion microbit ]; -Entry.Microbit.getBlocks = function() { +Entry.Microbit.getBlocks = function () { return { microbit_led_toggle: { color: EntryStatic.colorSet.block.default.HARDWARE, diff --git a/src/playground/blocks/hardware/block_microbit2.js b/src/playground/blocks/hardware/block_microbit2.js index e14cbf4e39..a62a7aa359 100644 --- a/src/playground/blocks/hardware/block_microbit2.js +++ b/src/playground/blocks/hardware/block_microbit2.js @@ -179,8 +179,8 @@ Entry.Microbit2 = new (class Microbit2 { this.url = 'http://microbit.org/ko/'; this.imageName = 'microbit2.png'; this.title = { - en: 'Microbit v2', - ko: '마이크로비트 v2', + en: 'Microbit V2', + ko: '마이크로비트 V2', }; this.name = 'microbit2'; this.communicationType = 'manual'; diff --git a/src/playground/blocks/hardwareLite/block_microbit2_lite.js b/src/playground/blocks/hardwareLite/block_microbit2_lite.js index d9879cc6f2..6fa59c6f37 100644 --- a/src/playground/blocks/hardwareLite/block_microbit2_lite.js +++ b/src/playground/blocks/hardwareLite/block_microbit2_lite.js @@ -192,8 +192,8 @@ const EVENT_INTERVAL = 150; this.url = 'http://microbit.org/ko/'; this.imageName = 'microbit2lite.png'; this.title = { - en: 'Microbit', - ko: '마이크로비트', + en: 'Microbit V2', + ko: '마이크로비트 V2', }; this.name = 'Microbit2lite'; this.digitalPins = [ diff --git a/src/playground/blocks/hardwareLite/block_microbit2ble_lite.js b/src/playground/blocks/hardwareLite/block_microbit2ble_lite.js index 1625c4009d..b6b9b7032e 100644 --- a/src/playground/blocks/hardwareLite/block_microbit2ble_lite.js +++ b/src/playground/blocks/hardwareLite/block_microbit2ble_lite.js @@ -160,8 +160,8 @@ const convertPresetImageToLedState = (preset) => { this.url = 'http://microbit.org/ko/'; this.imageName = 'microbit2blelite.png'; this.title = { - en: 'Microbit', - ko: '마이크로비트', + en: 'Microbit V2', + ko: '마이크로비트 V2', }; this.name = 'Microbit2BleLite'; this.functionKeys = { From 52a6e4852f3a12a7d172b3e5747c0922c1e608fd Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Mon, 14 Oct 2024 17:41:14 +0900 Subject: [PATCH 38/65] =?UTF-8?q?lang=20:=20=EB=B8=94=EB=A1=9D=EB=A9=94?= =?UTF-8?q?=EB=89=B4=20=EC=98=81=EB=AC=B8=20=EB=8B=A4=EA=B5=AD=EC=96=B4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extern/lang/en.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/extern/lang/en.js b/extern/lang/en.js index aff64eddd6..8aede946a8 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -566,11 +566,14 @@ Lang.Blocks = { ROBOID_acceleration_y: 'y acceleration', ROBOID_acceleration_z: 'z acceleration', learn_popup_title: 'Input Data', - arduino_noti_text: 'Mobile devices will be\n supported later on.', + arduino_noti_text: + 'HW connection is\nonly supported on desktop.\n \nPlease contact HW\nmanufacturer for tablet.', + arduino_lite_alert: + 'Device not found.\nPlease check if firmware\nis installed on device,\nor if PC and device are connected.', arduino_lite_reconnect: 'Retry', - arduino_lite_download_firmware: 'Download Firmware', + arduino_lite_download_firmware: 'Download firmware', arduino_lite_download_driver: 'Download Driver', - arduino_lite_connect: 'Web Connection', + arduino_lite_connect: 'Connect through web', arduino_lite_disconnect: 'Cancel', arduino_lite_guide: '• connection guide', arduino_lite_connected_noti: 'Please save the project\nwith the device selected.', @@ -579,9 +582,16 @@ Lang.Blocks = { ARDUINO_download_source: '• Entry Arduino code', ARDUINO_connected: 'Hardware connected', ARDUINO_connect: '* Connect hardware', - ARDUINO_reconnect: 'Connect Hardware', + ARDUINO_reconnect: 'Connect HW', + hardware_connect_helper: 'Help (Korean Only)', + hardware_noti_installed: 'When using connection program', + hardware_noti_not_installed: 'When using web browser', + hardware_device_name_title: 'Name:', + hardware_device_name_content: 'None', + hardware_program_download: 'Download program', + hardware_connected_noti: 'Please check connection program.', ROBOT_reconnect: 'Connect Robot', - ARDUINO_open_connector: 'Open Connector', + ARDUINO_open_connector: 'Open program', ARDUINO_cloud_pc_connector: 'Connect to Cloud PC', CALC_get_x_coordinate: 'X Coordinate', CALC_get_y_coordinate: 'Y Coordinate', From 5afc0f6f78333e3fca35d2e68e737e3675de244a Mon Sep 17 00:00:00 2001 From: hksong Date: Wed, 16 Oct 2024 10:10:24 +0900 Subject: [PATCH 39/65] =?UTF-8?q?=EC=97=90=EC=9D=B4=EB=9F=AD=EC=8A=A4=20?= =?UTF-8?q?=ED=85=8C=ED=81=AC=EB=8B=89=20=ED=8C=8C=EC=9B=8C,=20=EC=9D=BC?= =?UTF-8?q?=EB=B0=98=20=EC=8B=A0=EA=B7=9C=20=EB=B8=94=EB=A1=9D=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_alux_technic.js | 3990 +++++++++++++++++ 1 file changed, 3990 insertions(+) create mode 100644 src/playground/blocks/hardware/block_alux_technic.js diff --git a/src/playground/blocks/hardware/block_alux_technic.js b/src/playground/blocks/hardware/block_alux_technic.js new file mode 100644 index 0000000000..f5113ec881 --- /dev/null +++ b/src/playground/blocks/hardware/block_alux_technic.js @@ -0,0 +1,3990 @@ +'use strict'; + +Entry.ProboTechnic = { + id: ['63.2', '63.3'], // 파워: 63.2, 일반: 63.3 + name: 'ProboTechnic', + url: 'https://www.aluxonline.com', + imageName: 'ProboConnect.png', + blockIndex: 0, + title: { + ko: '프로보테크닉', + en: 'ProboTechnic' + }, + Color: [ + [13, 37], // 빨강 + [38, 62], // 초록 + [63, 87], // 파랑 + [88, 112], // 노랑 + [113, 137], // 검정 + [138, 162] // 하양 + ], + /** + * 48 = 1*3*4*4: 32분음표 + * 96 = 2*3*4*4: 16분음표 + * 144 = 3*3*4*4: 점16분음표 + * 64 = 2*2*4*4: 16분음표 스타카토 + * 192 = 4*3*4*4: 8분음표 + * 288 = 6*3*4*4: 점8분음표 + * 128 = 4*2*4*4: 8분음표 스타카토 + * 384 = 8*3*4*4: 4분음표 + * 576 = 12*3*4*4: 점4분음표 + * 256 = 8*2*4*4: 4분음표 스타카토 + * 768 = 16*3*4*4: 2분음표 + * 1152 = 24*3*4*4: 점2분음표 + * 512 = 16*2*4*4: 2분음표 스타카토 + * 1536 = 32*3*4*4: 온음표 + **/ + Note:{ + n32 : 48, + n16 : 96, n16d: 144, n16t: 64, + n8 : 192, n8d : 288, n8t : 128, + n4 : 384, n4d : 576, n4t : 256, + n2 : 768, n2d : 1152, n2t : 512, + n1 : 1536 + }, + + RGB_LED:{ + red : 1, //RED ON + red1: 2, //RED 0.05 ON -> OFF 반복 + red2: 3, //RED 0.1 ON -> OFF 반복 + red3: 4, //RED 0.2 ON -> OFF 반복 + red4: 5, //RED 0.5 ON -> OFF 반복 + red5: 6, //RED 1 ON -> OFF 반복 + _red1: 7, //RED 0.05 OFF -> ON 반복 + _red2: 8, //RED 0.1 OFF -> ON 반복 + _red3: 9, //RED 0.2 OFF -> ON 반복 + _red4: 10, //RED 0.5 OFF -> ON 반복 + _red5: 11, //RED 1 OFF -> ON 반복 + + yellow: 12, //YELLOW ON + yellow1: 13, //YELLOW 0.05 ON -> OFF 반복 + yellow2: 14, //YELLOW 0.1 ON -> OFF 반복 + yellow3: 15, //YELLOW 0.2 ON -> OFF 반복 + yellow4: 16, //YELLOW 0.5 ON -> OFF 반복 + yellow5: 17, //YELLOW 1 ON -> OFF 반복 + _yellow1: 18, //YELLOW 0.05 OFF -> ON 반복 + _yellow2: 19, //YELLOW 0.1 OFF -> ON 반복 + _yellow3: 20, //YELLOW 0.2 OFF -> ON 반복 + _yellow4: 21, //YELLOW 0.5 OFF -> ON 반복 + _yellow5: 22, //YELLOW 1 OFF -> ON 반복 + + green : 23, //GREEN ON + green1: 24, //GREEN 0.05 ON -> OFF 반복 + green2: 25, //GREEN 0.1 ON -> OFF 반복 + green3: 26, //GREEN 0.2 ON -> OFF 반복 + green4: 27, //GREEN 0.5 ON -> OFF 반복 + green5: 28, //GREEN 1 ON -> OFF 반복 + _green1: 29, //GREEN 0.05 OFF -> ON 반복 + _green2: 30, //GREEN 0.1 OFF -> ON 반복 + _green3: 31, //GREEN 0.2 OFF -> ON 반복 + _green4: 32, //GREEN 0.5 OFF -> ON 반복 + _green5: 33, //GREEN 1 OFF -> ON 반복 + + cyan : 34, //CYAN ON + cyan1: 35, //CYAN 0.05 ON -> OFF 반복 + cyan2: 36, //CYAN 0.1 ON -> OFF 반복 + cyan3: 37, //CYAN 0.2 ON -> OFF 반복 + cyan4: 38, //CYAN 0.5 ON -> OFF 반복 + cyan5: 39, //CYAN 1 ON -> OFF 반복 + _cyan1: 40, //CYAN 0.05 OFF -> ON 반복 + _cyan2: 41, //CYAN 0.1 OFF -> ON 반복 + _cyan3: 42, //CYAN 0.2 OFF -> ON 반복 + _cyan4: 43, //CYAN 0.5 OFF -> ON 반복 + _cyan5: 44, //CYAN 1 OFF -> ON 반복 + + blue: 45, //BLUE ON + blue1: 46, //BLUE 0.05 ON -> OFF 반복 + blue2: 47, //BLUE 0.1 ON -> OFF 반복 + blue3: 48, //BLUE 0.2 ON -> OFF 반복 + blue4: 49, //BLUE 0.5 ON -> OFF 반복 + blue5: 50, //BLUE 1 ON -> OFF 반복 + _blue1: 51, //BLUE 0.05 OFF -> ON 반복 + _blue2: 52, //BLUE 0.1 OFF -> ON 반복 + _blue3: 53, //BLUE 0.2 OFF -> ON 반복 + _blue4: 54, //BLUE 0.5 OFF -> ON 반복 + _blue5: 55, //BLUE 1 OFF -> ON 반복 + + magenta: 56, //MAGENTA ON + magenta1: 57, //MAGENTA 0.05 ON -> OFF 반복 + magenta2: 58, //MAGENTA 0.1 ON -> OFF 반복 + magenta3: 59, //MAGENTA 0.2 ON -> OFF 반복 + magenta4: 60, //MAGENTA 0.5 ON -> OFF 반복 + magenta5: 61, //MAGENTA 1 ON -> OFF 반복 + _magenta1: 62, //MAGENTA 0.05 OFF -> ON 반복 + _magenta2: 63, //MAGENTA 0.1 OFF -> ON 반복 + _magenta3: 64, //MAGENTA 0.2 OFF -> ON 반복 + _magenta4: 65, //MAGENTA 0.5 OFF -> ON 반복 + _magenta5: 66, //MAGENTA 1 OFF -> ON 반복 + + white: 67, //WHITE ON + white1: 68, //WHITE 0.05 ON -> OFF 반복 + white2: 69, //WHITE 0.1 ON -> OFF 반복 + white3: 70, //WHITE 0.2 ON -> OFF 반복 + white4: 71, //WHITE 0.5 ON -> OFF 반복 + white5: 72, //WHITE 1 ON -> OFF 반복 + _white1: 73, //WHITE 0.05 OFF -> ON 반복 + _white2: 74, //WHITE 0.1 OFF -> ON 반복 + _white3: 75, //WHITE 0.2 OFF -> ON 반복 + _white4: 76, //WHITE 0.5 OFF -> ON 반복 + _white5: 77, //WHITE 1 OFF -> ON 반복 + + rgbrnd1: 78, //RANDOM 1 + rgbrnd2: 79, //RANDOM 2 + + red_d: 90, //RED + yellow_d: 91, //YELLOW + green_d: 92, //GREEN + cyan_d: 93, //CYAN + blue_d: 94, //BLUE + magenta_d: 95, //MAGENTA + white_d: 96, //WHITE + + rgboff: 100 //RGB LED OFF + }, + + Melody: [0, 35391, 33405, 31530, 29760, 28090, 26513, 25025, 23621, 22295, 21044, 19863, 18748], + Melody_S: [0, 35391, 31530, 28090, 26513, 23621, 21044, 18748], + + Track:[ + [0x451F, 0x3D95, 0x36DD, 0x33C8, 0x2E22, 0x291A, 0x249E], // Start : size 7, + [0x228F, 0x249E, 0x291A, 0x2E22, 0x33C8, 0x36DD, 0x3D95, 0x451F], // End : size 8, + [0x228F, 0x1B6E, 0x1711, 0x1147 ], // LevelUp : size 4, + [0x1147, 0x1711, 0x1B6E, 0x228F ] // LevelDwon : size 4, + ], + + Infinite_Buff: { + AA1: 0, AA2: 0, AA3: 0, AA4: 0 + }, + Infinite_Count: { + AA1: 0, AA2: 0, AA3: 0, AA4: 0 + }, + Infinite_Start: { + AA1: 0, AA2: 0, AA3: 0, AA4: 0 + }, + + SenserSet:{ + AA1: 0, AA2: 0, AA3: 0, AA4: 0 + }, + + InputData: { + Analog: { + AA1: 0, AA2: 0, AA3: 0, AA4: 0 + }, + Digital: { + A1: 0, A2: 0, A3: 0, A4: 0, + FEA1: 0, FEA2: 0, FEA3: 0, FEA4: 0, + REA1: 0, REA2: 0, REA3: 0, REA4: 0, + BEA1: 0, BEA2: 0, BEA3: 0, BEA4: 0 + }, + Remote: { + R_1: 0, R_2: 0, R_3: 0, R_4: 0, + R_5: 0, R_6: 0, R_7: 0, R_8: 0, + R_L1: 0, R_L2: 0, R_R1: 0, R_R2: 0 + }, + EEPROM: { + EC: 0, + EEPR2: 0, EEPR1: 0 + }, + Infinite: { + ROTATION_1: 0, ROTATION_2: 0, ROTATION_3: 0, ROTATION_4: 0 + }, + Acceler:{ + AXIS_X1: 0, AXIS_X2: 0, AXIS_X3: 0, AXIS_X4: 0, + AXIS_Y1: 0, AXIS_Y2: 0, AXIS_Y3: 0, AXIS_Y4: 0, + AXIS_Z1: 0, AXIS_Z2: 0, AXIS_Z3: 0, AXIS_Z4: 0 + } + }, + RemoteData: { + B1: 0, B2: 0, B3: 0, B4: 0, + Servo1: 0, Servo2: 0, Servo3: 0, Servo4: 0, + DC1: 0, DC2: 0, DC3: 0, DC4: 0, + MEL2: 0, MEL1: 0, + FND: 100, + EEPR4: 0, EEPR3: 0, EEPR2: 0, EEPR1: 0, + ASET2: 0, ASET1: 0 + }, + EdgeFlag: { + FEA1: 0, FEA2: 0, FEA3: 0, FEA4: 0, + REA1: 0, REA2: 0, REA3: 0, REA4: 0, + BEA1: 0, BEA2: 0, BEA3: 0, BEA4: 0 + }, + EEPROM: { + EEPROM_Buff: 0, + EEPROM_Count: 0 + }, + + setZero: function() { + for (let key in this.EdgeFlag) { + this.EdgeFlag[key] = 0; + } + for (let key in this.RemoteData) { + Entry.hw.sendQueue[key] = this.RemoteData[key]; + } + for (let key in this.SenserSet) { + this.SenserSet[key] = 0; + } + Entry.hw.update(); + }, + afterReceive(pd) { + if(Entry.engine.isState('run')) { + Entry.engine.fireEvent('event_remote_input'); + Entry.engine.fireEvent('event_digital_input'); + } + }, + convertDropdownRemote(value) { + switch (value) { + case '1': + case 'R_1': + return 'R_1'; + case '2': + case 'R_2': + return 'R_2'; + case '3': + case 'R_3': + return 'R_3'; + case '4': + case 'R_4': + return 'R_4'; + case '5': + case 'R_5': + return 'R_5'; + case '6': + case 'R_6': + return 'R_6'; + case '7': + case 'R_7': + return 'R_7'; + case '8': + case 'R_8': + return 'R_8'; + case '9': + case 'R_L1': + return 'R_L1'; + case '10': + case 'R_L2': + return 'R_L2'; + case '11': + case 'R_R1': + return 'R_R1'; + case '12': + case 'R_R2': + return 'R_R2'; + default: + return Lang.template.value_error; + } + }, + convertDropdownDigital(value) { + switch (value) { + case '1': + case 'A1': + return 'A1'; + case '2': + case 'A2': + return 'A2'; + case '3': + case 'A3': + return 'A3'; + case '4': + case 'A4': + return 'A4'; + case '5': + case 'FEA1': + return 'FEA1'; + case '6': + case 'FEA2': + return 'FEA2'; + case '7': + case 'FEA3': + return 'FEA3'; + case '8': + case 'FEA4': + return 'FEA4'; + case '9': + case 'REA1': + return 'REA1'; + case '10': + case 'REA2': + return 'REA2'; + case '11': + case 'REA3': + return 'REA3'; + case '12': + case 'REA4': + return 'REA4'; + case '13': + case 'BEA1': + return 'BEA1'; + case '14': + case 'BEA2': + return 'BEA2'; + case '15': + case 'BEA3': + return 'BEA3'; + case '16': + case 'BEA4': + return 'BEA4'; + default: + return Lang.template.value_error; + } + }, + convertDropdownAnalog(value) { + switch (value) { + case '1': + case 'AA1': + return 'AA1'; + case '2': + case 'AA2': + return 'AA2'; + case '3': + case 'AA3': + return 'AA3'; + case '4': + case 'AA4': + return 'AA4'; + default: + return Lang.template.value_error; + } + }, + convertDropdownAxis(value, axis) { + switch (value) { + case '1': + case 'AA1': + return "AXIS_" + axis + "1"; + case '2': + case 'AA2': + return "AXIS_" + axis + "2"; + case '3': + case 'AA3': + return "AXIS_" + axis + "3"; + case '4': + case 'AA4': + return "AXIS_" + axis + "4"; + default: + return Lang.template.value_error; + } + }, + convertDropdownSensor1(value) { + switch (value) { + case '1': + case Lang.template.item_switch: + return 1; + case '2': + case Lang.template.item_infrared: + return 2; + case '3': + case Lang.template.item_magnetic: + return 3; + case '4': + case Lang.template.item_rotation: + return 4; + case '5': + case Lang.template.item_color: + return 5; + case '6': + case Lang.template.item_acceleration: + return 6; + case '7': + case Lang.template.item_ultrasonic: + return 7; + case '8': + case Lang.template.item_heart_rate: + return 8; + case '9': + case Lang.template.item_illuminance: + return 9; + case '10': + case Lang.template.item_sound: + return 10; + case '11': + case Lang.template.item_tilt: + return 11; + case '12': + case Lang.template.item_pressure: + return 12; + case '13': + case Lang.template.item_multi_touch: + return 13; + case '14': + case Lang.template.item_compass: + return 14; + case '15': + case Lang.template.item_3acceleration: + return 15; + case '16': + case Lang.template.item_multi_switch: + return 16; + default: + return Lang.template.value_error; + } + }, + convertDropdownSensor2(value) { + switch (value) { + case '1': + case Lang.template.item_infinite_rotation: + return 1; + case '2': + case Lang.template.item_compass: + return 2; + default: + return Lang.template.value_error; + } + }, + convertDropdownKey(value) { + switch (value) { + case '1': + case Lang.template.item_key_1: + return 0; + case '2': + case Lang.template.item_key_2: + return 1; + case '3': + case Lang.template.item_key_3: + return 2; + case '4': + case Lang.template.item_key_4: + return 3; + case '5': + case Lang.template.item_key_5: + return 4; + case '6': + case Lang.template.item_key_6: + return 5; + case '7': + case Lang.template.item_key_7: + return 6; + case '8': + case Lang.template.item_key_8: + return 7; + default: + return Lang.template.value_error; + } + }, + convertDropdownOnOff(value) { + switch (value) { + case '0': + case Lang.template.item_off: + return 0; + case '1': + case Lang.template.item_on: + return 1; + default: + return Lang.template.value_error; + } + }, + convertDropdownDC(value) { + switch (value) { + case '1': + case 'DC1': + return 'DC1'; + case '2': + case 'DC2': + return 'DC2'; + case '3': + case 'DC3': + return 'DC3'; + case '4': + case 'DC4': + return 'DC4'; + case '5': + case 'DC5': + return 'DC5'; + case '6': + case 'DC6': + return 'DC6'; + case '7': + case 'DC7': + return 'DC7'; + default: + return Lang.template.value_error; + } + }, + convertDropdownServo(value) { + switch (value) { + case '1': + case 'Servo1': + return 'Servo1'; + case '2': + case 'Servo2': + return 'Servo2'; + case '3': + case 'Servo3': + return 'Servo3'; + case '4': + case 'Servo4': + return 'Servo4'; + default: + return Lang.template.value_error; + } + }, + convertDropdownPort(value) { + switch (value) { + case '1': + case 'B1': + return 'B1'; + case '2': + case 'B2': + return 'B2'; + case '3': + case 'B3': + return 'B3'; + case '4': + case 'B4': + return 'B4'; + default: + return Lang.template.value_error; + } + }, + convertDropdownSensorTransfer(value) { + switch (value) { + case '1': + case Lang.template.item_value: + return 1; + case '2': + case Lang.template.item_angle: + return 2; + case '3': + case Lang.template.item_absolute_angle: + return 3; + case '4': + case Lang.template.item_number_of_rotations: + return 4; + default: + return Lang.template.value_error; + } + }, + convertDropdownPitch(pitch) { + // 배열의 인덱스 1번부터 음표 + if (typeof(pitch) === 'number') { + const index = (pitch % 12) + 1; + let value = 0; + if (36 <= pitch && pitch <= 47) + value = Entry.ProboTechnic.Melody[index]; + else if (48 <= pitch && pitch <= 59) + value = Entry.ProboTechnic.Melody[index] >> 1; + else if (60 <= pitch && pitch <= 71) + value = Entry.ProboTechnic.Melody[index] >> 2; + else if (72 <= pitch && pitch <= 83) + value = Entry.ProboTechnic.Melody[index] >> 3; + else + value = Entry.ProboTechnic.Melody[0]; + return value; + } else { + return Lang.template.value_error; + } + }, + convertDropdownNote(value) { + switch (value) { + case '1': + case Lang.template.item_note_whole: + return 'n1'; + case '2': + case Lang.template.item_note_half: + return 'n2'; + case '4': + case Lang.template.item_note_quarter: + return 'n4'; + case '8': + case Lang.template.item_note_eighth: + return 'n8'; + case '16': + case Lang.template.item_note_sixteenth: + return 'n16'; + case '32': + case Lang.template.item_note_thirty_second: + return 'n32'; + default: + return Lang.template.value_error; + } + }, + convertDropdownMelody(value) { + switch (value) { + case '1': + case Lang.template.item_melody_start: + return 0; + case '2': + case Lang.template.item_melody_end: + return 1; + case '3': + case Lang.template.item_melody_level_up: + return 2; + case '4': + case Lang.template.item_melody_level_down: + return 3; + default: + return Lang.template.value_error; + } + }, + convertDropdownColor1(value) { + + switch (value) { + case '1': + case Lang.template.item_color_red: + return 0; + case '2': + case Lang.template.item_color_green: + return 1; + case '3': + case Lang.template.item_color_blue: + return 2; + case '4': + case Lang.template.item_color_yellow: + return 3; + case '5': + case Lang.template.item_color_black: + return 4; + case '6': + case Lang.template.item_color_white: + return 5; + default: + return Lang.template.value_error; + } + }, + convertDropdownColor2(value) { + switch (value) { + case '1': + case Lang.template.item_color_red: + return this.RGB_LED.red; + case '2': + case Lang.template.item_color_green: + return this.RGB_LED.green; + case '3': + case Lang.template.item_color_blue: + return this.RGB_LED.blue; + case '4': + case Lang.template.item_color_cyan: + return this.RGB_LED.cyan; + case '5': + case Lang.template.item_color_magenta: + return this.RGB_LED.magenta; + case '6': + case Lang.template.item_color_yellow: + return this.RGB_LED.yellow; + case '7': + case Lang.template.item_color_white: + return this.RGB_LED.white; + default: + return Lang.template.value_error; + } + } +}; + +Entry.ProboTechnic.setLanguage = function() { + return { + ko: { + template: { + value_error: '값 오류', + item_switch: '스위치', + item_infrared: '적외선', + item_magnetic: '자석', + item_rotation: '회전', + item_color: '컬러', + item_acceleration: '가속도', + item_ultrasonic: '초음파', + item_heart_rate: '심박', + item_illuminance: '조도', + item_temperature: '온도', + item_sound: '소리', + item_tilt: '기울기', + item_pressure: '압력', + item_multi_touch: '멀티키', + item_compass: '나침반', + item_3acceleration: '3가속', + item_multi_switch: '분배기', + item_infinite_rotation: '무한회전', + item_color_red: '빨간색', + item_color_green: '초록색', + item_color_blue: '파란색', + item_color_cyan: '청녹색', + item_color_magenta: '자홍색', + item_color_yellow: '노란색', + item_color_black: '검정색', + item_color_white: '하얀색', + item_value: '값', + item_angle: '각도', + item_absolute_angle: '절대각도', + item_number_of_rotations: '회전 수', + item_key_1: '키1', + item_key_2: '키2', + item_key_3: '키3', + item_key_4: '키4', + item_key_5: '키5', + item_key_6: '키6', + item_key_7: '키7', + item_key_8: '키8', + item_all: '모두', + item_on: '켜기', + item_off: '끄기', + item_note_whole: '온', + item_note_half: '2분', + item_note_quarter: '4분', + item_note_eighth: '8분', + item_note_sixteenth: '16분', + item_note_thirty_second: '32분', + item_pitch_do: '도', + item_pitch_do_sharp: '도#', + item_pitch_re: '레', + item_pitch_re_sharp: '레#', + item_pitch_mi: '미', + item_pitch_fa: '파', + item_pitch_fa_sharp: '파#', + item_pitch_sol: '솔', + item_pitch_sol_sharp: '솔#', + item_pitch_ra: '라', + item_pitch_ra_sharp: '라#', + item_pitch_si: '시', + item_melody_start: '시작음', + item_melody_end: '종료음', + item_melody_level_up: '레벨 업', + item_melody_level_down: '레벨 다운', + + technic_remote_event: '%1 리모컨 %2 키를 눌렀을 때', + technic_digital_event: '%1 디지털 입력 %2 이(가) 들어왔을 때', + + technic_senser_setting: '입력포트 %1 을(를) %2 센서로 설정 %3', + + technic_remote_input: '리모컨 입력 %1', + technic_digital_input: '디지털 입력 %1', + technic_analog_input: '아날로그 입력 %1', + technic_3axis_acceler_x: '3가속도 %1의 X축', + technic_3axis_acceler_y: '3가속도 %1의 Y축', + technic_3axis_acceler_z: '3가속도 %1의 Z축', + technic_value_mapping: '%1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환', + technic_color_input_b: '컬러 센서 %1 이(가) %2 인가?', + technic_color_input_r: '컬러 센서 %1 의 색상', + technic_infinite_setting: '%1 센서 %2 을 %3 값으로 정하기 %4', + technic_infinite_mm_diameter: '%1 센서 %2 지름 %3 의 mm 값', + technic_infinite_transform_input: '%1 센서 %2 의 %3', + technic_multi_sensor: '멀티키 센서 %1의 %2', + technic_multi_switch: '분배 스위치 %1의 %2', + technic_eeprom_buffset: 'EEPROM %1 주소의 값 호출하기 %2', + technic_eeprom_address_value: 'EEPROM 주소의 값', + + technic_port_output: '출력핀 %1 을(를) %2 %3', + technic_servo_output: '서보 모터 %1 의 위치를 %2 로 이동 %3', + technic_s_dc_output: 'S 모터 %1 을(를) %2 속도로 회전 %3', + technic_dc_output: 'DC 모터 %1 을(를) %2 속도로 회전 %3', + technic_melody_note_output: '%1 을(를) %2 음표로 연주하기 %3', + technic_melody_sec_output: '%1 을(를) %2 초 동안 연주하기 %3', + technic_melody_output: '%1 을(를) 연주하기 %2', + technic_value_sec_output: '%1 값을(를) %2 초 동안 연주하기 %3', + technic_value_output: '%1 값을(를) 연주하기 %2', + technic_melody_track_output: '%1 을(를) %2초 간격으로 재생하기 %3', + technic_melody_off: '멜로디 중지 %1', + technic_rgbled_on_output: 'RGB LED %1 을(를) %2 으로 켜기 %3', + technic_rgbled_off_output: 'RGB LED %1 을(를) 끄기 %2', + technic_rgbled_dimming_output: 'RGB LED %1 을(를) %2 으로 디밍 %3', + technic_rgbled_flashing_output: 'RGB LED %1 %2 으로 %3 초 간격 %4', + technic_fnd_output: 'FND를 %1 (으)로 설정 %2', + technic_fnd_off: 'FND 끄기 %1', + technic_eeprom_write: 'EEPROM %1 주소에 %2 값 설정하기 %3' + } + }, + en: { + template: { + value_error: 'value Error', + item_switch: 'Switch', + item_infrared: 'Infrared', + item_magnetic: 'Magnetic', + item_rotation: 'Rotation', + item_color: 'Color', + item_acceleration: 'Acceleration', + item_ultrasonic: 'Ultrasonic', + item_heart_rate: 'Heart Rate', + item_illuminance: 'Illuminance', + item_temperature: 'Temperature', + item_sound: 'Sound', + item_tilt: 'Tilt', + item_pressure: 'Pressure', + item_multi_touch: 'Multi Touch', + item_compass: 'Compass', + item_3acceleration: '3Acceleration', + item_multi_switch: 'Multi Switch', + item_infinite_rotation: 'Infinite Rotation', + item_color_red: 'Red', + item_color_green: 'Green', + item_color_blue: 'Blue', + item_color_cyan: 'Cyan', + item_color_magenta: 'Magenta', + item_color_yellow: 'Yellow', + item_color_black: 'Black', + item_color_white: 'White', + item_value: 'Value', + item_angle: 'Angle', + item_absolute_angle: 'Absolute Angle', + item_number_of_rotations: 'Number of Rotations', + item_key_1: 'Key1', + item_key_2: 'Key2', + item_key_3: 'Key3', + item_key_4: 'Key4', + item_key_5: 'Key5', + item_key_6: 'Key6', + item_key_7: 'Key7', + item_key_8: 'Key8', + item_all: 'All', + item_on: 'On', + item_off: 'Off', + item_note_whole: 'Whole', + item_note_half: 'Half', + item_note_quarter: 'Quarter', + item_note_eighth: 'Eighth', + item_note_sixteenth: 'Sixteenth', + item_note_thirty_second: 'Thirty-Second', + item_pitch_do: 'do', + item_pitch_do_sharp: 'xdo', + item_pitch_re: 're', + item_pitch_re_sharp: 'xre', + item_pitch_mi: 'mi', + item_pitch_fa: 'fa', + item_pitch_fa_sharp: 'xfa', + item_pitch_sol: 'sol', + item_pitch_sol_sharp: 'xsol', + item_pitch_ra: 'ra', + item_pitch_ra_sharp: 'xra', + item_pitch_si: 'si', + item_melody_start: 'Start', + item_melody_end: 'End', + item_melody_level_up: 'Level up', + item_melody_level_down: 'Level down', + + technic_remote_event: '%1 When %2 remote control key pressed', + technic_digital_event: '%1 When %2 digital pin input', + + technic_senser_setting: 'Set input port %1 to %2 sensor %3', + + technic_remote_input: 'Remote control %1', + technic_digital_input: 'Read digital pin %1', + technic_analog_input: 'Read analog pin %1', + technic_3axis_acceler_x: '3acceleration %1 and X', + technic_3axis_acceler_y: '3acceleration %1 and Y', + technic_3axis_acceler_z: '3acceleration %1 and Z', + technic_value_mapping: '%1 to value %2 ~ %3 change %4 ~ %5', + technic_color_input_b: 'Is color sensor %1 %2 ?', + technic_color_input_r: 'Color of color sensor %1', + technic_infinite_setting: 'Set %1 sensor %2 to %3 value %4', + technic_infinite_mm_diameter: 'The move distance(in mm) when the %1 sensor %2 is %3 mm in diameter', + technic_infinite_transform_input: '%1 rotation sensor %2 to %3', + technic_multi_sensor: 'Multi sensor %1 key %2', + technic_multi_switch: 'A key number of the multi-switch sensor %1 = %2', + technic_eeprom_buffset:'Calling the value of EEPROM %1 address', + technic_eeprom_address_value: 'Value of EEPROM address', + + technic_dc_output: 'DC motor %1 velocity %2 %3', + technic_servo_output: 'Servo motor %1 position %2 %3', + technic_s_dc_output: 'Servo motor %1 speed %2 %3', + technic_port_output: 'Set digital pint %1 as %2 %3', + technic_melody_note_output: 'Play key %1 for %2 note %3', + technic_melody_sec_output: 'Play key %1 for %2 secs %3', + technic_melody_output: 'Play key %1 %2', + technic_value_sec_output: 'Play value %1 for %2 secs %3', + technic_value_output: 'Play value %1 %2', + technic_melody_track_output: 'Play sound %1 for %2 secs %3', + technic_melody_off: 'Stop tone %1', + technic_rgbled_on_output: 'Turn on RGB LED %1 to %2 %3', + technic_rgbled_off_output: 'Turn off RGB LED %1 %2', + technic_rgbled_dimming_output: 'Dimming RGB LED %1 to %2 %3', + technic_rgbled_flashing_output: 'RGB LED %1 Blinking %2 at %3 second intervals %4', + technic_fnd_output: 'Set FND to %1 %2', + technic_fnd_off: 'Turn off FND %1', + technic_eeprom_write: 'Set EEPROM %1 address to %2 %3' + } + } + }; +}; + +Entry.ProboTechnic.blockMenuBlocks = [ + 'technic_dropdown_remote', + 'technic_dropdown_digital', + 'technic_dropdown_analog', + 'technic_dropdown_sensor_1', + 'technic_dropdown_sensor_2', + 'technic_dropdown_color_1', + 'technic_dropdown_color_2', + 'technic_dropdown_sensor_transfer', + 'technic_dropdown_key', + 'technic_dropdown_dc_1_all', + 'technic_dropdown_servo_1_4', + 'technic_dropdown_port_1_4', + 'technic_dropdown_on_off', + 'technic_dropdown_velocity', + 'technic_dropdown_servo_position', + 'technic_dropdown_note', + 'technic_dropdown_time_1', + 'technic_dropdown_time_2', + 'technic_dropdown_time_3', + 'technic_dropdown_pitch', + 'technic_dropdown_melody', + + //event + 'technic_remote_event', + 'technic_digital_event', + + //input + 'technic_senser_setting', + 'technic_remote_input', + 'technic_digital_input', + 'technic_analog_input', + //'technic_3axis_acceler_x', // 테크닉 에서 사용하지 않음 + //'technic_3axis_acceler_y', // 테크닉 에서 사용하지 않음 + //'technic_3axis_acceler_z', // 테크닉 에서 사용하지 않음 + 'technic_value_mapping', + 'technic_color_input_b', + 'technic_color_input_r', + 'technic_infinite_setting', + 'technic_infinite_mm_diameter', + 'technic_infinite_transform_input', + //'technic_multi_sensor', // 테크닉 에서 사용하지 않음 + 'technic_multi_switch', + 'technic_eeprom_buffset', + 'technic_eeprom_address_value', + + //output + 'technic_dc_output', + 'technic_servo_output', + //'technic_s_dc_output', // 테크닉 에서 사용하지 않음 + 'technic_port_output', + 'technic_melody_note_output', + 'technic_melody_sec_output', + 'technic_melody_output', + 'technic_value_sec_output', + 'technic_value_output', + 'technic_melody_track_output', + 'technic_melody_off', + 'technic_rgbled_on_output', + 'technic_rgbled_off_output', + 'technic_rgbled_flashing_output', + 'technic_rgbled_dimming_output', + //'technic_fnd_output', // 테크닉 에서 사용하지 않음 + //'technic_fnd_off', // 테크닉 에서 사용하지 않음 + // EEPROM + 'technic_eeprom_write' +]; + +// 블록 생성 +Entry.ProboTechnic.getBlocks = function() { + return { + ///======================================================================================== + /// Dropdown block + ///======================================================================================== + technic_dropdown_remote: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['R_1', '1'], + ['R_2', '2'], + ['R_3', '3'], + ['R_4', '4'], + ['R_5', '5'], + ['R_6', '6'], + ['R_7', '7'], + ['R_8', '8'], + ['R_L1', '9'], + ['R_L2', '10'], + ['R_R1', '11'], + ['R_R2', '12'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_digital: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['A1', '1'], + ['A2', '2'], + ['A3', '3'], + ['A4', '4'], + ['FEA1', '5'], + ['FEA2', '6'], + ['FEA3', '7'], + ['FEA4', '8'], + ['REA1', '9'], + ['REA2', '10'], + ['REA3', '11'], + ['REA4', '12'], + ['BEA1', '13'], + ['BEA2', '14'], + ['BEA3', '15'], + ['BEA4', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_analog: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['AA1', '1'], + ['AA2', '2'], + ['AA3', '3'], + ['AA4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_sensor_1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_switch, '1'], + [Lang.template.item_infrared, '2'], + [Lang.template.item_magnetic, '3'], + [Lang.template.item_rotation, '4'], + [Lang.template.item_color, '5'], + //[Lang.template.item_acceleration, '6'], // 테크닉 에서 사용하지 않음 + [Lang.template.item_ultrasonic, '7'], + [Lang.template.item_heart_rate, '8'], + [Lang.template.item_illuminance, '9'], + [Lang.template.item_sound, '10'], + [Lang.template.item_tilt, '11'], + [Lang.template.item_pressure, '12'], + //[Lang.template.item_multi_touch, '13'], // 테크닉 에서 사용하지 않음 + //[Lang.template.item_compass, '14'], // 테크닉 에서 사용하지 않음 + //[Lang.template.item_3acceleration, '15'], // 테크닉에서 사용하지 않음 + [Lang.template.item_multi_switch, '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_sensor_2: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_infinite_rotation, '1'], + //[Lang.template.item_compass, '2'], // 테크닉 에서 사용하지 않음 + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_color_1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_color_red, '1'], + [Lang.template.item_color_green, '2'], + [Lang.template.item_color_blue, '3'], + [Lang.template.item_color_yellow, '4'], + [Lang.template.item_color_black, '5'], + [Lang.template.item_color_white, '6'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_color_2: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_color_red, '1'], + [Lang.template.item_color_green, '2'], + [Lang.template.item_color_blue, '3'], + [Lang.template.item_color_cyan, '4'], + [Lang.template.item_color_magenta, '5'], + [Lang.template.item_color_yellow, '6'], + [Lang.template.item_color_white, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_sensor_transfer: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_value, '1'], + [Lang.template.item_angle, '2'], + [Lang.template.item_absolute_angle, '3'], + [Lang.template.item_number_of_rotations, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_key_1, '1'], + [Lang.template.item_key_2, '2'], + [Lang.template.item_key_3, '3'], + [Lang.template.item_key_4, '4'], + [Lang.template.item_key_5, '5'], + [Lang.template.item_key_6, '6'], + [Lang.template.item_key_7, '7'], + [Lang.template.item_key_8, '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_dc_1_all: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', 'DC1'], + ['2', 'DC2'], + ['3', 'DC3'], + ['4', 'DC4'], + ['1,2', 'DC5'], + ['3,4', 'DC6'], + [Lang.template.item_all, 'DC7'], + ], + value: 'DC1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_servo_1_4: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', 'Servo1'], + ['2', 'Servo2'], + ['3', 'Servo3'], + ['4', 'Servo4'], + ], + value: 'Servo1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_velocity: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['20', '20'], + ['15', '15'], + ['10', '10'], + ['5', '5'], + ['0', '0'], + ['-5', '-5'], + ['-10', '-10'], + ['-15', '-15'], + ['-20', '-20'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_servo_position: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['20', '20'], + ['40', '40'], + ['60', '60'], + ['80', '80'], + ['100', '100'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_port_1_4: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', 'B1'], + ['2', 'B2'], + ['3', 'B3'], + ['4', 'B4'], + ], + value: 'B1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_on_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_on, '1'], + [Lang.template.item_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_note: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_note_whole, '1'], + [Lang.template.item_note_half, '2'], + [Lang.template.item_note_quarter, '4'], + [Lang.template.item_note_eighth, '8'], + [Lang.template.item_note_sixteenth, '16'], + [Lang.template.item_note_thirty_second, '32'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_time_1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_time_2: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_time_3: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.05', '0.05'], + ['0.1', '0.1'], + ['0.2', '0.2'], + ['0.5', '0.5'], + ['1', '1'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + technic_dropdown_pitch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'DropdownExtra', + options: [ + [Lang.template.item_pitch_do + ' (36)', '36'], + [Lang.template.item_pitch_do_sharp + ' (37)', '37'], + [Lang.template.item_pitch_re + ' (38)', '38'], + [Lang.template.item_pitch_re_sharp + ' (39)', '39'], + [Lang.template.item_pitch_mi + ' (40)', '40'], + [Lang.template.item_pitch_fa + ' (41)', '41'], + [Lang.template.item_pitch_fa_sharp + ' (42)', '42'], + [Lang.template.item_pitch_sol + ' (43)', '43'], + [Lang.template.item_pitch_sol_sharp + ' (44)', '44'], + [Lang.template.item_pitch_ra + ' (45)', '45'], + [Lang.template.item_pitch_ra_sharp + ' (46)', '46'], + [Lang.template.item_pitch_si + ' (47)', '47'], + + [Lang.template.item_pitch_do + ' (48)', '48'], + [Lang.template.item_pitch_do_sharp + ' (49)', '49'], + [Lang.template.item_pitch_re + ' (50)', '50'], + [Lang.template.item_pitch_re_sharp + ' (51)', '51'], + [Lang.template.item_pitch_mi + ' (52)', '52'], + [Lang.template.item_pitch_fa + ' (53)', '53'], + [Lang.template.item_pitch_fa_sharp + ' (54)', '54'], + [Lang.template.item_pitch_sol + ' (55)', '55'], + [Lang.template.item_pitch_sol_sharp + ' (56)', '56'], + [Lang.template.item_pitch_ra + ' (57)', '57'], + [Lang.template.item_pitch_ra_sharp + ' (58)', '58'], + [Lang.template.item_pitch_si + ' (59)', '59'], + + [Lang.template.item_pitch_do + ' (60)', '60'], + [Lang.template.item_pitch_do_sharp + ' (61)', '61'], + [Lang.template.item_pitch_re + ' (62)', '62'], + [Lang.template.item_pitch_re_sharp + ' (63)', '63'], + [Lang.template.item_pitch_mi + ' (64)', '64'], + [Lang.template.item_pitch_fa + ' (65)', '65'], + [Lang.template.item_pitch_fa_sharp + ' (66)', '66'], + [Lang.template.item_pitch_sol + ' (67)', '67'], + [Lang.template.item_pitch_sol_sharp + ' (68)', '68'], + [Lang.template.item_pitch_ra + ' (69)', '69'], + [Lang.template.item_pitch_ra_sharp + ' (70)', '70'], + [Lang.template.item_pitch_si + ' (71)', '71'], + + [Lang.template.item_pitch_do + ' (72)', '72'], + [Lang.template.item_pitch_do_sharp + ' (73)', '73'], + [Lang.template.item_pitch_re + ' (74)', '74'], + [Lang.template.item_pitch_re_sharp + ' (75)', '75'], + [Lang.template.item_pitch_mi + ' (76)', '76'], + [Lang.template.item_pitch_fa + ' (77)', '77'], + [Lang.template.item_pitch_fa_sharp + ' (78)', '78'], + [Lang.template.item_pitch_sol + ' (79)', '79'], + [Lang.template.item_pitch_sol_sharp + ' (80)', '80'], + [Lang.template.item_pitch_ra + ' (81)', '81'], + [Lang.template.item_pitch_ra_sharp + ' (82)', '82'], + [Lang.template.item_pitch_si + ' (83)', '83'], + ], + value: '60', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + const value = script.getField('PARAM0'); + return value; + } + }, + technic_dropdown_melody: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_melody_start, '1'], + [Lang.template.item_melody_end, '2'], + [Lang.template.item_melody_level_up, '3'], + [Lang.template.item_melody_level_down, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + ///======================================================================================== + /// Event block + ///======================================================================================== + // 리모컨 R_1 키를 눌렀을 때 + technic_remote_event: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardware.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'technic_dropdown_remote', + }, + ], + type: 'technic_remote_event', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'event', + isNotFor: ['ProboTechnic'], + event: 'event_remote_input', + func(sprite, script) { + const btn = Entry.ProboTechnic.convertDropdownRemote( + script.getStringValue('PARAM1') + ); + if (Entry.hw.portData.InputData.Remote[btn] == 1 ) { + return script.callReturn(); + } + return this.die(); + }, + }, + // 디지털 입력 A1 이(가) 들어왔을 때 + technic_digital_event: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardware.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'technic_dropdown_digital', + }, + ], + type: 'technic_digital_event', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'event', + isNotFor: ['ProboTechnic'], + event: 'event_digital_input', + func(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownDigital( + script.getStringValue('PARAM1') + ); + switch(port) { + case 'FEA1': + case 'FEA2': + case 'FEA3': + case 'FEA4': + case 'REA1': + case 'REA2': + case 'REA3': + case 'REA4': + case 'BEA1': + case 'BEA2': + case 'BEA3': + case 'BEA4': + if (Entry.hw.portData.InputData.Digital[port] == 1) { + if (Entry.ProboTechnic.EdgeFlag[port] == 0) { + Entry.ProboTechnic.EdgeFlag[port] = 1; + return script.callReturn(); + } + } else { + Entry.ProboTechnic.EdgeFlag[port] = 0; + } + break; + default: + if (Entry.hw.portData.InputData.Digital[port] == 1 ) { + return script.callReturn(); + } + break; + } + + return this.die(); + }, + }, + ///======================================================================================== + /// Input block + ///======================================================================================== + // 입력포트 AA1 을(를) 스위치 센서로 설정 + technic_senser_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + { + type: 'technic_dropdown_sensor_1', + }, + null, + ], + type: 'technic_senser_setting', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'setting', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const sensor = Entry.ProboTechnic.convertDropdownSensor1( + script.getStringValue('PARAM1') + ); + let index = 0; + switch (port) { + case 'AA1': + index = 0; + break; + case 'AA2': + index = 1; + break; + case 'AA3': + index = 2; + break; + case 'AA4': + index = 3; + break; + } + + let Aset = [0, 0, 0, 0]; + let value = [0, 0, 0, 0]; + + Aset[index] = sensor; + for (let i = 0; i < 4; i++) { + switch (Aset[i]) { + case 1: // 스위치 + case 2: // 적외선 + case 3: // 자석 + case 16: // 분배기 + value[i] = 1; + break; + case 4: // 회전 + case 9: // 조도 + case 7: // 초음파 + value[i] = 2; + break; + case 10: // 소리 + value[i] = 3; + break; + case 11: // 기울기 + value[i] = 4; + break; + case 12: // 압력 + value[i] = 5; + break; + case 8: // 심박 + value[i] = 6; + break; + case 5: // 컬러 + value[i] = 7; + break; + case 6: // 가속도 + value[i] = 8; + break; + case 14: // 나침반 + case 15: // 3가속 + value[i] = 9; + break; + case 13: // 멀티터치(멀티키) + value[i] = 11; + break; + } + } + + Entry.ProboTechnic.SenserSet.AA1 = value[0]; + Entry.ProboTechnic.SenserSet.AA2 = value[1]; + Entry.ProboTechnic.SenserSet.AA3 = value[2]; + Entry.ProboTechnic.SenserSet.AA4 = value[3]; + + Entry.hw.sendQueue['ASET2'] = (value[0] << 4) | value[1]; + Entry.hw.sendQueue['ASET1'] = (value[2] << 4) | value[3]; + + let fps = Entry.FPS || 60; + let timeValue = 60 / fps * 200; // 0.2초 + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + + }, + }, + // 리모컨 입력 R_1 + technic_remote_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_remote', + }, + ], + type: 'technic_remote_input', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const btn = Entry.ProboTechnic.convertDropdownRemote( + script.getStringValue('PARAM0') + ); + return Entry.hw.portData.InputData.Remote[btn] == 1 ? true : false; + }, + }, + // 디지털 입력 A1 + technic_digital_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_digital', + }, + ], + type: 'technic_digital_input', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownDigital( + script.getStringValue('PARAM0') + ); + let rt = false; + switch(port) { + case 'FEA1': + case 'FEA2': + case 'FEA3': + case 'FEA4': + case 'REA1': + case 'REA2': + case 'REA3': + case 'REA4': + case 'BEA1': + case 'BEA2': + case 'BEA3': + case 'BEA4': + if (Entry.hw.portData.InputData.Digital[port] == 1) { + if (Entry.ProboTechnic.EdgeFlag[port] == 0) { + Entry.ProboTechnic.EdgeFlag[port] = 1; + rt = true; + } + } else { + Entry.ProboTechnic.EdgeFlag[port] = 0; + } + break; + default: + rt = Entry.hw.portData.InputData.Digital[port] == 1 ? true : false; + break; + } + return rt; + }, + }, + // 아날로그 입력 AA1 + technic_analog_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + ], + type: 'technic_analog_input', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + let value = Entry.ProboTechnic.SenserSet[port] == 5 + ? 255 - Entry.hw.portData.InputData.Analog[port] + : Entry.hw.portData.InputData.Analog[port]; + return value; + }, + }, + // 3가속도 AA1 의 X축 + technic_3axis_acceler_x: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + ], + type: 'technic_3axis_acceler_x', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const axis = Entry.ProboTechnic.convertDropdownAxis( + script.getStringValue('PARAM0'), + "X" + ); + let value = (Entry.hw.portData.InputData.Acceler[axis]); + if (value & 0x80) { + value = (value - 255); + } + return Number(value / 10).toFixed(1); + }, + }, + // 3가속도 AA1의 Y축 + technic_3axis_acceler_y: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + ], + type: 'technic_3axis_acceler_y', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const axis = Entry.ProboTechnic.convertDropdownAxis( + script.getStringValue('PARAM0'), + "Y" + ); + let value = (Entry.hw.portData.InputData.Acceler[axis]); + if (value & 0x80) { + value = (value - 255); + } + return Number(value / 10).toFixed(1); + }, + }, + // 3가속도 AA1 의 Z축 + technic_3axis_acceler_z: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + ], + type: 'technic_3axis_acceler_z', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const axis = Entry.ProboTechnic.convertDropdownAxis( + script.getStringValue('PARAM0'), + "Z" + ); + let value = (Entry.hw.portData.InputData.Acceler[axis]); + if (value & 0x80) { + value = (value - 255); + } + return Number(value / 10).toFixed(1); + }, + }, + // AA1의 0 ~ 255 값을 0 ~ 100 (으)로 변환 + technic_value_mapping: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 255 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 100 ], + }, + ], + type: 'technic_value_mapping', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + PARAM3: 3, + PARAM4: 4, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const source1 = script.getNumberValue('PARAM1'); + const source2 = script.getNumberValue('PARAM2'); + const target1 = script.getNumberValue('PARAM3'); + const target2 = script.getNumberValue('PARAM4'); + + // Port 라는 key값을 가진 정보를 읽는다. + let data = 0; + if (Entry.ProboTechnic.SenserSet[port] == 5) { + data = 255 - Entry.hw.portData.InputData.Analog[port]; + } else { + data = Entry.hw.portData.InputData.Analog[port]; + } + let value = 0; + let rate = (data - source1) / (source2 - source1); + let num = 0; + + if (target1 < target2) { + value = (target2 - target1) * rate; + num = value % 1; + if (num < 0.5) { + value -= num; + } + else { + value += 1 - num; + } + value = target1 + value; + if (value < target1) { + value = target1; + } else if (value > target2) { + value = target2; + } + } else { + value = (target1 - target2) * rate; + num = value % 1; + if (num < 0.5) { + value -= num; + } else { + value += 1 - num; + } + value = target1 - value; + if (value > target1) { + value = target1; + } else if (value < target2) { + value = target2; + } + } + return value; + }, + }, + // 컬러센서 AA1 이(가) 빨간색 색인가? + technic_color_input_b: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + { + type: 'technic_dropdown_color_1', + }, + ], + type: 'technic_color_input_b', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const target = Entry.ProboTechnic.convertDropdownColor1( + script.getStringValue('PARAM1') + ); + const value = Entry.hw.portData.InputData.Analog[port]; + const color = Entry.ProboTechnic.Color; + return color[target][0] <= value && value <= color[target][1]; + }, + }, + // 컬러센서 AA1 의 색상 + technic_color_input_r: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + ], + type: 'technic_color_input_r', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const value = Entry.hw.portData.InputData.Analog[port]; + const color = Entry.ProboTechnic.Color; + let colorName = ''; + for (let i = 0; i < 6; i++) { + if (color[i][0] <= value && value <= color[i][1]) { + switch (i) { + case 0: + colorName = Lang.template.item_color_red; + break; + case 1: + colorName = Lang.template.item_color_green; + break; + case 2: + colorName = Lang.template.item_color_blue; + break; + case 3: + colorName = Lang.template.item_color_yellow; + break; + case 4: + colorName = Lang.template.item_color_black; + break; + case 5: + colorName = Lang.template.item_color_white; + break; + } + } + } + return colorName; + }, + }, + // 무한회전 센서 AA1 을 0 값으로 정하기 + technic_infinite_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + } + ], + def: { + params: [ + { + type: 'technic_dropdown_sensor_2', + }, + { + type: 'technic_dropdown_analog', + }, + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'technic_infinite_setting', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM1') + ); + let value = script.getNumberValue('PARAM2'); + let count = 0; + + if (value != 0) { + count = Number(value / 255).toFixed(0); + value = value % 255; + } else { + value = 0; + count = 0; + } + + Entry.ProboTechnic.Infinite_Buff[port] = Entry.hw.portData.InputData.Analog[port]; + Entry.ProboTechnic.Infinite_Start[port] = Entry.hw.portData.InputData.Analog[port]-value; + Entry.ProboTechnic.Infinite_Count[port] = count; + + return script.callReturn(); + }, + }, + // 무한회전 센서 AA1 지름 53.5 의 mm 값 + technic_infinite_mm_diameter: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_sensor_2', + }, + { + type: 'technic_dropdown_analog', + }, + { + type: 'number', + params: [ 53.5 ], + }, + ], + type: 'technic_infinite_mm_diameter', + }, + paramsKeyMap: { + PARAM1: 1, + PARAM2: 2, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM1') + ); + const diameter = script.getNumberValue('PARAM2'); + let value = Entry.hw.portData.InputData.Analog[port]; + + if (value < Entry.ProboTechnic.Infinite_Buff[port] - 150) { + + Entry.ProboTechnic.Infinite_Count[port]++; + } else if (value > Entry.ProboTechnic.Infinite_Buff[port] + 150) { + Entry.ProboTechnic.Infinite_Count[port]--; + } + Entry.ProboTechnic.Infinite_Buff[port] = value; + value = (Entry.ProboTechnic.Infinite_Buff[port] - Entry.ProboTechnic.Infinite_Start[port]) + (Entry.ProboTechnic.Infinite_Count[port] * 255); + + return Number( + 2 * + 3.141592 * + (diameter / 2) / + 255 * + value + ).toFixed(3); + }, + }, + // 무한회전 센서 AA1 의 값 + technic_infinite_transform_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_sensor_2', + }, + { + type: 'technic_dropdown_analog', + }, + { + type: 'technic_dropdown_sensor_transfer', + }, + ], + type: 'technic_infinite_transform_input', + }, + paramsKeyMap: { + PARAM1: 1, + PARAM2: 2, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM1') + ); + const select = Entry.ProboTechnic.convertDropdownSensorTransfer( + script.getStringValue('PARAM2') + ); + let value = Entry.hw.portData.InputData.Analog[port]; + + if (value < (Entry.ProboTechnic.Infinite_Buff[port] - 150)) { + Entry.ProboTechnic.Infinite_Count[port]++; + } else if (value > (Entry.ProboTechnic.Infinite_Buff[port] + 150)) { + Entry.ProboTechnic.Infinite_Count[port]--; + } + Entry.ProboTechnic.Infinite_Buff[port] = value; + value = (Entry.ProboTechnic.Infinite_Buff[port] - Entry.ProboTechnic.Infinite_Start[port]) + (Entry.ProboTechnic.Infinite_Count[port] * 255); + + switch (select) { + case 2: + if (value > 0) { + return Math.floor((value%255) * 1.41732); + } else { + return Math.ceil((value%255) * 1.41732); + } + case 3: + return Number((360/255) * Entry.hw.portData.InputData.Analog[port]).toFixed(0); + case 4: + if (value > 0) { + return Math.floor(value / 255); + } else { + return Math.ceil(value / 255); + } + default: + return value; + } + }, + }, + // 멀티키 센서 AA1 의 키1 + technic_multi_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + { + type: 'technic_dropdown_key', + }, + ], + type: 'technic_multi_sensor', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const key = Entry.ProboTechnic.convertDropdownKey( + script.getStringValue('PARAM1') + ); + const value = Entry.hw.portData.InputData.Analog[port] & (0x1 << key)? 1 : 0; + return value; + }, + }, + // 분배스위치 센서 AA1의 키1 + technic_multi_switch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_analog', + }, + { + type: 'technic_dropdown_key', + }, + ], + type: 'technic_multi_switch', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const key = Entry.ProboTechnic.convertDropdownKey( + script.getStringValue('PARAM1') + ); + const analog = Entry.hw.portData.InputData.Analog[port]; + let value = -1; + if (1 <= analog && analog <= 19) { + value = 0; + } else if (26 <= analog && analog <= 44) { + value = 1; + } else if (53 <= analog && analog <= 77) { + value = 2; + } else if (83 <= analog && analog <= 101) { + value = 3; + } else if (107 <= analog && analog <= 125) { + value = 4; + } else if (139 <= analog && analog <= 157) { + value = 5; + } else if (160 <= analog && analog <= 178) { + value = 6; + } else if (191 <= analog && analog <= 209) { + value = 7; + } + return key === value ? 1 : 0; + }, + }, + technic_eeprom_buffset: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [{ type: 'number', params: ['0'] }, null], + type: 'technic_eeprom_buffset', + }, + paramsKeyMap: { + ADDRESS: 0, + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const address = script.getNumberValue('ADDRESS', script); + if (!script.isStart) { + Entry.ProboTechnic.EEPROM.EEPROM_Count = Entry.hw.portData.InputData.EEPROM.EC; + Entry.hw.sendQueue['EEPR4'] = 0x40; + Entry.hw.sendQueue['EEPR3'] = address; + + script.isStart = true; + script.timeFlag = 1; + var timeValue = 0.05; + var fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + var blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnic.EEPROM.EEPROM_Buff = + (Entry.hw.portData.InputData.EEPROM.EEPR2 << 8) + + Entry.hw.portData.InputData.EEPROM.EEPR1; + Entry.hw.sendQueue['EEPR4'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // EEPROM 주소의 값 + technic_eeprom_address_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + def: { + type: 'technic_eeprom_address_value', + }, + class: 'input', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + var value = 0; + const count = Entry.ProboTechnic.EEPROM.EEPROM_Count; + if (Entry.hw.portData.InputData.EEPROM.EC != count) { + value = Entry.ProboTechnic.EEPROM.EEPROM_Buff; + } + return value; + }, + }, + ///======================================================================================== + /// output block + ///======================================================================================== + // DC 모터 1을(를) 0 속도로 회전 + technic_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_dc_1_all', + }, + { + type: 'technic_dropdown_velocity', + }, + null, + ], + type: 'technic_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const motor = Entry.ProboTechnic.convertDropdownDC( + script.getStringValue('PARAM0') + ); + const value = script.getNumberValue('PARAM1'); + switch (motor) { + case 'DC5': + Entry.hw.sendQueue['DC1'] = value; + Entry.hw.sendQueue['DC2'] = value; + break; + case 'DC6': + Entry.hw.sendQueue['DC3'] = value; + Entry.hw.sendQueue['DC4'] = value; + break; + case 'DC7': + Entry.hw.sendQueue['DC1'] = value; + Entry.hw.sendQueue['DC2'] = value; + Entry.hw.sendQueue['DC3'] = value; + Entry.hw.sendQueue['DC4'] = value; + break; + default: + Entry.hw.sendQueue[motor] = value; + break; + } + return script.callReturn(); + }, + }, + // 서보모터 1 의 위치를 1 로 이동 + technic_servo_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_servo_1_4', + }, + { + type: 'technic_dropdown_servo_position', + }, + null, + ], + type: 'technic_servo_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const servo = Entry.ProboTechnic.convertDropdownServo( + script.getStringValue('PARAM0') + ); + let value = script.getNumberValue('PARAM1'); + if (value < 1) { + value = 0; + } else if (value > 100) { + value = 100; + } + + Entry.hw.sendQueue[servo] = value; + return script.callReturn(); + }, + }, + // S 모터 1 을(를) 0 속도로 회전 + technic_s_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_servo_1_4', + }, + { + type: 'technic_dropdown_velocity', + }, + null, + ], + type: 'technic_s_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const motor = Entry.ProboTechnic.convertDropdownServo( + script.getStringValue('PARAM0') + ); + let value = script.getNumberValue('PARAM1'); + + if (value > 20) { + value = 20; + } else if (value < -20) { + value = -20; + } + value += 148; + + switch (motor) { + case 'Servo5': + Entry.hw.sendQueue['Servo1'] = value; + Entry.hw.sendQueue['Servo2'] = value; + break; + case 'Servo6': + Entry.hw.sendQueue['Servo3'] = value; + Entry.hw.sendQueue['Servo4'] = value; + break; + default: + Entry.hw.sendQueue[motor] = value; + break; + } + return script.callReturn(); + }, + }, + // 출력핀 1 을(를) 켜기 + technic_port_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_port_1_4', + }, + { + type: 'technic_dropdown_on_off', + }, + null + ], + type: 'technic_port_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const motor = Entry.ProboTechnic.convertDropdownPort( + script.getStringValue('PARAM0') + ); + const value = Entry.ProboTechnic.convertDropdownOnOff( + script.getStringValue('PARAM1') + ); + Entry.hw.sendQueue[motor] = value; + return script.callReturn(); + }, + }, + // 도(60) 을(를) 4분 음표로 연주하기 + technic_melody_note_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_pitch', + }, + { + type: 'technic_dropdown_note', + }, + null + ], + type: 'technic_melody_note_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboTechnic.convertDropdownPitch( + script.getNumberValue('PARAM0') + ); + const note = Entry.ProboTechnic.convertDropdownNote( + script.getStringValue('PARAM1') + ); + + let timeValue = Entry.ProboTechnic.Note[note]; + + Entry.hw.sendQueue['MEL2'] = pitch >> 8; + Entry.hw.sendQueue['MEL1'] = pitch; + + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue; + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // 도(60) 을(를) 0.5 초 동안 연주하기 + technic_melody_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_pitch', + }, + { + type: 'technic_dropdown_time_1', + }, + null + ], + type: 'technic_melody_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboTechnic.convertDropdownPitch( + script.getNumberValue('PARAM0') + ); + let timeValue = script.getNumberValue('PARAM1'); + + Entry.hw.sendQueue['MEL2'] = pitch >> 8; + Entry.hw.sendQueue['MEL1'] = pitch; + + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // 도(60) 을(를) 연주하기 + technic_melody_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_pitch', + }, + null + ], + type: 'technic_melody_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const pitch = Entry.ProboTechnic.convertDropdownPitch( + script.getNumberValue('PARAM0') + ); + + Entry.hw.sendQueue['MEL2'] = pitch >> 8; + Entry.hw.sendQueue['MEL1'] = pitch; + return script.callReturn(); + }, + }, + // 35391 값을 0.5 초 동안 연주하기 + technic_value_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + { + type: 'technic_dropdown_time_1', + }, + null + ], + type: 'technic_value_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + let melody = script.getNumberValue('PARAM0'); + let timeValue = script.getNumberValue('PARAM1'); + + Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; + Entry.hw.sendQueue['MEL1'] = melody & 0xff; + + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // 35391 값을(를) 연주하기 + technic_value_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + null + ], + type: 'technic_value_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + let melody = script.getNumberValue('PARAM0'); + Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; + Entry.hw.sendQueue['MEL1'] = melody & 0xff; + return script.callReturn(); + }, + }, + // 시작음 을(를) 1 초 간격으로 재생하기 + technic_melody_track_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_melody', + }, + { + type: 'technic_dropdown_time_2', + }, + null + ], + type: 'technic_melody_track_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + function getTrackStep(track,script){ + if(!script.isStart){ + script.isStart = true; + script.trackStep = 0; + } + else { + script.trackStep++; + } + let timeValue = script.getNumberValue('PARAM1'); + script.timeFlag = 1; + let melody = Entry.ProboTechnic.Track[track][script.trackStep]; + Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; + Entry.hw.sendQueue['MEL1'] = melody & 0xff; + + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + timeValue + ); + } + const TR = Entry.ProboConnect.convertDropdownMelody( + script.getStringValue('PARAM0') + ); + if (!script.isStart) { + switch(TR) { + case 0 : + script.maxStep = 6; + break; + case 1 : + script.maxStep = 7; + break; + case 2 : + script.maxStep = 3; + break; + case 3 : + script.maxStep = 3; + break; + } + getTrackStep(TR,script); + return script; + } else if (script.timeFlag == 1) { + return script; + } else if (script.trackStep < script.maxStep){ + getTrackStep(TR,script); + return script; + } else { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + + delete script.trackStep; + delete script.maxStep; + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // 멜로디 중지 + technic_melody_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + null + ], + type: 'technic_melody_off', + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + return script.callReturn(); + }, + }, + // RGB LED 1 을(를) 빨간색 으로 켜기 + technic_rgbled_on_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_servo_1_4', + }, + { + type: 'technic_dropdown_color_2', + }, + null + ], + type: 'technic_rgbled_on_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownServo( + script.getStringValue('PARAM0') + ); + const color = Entry.ProboTechnic.convertDropdownColor2( + script.getStringValue('PARAM1') + ); + Entry.hw.sendQueue[port] = color; + return script.callReturn(); + }, + }, + // RGB LED 을(를) 끄기 + technic_rgbled_off_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_servo_1_4', + }, + null + ], + type: 'technic_rgbled_off_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownServo( + script.getStringValue('PARAM0') + ); + Entry.hw.sendQueue[port] = 0; + }, + }, + // RGB LED 1 빨간색으로 0.5초 간격 + technic_rgbled_flashing_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_servo_1_4', + }, + { + type: 'technic_dropdown_color_2', + }, + { + type: 'technic_dropdown_time_3', + }, + null + ], + type: 'technic_rgbled_flashing_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownServo( + script.getStringValue('PARAM0') + ); + const color = Entry.ProboTechnic.convertDropdownColor2( + script.getStringValue('PARAM1') + ); + const sec = script.getNumberValue('PARAM2'); + let value = 0; + switch (sec) { + case 0.05: + value = color + 0; + break; + case 0.1: + value = color + 1; + break; + case 0.2: + value = color + 2; + break; + case 0.5: + value = color + 3; + break; + case 1: + value = color + 4; + break; + } + Entry.hw.sendQueue[port] = value; + return script.callReturn(); + }, + }, + // RGB LED 1을(를) 빨간색으로 디밍 + technic_rgbled_dimming_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'technic_dropdown_servo_1_4', + }, + { + type: 'technic_dropdown_color_2', + }, + null + ], + type: 'technic_rgbled_dimming_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const port = Entry.ProboTechnic.convertDropdownServo( + script.getStringValue('PARAM0') + ); + let color = 0; + switch (script.getStringValue('PARAM1')) { + case '1': + color = 90; + break; + case '2': + color = 92; + break; + case '3': + color = 94; + break; + case '4': + color = 93; + break; + case '5': + color = 95; + break; + case '6': + color = 91; + break; + case '7': + color = 96; + break; + } + Entry.hw.sendQueue[port] = color; + return script.callReturn(); + }, + }, + // FND를 0 (으)로 설정 + technic_fnd_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'technic_fnd_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const fnd = script.getNumberValue('PARAM0'); + Entry.hw.sendQueue['FND'] = fnd; + return script.callReturn(); + }, + }, + // FND 끄기 + technic_fnd_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + null + ], + type: 'technic_fnd_off', + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + Entry.hw.sendQueue['FND'] = 100; + return script.callReturn(); + }, + }, + // EEPROM 0 주소에 0 값 설정하기 + technic_eeprom_write: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'number', + params: [ 0 ] + }, + { + type: 'number', + params: [ 0 ] + }, + null, + ], + type: 'technic_eeprom_write', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboTechnic'], + func: function(sprite, script) { + const address = script.getNumberValue('PARAM0'); + const value = script.getNumberValue('PARAM1'); + if (!script.isStart) { + Entry.hw.update(); + Entry.hw.sendQueue['EEPR4'] = 0x80; + Entry.hw.sendQueue['EEPR3'] = address; + Entry.hw.sendQueue['EEPR2'] = (value >> 8) & 0xff; + Entry.hw.sendQueue['EEPR1'] = value & 0xff; + script.isStart = true; + script.timeFlag = 1; + let timeValue = 0.05; + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.hw.update(); + Entry.hw.sendQueue['EEPR4'] = 0x40; + Entry.hw.sendQueue['EEPR3'] = address; + Entry.hw.sendQueue['EEPR2'] = 0; + Entry.hw.sendQueue['EEPR1'] = 0; + + setTimeout(function() { + Entry.hw.update(); + Entry.hw.sendQueue['EEPR4'] = 0; + Entry.hw.sendQueue['EEPR3'] = 0; + Entry.hw.sendQueue['EEPR2'] = 0; + Entry.hw.sendQueue['EEPR1'] = 0; + }, 100); + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + }; +}; + +module.exports = Entry.ProboTechnic; From a4d50faf0a477586f90f968bcf9d8afd2db77796 Mon Sep 17 00:00:00 2001 From: Hagwon <50008047+hagwon@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:43:19 +0900 Subject: [PATCH 40/65] =?UTF-8?q?=EC=97=90=EC=9D=B4=EB=9F=AD=EC=8A=A4=20?= =?UTF-8?q?=EB=84=A4=EB=AA=A8=20=ED=99=95=EC=9E=A5,=20=EB=82=98=EC=B9=A8?= =?UTF-8?q?=EB=B0=98=20=EB=B8=94=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/playground/blocks/hardware/block_alux_nemo.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/playground/blocks/hardware/block_alux_nemo.js b/src/playground/blocks/hardware/block_alux_nemo.js index 61377e3020..b427db5e57 100644 --- a/src/playground/blocks/hardware/block_alux_nemo.js +++ b/src/playground/blocks/hardware/block_alux_nemo.js @@ -2199,12 +2199,13 @@ Entry.nemo.getBlocks = function() { isNotFor: ['nemo'], func: function(sprite, script) { return Entry.nemo.setProcessor(script, Entry.nemo.delayTime, function() { - const type = script.getNumberValue('TYPE'); + const type = script.getNumberValue('TYPE'); + const sensorIndex = type <= 2 ? type + 1 : type + 2; Entry.hw.sendQueue['NEMO_EXTENSION'] = { id: Math.random(), index: 0, setExpansion: { - type: type, + type: sensorIndex, }, }; return false; @@ -2291,8 +2292,8 @@ Entry.nemo.getBlocks = function() { isNotFor: ['nemo'], func: function(sprite, script) { const state = script.getNumberValue('STATE') + 4; - const expansion = Entry.hw.portData['NEMO_DEVICE_EX'].expansion; - return expansion.state[state]; + const exPort = Entry.hw.portData['NEMO_DEVICE_EX'].exPort; + return exPort.state[state]; } }, nemo_block_extension_field_expension_anlog_value: { @@ -2346,8 +2347,8 @@ Entry.nemo.getBlocks = function() { isNotFor: ['nemo'], func: function(sprite, script) { const type = script.getNumberValue('TYPE'); - const expansion = Entry.hw.portData['NEMO_DEVICE_EX'].expansion; - return expansion.state[type]; + const exPort = Entry.hw.portData['NEMO_DEVICE_EX'].exPort; + return exPort.state[type]; } }, nemo_block_extension_basic_set_compass_value: { @@ -2485,4 +2486,4 @@ Entry.nemo.getBlocks = function() { }; }; -module.exports = Entry.nemo; \ No newline at end of file +module.exports = Entry.nemo; From f64b1f81ad5038f5e40d0b84aa47b27b9b39ee1d Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 16 Oct 2024 10:49:48 +0900 Subject: [PATCH 41/65] =?UTF-8?q?=EB=B8=94=EB=A1=9D=20=EB=AC=B8=EA=B5=AC?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../block_robotisRBPracticalAssembly.js | 95 +++++++++++-------- .../block_robotis_robotai_lite.js | 80 ++++++++-------- 2 files changed, 97 insertions(+), 78 deletions(-) diff --git a/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js b/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js index 5be3e25c0c..0f28164d65 100644 --- a/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js +++ b/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js @@ -138,7 +138,7 @@ Entry.Robotis_rb_P_Assembly.blockMenuBlocks = [ 'robotis_Practice_dxl_set_rotate', 'robotis_Practice_dxl_set_multiturn_round', - // AI 카메라 값 블록 + // 인공지능 카메라 값 블록 'robotis_Practice_huskylens_connection_status', 'robotis_Practice_huskylens_if_detected', @@ -182,12 +182,12 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_Practice_turn_at_line: "교차로에서 %1 하고 멈추기 %2", robotis_Practice_drive_stop: "정지하기 %1", - robotis_Practice_securitybot_init: "보안로봇 초기화 %1", - robotis_Practice_securitybot_hi: "보안로봇 위아래로 흔들기 %1", - robotis_Practice_securitybot_alert: "보안로봇 좌우로 흔들기 %1", + robotis_Practice_securitybot_init: "보안 로봇 초기화 %1", + robotis_Practice_securitybot_hi: "보안 로봇 위아래로 흔들기 %1", + robotis_Practice_securitybot_alert: "보안 로봇 좌우로 흔들기 %1", - robotis_Practice_petbot_happy: "반려로봇 웃음 %1", - robotis_Practice_petbot_sad: "반려로봇 화남 %1", + robotis_Practice_petbot_happy: "반려 로봇 웃음 %1", + robotis_Practice_petbot_sad: "반려 로봇 화남 %1", robotis_Practice_farmbot_init: "스마트팜 로봇 초기화 %1", robotis_Practice_farmbot_seek: "농작물 찾기 %1", @@ -255,24 +255,24 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { - // Huskylens 값 블록 - robotis_Practice_huskylens_connection_status: "AI 카메라: %1이면", - robotis_Practice_huskylens_if_detected: "AI 카메라: %1 이/가 표시되면", - - robotis_Practice_huskylens_block_value_closest_to_center: "AI 카메라: 화면 중앙과 가까운 %1의 %2", - robotis_Practice_huskylens_arrow_value_closest_to_center: "AI 카메라: 화면 중앙과 가까운 화살표의 %1", - robotis_Practice_huskylens_number_of_learned_id: "AI 카메라: 학습한 ID의 갯수", - robotis_Practice_huskylens_block_value_of_id: "AI 카메라: 감지된 ID가 %1인 %2의 %3", - robotis_Practice_huskylens_arrow_value_of_id: "AI 카메라: 감지된 ID가 %1인 화살표의 %2", - - robotis_Practice_huskylens_if_learned_id: "AI 카메라: ID가 %1인 데이터를 학습하였으면", - robotis_Practice_huskylens_if_detected_id_type: "AI 카메라: ID가 %1인 %2데이터를 인식하였으면", + // 인공지능 카메라 값 블록 + robotis_Practice_huskylens_connection_status: "인공지능 카메라: %1이면", + robotis_Practice_huskylens_if_detected: "인공지능 카메라: %1 이/가 표시되면", + + robotis_Practice_huskylens_block_value_closest_to_center: "인공지능 카메라: 화면 중앙과 가까운 %1의 %2", + robotis_Practice_huskylens_arrow_value_closest_to_center: "인공지능 카메라: 화면 중앙과 가까운 화살표의 %1", + robotis_Practice_huskylens_number_of_learned_id: "인공지능 카메라: 학습한 번호의 갯수", + robotis_Practice_huskylens_block_value_of_id: "인공지능 카메라: 감지된 번호가 %1인 %2의 %3", + robotis_Practice_huskylens_arrow_value_of_id: "인공지능 카메라: 감지된 번호가 %1인 화살표의 %2", + + robotis_Practice_huskylens_if_learned_id: "인공지능 카메라: 번호가 %1인 데이터를 학습하였으면", + robotis_Practice_huskylens_if_detected_id_type: "인공지능 카메라: 번호가 %1인 %2데이터를 인식하였으면", - // AI 카메라 제어 - robotis_Practice_huskylens_set_mode: "AI 카메라: 모드를 %1(으)로 설정 %2", - robotis_Practice_huskylens_print_custom_text: "AI 카메라: 화면 위치 (%1,%2)에 %3를 보여주기%4", - robotis_Practice_huskylens_clear_custom_text: "AI 카메라: 화면의 글 지우기 %1", + // 인공지능 카메라 제어 + robotis_Practice_huskylens_set_mode: "인공지능 카메라: 모드를 %1(으)로 설정 %2", + robotis_Practice_huskylens_print_custom_text: "인공지능 카메라: 화면 위치 (%1,%2)에 %3를 보여주기%4", + robotis_Practice_huskylens_clear_custom_text: "인공지능 카메라: 화면의 글 지우기 %1", }, Helper: { // 주행 제어 @@ -287,6 +287,25 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_Practice_turn_at_line: "교차로에서 지정한 회전을 하고 멈추기", robotis_Practice_drive_stop: "로봇아이 정지하기", + robotis_robotai_lite_securitybot_init: + '보안 로봇을 초기화합니다. 두 모터를 관절모드로 설정하고 카메라를 얼굴인식모드로 설정합니다.', + robotis_robotai_lite_securitybot_hi: + '보안 로봇이 "사용자를 확인하였습니다." 문구를 화면에 표시하고 팔을 위아래로 흔듭니다.', + robotis_robotai_lite_securitybot_alert: + '보안 로봇이 "사용자가 아닙니다." 문구를 화면에 표시하고 몸을 좌우로 흔듭니다.', + + robotis_robotai_lite_petbot_happy: + '반려 로봇이 웃는 표정을 하고 "즐거워요" 라고 말을 하면서 제자리에서 한바퀴 회전합니다.', + robotis_robotai_lite_petbot_sad: + '반려 로봇이 화난 표정을 하고 "무서워요" 라고 말을 하면서 뒤로 5cm 후진합니다.', + + robotis_robotai_lite_farmbot_init: + '스마트팜 로봇을 초기화 합니다. 1번 모터를 시작위치로 이동시키고 카메라를 색상인식모드로 설정합니다.', + robotis_robotai_lite_farmbot_seek: '농작물을 발견하면 가까이로 이동합니다.', + robotis_robotai_lite_farmbot_plant_type: '농작물의 유형을 판단합니다.', + robotis_robotai_lite_farmbot_harvest_or_not_and_go: + '농작물을 수확하거나 수확하지 않습니다. 그 이후 우측으로 회전합니다.', + // 값 블록 robotis_Practice_cm_ir_value: "지정한 번호의 IR 센서 값(범위: 0 ~ 200)", robotis_Practice_cm_ir_compare: "지정한 번호의 IR 센서 값과 지정한 값의 비교식이 맞으면 '참', 아니면 '거짓'으로 판단합니다.", @@ -343,22 +362,22 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_Practice_dxl_set_multiturn_round: "지정한 ID의 모터가 지정한 속도와 방향으로 지정한 바퀴만큼 회전", // AI Camera 값 블록 - robotis_Practice_huskylens_connection_status: "AI 카메라가 연결된 상태이면 '참', 아니면 '거짓'으로 판단합니다.", - robotis_Practice_huskylens_if_detected: "AI 카메라의 LCD화면에 선택한 기호(사각형/화살표)가 표시되면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_Practice_huskylens_connection_status: "인공지능 카메라가 연결된 상태이면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_Practice_huskylens_if_detected: "인공지능 카메라의 LCD화면에 선택한 기호(사각형/화살표)가 표시되면 '참', 아니면 '거짓'으로 판단합니다.", - robotis_Practice_huskylens_block_value_closest_to_center: "AI 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/학습ID", - robotis_Practice_huskylens_arrow_value_closest_to_center: "AI 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/학습ID", - robotis_Practice_huskylens_number_of_learned_id: "AI 카메라가 학습한 ID의 갯수", - robotis_Practice_huskylens_block_value_of_id: "AI 카메라가 감지한 사각형중 지정한 ID의 사각형의 X좌표/Y좌표/너비/높이", - robotis_Practice_huskylens_arrow_value_of_id: "AI 카메라가 감지한 화살표중 지정한 ID의 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표", + robotis_Practice_huskylens_block_value_closest_to_center: "인공지능 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/학습번호", + robotis_Practice_huskylens_arrow_value_closest_to_center: "인공지능 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/학습번호", + robotis_Practice_huskylens_number_of_learned_id: "인공지능 카메라가 학습한 번호의 갯수", + robotis_Practice_huskylens_block_value_of_id: "인공지능 카메라가 감지한 사각형중 지정한 번호의 사각형의 X좌표/Y좌표/너비/높이", + robotis_Practice_huskylens_arrow_value_of_id: "인공지능 카메라가 감지한 화살표중 지정한 번호의 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표", - robotis_Practice_huskylens_if_learned_id: "AI 카메라가 지정한 ID인 데이터를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", - robotis_Practice_huskylens_if_detected_id_type: "AI 카메라가 지정한 ID인 지정한 데이터(사각형/화살표)를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_Practice_huskylens_if_learned_id: "인공지능 카메라가 지정한 번호인 데이터를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", + robotis_Practice_huskylens_if_detected_id_type: "인공지능 카메라가 지정한 번호인 지정한 데이터(사각형/화살표)를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", - // AI 카메라 제어 - robotis_Practice_huskylens_set_mode: "AI 카메라의 모드를 설정", - robotis_Practice_huskylens_print_custom_text: "AI 카메라 화면의 지정한 위치에 지정한 문구 출력\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120", - robotis_Practice_huskylens_clear_custom_text: "AI 카메라 화면에 표시한 모든 문구 지우기", + // 인공지능 카메라 제어 + robotis_Practice_huskylens_set_mode: "인공지능 카메라의 모드를 설정", + robotis_Practice_huskylens_print_custom_text: "인공지능 카메라 화면의 지정한 위치에 지정한 문구 출력\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120", + robotis_Practice_huskylens_clear_custom_text: "인공지능 카메라 화면에 표시한 모든 문구 지우기", }, Blocks: { robotis_red: "빨강", @@ -752,7 +771,7 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_huskylens_center_block_center_y: "중심 Y좌표", robotis_huskylens_center_block_width: "너비", robotis_huskylens_center_block_height: "높이", - robotis_huskylens_center_leared_id: "학습ID", + robotis_huskylens_center_leared_id: "학습번호", robotis_huskylens_center_arrow_origin_x: "시작점 X좌표", robotis_huskylens_center_arrow_origin_y: "시작점 Y좌표", robotis_huskylens_center_arrow_target_x: "끝점 X좌표", @@ -859,7 +878,7 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_Practice_huskylens_if_learned_id: "AI Camera: If learned data with ID %1", robotis_Practice_huskylens_if_detected_id_type: "AI Camera: If learned %2 data with ID %1", - // AI 카메라 제어 + // 인공지능 카메라 제어 robotis_Practice_huskylens_set_mode: "AI Camera: Set mode to %1 %2", robotis_Practice_huskylens_print_custom_text: "AI Camera: Display %3 at screen position (%1, %2) %4", robotis_Practice_huskylens_clear_custom_text: "AI Camera: Clear screen text %1", @@ -943,7 +962,7 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_Practice_huskylens_if_learned_id: "If the AI camera has learned the data of the specified ID, it is determined as 'true'; otherwise, 'false'.", robotis_Practice_huskylens_if_detected_id_type: "If the AI camera has learned the specified data (rectangle/arrow) of the specified ID, it is determined as 'true'; otherwise, 'false'.", - // AI 카메라 제어 + // 인공지능 카메라 제어 robotis_Practice_huskylens_set_mode: "Set the mode of the AI camera", robotis_Practice_huskylens_print_custom_text: "Print the specified text at the specified position on the AI camera screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120", robotis_Practice_huskylens_clear_custom_text: "Clear all the text displayed on the AI camera screen", diff --git a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js index b954cc6d8a..dad5790493 100644 --- a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js +++ b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js @@ -242,7 +242,7 @@ let camera_id_for_use = 0; 'robotis_robotai_lite_dxl_set_rotate', 'robotis_robotai_lite_dxl_set_multiturn_round', - // AI 카메라 값 블록 + // 인공지능 카메라 값 블록 'robotis_robotai_lite_ai_camera_connection_status', 'robotis_robotai_lite_ai_camera_if_detected', @@ -471,12 +471,12 @@ let camera_id_for_use = 0; robotis_robotai_lite_turn_at_line: '교차로에서 %1 하고 멈추기 %2', robotis_robotai_lite_drive_stop: '정지하기 %1', - robotis_robotai_lite_securitybot_init: '보안로봇 초기화 %1', - robotis_robotai_lite_securitybot_hi: '보안로봇 위아래로 흔들기 %1', - robotis_robotai_lite_securitybot_alert: '보안로봇 좌우로 흔들기 %1', + robotis_robotai_lite_securitybot_init: '보안 로봇 초기화 %1', + robotis_robotai_lite_securitybot_hi: '보안 로봇 위아래로 흔들기 %1', + robotis_robotai_lite_securitybot_alert: '보안 로봇 좌우로 흔들기 %1', - robotis_robotai_lite_petbot_happy: '반려로봇 웃음 %1', - robotis_robotai_lite_petbot_sad: '반려로봇 화남 %1', + robotis_robotai_lite_petbot_happy: '반려 로봇 웃음 %1', + robotis_robotai_lite_petbot_sad: '반려 로봇 화남 %1', robotis_robotai_lite_farmbot_init: '스마트팜 로봇 초기화 %1', robotis_robotai_lite_farmbot_seek: '농작물 찾기 %1', @@ -548,32 +548,32 @@ let camera_id_for_use = 0; '%1 모터 %2 속도로 %3 바퀴 %4으로 회전 %5', // ai_camera 값 블록 - robotis_robotai_lite_ai_camera_connection_status: 'AI 카메라: %1이면', - robotis_robotai_lite_ai_camera_if_detected: 'AI 카메라: %1 이/가 표시되면', + robotis_robotai_lite_ai_camera_connection_status: '인공지능 카메라: %1이면', + robotis_robotai_lite_ai_camera_if_detected: '인공지능 카메라: %1 이/가 표시되면', robotis_robotai_lite_ai_camera_block_value_closest_to_center: - 'AI 카메라: 화면 중앙과 가까운 %1의 %2', + '인공지능 카메라: 화면 중앙과 가까운 %1의 %2', robotis_robotai_lite_ai_camera_arrow_value_closest_to_center: - 'AI 카메라: 화면 중앙과 가까운 화살표의 %1', + '인공지능 카메라: 화면 중앙과 가까운 화살표의 %1', robotis_robotai_lite_ai_camera_number_of_learned_id: - 'AI 카메라: 학습한 ID의 갯수', + '인공지능 카메라: 학습한 번호의 갯수', robotis_robotai_lite_ai_camera_block_value_of_id: - 'AI 카메라: 감지된 ID가 %1인 %2의 %3', + '인공지능 카메라: 감지된 번호가 %1인 %2의 %3', robotis_robotai_lite_ai_camera_arrow_value_of_id: - 'AI 카메라: 감지된 ID가 %1인 화살표의 %2', + '인공지능 카메라: 감지된 번호가 %1인 화살표의 %2', robotis_robotai_lite_ai_camera_if_learned_id: - 'AI 카메라: ID가 %1인 데이터를 학습하였으면', + '인공지능 카메라: 번호가 %1인 데이터를 학습하였으면', robotis_robotai_lite_ai_camera_if_detected_id_type: - 'AI 카메라: ID가 %1인 %2데이터를 인식하였으면', + '인공지능 카메라: 번호가 %1인 %2데이터를 인식하였으면', - // AI 카메라 제어 + // 인공지능 카메라 제어 robotis_robotai_lite_ai_camera_set_mode: - 'AI 카메라: 모드를 %1(으)로 설정 %2', + '인공지능 카메라: 모드를 %1(으)로 설정 %2', robotis_robotai_lite_ai_camera_print_custom_text: - 'AI 카메라: 화면 위치 (%1,%2)에 %3를 보여주기%4', + '인공지능 카메라: 화면 위치 (%1,%2)에 %3를 보여주기%4', robotis_robotai_lite_ai_camera_clear_custom_text: - 'AI 카메라: 화면의 글 지우기 %1', + '인공지능 카메라: 화면의 글 지우기 %1', }, Helper: { // 주행 제어 @@ -595,16 +595,16 @@ let camera_id_for_use = 0; robotis_robotai_lite_drive_stop: '로봇아이 정지하기', robotis_robotai_lite_securitybot_init: - '보안로봇을 초기화합니다. 두 모터를 관절모드로 설정하고 카메라를 얼굴인식모드로 설정합니다.', + '보안 로봇을 초기화합니다. 두 모터를 관절모드로 설정하고 카메라를 얼굴인식모드로 설정합니다.', robotis_robotai_lite_securitybot_hi: - '보안로봇이 "사용자를 확인하였습니다." 문구를 화면에 표시하고 팔을 위아래로 흔듭니다.', + '보안 로봇이 "사용자를 확인하였습니다." 문구를 화면에 표시하고 팔을 위아래로 흔듭니다.', robotis_robotai_lite_securitybot_alert: - '보안로봇 "사용자가 아닙니다." 문구를 화면에 표시하고 몸을 좌우로 흔듭니다.', + '보안 로봇이 "사용자가 아닙니다." 문구를 화면에 표시하고 몸을 좌우로 흔듭니다.', robotis_robotai_lite_petbot_happy: - '반려로봇이 웃는 표정을 하고 "즐거워요" 라고 말을 하면서 제자리에서 한바퀴 회전합니다.', + '반려 로봇이 웃는 표정을 하고 "즐거워요" 라고 말을 하면서 제자리에서 한바퀴 회전합니다.', robotis_robotai_lite_petbot_sad: - '반려로봇이 화난 표정을 하고 "무서워요" 라고 말을 하면서 뒤로 5cm 후진합니다.', + '반려 로봇이 화난 표정을 하고 "무서워요" 라고 말을 하면서 뒤로 5cm 후진합니다.', robotis_robotai_lite_farmbot_init: '스마트팜 로봇을 초기화 합니다. 1번 모터를 시작위치로 이동시키고 카메라를 색상인식모드로 설정합니다.', @@ -691,32 +691,32 @@ let camera_id_for_use = 0; // AI Camera 값 블록 robotis_robotai_lite_ai_camera_connection_status: - "AI 카메라가 연결된 상태이면 '참', 아니면 '거짓'으로 판단합니다.", + "인공지능 카메라가 연결된 상태이면 '참', 아니면 '거짓'으로 판단합니다.", robotis_robotai_lite_ai_camera_if_detected: - "AI 카메라의 LCD화면에 선택한 기호(사각형/화살표)가 표시되면 '참', 아니면 '거짓'으로 판단합니다.", + "인공지능 카메라의 LCD화면에 선택한 기호(사각형/화살표)가 표시되면 '참', 아니면 '거짓'으로 판단합니다.", robotis_robotai_lite_ai_camera_block_value_closest_to_center: - 'AI 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/학습ID', + '인공지능 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/학습번호', robotis_robotai_lite_ai_camera_arrow_value_closest_to_center: - 'AI 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/학습ID', + '인공지능 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/학습번호', robotis_robotai_lite_ai_camera_number_of_learned_id: - 'AI 카메라가 학습한 ID의 갯수', + '인공지능 카메라가 학습한 번호의 갯수', robotis_robotai_lite_ai_camera_block_value_of_id: - 'AI 카메라가 감지한 사각형중 지정한 ID의 사각형의 X좌표/Y좌표/너비/높이', + '인공지능 카메라가 감지한 사각형중 지정한 번호의 사각형의 X좌표/Y좌표/너비/높이', robotis_robotai_lite_ai_camera_arrow_value_of_id: - 'AI 카메라가 감지한 화살표중 지정한 ID의 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표', + '인공지능 카메라가 감지한 화살표중 지정한 번호의 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표', robotis_robotai_lite_ai_camera_if_learned_id: - "AI 카메라가 지정한 ID인 데이터를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", + "인공지능 카메라가 지정한 번호인 데이터를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", robotis_robotai_lite_ai_camera_if_detected_id_type: - "AI 카메라가 지정한 ID인 지정한 데이터(사각형/화살표)를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", + "인공지능 카메라가 지정한 번호인 지정한 데이터(사각형/화살표)를 학습하였으면 '참', 아니면 '거짓'으로 판단합니다.", - // AI 카메라 제어 - robotis_robotai_lite_ai_camera_set_mode: 'AI 카메라의 모드를 설정', + // 인공지능 카메라 제어 + robotis_robotai_lite_ai_camera_set_mode: '인공지능 카메라의 모드를 설정', robotis_robotai_lite_ai_camera_print_custom_text: - 'AI 카메라 화면의 지정한 위치에 지정한 문구 출력\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120', + '인공지능 카메라 화면의 지정한 위치에 지정한 문구 출력\nX좌표: -160 ~ 160\nY좌표: -120 ~ 120', robotis_robotai_lite_ai_camera_clear_custom_text: - 'AI 카메라 화면에 표시한 모든 문구 지우기', + '인공지능 카메라 화면에 표시한 모든 문구 지우기', }, Blocks: { robotis_red: '빨강', @@ -1113,7 +1113,7 @@ let camera_id_for_use = 0; robotis_ai_camera_center_block_center_y: '중심 Y좌표', robotis_ai_camera_center_block_width: '너비', robotis_ai_camera_center_block_height: '높이', - robotis_ai_camera_center_leared_id: '학습ID', + robotis_ai_camera_center_leared_id: '학습번호', robotis_ai_camera_center_arrow_origin_x: '시작점 X좌표', robotis_ai_camera_center_arrow_origin_y: '시작점 Y좌표', robotis_ai_camera_center_arrow_target_x: '끝점 X좌표', @@ -1240,7 +1240,7 @@ let camera_id_for_use = 0; robotis_robotai_lite_ai_camera_if_detected_id_type: 'AI Camera: If learned %2 data with ID %1', - // AI 카메라 제어 + // 인공지능 카메라 제어 robotis_robotai_lite_ai_camera_set_mode: 'AI Camera: Set mode to %1 %2', robotis_robotai_lite_ai_camera_print_custom_text: 'AI Camera: Display %3 at screen position (%1, %2) %4', @@ -1397,7 +1397,7 @@ let camera_id_for_use = 0; robotis_robotai_lite_ai_camera_if_detected_id_type: "If the AI camera has learned the specified data (rectangle/arrow) of the specified ID, it is determined as 'true'; otherwise, 'false'.", - // AI 카메라 제어 + // 인공지능 카메라 제어 robotis_robotai_lite_ai_camera_set_mode: 'Set the mode of the AI camera', robotis_robotai_lite_ai_camera_print_custom_text: 'Print the specified text at the specified position on the AI camera screen\nX coordinate: -160 ~ 160\nY coordinate: -120 ~ 120', From 236b22c6c1dfd13c1d8f59929345e6b2724125e2 Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 16 Oct 2024 11:04:29 +0900 Subject: [PATCH 42/65] =?UTF-8?q?=EC=BD=94=EC=95=8C=EB=9D=BC=EB=B4=87=20?= =?UTF-8?q?=EC=B9=B4=EB=A9=94=EB=9D=BC=20=ED=85=8D=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_robotisRBKoala.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/playground/blocks/hardware/block_robotisRBKoala.js b/src/playground/blocks/hardware/block_robotisRBKoala.js index cba0085fbb..9b71c7acc5 100644 --- a/src/playground/blocks/hardware/block_robotisRBKoala.js +++ b/src/playground/blocks/hardware/block_robotisRBKoala.js @@ -5985,10 +5985,17 @@ Entry.Robotis_rb_koala.getBlocks = function() { var x = script.getNumberValue('X', script); var y = script.getNumberValue('Y', script); var text = script.getStringValue('TEXT', script); - var text_len = text.length; var data_buf = []; var i = 0; + // Encode the text as UTF-8 + let encoder = new TextEncoder(); + let utf8Array = encoder.encode(text); + + // utf8Array is now a Uint8Array containing the UTF-8 bytes of the text + let text_len = utf8Array.length; + + if (text_len > 45) text_len = 45; if (x < -160) x = 160; else if (x > 160) x = 160; @@ -6006,7 +6013,7 @@ Entry.Robotis_rb_koala.getBlocks = function() { data_buf.push(0); data_buf.push(0); for (i = 0; i < text_len; i++) { - data_buf.push(text[i]); + data_buf.push(utf8Array[i]); } var data_instruction = Entry.Robotis_rb.INSTRUCTION.WRITE; From a19980f7dea8e90d61c632380376fae48282ca6e Mon Sep 17 00:00:00 2001 From: hagwonSong Date: Wed, 16 Oct 2024 11:37:59 +0900 Subject: [PATCH 43/65] =?UTF-8?q?=EC=97=90=EC=9D=B4=EB=9F=AD=EC=8A=A4=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EB=B3=B4=20=EC=BB=A4=EB=84=A5=ED=8A=B8=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._proboconnect.js => block_alux_connect.js} | 7956 ++++++++--------- 1 file changed, 3978 insertions(+), 3978 deletions(-) rename src/playground/blocks/hardware/{block_proboconnect.js => block_alux_connect.js} (97%) diff --git a/src/playground/blocks/hardware/block_proboconnect.js b/src/playground/blocks/hardware/block_alux_connect.js similarity index 97% rename from src/playground/blocks/hardware/block_proboconnect.js rename to src/playground/blocks/hardware/block_alux_connect.js index 7ce9ede862..a1063395f4 100644 --- a/src/playground/blocks/hardware/block_proboconnect.js +++ b/src/playground/blocks/hardware/block_alux_connect.js @@ -1,3978 +1,3978 @@ -'use strict'; - -Entry.ProboConnect = { - afterReceive(pd) { - if(Entry.engine.isState('run')) { - Entry.engine.fireEvent('event_remote_input'); - Entry.engine.fireEvent('event_digital_input'); - } - }, - - id: '27.1', - name: 'ProboConnect', - url: 'https://www.aluxonline.com', - imageName: 'ProboConnect.png', - blockIndex: 0, - title: { - ko: '프로보커넥트', - en: 'ProboConnect', - }, - Color: [ - [13, 37], // 빨강 - [38, 62], // 초록 - [63, 87], // 파랑 - [88, 112], // 노랑 - [113, 137], // 검정 - [138, 162], // 하양 - ], - - Note:{ - n32 : 48, // = 1*3*4*4, - n16 : 96, // = 2*3*4*4, - n16d: 144, // = 3*3*4*4, - n16t: 64, // = 2*2*4*4, - n8 : 192, // = 4*3*4*4, - n8d : 288, // = 6*3*4*4, - n8t : 128, // = 4*2*4*4, - n4 : 384, // = 8*3*4*4, - n4d : 576, // = 12*3*4*4, - n4t : 256, // = 8*2*4*4, - n2 : 768, // = 16*3*4*4, - n2d : 1152, // = 24*3*4*4, - n2t : 512, // = 16*2*4*4, - n1 : 1536, // = 32*3*4*4 - }, - - RGB_LED:{ - red : 1, //RED ON - red1: 2, //RED 0.05 ON -> OFF 반복 - red2: 3, //RED 0.1 ON -> OFF 반복 - red3: 4, //RED 0.2 ON -> OFF 반복 - red4: 5, //RED 0.5 ON -> OFF 반복 - red5: 6, //RED 1 ON -> OFF 반복 - _red1: 7, //RED 0.05 OFF -> ON 반복 - _red2: 8, //RED 0.1 OFF -> ON 반복 - _red3: 9, //RED 0.2 OFF -> ON 반복 - _red4: 10, //RED 0.5 OFF -> ON 반복 - _red5: 11, //RED 1 OFF -> ON 반복 - - yellow: 12, //YELLOW ON - yellow1: 13, //YELLOW 0.05 ON -> OFF 반복 - yellow2: 14, //YELLOW 0.1 ON -> OFF 반복 - yellow3: 15, //YELLOW 0.2 ON -> OFF 반복 - yellow4: 16, //YELLOW 0.5 ON -> OFF 반복 - yellow5: 17, //YELLOW 1 ON -> OFF 반복 - _yellow1: 18, //YELLOW 0.05 OFF -> ON 반복 - _yellow2: 19, //YELLOW 0.1 OFF -> ON 반복 - _yellow3: 20, //YELLOW 0.2 OFF -> ON 반복 - _yellow4: 21, //YELLOW 0.5 OFF -> ON 반복 - _yellow5: 22, //YELLOW 1 OFF -> ON 반복 - - green : 23, //GREEN ON - green1: 24, //GREEN 0.05 ON -> OFF 반복 - green2: 25, //GREEN 0.1 ON -> OFF 반복 - green3: 26, //GREEN 0.2 ON -> OFF 반복 - green4: 27, //GREEN 0.5 ON -> OFF 반복 - green5: 28, //GREEN 1 ON -> OFF 반복 - _green1: 29, //GREEN 0.05 OFF -> ON 반복 - _green2: 30, //GREEN 0.1 OFF -> ON 반복 - _green3: 31, //GREEN 0.2 OFF -> ON 반복 - _green4: 32, //GREEN 0.5 OFF -> ON 반복 - _green5: 33, //GREEN 1 OFF -> ON 반복 - - cyan : 34, //CYAN ON - cyan1: 35, //CYAN 0.05 ON -> OFF 반복 - cyan2: 36, //CYAN 0.1 ON -> OFF 반복 - cyan3: 37, //CYAN 0.2 ON -> OFF 반복 - cyan4: 38, //CYAN 0.5 ON -> OFF 반복 - cyan5: 39, //CYAN 1 ON -> OFF 반복 - _cyan1: 40, //CYAN 0.05 OFF -> ON 반복 - _cyan2: 41, //CYAN 0.1 OFF -> ON 반복 - _cyan3: 42, //CYAN 0.2 OFF -> ON 반복 - _cyan4: 43, //CYAN 0.5 OFF -> ON 반복 - _cyan5: 44, //CYAN 1 OFF -> ON 반복 - - blue: 45, //BLUE ON - blue1: 46, //BLUE 0.05 ON -> OFF 반복 - blue2: 47, //BLUE 0.1 ON -> OFF 반복 - blue3: 48, //BLUE 0.2 ON -> OFF 반복 - blue4: 49, //BLUE 0.5 ON -> OFF 반복 - blue5: 50, //BLUE 1 ON -> OFF 반복 - _blue1: 51, //BLUE 0.05 OFF -> ON 반복 - _blue2: 52, //BLUE 0.1 OFF -> ON 반복 - _blue3: 53, //BLUE 0.2 OFF -> ON 반복 - _blue4: 54, //BLUE 0.5 OFF -> ON 반복 - _blue5: 55, //BLUE 1 OFF -> ON 반복 - - magenta: 56, //MAGENTA ON - magenta1: 57, //MAGENTA 0.05 ON -> OFF 반복 - magenta2: 58, //MAGENTA 0.1 ON -> OFF 반복 - magenta3: 59, //MAGENTA 0.2 ON -> OFF 반복 - magenta4: 60, //MAGENTA 0.5 ON -> OFF 반복 - magenta5: 61, //MAGENTA 1 ON -> OFF 반복 - _magenta1: 62, //MAGENTA 0.05 OFF -> ON 반복 - _magenta2: 63, //MAGENTA 0.1 OFF -> ON 반복 - _magenta3: 64, //MAGENTA 0.2 OFF -> ON 반복 - _magenta4: 65, //MAGENTA 0.5 OFF -> ON 반복 - _magenta5: 66, //MAGENTA 1 OFF -> ON 반복 - - white: 67, //WHITE ON - white1: 68, //WHITE 0.05 ON -> OFF 반복 - white2: 69, //WHITE 0.1 ON -> OFF 반복 - white3: 70, //WHITE 0.2 ON -> OFF 반복 - white4: 71, //WHITE 0.5 ON -> OFF 반복 - white5: 72, //WHITE 1 ON -> OFF 반복 - _white1: 73, //WHITE 0.05 OFF -> ON 반복 - _white2: 74, //WHITE 0.1 OFF -> ON 반복 - _white3: 75, //WHITE 0.2 OFF -> ON 반복 - _white4: 76, //WHITE 0.5 OFF -> ON 반복 - _white5: 77, //WHITE 1 OFF -> ON 반복 - - rgbrnd1: 78, //RANDOM 1 - rgbrnd2: 79, //RANDOM 2 - - red_d: 90, //RED - yellow_d: 91, //YELLOW - green_d: 92, //GREEN - cyan_d: 93, //CYAN - blue_d: 94, //BLUE - magenta_d: 95, //MAGENTA - white_d: 96, //WHITE - - rgboff: 100 //RGB LED OFF - }, - - Melody: [0, 35391, 33405, 31530, 29760, 28090, 26513, 25025, 23621, 22295, 21044, 19863, 18748], - Melody_S: [0, 35391, 31530, 28090, 26513, 23621, 21044, 18748], - - Track:[ - [0x451F, 0x3D95, 0x36DD, 0x33C8, 0x2E22, 0x291A, 0x249E],// Start : size 7, - [0x228F, 0x249E, 0x291A, 0x2E22, 0x33C8, 0x36DD, 0x3D95, 0x451F],// End : size 8, - [0x228F, 0x1B6E, 0x1711, 0x1147 ],// LevelUp : size 4, - [0x1147, 0x1711, 0x1B6E, 0x228F ],// LevelDwon : size 4, - ], - - Infinite_Buff: { - AA1: 0, - AA2: 0, - AA3: 0, - AA4: 0 - }, - Infinite_Count: { - AA1: 0, - AA2: 0, - AA3: 0, - AA4: 0 - }, - Infinite_Start: { - AA1: 0, - AA2: 0, - AA3: 0, - AA4: 0 - }, - - SenserSet:{ - AA1: 0, - AA2: 0, - AA3: 0, - AA4: 0 - }, - - InputData: { - Analog: { - AA1: 0, - AA2: 0, - AA3: 0, - AA4: 0, - }, - Digital: { - A1: 0, - A2: 0, - A3: 0, - A4: 0, - FEA1: 0, - FEA2: 0, - FEA3: 0, - FEA4: 0, - REA1: 0, - REA2: 0, - REA3: 0, - REA4: 0, - BEA1: 0, - BEA2: 0, - BEA3: 0, - BEA4: 0, - }, - Remote: { - R_1: 0, - R_2: 0, - R_3: 0, - R_4: 0, - R_5: 0, - R_6: 0, - R_7: 0, - R_8: 0, - R_L1: 0, - R_L2: 0, - R_R1: 0, - R_R2: 0, - }, - EEPROM: { - EC: 0, - EEPR2: 0, - EEPR1: 0, - }, - Infinite:{ - ROTATION_1: 0, - ROTATION_2: 0, - ROTATION_3: 0, - ROTATION_4: 0 - }, - Acceler:{ - AXIS_X1: 0, - AXIS_X2: 0, - AXIS_X3: 0, - AXIS_X4: 0, - AXIS_Y1: 0, - AXIS_Y2: 0, - AXIS_Y3: 0, - AXIS_Y4: 0, - AXIS_Z1: 0, - AXIS_Z2: 0, - AXIS_Z3: 0, - AXIS_Z4: 0, - } - }, - RemoteData: { - B1: 0, - B2: 0, - B3: 0, - B4: 0, - Servo1: 0, - Servo2: 0, - Servo3: 0, - Servo4: 0, - DC1: 0, - DC2: 0, - DC3: 0, - DC4: 0, - MEL2: 0, - MEL1: 0, - FND: 100, - EEPR4: 0, - EEPR3: 0, - EEPR2: 0, - EEPR1: 0, - ASET2: 0, - ASET1: 0, - }, - EdgeFlag: { - FEA1: 0, - FEA2: 0, - FEA3: 0, - FEA4: 0, - REA1: 0, - REA2: 0, - REA3: 0, - REA4: 0, - BEA1: 0, - BEA2: 0, - BEA3: 0, - BEA4: 0, - }, - EEPROM: { - EEPROM_Buff: 0, - EEPROM_Count: 0, - }, - - setZero: function() { - for (let key in this.EdgeFlag) { - this.EdgeFlag[key] = 0; - } - for (let key in this.RemoteData) { - Entry.hw.sendQueue[key] = this.RemoteData[key]; - } - for (let key in this.SenserSet) { - this.SenserSet[key] = 0; - } - Entry.hw.update(); - }, - convertDropdownRemote(value) { - switch (value) { - case '1': - return 'R_1'; - case '2': - return 'R_2'; - case '3': - return 'R_3'; - case '4': - return 'R_4'; - case '5': - return 'R_5'; - case '6': - return 'R_6'; - case '7': - return'R_7'; - case '8': - return'R_8'; - case '9': - return 'R_L1'; - case '10': - return 'R_L2'; - case '11': - return 'R_R1'; - case '12': - return 'R_R2'; - default: - return value; - } - }, - convertDropdownDigital(value) { - switch (value) { - case '1': - return 'A1'; - case '2': - return 'A2'; - case '3': - return 'A3'; - case '4': - return 'A4'; - case '5': - return 'FEA1'; - case '6': - return 'FEA2'; - case '7': - return 'FEA3'; - case '8': - return 'FEA4'; - case '9': - return 'REA1'; - case '10': - return 'REA2'; - case '11': - return 'REA3'; - case '12': - return 'REA4'; - case '13': - return 'BEA1'; - case '14': - return 'BEA2'; - case '15': - return 'BEA3'; - case '16': - return 'BEA4'; - default: - return value; - } - }, - convertDropdownAnalog(value) { - switch (value) { - case '1': - case '2': - case '3': - case '4': - return 'AA' + value; - default: - return value; - } - }, - convertDropdownAxis(value, axis) { - switch (value) { - case 'AA1': - case 'AA2': - case 'AA3': - case 'AA4': - value = value.substr(2, 2); - break; - } - return "AXIS_" + axis + value; - }, - convertDropdownSensor1(value) { - switch (value) { - case Lang.template.item_switch: - case '1': - return 1; - case Lang.template.item_infrared: - case '2': - return 2; - case Lang.template.item_magnetic: - case '3': - return 3; - case Lang.template.item_rotation: - case '4': - return 4; - case Lang.template.item_color: - case '5': - return 5; - case Lang.template.item_acceleration: - case '6': - return 6; - case Lang.template.item_ultrasonic: - case '7': - return 7; - case Lang.template.item_heart_rate: - case '8': - return 8; - case Lang.template.item_illuminance: - case '9': - return 9; - case Lang.template.item_sound: - case '10': - return 10; - case Lang.template.item_tilt: - case '11': - return 11; - case Lang.template.item_pressure: - case '12': - return 12; - case Lang.template.item_multi_touch: - case '13': - return 13; - case Lang.template.item_compass: - case '14': - return 14; - case Lang.template.item_3acceleration: - case '15': - return 15; - case Lang.template.item_multi_switch: - case '16': - return 16; - } - }, - convertDropdownSensor2(value) { - switch (value) { - case Lang.template.item_infinite_rotation: - case '1': - return 1; - case Lang.template.item_compass: - case '2': - return 2; - default: - return value; - } - }, - convertDropdownKey(value) { - switch (value) { - case Lang.template.item_key_1: - case '1': - return 0; - case Lang.template.item_key_2: - case '2': - return 1; - case Lang.template.item_key_3: - case '3': - return 2; - case Lang.template.item_key_4: - case '4': - return 3; - case Lang.template.item_key_5: - case '5': - return 4; - case Lang.template.item_key_6: - case '6': - return 5; - case Lang.template.item_key_7: - case '7': - return 6; - case Lang.template.item_key_8: - case '8': - return 7; - default: - return value; - } - }, - convertDropdownOnOff(value) { - switch (value) { - case Lang.template.item_on: - case '1': - return 1; - case Lang.template.item_off: - case '0': - return 0; - default: - return value - } - - }, - convertDropdownDC(value) { - switch (value) { - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - return 'DC' + value; - default: - return value; - } - }, - convertDropdownServo(value) { - switch (value) { - case '1': - case '2': - case '3': - case '4': - return 'Servo' + value; - default: - return value; - } - }, - convertDropdownPort(value) { - switch (value) { - case '1': - case '2': - case '3': - case '4': - return 'B' + value; - default: - return value; - } - }, - convertDropdownSensorTransfer(value) { - switch (value) { - case '1': - case Lang.template.item_value: - return 1; - case '2': - case Lang.template.item_angle: - return 2; - case '3': - case Lang.template.item_absolute_angle: - return 3; - case '4': - case Lang.template.item_number_of_rotations: - return 4; - default: - value; - } - }, - convertDropdownPitch(pitch) { - // 배열의 인덱스 1번부터 음표 - const index = (pitch % 12) + 1; - - let value = 0; - if (36 <= pitch && pitch <= 47) { - value = Entry.ProboConnect.Melody[index]; - } else if (48 <= pitch && pitch <= 59) { - value = Entry.ProboConnect.Melody[index] >> 1; - } else if (60 <= pitch && pitch <= 71) { - value = Entry.ProboConnect.Melody[index] >> 2; - } else if (72 <= pitch && pitch <= 83) { - value = Entry.ProboConnect.Melody[index] >> 3; - } else { - value = Entry.ProboConnect.Melody[0]; - } - return value; - }, - convertDropdownNote(value) { - switch (value) { - case Lang.template.item_note_whole: - case '1': - return 'n1'; - case Lang.template.item_note_half: - case '2': - return 'n2'; - case Lang.template.item_note_quarter: - case '4': - return 'n4'; - case Lang.template.item_note_eighth: - case '8': - return 'n8'; - case Lang.template.item_note_sixteenth: - case '16': - return 'n16'; - case Lang.template.item_note_thirty_second: - case '32': - return 'n32'; - default: - return value; - } - }, - convertDropdownMelody(value) { - switch (value) { - case Lang.template.item_melody_start: - case '1': - return 0; - case Lang.template.item_melody_end: - case '2': - return 1; - case Lang.template.item_melody_level_up: - case '3': - return 2; - case Lang.template.item_melody_level_down: - case '4': - return 3; - default: - return value; - } - }, - convertDropdownColor1(value) { - switch (value) { - case Lang.template.item_color_red: - return 0; - case Lang.template.item_color_green: - return 1; - case Lang.template.item_color_blue: - return 2; - case Lang.template.item_color_yellow: - return 3; - case Lang.template.item_color_black: - return 4; - case Lang.template.item_color_white: - return 5; - default: - return value - 1; - } - }, - convertDropdownColor2(value) { - switch (value) { - case Lang.template.item_color_red: - case '1': - return 1; - case Lang.template.item_color_green: - case '2': - return 23; - case Lang.template.item_color_blue: - case '3': - return 45; - case Lang.template.item_color_cyan: - case '4': - return 34; - case Lang.template.item_color_magenta: - case '5': - return 56; - case Lang.template.item_color_yellow: - case '6': - return 12; - case '7': - case Lang.template.item_color_white: - return 67; - default: - return value; - } - }, -}; - -Entry.ProboConnect.setLanguage = function() { - return { - ko: { - template: { - item_switch: '스위치', - item_infrared: '적외선', - item_magnetic: '자석', - item_rotation: '회전', - item_color: '컬러', - item_acceleration: '가속도', - item_ultrasonic: '초음파', - item_heart_rate: '심박', - item_illuminance: '조도', - item_temperature: '온도', - item_sound: '소리', - item_tilt: '기울기', - item_pressure: '압력', - item_multi_touch: '멀티키', - item_compass: '나침반', - item_3acceleration: '3가속', - item_multi_switch: '분배기', - item_infinite_rotation: '무한회전', - item_color_red: '빨간색', - item_color_green: '초록색', - item_color_blue: '파란색', - item_color_cyan: '청녹색', - item_color_magenta: '자홍색', - item_color_yellow: '노란색', - item_color_black: '검정색', - item_color_white: '하얀색', - item_value: '값', - item_angle: '각도', - item_absolute_angle: '절대각도', - item_number_of_rotations: '회전 수', - item_key_1: '키1', - item_key_2: '키2', - item_key_3: '키3', - item_key_4: '키4', - item_key_5: '키5', - item_key_6: '키6', - item_key_7: '키7', - item_key_8: '키8', - item_all: '모두', - item_on: '켜기', - item_off: '끄기', - item_note_whole: '온', - item_note_half: '2분', - item_note_quarter: '4분', - item_note_eighth: '8분', - item_note_sixteenth: '16분', - item_note_thirty_second: '32분', - item_pitch_do: '도', - item_pitch_do_sharp: '도#', - item_pitch_re: '레', - item_pitch_re_sharp: '레#', - item_pitch_mi: '미', - item_pitch_fa: '파', - item_pitch_fa_sharp: '파#', - item_pitch_sol: '솔', - item_pitch_sol_sharp: '솔#', - item_pitch_ra: '라', - item_pitch_ra_sharp: '라#', - item_pitch_si: '시', - item_melody_start: '시작음', - item_melody_end: '종료음', - item_melody_level_up: '레벨 업', - item_melody_level_down: '레벨 다운', - - connect_remote_event: '%1 리모컨 %2 키를 눌렀을 때', - connect_digital_event: '%1 디지털 입력 %2 이(가) 들어왔을 때', - - connect_senser_setting: '입력포트 %1 을(를) %2 센서로 설정 %3', - - connect_remote_input: '리모컨 입력 %1', - connect_digital_input: '디지털 입력 %1', - connect_analog_input: '아날로그 입력 %1', - connect_3axis_acceler_x: '3가속도 %1의 X축', - connect_3axis_acceler_y: '3가속도 %1의 Y축', - connect_3axis_acceler_z: '3가속도 %1의 Z축', - connect_value_mapping: '%1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환', - connect_color_input_b: '컬러 센서 %1 이(가) %2 인가?', - connect_color_input_r: '컬러 센서 %1 의 색상', - connect_infinite_setting: '%1 센서 %2 을 %3 값으로 정하기 %4', - connect_infinite_mm_diameter: '%1 센서 %2 지름 %3 의 mm 값', - connect_infinite_transform_input: '%1 센서 %2 의 %3', - connect_multi_sensor: '멀티키 센서 %1의 %2', - connect_multi_switch: '분배 스위치 %1의 %2', - connect_eeprom_buffset: 'EEPROM %1 주소의 값 호출하기 %2', - connect_eeprom_address_value: 'EEPROM 주소의 값', - - connect_port_output: '출력핀 %1 을(를) %2 %3', - connect_servo_output: '서보 모터 %1 의 위치를 %2 로 이동 %3', - connect_s_dc_output: 'S 모터 %1 을(를) %2 속도로 회전 %3', - connect_dc_output: 'DC 모터 %1 을(를) %2 속도로 회전 %3', - connect_melody_note_output: '%1 을(를) %2 음표로 연주하기 %3', - connect_melody_sec_output: '%1 을(를) %2 초 동안 연주하기 %3', - connect_melody_output: '%1 을(를) 연주하기 %2', - connect_value_sec_output: '%1 값을(를) %2 초 동안 연주하기 %3', - connect_value_output: '%1 값을(를) 연주하기 %2', - connect_melody_track_output: '%1 을(를) %2초 간격으로 재생하기 %3', - connect_melody_off: '멜로디 중지 %1', - connect_rgbled_on_output: 'RGB LED %1 을(를) %2 으로 켜기 %3', - connect_rgbled_off_output: 'RGB LED %1 을(를) 끄기 %2', - connect_rgbled_dimming_output: 'RGB LED %1 을(를) %2 으로 디밍 %3', - connect_rgbled_flashing_output: 'RGB LED %1 %2 으로 %3 초 간격 %4', - connect_fnd_output: 'FND를 %1 (으)로 설정 %2', - connect_fnd_off: 'FND 끄기 %1', - connect_eeprom_write: 'EEPROM %1 주소에 %2 값 설정하기 %3', - }, - }, - en: { - template: { - item_switch: 'Switch', - item_infrared: 'Infrared', - item_magnetic: 'Magnetic', - item_rotation: 'Rotation', - item_color: 'Color', - item_acceleration: 'Acceleration', - item_ultrasonic: 'Ultrasonic', - item_heart_rate: 'Heart Rate', - item_illuminance: 'Illuminance', - item_temperature: 'Temperature', - item_sound: 'Sound', - item_tilt: 'Tilt', - item_pressure: 'Pressure', - item_multi_touch: 'Multi Touch', - item_compass: 'Compass', - item_3acceleration: '3Acceleration', - item_multi_switch: 'Multi Switch', - item_infinite_rotation: 'Infinite Rotation', - item_color_red: 'Red', - item_color_green: 'Green', - item_color_blue: 'Blue', - item_color_cyan: 'Cyan', - item_color_magenta: 'Magenta', - item_color_yellow: 'Yellow', - item_color_black: 'Black', - item_color_white: 'White', - item_value: 'Value', - item_angle: 'Angle', - item_absolute_angle: 'Absolute Angle', - item_number_of_rotations: 'Number of Rotations', - item_key_1: 'Key1', - item_key_2: 'Key2', - item_key_3: 'Key3', - item_key_4: 'Key4', - item_key_5: 'Key5', - item_key_6: 'Key6', - item_key_7: 'Key7', - item_key_8: 'Key8', - item_all: 'All', - item_on: 'On', - item_off: 'Off', - item_note_whole: 'Whole', - item_note_half: 'Half', - item_note_quarter: 'Quarter', - item_note_eighth: 'Eighth', - item_note_sixteenth: 'Sixteenth', - item_note_thirty_second: 'Thirty-Second', - item_pitch_do: 'do', - item_pitch_do_sharp: 'xdo', - item_pitch_re: 're', - item_pitch_re_sharp: 'xre', - item_pitch_mi: 'mi', - item_pitch_fa: 'fa', - item_pitch_fa_sharp: 'xfa', - item_pitch_sol: 'sol', - item_pitch_sol_sharp: 'xsol', - item_pitch_ra: 'ra', - item_pitch_ra_sharp: 'xra', - item_pitch_si: 'si', - item_melody_start: 'Start', - item_melody_end: 'End', - item_melody_level_up: 'Level up', - item_melody_level_down: 'Level down', - - connect_remote_event: '%1 When %2 remote control key pressed', - connect_digital_event: '%1 When %2 digital pin input', - - connect_senser_setting: 'Set input port %1 to %2 sensor %3', - - connect_remote_input: 'Remote control %1', - connect_digital_input: 'Read digital pin %1', - connect_analog_input: 'Read analog pin %1', - connect_3axis_acceler_x: '3acceleration %1 and X', - connect_3axis_acceler_y: '3acceleration %1 and Y', - connect_3axis_acceler_z: '3acceleration %1 and Z', - connect_value_mapping: '%1 to value %2 ~ %3 change %4 ~ %5', - connect_color_input_b: 'Is color sensor %1 %2 ?', - connect_color_input_r: 'Color of color sensor %1', - connect_infinite_setting: 'Set %1 sensor %2 to %3 value %4', - connect_infinite_mm_diameter: 'The move distance(in mm) when the %1 sensor %2 is %3 mm in diameter', - connect_infinite_transform_input: '%1 rotation sensor %2 to %3', - connect_multi_sensor: 'Multi sensor %1 key %2', - connect_multi_switch: 'A key number of the multi-switch sensor %1 = %2', - connect_eeprom_buffset:'Calling the value of EEPROM %1 address', - connect_eeprom_address_value: 'Value of EEPROM address', - - connect_dc_output: 'DC motor %1 velocity %2 %3', - connect_servo_output: 'Servo motor %1 position %2 %3', - connect_s_dc_output: 'Servo motor %1 speed %2 %3', - connect_port_output: 'Set digital pint %1 as %2 %3', - connect_melody_note_output: 'Play key %1 for %2 note %3', - connect_melody_sec_output: 'Play key %1 for %2 secs %3', - connect_melody_output: 'Play key %1 %2', - connect_value_sec_output: 'Play value %1 for %2 secs %3', - connect_value_output: 'Play value %1 %2', - connect_melody_track_output: 'Play sound %1 for %2 secs %3', - connect_melody_off: 'Stop tone %1', - connect_rgbled_on_output: 'Turn on RGB LED %1 to %2 %3', - connect_rgbled_off_output: 'Turn off RGB LED %1 %2', - connect_rgbled_dimming_output: 'Dimming RGB LED %1 to %2 %3', - connect_rgbled_flashing_output: 'RGB LED %1 Blinking %2 at %3 second intervals %4', - connect_fnd_output: 'Set FND to %1 %2', - connect_fnd_off: 'Turn off FND %1', - connect_eeprom_write: 'Set EEPROM %1 address to %2 %3', - }, - }, - }; -}; - -Entry.ProboConnect.blockMenuBlocks = [ - 'connect_dropdown_remote', - 'connect_dropdown_digital', - 'connect_dropdown_analog', - 'connect_dropdown_sensor_1', - 'connect_dropdown_sensor_2', - 'connect_dropdown_color_1', - 'connect_dropdown_color_2', - 'connect_dropdown_sensor_transfer', - 'connect_dropdown_key', - 'connect_dropdown_dc_1_all', - 'connect_dropdown_servo_1_4', - 'connect_dropdown_port_1_4', - 'connect_dropdown_on_off', - 'connect_dropdown_velocity', - 'connect_dropdown_servo_position', - 'connect_dropdown_note', - 'connect_dropdown_time_1', - 'connect_dropdown_time_2', - 'connect_dropdown_time_3', - 'connect_dropdown_pitch', - 'connect_dropdown_melody', - - //event - 'connect_remote_event', - 'connect_digital_event', - - //input - 'connect_senser_setting', - 'connect_remote_input', - 'connect_digital_input', - 'connect_analog_input', - 'connect_3axis_acceler_x', - 'connect_3axis_acceler_y', - 'connect_3axis_acceler_z', - 'connect_value_mapping', - 'connect_color_input_b', - 'connect_color_input_r', - 'connect_infinite_setting', - 'connect_infinite_mm_diameter', - 'connect_infinite_transform_input', - 'connect_multi_sensor', - 'connect_multi_switch', - 'connect_eeprom_buffset', - 'connect_eeprom_address_value', - - //output - 'connect_dc_output', - 'connect_servo_output', - 'connect_s_dc_output', - 'connect_port_output', - 'connect_melody_note_output', - 'connect_melody_sec_output', - 'connect_melody_output', - 'connect_value_sec_output', - 'connect_value_output', - 'connect_melody_track_output', - 'connect_melody_off', - 'connect_rgbled_on_output', - 'connect_rgbled_off_output', - 'connect_rgbled_flashing_output', - 'connect_rgbled_dimming_output', - 'connect_fnd_output', - 'connect_fnd_off', - // EEPROM - 'connect_eeprom_write', -]; - -// 블록 생성 -Entry.ProboConnect.getBlocks = function() { - return { - ///======================================================================================== - /// Dropdown block - ///======================================================================================== - connect_dropdown_remote: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['R_1', '1'], - ['R_2', '2'], - ['R_3', '3'], - ['R_4', '4'], - ['R_5', '5'], - ['R_6', '6'], - ['R_7', '7'], - ['R_8', '8'], - ['R_L1', '9'], - ['R_L2', '10'], - ['R_R1', '11'], - ['R_R2', '12'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_digital: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['A1', '1'], - ['A2', '2'], - ['A3', '3'], - ['A4', '4'], - ['FEA1', '5'], - ['FEA2', '6'], - ['FEA3', '7'], - ['FEA4', '8'], - ['REA1', '9'], - ['REA2', '10'], - ['REA3', '11'], - ['REA4', '12'], - ['BEA1', '13'], - ['BEA2', '14'], - ['BEA3', '15'], - ['BEA4', '16'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_analog: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['AA1', '1'], - ['AA2', '2'], - ['AA3', '3'], - ['AA4', '4'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_sensor_1: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_switch, '1'], - [Lang.template.item_infrared, '2'], - [Lang.template.item_magnetic, '3'], - [Lang.template.item_rotation, '4'], - [Lang.template.item_color, '5'], - [Lang.template.item_acceleration, '6'], - [Lang.template.item_ultrasonic, '7'], - [Lang.template.item_heart_rate, '8'], - [Lang.template.item_illuminance, '9'], - [Lang.template.item_sound, '10'], - [Lang.template.item_tilt, '11'], - [Lang.template.item_pressure, '12'], - [Lang.template.item_multi_touch, '13'], - [Lang.template.item_compass, '14'], - [Lang.template.item_3acceleration, '15'], - [Lang.template.item_multi_switch, '16'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_sensor_2: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_infinite_rotation, '1'], - [Lang.template.item_compass, '2'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_color_1: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_color_red, '1'], - [Lang.template.item_color_green, '2'], - [Lang.template.item_color_blue, '3'], - [Lang.template.item_color_yellow, '4'], - [Lang.template.item_color_black, '5'], - [Lang.template.item_color_white, '6'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_color_2: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_color_red, '1'], - [Lang.template.item_color_green, '2'], - [Lang.template.item_color_blue, '3'], - [Lang.template.item_color_cyan, '4'], - [Lang.template.item_color_magenta, '5'], - [Lang.template.item_color_yellow, '6'], - [Lang.template.item_color_white, '7'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_sensor_transfer: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_value, '1'], - [Lang.template.item_angle, '2'], - [Lang.template.item_absolute_angle, '3'], - [Lang.template.item_number_of_rotations, '4'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_key: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_key_1, '1'], - [Lang.template.item_key_2, '2'], - [Lang.template.item_key_3, '3'], - [Lang.template.item_key_4, '4'], - [Lang.template.item_key_5, '5'], - [Lang.template.item_key_6, '6'], - [Lang.template.item_key_7, '7'], - [Lang.template.item_key_8, '8'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_dc_1_all: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['1', 'DC1'], - ['2', 'DC2'], - ['3', 'DC3'], - ['4', 'DC4'], - ['1,2', 'DC5'], - ['3,4', 'DC6'], - [Lang.template.item_all, 'DC7'], - ], - value: 'DC1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_servo_1_4: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['1', 'Servo1'], - ['2', 'Servo2'], - ['3', 'Servo3'], - ['4', 'Servo4'], - ], - value: 'Servo1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_velocity: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['20', '20'], - ['15', '15'], - ['10', '10'], - ['5', '5'], - ['0', '0'], - ['-5', '-5'], - ['-10', '-10'], - ['-15', '-15'], - ['-20', '-20'], - ], - value: '0', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_servo_position: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['1', '1'], - ['20', '20'], - ['40', '40'], - ['60', '60'], - ['80', '80'], - ['100', '100'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_port_1_4: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['1', 'B1'], - ['2', 'B2'], - ['3', 'B3'], - ['4', 'B4'], - ], - value: 'B1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_on_off: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_on, '1'], - [Lang.template.item_off, '0'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_note: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_note_whole, '1'], - [Lang.template.item_note_half, '2'], - [Lang.template.item_note_quarter, '4'], - [Lang.template.item_note_eighth, '8'], - [Lang.template.item_note_sixteenth, '16'], - [Lang.template.item_note_thirty_second, '32'], - ], - value: '4', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_time_1: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['0.1', '0.1'], - ['0.3', '0.3'], - ['0.5', '0.5'], - ['0.7', '0.7'], - ['1', '1'], - ['2', '2'], - ], - value: '0.5', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_time_2: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['0.1', '0.1'], - ['0.3', '0.3'], - ['0.5', '0.5'], - ['0.7', '0.7'], - ['1', '1'], - ['2', '2'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_time_3: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - ['0.05', '0.05'], - ['0.1', '0.1'], - ['0.2', '0.2'], - ['0.5', '0.5'], - ['1', '1'], - ], - value: '0.5', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - connect_dropdown_pitch: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'DropdownExtra', - options: [ - [Lang.template.item_pitch_do + ' (36)', '36'], - [Lang.template.item_pitch_do_sharp + ' (37)', '37'], - [Lang.template.item_pitch_re + ' (38)', '38'], - [Lang.template.item_pitch_re_sharp + ' (39)', '39'], - [Lang.template.item_pitch_mi + ' (40)', '40'], - [Lang.template.item_pitch_fa + ' (41)', '41'], - [Lang.template.item_pitch_fa_sharp + ' (42)', '42'], - [Lang.template.item_pitch_sol + ' (43)', '43'], - [Lang.template.item_pitch_sol_sharp + ' (44)', '44'], - [Lang.template.item_pitch_ra + ' (45)', '45'], - [Lang.template.item_pitch_ra_sharp + ' (46)', '46'], - [Lang.template.item_pitch_si + ' (47)', '47'], - - [Lang.template.item_pitch_do + ' (48)', '48'], - [Lang.template.item_pitch_do_sharp + ' (49)', '49'], - [Lang.template.item_pitch_re + ' (50)', '50'], - [Lang.template.item_pitch_re_sharp + ' (51)', '51'], - [Lang.template.item_pitch_mi + ' (52)', '52'], - [Lang.template.item_pitch_fa + ' (53)', '53'], - [Lang.template.item_pitch_fa_sharp + ' (54)', '54'], - [Lang.template.item_pitch_sol + ' (55)', '55'], - [Lang.template.item_pitch_sol_sharp + ' (56)', '56'], - [Lang.template.item_pitch_ra + ' (57)', '57'], - [Lang.template.item_pitch_ra_sharp + ' (58)', '58'], - [Lang.template.item_pitch_si + ' (59)', '59'], - - [Lang.template.item_pitch_do + ' (60)', '60'], - [Lang.template.item_pitch_do_sharp + ' (61)', '61'], - [Lang.template.item_pitch_re + ' (62)', '62'], - [Lang.template.item_pitch_re_sharp + ' (63)', '63'], - [Lang.template.item_pitch_mi + ' (64)', '64'], - [Lang.template.item_pitch_fa + ' (65)', '65'], - [Lang.template.item_pitch_fa_sharp + ' (66)', '66'], - [Lang.template.item_pitch_sol + ' (67)', '67'], - [Lang.template.item_pitch_sol_sharp + ' (68)', '68'], - [Lang.template.item_pitch_ra + ' (69)', '69'], - [Lang.template.item_pitch_ra_sharp + ' (70)', '70'], - [Lang.template.item_pitch_si + ' (71)', '71'], - - [Lang.template.item_pitch_do + ' (72)', '72'], - [Lang.template.item_pitch_do_sharp + ' (73)', '73'], - [Lang.template.item_pitch_re + ' (74)', '74'], - [Lang.template.item_pitch_re_sharp + ' (75)', '75'], - [Lang.template.item_pitch_mi + ' (76)', '76'], - [Lang.template.item_pitch_fa + ' (77)', '77'], - [Lang.template.item_pitch_fa_sharp + ' (78)', '78'], - [Lang.template.item_pitch_sol + ' (79)', '79'], - [Lang.template.item_pitch_sol_sharp + ' (80)', '80'], - [Lang.template.item_pitch_ra + ' (81)', '81'], - [Lang.template.item_pitch_ra_sharp + ' (82)', '82'], - [Lang.template.item_pitch_si + ' (83)', '83'], - ], - value: '60', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - const value = script.getField('PARAM0'); - return value; - } - }, - connect_dropdown_melody: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - skeleton: 'basic_string_field', - statements: [], - template: '%1', - params: [ - { - type: 'Dropdown', - options: [ - [Lang.template.item_melody_start, '1'], - [Lang.template.item_melody_end, '2'], - [Lang.template.item_melody_level_up, '3'], - [Lang.template.item_melody_level_down, '4'], - ], - value: '1', - fontSize: 11, - bgColor: EntryStatic.colorSet.block.darken.HARDWARE, - arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - }, - ], - def: { - params: [ - null - ], - }, - paramsKeyMap: { - PARAM0: 0, - }, - events: {}, - func: function(sprite, script) { - return script.getField('PARAM0'); - } - }, - ///======================================================================================== - /// Event block - ///======================================================================================== - // 리모컨 R_1 키를 눌렀을 때 - connect_remote_event: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_event', - params: [ - { - type: 'Indicator', - img: 'block_icon/start_icon_hardware.svg', - size: 14, - position: { - x: 0, - y: -2, - }, - }, - { - type: 'Block', - accept: 'string', - }, - ], - events: {}, - def: { - params: [ - null, - { - type: 'connect_dropdown_remote', - }, - ], - type: 'connect_remote_event', - }, - paramsKeyMap: { - PARAM1: 1, - }, - class: 'event', - isNotFor: ['ProboConnect'], - event: 'event_remote_input', - func(sprite, script) { - const btn = Entry.ProboConnect.convertDropdownRemote( - script.getStringValue('PARAM1') - ); - if (Entry.hw.portData.InputData.Remote[btn] == 1 ) { - return script.callReturn(); - } - return this.die(); - }, - }, - // 디지털 입력 A1 이(가) 들어왔을 때 - connect_digital_event: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_event', - params: [ - { - type: 'Indicator', - img: 'block_icon/start_icon_hardware.svg', - size: 14, - position: { - x: 0, - y: -2, - }, - }, - { - type: 'Block', - accept: 'string', - }, - ], - events: {}, - def: { - params: [ - null, - { - type: 'connect_dropdown_digital', - }, - ], - type: 'connect_digital_event', - }, - paramsKeyMap: { - PARAM1: 1, - }, - class: 'event', - isNotFor: ['ProboConnect'], - event: 'event_digital_input', - func(sprite, script) { - const port = Entry.ProboConnect.convertDropdownDigital( - script.getStringValue('PARAM1') - ); - switch(port) { - case 'FEA1': - case 'FEA2': - case 'FEA3': - case 'FEA4': - case 'REA1': - case 'REA2': - case 'REA3': - case 'REA4': - case 'BEA1': - case 'BEA2': - case 'BEA3': - case 'BEA4': - if (Entry.hw.portData.InputData.Digital[port] == 1) { - if (Entry.ProboConnect.EdgeFlag[port] == 0) { - Entry.ProboConnect.EdgeFlag[port] = 1; - return script.callReturn(); - } - } else { - Entry.ProboConnect.EdgeFlag[port] = 0; - } - break; - default: - if (Entry.hw.portData.InputData.Digital[port] == 1 ) { - return script.callReturn(); - } - break; - } - - return this.die(); - }, - }, - ///======================================================================================== - /// Input block - ///======================================================================================== - // 입력포트 AA1 을(를) 스위치 센서로 설정 - connect_senser_setting: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - { - type: 'connect_dropdown_sensor_1', - }, - null, - ], - type: 'connect_senser_setting', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'setting', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - if (!script.isStart) { - script.isStart = true; - script.timeFlag = 1; - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM0') - ); - const sensor = Entry.ProboConnect.convertDropdownSensor1( - script.getStringValue('PARAM1') - ); - let index = 0; - switch (port) { - case 'AA1': - index = 0; - break; - case 'AA2': - index = 1; - break; - case 'AA3': - index = 2; - break; - case 'AA4': - index = 3; - break; - } - - let Aset = [0, 0, 0, 0]; - let value = [0, 0, 0, 0]; - - Aset[index] = sensor; - for (let i = 0; i < 4; i++) { - switch (Aset[i]) { - case 1: // 스위치 - case 2: // 적외선 - case 3: // 자석 - case 16: // 분배기 - value[i] = 1; - break; - case 4: // 회전 - case 9: // 조도 - case 7: // 초음파 - value[i] = 2; - break; - case 10: // 소리 - value[i] = 3; - break; - case 11: // 기울기 - value[i] = 4; - break; - case 12: // 압력 - value[i] = 5; - break; - case 8: // 심박 - value[i] = 6; - break; - case 5: // 컬러 - value[i] = 7; - break; - case 6: // 가속도 - value[i] = 8; - break; - case 14: // 나침반 - case 15: // 3가속 - value[i] = 9; - break; - case 13: // 멀티터치(멀티키) - value[i] = 11; - break; - } - } - - Entry.ProboConnect.SenserSet.AA1 = value[0]; - Entry.ProboConnect.SenserSet.AA2 = value[1]; - Entry.ProboConnect.SenserSet.AA3 = value[2]; - Entry.ProboConnect.SenserSet.AA4 = value[3]; - - Entry.hw.sendQueue['ASET2'] = (value[0] << 4) | value[1]; - Entry.hw.sendQueue['ASET1'] = (value[2] << 4) | value[3]; - - let fps = Entry.FPS || 60; - let timeValue = 60 / fps * 200; // 0.2초 - - let blockId = script.block.id; - Entry.TimeWaitManager.add( - blockId, - function() { - script.timeFlag = 0; - }, - timeValue - ); - return script; - } else if (script.timeFlag == 1) { - return script; - } else { - delete script.timeFlag; - delete script.isStart; - Entry.engine.isContinue = false; - return script.callReturn(); - } - - }, - }, - // 리모컨 입력 R_1 - connect_remote_input: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_boolean_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_remote', - }, - ], - type: 'connect_remote_input', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const btn = Entry.ProboConnect.convertDropdownRemote( - script.getStringValue('PARAM0') - ); - return Entry.hw.portData.InputData.Remote[btn] == 1 ? true : false; - }, - }, - // 디지털 입력 A1 - connect_digital_input: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_boolean_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_digital', - }, - ], - type: 'connect_digital_input', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownDigital( - script.getStringValue('PARAM0') - ); - let rt = false; - switch(port) { - case 'FEA1': - case 'FEA2': - case 'FEA3': - case 'FEA4': - case 'REA1': - case 'REA2': - case 'REA3': - case 'REA4': - case 'BEA1': - case 'BEA2': - case 'BEA3': - case 'BEA4': - if (Entry.hw.portData.InputData.Digital[port] == 1) { - if (Entry.ProboConnect.EdgeFlag[port] == 0) { - Entry.ProboConnect.EdgeFlag[port] = 1; - rt = true; - } - } else { - Entry.ProboConnect.EdgeFlag[port] = 0; - } - break; - default: - rt = Entry.hw.portData.InputData.Digital[port] == 1 ? true : false; - break; - } - return rt; - }, - }, - // 아날로그 입력 AA1 - connect_analog_input: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - ], - type: 'connect_analog_input', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM0') - ); - let value = Entry.ProboConnect.SenserSet[port] == 5 - ? 255 - Entry.hw.portData.InputData.Analog[port] - : Entry.hw.portData.InputData.Analog[port]; - return value; - }, - }, - // 3가속도 AA1 의 X축 - connect_3axis_acceler_x: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - ], - type: 'connect_3axis_acceler_x', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const axis = Entry.ProboConnect.convertDropdownAxis( - script.getStringValue('PARAM0'), - "X" - ); - let value = (Entry.hw.portData.InputData.Acceler[axis]); - if (value & 0x80) { - value = (value - 255); - } - return Number(value / 10).toFixed(1); - }, - }, - // 3가속도 AA1의 Y축 - connect_3axis_acceler_y: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - ], - type: 'connect_3axis_acceler_y', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const axis = Entry.ProboConnect.convertDropdownAxis( - script.getStringValue('PARAM0'), - "Y" - ); - let value = (Entry.hw.portData.InputData.Acceler[axis]); - if (value & 0x80) { - value = (value - 255); - } - return Number(value / 10).toFixed(1); - }, - }, - // 3가속도 AA1 의 Z축 - connect_3axis_acceler_z: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - ], - type: 'connect_3axis_acceler_z', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const axis = Entry.ProboConnect.convertDropdownAxis( - script.getStringValue('PARAM0'), - "Z" - ); - let value = (Entry.hw.portData.InputData.Acceler[axis]); - if (value & 0x80) { - value = (value - 255); - } - return Number(value / 10).toFixed(1); - }, - }, - // AA1의 0 ~ 255 값을 0 ~ 100 (으)로 변환 - connect_value_mapping: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - params: [ - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - { - type: 'number', - params: [ 0 ], - }, - { - type: 'number', - params: [ 255 ], - }, - { - type: 'number', - params: [ 0 ], - }, - { - type: 'number', - params: [ 100 ], - }, - ], - type: 'connect_value_mapping', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - PARAM2: 2, - PARAM3: 3, - PARAM4: 4, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM0') - ); - const source1 = script.getNumberValue('PARAM1'); - const source2 = script.getNumberValue('PARAM2'); - const target1 = script.getNumberValue('PARAM3'); - const target2 = script.getNumberValue('PARAM4'); - - // Port 라는 key값을 가진 정보를 읽는다. - let data = 0; - if (Entry.ProboConnect.SenserSet[port] == 5) { - data = 255 - Entry.hw.portData.InputData.Analog[port]; - } else { - data = Entry.hw.portData.InputData.Analog[port]; - } - let value = 0; - let rate = (data - source1) / (source2 - source1); - let num = 0; - - if (target1 < target2) { - value = (target2 - target1) * rate; - num = value % 1; - if (num < 0.5) { - value -= num; - } - else { - value += 1 - num; - } - value = target1 + value; - if (value < target1) { - value = target1; - } else if (value > target2) { - value = target2; - } - } else { - value = (target1 - target2) * rate; - num = value % 1; - if (num < 0.5) { - value -= num; - } else { - value += 1 - num; - } - value = target1 - value; - if (value > target1) { - value = target1; - } else if (value < target2) { - value = target2; - } - } - return value; - }, - }, - // 컬러센서 AA1 이(가) 빨간색 색인가? - connect_color_input_b: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_boolean_field', - params: [ - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - { - type: 'connect_dropdown_color_1', - }, - ], - type: 'connect_color_input_b', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM0') - ); - const target = Entry.ProboConnect.convertDropdownColor1( - script.getNumberValue('PARAM1') - ); - const value = Entry.hw.portData.InputData.Analog[port]; - const color = Entry.ProboConnect.Color; - return color[target][0] <= value && value <= color[target][1]; - }, - }, - // 컬러센서 AA1 의 색상 - connect_color_input_r: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - params: [ - { - type: 'Block', - accept: 'string', - defaultType: 'number', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - ], - type: 'connect_color_input_r', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM0') - ); - const value = Entry.hw.portData.InputData.Analog[port]; - const color = Entry.ProboConnect.Color; - let colorName = ''; - for (let i = 0; i < 6; i++) { - if (color[i][0] <= value && value <= color[i][1]) { - switch (i) { - case 0: - colorName = Lang.template.item_color_red; - break; - case 1: - colorName = Lang.template.item_color_green; - break; - case 2: - colorName = Lang.template.item_color_blue; - break; - case 3: - colorName = Lang.template.item_color_yellow; - break; - case 4: - colorName = Lang.template.item_color_black; - break; - case 5: - colorName = Lang.template.item_color_white; - break; - } - } - } - return colorName; - }, - }, - // 무한회전 센서 AA1 을 0 값으로 정하기 - connect_infinite_setting: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - } - ], - def: { - params: [ - { - type: 'connect_dropdown_sensor_2', - }, - { - type: 'connect_dropdown_analog', - }, - { - type: 'number', - params: [ 0 ], - }, - null - ], - type: 'connect_infinite_setting', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - PARAM2: 2, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM1') - ); - let value = script.getNumberValue('PARAM2'); - let count = 0; - - if (value != 0) { - count = Number(value / 255).toFixed(0); - value = value % 255; - } else { - value = 0; - count = 0; - } - - Entry.ProboConnect.Infinite_Buff[port] = Entry.hw.portData.InputData.Analog[port]; - Entry.ProboConnect.Infinite_Start[port] = Entry.hw.portData.InputData.Analog[port]-value; - Entry.ProboConnect.Infinite_Count[port] = count; - - return script.callReturn(); - }, - }, - // 무한회전 센서 AA1 지름 53.5 의 mm 값 - connect_infinite_mm_diameter: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_sensor_2', - }, - { - type: 'connect_dropdown_analog', - }, - { - type: 'number', - params: [ 53.5 ], - }, - ], - type: 'connect_infinite_mm_diameter', - }, - paramsKeyMap: { - PARAM1: 1, - PARAM2: 2, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM1') - ); - const diameter = script.getNumberValue('PARAM2'); - let value = Entry.hw.portData.InputData.Analog[port]; - - if (value < Entry.ProboConnect.Infinite_Buff[port] - 150) { - - Entry.ProboConnect.Infinite_Count[port]++; - } else if (value > Entry.ProboConnect.Infinite_Buff[port] + 150) { - Entry.ProboConnect.Infinite_Count[port]--; - } - Entry.ProboConnect.Infinite_Buff[port] = value; - value = (Entry.ProboConnect.Infinite_Buff[port] - Entry.ProboConnect.Infinite_Start[port]) + (Entry.ProboConnect.Infinite_Count[port] * 255); - - return Number( - 2 * - 3.141592 * - (diameter / 2) / - 255 * - value - ).toFixed(3); - }, - }, - // 무한회전 센서 AA1 의 값 - connect_infinite_transform_input: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_sensor_2', - }, - { - type: 'connect_dropdown_analog', - }, - { - type: 'connect_dropdown_sensor_transfer', - }, - ], - type: 'connect_infinite_transform_input', - }, - paramsKeyMap: { - PARAM1: 1, - PARAM2: 2, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM1') - ); - const select = Entry.ProboConnect.convertDropdownSensorTransfer( - script.getStringValue('PARAM2') - ); - - let value = Entry.hw.portData.InputData.Analog[port]; - - if (value < (Entry.ProboConnect.Infinite_Buff[port] - 150)) { - Entry.ProboConnect.Infinite_Count[port]++; - } else if (value > (Entry.ProboConnect.Infinite_Buff[port] + 150)) { - Entry.ProboConnect.Infinite_Count[port]--; - } - Entry.ProboConnect.Infinite_Buff[port] = value; - value = (Entry.ProboConnect.Infinite_Buff[port] - Entry.ProboConnect.Infinite_Start[port]) + (Entry.ProboConnect.Infinite_Count[port] * 255); - - switch (select) { - case 2: - if (value > 0) { - return Math.floor((value%255) * 1.41732); - } else { - return Math.ceil((value%255) * 1.41732); - } - case 3: - return Number((360/255) * Entry.hw.portData.InputData.Analog[port]).toFixed(0); - case 4: - if (value > 0) { - return Math.floor(value / 255); - } else { - return Math.ceil(value / 255); - } - default: - return value; - } - }, - }, - // 멀티키 센서 AA1 의 키1 - connect_multi_sensor: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_boolean_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - { - type: 'connect_dropdown_key', - }, - ], - type: 'connect_multi_sensor', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM0') - ); - const key = Entry.ProboConnect.convertDropdownKey( - script.getStringValue('PARAM1') - ); - const value = Entry.hw.portData.InputData.Analog[port] & (0x1 << key)? 1 : 0; - return value; - }, - }, - // 분배스위치 센서 AA1의 키1 - connect_multi_switch: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_boolean_field', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_analog', - }, - { - type: 'connect_dropdown_key', - }, - ], - type: 'connect_multi_switch', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownAnalog( - script.getStringValue('PARAM0') - ); - const key = Entry.ProboConnect.convertDropdownKey( - script.getStringValue('PARAM1') - ); - const analog = Entry.hw.portData.InputData.Analog[port]; - let value = -1; - if (1 <= analog && analog <= 19) { - value = 0; - } else if (26 <= analog && analog <= 44) { - value = 1; - } else if (53 <= analog && analog <= 77) { - value = 2; - } else if (83 <= analog && analog <= 101) { - value = 3; - } else if (107 <= analog && analog <= 125) { - value = 4; - } else if (139 <= analog && analog <= 157) { - value = 5; - } else if (160 <= analog && analog <= 178) { - value = 6; - } else if (191 <= analog && analog <= 209) { - value = 7; - } - return key === value ? 1 : 0; - }, - }, - connect_eeprom_buffset: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [{ type: 'number', params: ['0'] }, null], - type: 'connect_eeprom_buffset', - }, - paramsKeyMap: { - ADDRESS: 0, - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const address = script.getNumberValue('ADDRESS', script); - if (!script.isStart) { - Entry.ProboConnect.EEPROM.EEPROM_Count = Entry.hw.portData.InputData.EEPROM.EC; - Entry.hw.sendQueue['EEPR4'] = 0x40; - Entry.hw.sendQueue['EEPR3'] = address; - - script.isStart = true; - script.timeFlag = 1; - var timeValue = 0.05; - var fps = Entry.FPS || 60; - timeValue = 60 / fps * timeValue * 1000; - - var blockId = script.block.id; - Entry.TimeWaitManager.add( - blockId, - function() { - script.timeFlag = 0; - }, - timeValue - ); - - return script; - } else if (script.timeFlag == 1) { - return script; - } else { - Entry.ProboConnect.EEPROM.EEPROM_Buff = - (Entry.hw.portData.InputData.EEPROM.EEPR2 << 8) + - Entry.hw.portData.InputData.EEPROM.EEPR1; - Entry.hw.sendQueue['EEPR4'] = 0; - - delete script.timeFlag; - delete script.isStart; - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - }, - // EEPROM 주소의 값 - connect_eeprom_address_value: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic_string_field', - def: { - type: 'connect_eeprom_address_value', - }, - class: 'input', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - var value = 0; - const count = Entry.ProboConnect.EEPROM.EEPROM_Count; - if (Entry.hw.portData.InputData.EEPROM.EC != count) { - value = Entry.ProboConnect.EEPROM.EEPROM_Buff; - } - return value; - }, - }, - ///======================================================================================== - /// output block - ///======================================================================================== - // DC 모터 1을(를) 0 속도로 회전 - connect_dc_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_dc_1_all', - }, - { - type: 'connect_dropdown_velocity', - }, - null, - ], - type: 'connect_dc_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const motor = Entry.ProboConnect.convertDropdownDC( - script.getStringValue('PARAM0') - ); - const value = script.getNumberValue('PARAM1'); - switch (motor) { - case 'DC5': - Entry.hw.sendQueue['DC1'] = value; - Entry.hw.sendQueue['DC2'] = value; - break; - case 'DC6': - Entry.hw.sendQueue['DC3'] = value; - Entry.hw.sendQueue['DC4'] = value; - break; - case 'DC7': - Entry.hw.sendQueue['DC1'] = value; - Entry.hw.sendQueue['DC2'] = value; - Entry.hw.sendQueue['DC3'] = value; - Entry.hw.sendQueue['DC4'] = value; - break; - default: - Entry.hw.sendQueue[motor] = value; - break; - } - return script.callReturn(); - }, - }, - // 서보모터 1 의 위치를 1 로 이동 - connect_servo_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_servo_1_4', - }, - { - type: 'connect_dropdown_servo_position', - }, - null, - ], - type: 'connect_servo_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const servo = Entry.ProboConnect.convertDropdownServo( - script.getStringValue('PARAM0') - ); - let value = script.getNumberValue('PARAM1'); - if (value < 1) { - value = 0; - } else if (value > 100) { - value = 100; - } - - Entry.hw.sendQueue[servo] = value; - return script.callReturn(); - }, - }, - // S 모터 1 을(를) 0 속도로 회전 - connect_s_dc_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_servo_1_4', - }, - { - type: 'connect_dropdown_velocity', - }, - null, - ], - type: 'connect_s_dc_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const motor = Entry.ProboConnect.convertDropdownServo( - script.getStringValue('PARAM0') - ); - let value = script.getNumberValue('PARAM1'); - - if (value > 20) { - value = 20; - } else if (value < -20) { - value = -20; - } - value += 148; - - switch (motor) { - case 'Servo5': - Entry.hw.sendQueue['Servo1'] = value; - Entry.hw.sendQueue['Servo2'] = value; - break; - case 'Servo6': - Entry.hw.sendQueue['Servo3'] = value; - Entry.hw.sendQueue['Servo4'] = value; - break; - default: - Entry.hw.sendQueue[motor] = value; - break; - } - return script.callReturn(); - }, - }, - // 출력핀 1 을(를) 켜기 - connect_port_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_port_1_4', - }, - { - type: 'connect_dropdown_on_off', - }, - null - ], - type: 'connect_port_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const motor = Entry.ProboConnect.convertDropdownPort( - script.getStringValue('PARAM0') - ); - const value = Entry.ProboConnect.convertDropdownOnOff( - script.getNumberValue('PARAM1') - ); - - Entry.hw.sendQueue[motor] = value; - return script.callReturn(); - }, - }, - // 도(60) 을(를) 4분 음표로 연주하기 - connect_melody_note_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_pitch', - }, - { - type: 'connect_dropdown_note', - }, - null - ], - type: 'connect_melody_note_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - if (!script.isStart) { - script.isStart = true; - script.timeFlag = 1; - const pitch = Entry.ProboConnect.convertDropdownPitch( - script.getNumberValue('PARAM0') - ); - const note = Entry.ProboConnect.convertDropdownNote( - script.getStringValue('PARAM1') - ); - - let timeValue = Entry.ProboConnect.Note[note]; - - Entry.hw.sendQueue['MEL2'] = pitch >> 8; - Entry.hw.sendQueue['MEL1'] = pitch; - - let fps = Entry.FPS || 60; - timeValue = 60 / fps * timeValue; - - let blockId = script.block.id; - Entry.TimeWaitManager.add( - blockId, - function() { - script.timeFlag = 0; - }, - timeValue - ); - return script; - } else if (script.timeFlag == 1) { - return script; - } else { - Entry.hw.sendQueue['MEL2'] = 0; - Entry.hw.sendQueue['MEL1'] = 0; - - delete script.timeFlag; - delete script.isStart; - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - }, - // 도(60) 을(를) 0.5 초 동안 연주하기 - connect_melody_sec_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_pitch', - }, - { - type: 'connect_dropdown_time_1', - }, - null - ], - type: 'connect_melody_sec_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - if (!script.isStart) { - script.isStart = true; - script.timeFlag = 1; - const pitch = Entry.ProboConnect.convertDropdownPitch( - script.getNumberValue('PARAM0') - ); - let timeValue = script.getNumberValue('PARAM1'); - - Entry.hw.sendQueue['MEL2'] = pitch >> 8; - Entry.hw.sendQueue['MEL1'] = pitch; - - let fps = Entry.FPS || 60; - timeValue = 60 / fps * timeValue * 1000; - - let blockId = script.block.id; - Entry.TimeWaitManager.add( - blockId, - function() { - script.timeFlag = 0; - }, - timeValue - ); - return script; - } else if (script.timeFlag == 1) { - return script; - } else { - Entry.hw.sendQueue['MEL2'] = 0; - Entry.hw.sendQueue['MEL1'] = 0; - - delete script.timeFlag; - delete script.isStart; - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - }, - // 도(60) 을(를) 연주하기 - connect_melody_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_pitch', - }, - null - ], - type: 'connect_melody_output', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const pitch = Entry.ProboConnect.convertDropdownPitch( - script.getNumberValue('PARAM0') - ); - - Entry.hw.sendQueue['MEL2'] = pitch >> 8; - Entry.hw.sendQueue['MEL1'] = pitch; - return script.callReturn(); - }, - }, - // 35391 값을 0.5 초 동안 연주하기 - connect_value_sec_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'number', - params: [ 35391 ], - }, - { - type: 'connect_dropdown_time_1', - }, - null - ], - type: 'connect_value_sec_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - if (!script.isStart) { - script.isStart = true; - script.timeFlag = 1; - - let melody = script.getNumberValue('PARAM0'); - let timeValue = script.getNumberValue('PARAM1'); - - Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; - Entry.hw.sendQueue['MEL1'] = melody & 0xff; - - let fps = Entry.FPS || 60; - timeValue = 60 / fps * timeValue * 1000; - - let blockId = script.block.id; - Entry.TimeWaitManager.add( - blockId, - function() { - script.timeFlag = 0; - }, - timeValue - ); - return script; - } else if (script.timeFlag == 1) { - return script; - } else { - Entry.hw.sendQueue['MEL2'] = 0; - Entry.hw.sendQueue['MEL1'] = 0; - - delete script.timeFlag; - delete script.isStart; - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - }, - // 35391 값을(를) 연주하기 - connect_value_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'number', - params: [ 35391 ], - }, - null - ], - type: 'connect_value_output', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - let melody = script.getNumberValue('PARAM0'); - Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; - Entry.hw.sendQueue['MEL1'] = melody & 0xff; - return script.callReturn(); - }, - }, - // 시작음 을(를) 1 초 간격으로 재생하기 - connect_melody_track_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_melody', - }, - { - type: 'connect_dropdown_time_2', - }, - null - ], - type: 'connect_melody_track_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - function getTrackStep(track,script){ - if(!script.isStart){ - script.isStart = true; - script.trackStep = 0; - } - else { - script.trackStep++; - } - let timeValue = script.getNumberValue('PARAM1'); - script.timeFlag = 1; - let melody = Entry.ProboConnect.Track[track][script.trackStep]; - Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; - Entry.hw.sendQueue['MEL1'] = melody & 0xff; - - let fps = Entry.FPS || 60; - timeValue = 60 / fps * timeValue * 1000; - - Entry.TimeWaitManager.add( - script.block.id, - function() { - script.timeFlag = 0; - }, - timeValue - ); - } - const TR = Entry.ProboConnect.convertDropdownMelody( - script.getStringValue('PARAM0') - ); - if (!script.isStart) { - switch(TR) { - case 0 : - script.maxStep = 6; - break; - case 1 : - script.maxStep = 7; - break; - case 2 : - script.maxStep = 3; - break; - case 3 : - script.maxStep = 3; - break; - } - getTrackStep(TR,script); - return script; - } else if (script.timeFlag == 1) { - return script; - } else if (script.trackStep < script.maxStep){ - getTrackStep(TR,script); - return script; - } else { - Entry.hw.sendQueue['MEL2'] = 0; - Entry.hw.sendQueue['MEL1'] = 0; - - delete script.trackStep; - delete script.maxStep; - delete script.timeFlag; - delete script.isStart; - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - }, - // 멜로디 중지 - connect_melody_off: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - null - ], - type: 'connect_melody_off', - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - Entry.hw.sendQueue['MEL2'] = 0; - Entry.hw.sendQueue['MEL1'] = 0; - return script.callReturn(); - }, - }, - // RGB LED 1 을(를) 빨간색 으로 켜기 - connect_rgbled_on_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_servo_1_4', - }, - { - type: 'connect_dropdown_color_2', - }, - null - ], - type: 'connect_rgbled_on_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownServo( - script.getStringValue('PARAM0') - ); - const color = Entry.ProboConnect.convertDropdownColor2( - script.getStringValue('PARAM1') - ); - Entry.hw.sendQueue[port] = color; - return script.callReturn(); - }, - }, - // RGB LED 을(를) 끄기 - connect_rgbled_off_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_servo_1_4', - }, - null - ], - type: 'connect_rgbled_off_output', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownServo( - script.getStringValue('PARAM0') - ); - Entry.hw.sendQueue[port] = 0; - }, - }, - // RGB LED 1 빨간색으로 0.5초 간격 - connect_rgbled_flashing_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_servo_1_4', - }, - { - type: 'connect_dropdown_color_2', - }, - { - type: 'connect_dropdown_time_3', - }, - null - ], - type: 'connect_rgbled_flashing_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - PARAM2: 2, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownServo( - script.getStringValue('PARAM0') - ); - const color = Entry.ProboConnect.convertDropdownColor2( - script.getStringValue('PARAM1') - ); - const sec = script.getNumberValue('PARAM2'); - let value = 0; - switch (sec) { - case 0.05: - value = color + 0; - break; - case 0.1: - value = color + 1; - break; - case 0.2: - value = color + 2; - break; - case 0.5: - value = color + 3; - break; - case 1: - value = color + 4; - break; - } - Entry.hw.sendQueue[port] = value; - return script.callReturn(); - }, - }, - // RGB LED 1을(를) 빨간색으로 디밍 - connect_rgbled_dimming_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'connect_dropdown_servo_1_4', - }, - { - type: 'connect_dropdown_color_2', - }, - null - ], - type: 'connect_rgbled_dimming_output', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const port = Entry.ProboConnect.convertDropdownServo( - script.getStringValue('PARAM0') - ); - let color = 0; - switch (script.getStringValue('PARAM1')) { - case '1': - color = 90; - break; - case '2': - color = 92; - break; - case '3': - color = 94; - break; - case '4': - color = 93; - break; - case '5': - color = 95; - break; - case '6': - color = 91; - break; - case '7': - color = 96; - break; - } - Entry.hw.sendQueue[port] = color; - return script.callReturn(); - }, - }, - // FND를 0 (으)로 설정 - connect_fnd_output: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'number', - params: [ 0 ], - }, - null - ], - type: 'connect_fnd_output', - }, - paramsKeyMap: { - PARAM0: 0, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const fnd = script.getNumberValue('PARAM0'); - Entry.hw.sendQueue['FND'] = fnd; - return script.callReturn(); - }, - }, - // FND 끄기 - connect_fnd_off: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - null - ], - type: 'connect_fnd_off', - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - Entry.hw.sendQueue['FND'] = 100; - return script.callReturn(); - }, - }, - // EEPROM 0 주소에 0 값 설정하기 - connect_eeprom_write: { - color: EntryStatic.colorSet.block.default.HARDWARE, - outerLine: EntryStatic.colorSet.block.darken.HARDWARE, - fontColor: '#fff', - skeleton: 'basic', - params: [ - { - type: 'Block', - accept: 'string', - }, - { - type: 'Block', - accept: 'string', - }, - { - type: 'Indicator', - img: 'block_icon/hardware_icon.svg', - size: 12, - }, - ], - def: { - params: [ - { - type: 'number', - params: [ 0 ] - }, - { - type: 'number', - params: [ 0 ] - }, - null, - ], - type: 'connect_eeprom_write', - }, - paramsKeyMap: { - PARAM0: 0, - PARAM1: 1, - }, - class: 'output', - isNotFor: ['ProboConnect'], - func: function(sprite, script) { - const address = script.getNumberValue('PARAM0'); - const value = script.getNumberValue('PARAM1'); - if (!script.isStart) { - Entry.hw.update(); - Entry.hw.sendQueue['EEPR4'] = 0x80; - Entry.hw.sendQueue['EEPR3'] = address; - Entry.hw.sendQueue['EEPR2'] = (value >> 8) & 0xff; - Entry.hw.sendQueue['EEPR1'] = value & 0xff; - script.isStart = true; - script.timeFlag = 1; - let timeValue = 0.05; - let fps = Entry.FPS || 60; - timeValue = 60 / fps * timeValue * 1000; - - let blockId = script.block.id; - Entry.TimeWaitManager.add( - blockId, - function() { - script.timeFlag = 0; - }, - timeValue - ); - return script; - } else if (script.timeFlag == 1) { - return script; - } else { - Entry.hw.update(); - Entry.hw.sendQueue['EEPR4'] = 0x40; - Entry.hw.sendQueue['EEPR3'] = address; - Entry.hw.sendQueue['EEPR2'] = 0; - Entry.hw.sendQueue['EEPR1'] = 0; - - setTimeout(function() { - Entry.hw.update(); - Entry.hw.sendQueue['EEPR4'] = 0; - Entry.hw.sendQueue['EEPR3'] = 0; - Entry.hw.sendQueue['EEPR2'] = 0; - Entry.hw.sendQueue['EEPR1'] = 0; - }, 100); - - delete script.timeFlag; - delete script.isStart; - Entry.engine.isContinue = false; - return script.callReturn(); - } - }, - }, - }; -}; - -module.exports = Entry.ProboConnect; +'use strict'; + +Entry.ProboConnect = { + afterReceive(pd) { + if(Entry.engine.isState('run')) { + Entry.engine.fireEvent('event_remote_input'); + Entry.engine.fireEvent('event_digital_input'); + } + }, + + id: '27.1', + name: 'ProboConnect', + url: 'https://www.aluxonline.com', + imageName: 'ProboConnect.png', + blockIndex: 0, + title: { + ko: '프로보커넥트', + en: 'ProboConnect', + }, + Color: [ + [13, 37], // 빨강 + [38, 62], // 초록 + [63, 87], // 파랑 + [88, 112], // 노랑 + [113, 137], // 검정 + [138, 162], // 하양 + ], + + Note:{ + n32 : 48, // = 1*3*4*4, + n16 : 96, // = 2*3*4*4, + n16d: 144, // = 3*3*4*4, + n16t: 64, // = 2*2*4*4, + n8 : 192, // = 4*3*4*4, + n8d : 288, // = 6*3*4*4, + n8t : 128, // = 4*2*4*4, + n4 : 384, // = 8*3*4*4, + n4d : 576, // = 12*3*4*4, + n4t : 256, // = 8*2*4*4, + n2 : 768, // = 16*3*4*4, + n2d : 1152, // = 24*3*4*4, + n2t : 512, // = 16*2*4*4, + n1 : 1536, // = 32*3*4*4 + }, + + RGB_LED:{ + red : 1, //RED ON + red1: 2, //RED 0.05 ON -> OFF 반복 + red2: 3, //RED 0.1 ON -> OFF 반복 + red3: 4, //RED 0.2 ON -> OFF 반복 + red4: 5, //RED 0.5 ON -> OFF 반복 + red5: 6, //RED 1 ON -> OFF 반복 + _red1: 7, //RED 0.05 OFF -> ON 반복 + _red2: 8, //RED 0.1 OFF -> ON 반복 + _red3: 9, //RED 0.2 OFF -> ON 반복 + _red4: 10, //RED 0.5 OFF -> ON 반복 + _red5: 11, //RED 1 OFF -> ON 반복 + + yellow: 12, //YELLOW ON + yellow1: 13, //YELLOW 0.05 ON -> OFF 반복 + yellow2: 14, //YELLOW 0.1 ON -> OFF 반복 + yellow3: 15, //YELLOW 0.2 ON -> OFF 반복 + yellow4: 16, //YELLOW 0.5 ON -> OFF 반복 + yellow5: 17, //YELLOW 1 ON -> OFF 반복 + _yellow1: 18, //YELLOW 0.05 OFF -> ON 반복 + _yellow2: 19, //YELLOW 0.1 OFF -> ON 반복 + _yellow3: 20, //YELLOW 0.2 OFF -> ON 반복 + _yellow4: 21, //YELLOW 0.5 OFF -> ON 반복 + _yellow5: 22, //YELLOW 1 OFF -> ON 반복 + + green : 23, //GREEN ON + green1: 24, //GREEN 0.05 ON -> OFF 반복 + green2: 25, //GREEN 0.1 ON -> OFF 반복 + green3: 26, //GREEN 0.2 ON -> OFF 반복 + green4: 27, //GREEN 0.5 ON -> OFF 반복 + green5: 28, //GREEN 1 ON -> OFF 반복 + _green1: 29, //GREEN 0.05 OFF -> ON 반복 + _green2: 30, //GREEN 0.1 OFF -> ON 반복 + _green3: 31, //GREEN 0.2 OFF -> ON 반복 + _green4: 32, //GREEN 0.5 OFF -> ON 반복 + _green5: 33, //GREEN 1 OFF -> ON 반복 + + cyan : 34, //CYAN ON + cyan1: 35, //CYAN 0.05 ON -> OFF 반복 + cyan2: 36, //CYAN 0.1 ON -> OFF 반복 + cyan3: 37, //CYAN 0.2 ON -> OFF 반복 + cyan4: 38, //CYAN 0.5 ON -> OFF 반복 + cyan5: 39, //CYAN 1 ON -> OFF 반복 + _cyan1: 40, //CYAN 0.05 OFF -> ON 반복 + _cyan2: 41, //CYAN 0.1 OFF -> ON 반복 + _cyan3: 42, //CYAN 0.2 OFF -> ON 반복 + _cyan4: 43, //CYAN 0.5 OFF -> ON 반복 + _cyan5: 44, //CYAN 1 OFF -> ON 반복 + + blue: 45, //BLUE ON + blue1: 46, //BLUE 0.05 ON -> OFF 반복 + blue2: 47, //BLUE 0.1 ON -> OFF 반복 + blue3: 48, //BLUE 0.2 ON -> OFF 반복 + blue4: 49, //BLUE 0.5 ON -> OFF 반복 + blue5: 50, //BLUE 1 ON -> OFF 반복 + _blue1: 51, //BLUE 0.05 OFF -> ON 반복 + _blue2: 52, //BLUE 0.1 OFF -> ON 반복 + _blue3: 53, //BLUE 0.2 OFF -> ON 반복 + _blue4: 54, //BLUE 0.5 OFF -> ON 반복 + _blue5: 55, //BLUE 1 OFF -> ON 반복 + + magenta: 56, //MAGENTA ON + magenta1: 57, //MAGENTA 0.05 ON -> OFF 반복 + magenta2: 58, //MAGENTA 0.1 ON -> OFF 반복 + magenta3: 59, //MAGENTA 0.2 ON -> OFF 반복 + magenta4: 60, //MAGENTA 0.5 ON -> OFF 반복 + magenta5: 61, //MAGENTA 1 ON -> OFF 반복 + _magenta1: 62, //MAGENTA 0.05 OFF -> ON 반복 + _magenta2: 63, //MAGENTA 0.1 OFF -> ON 반복 + _magenta3: 64, //MAGENTA 0.2 OFF -> ON 반복 + _magenta4: 65, //MAGENTA 0.5 OFF -> ON 반복 + _magenta5: 66, //MAGENTA 1 OFF -> ON 반복 + + white: 67, //WHITE ON + white1: 68, //WHITE 0.05 ON -> OFF 반복 + white2: 69, //WHITE 0.1 ON -> OFF 반복 + white3: 70, //WHITE 0.2 ON -> OFF 반복 + white4: 71, //WHITE 0.5 ON -> OFF 반복 + white5: 72, //WHITE 1 ON -> OFF 반복 + _white1: 73, //WHITE 0.05 OFF -> ON 반복 + _white2: 74, //WHITE 0.1 OFF -> ON 반복 + _white3: 75, //WHITE 0.2 OFF -> ON 반복 + _white4: 76, //WHITE 0.5 OFF -> ON 반복 + _white5: 77, //WHITE 1 OFF -> ON 반복 + + rgbrnd1: 78, //RANDOM 1 + rgbrnd2: 79, //RANDOM 2 + + red_d: 90, //RED + yellow_d: 91, //YELLOW + green_d: 92, //GREEN + cyan_d: 93, //CYAN + blue_d: 94, //BLUE + magenta_d: 95, //MAGENTA + white_d: 96, //WHITE + + rgboff: 100 //RGB LED OFF + }, + + Melody: [0, 35391, 33405, 31530, 29760, 28090, 26513, 25025, 23621, 22295, 21044, 19863, 18748], + Melody_S: [0, 35391, 31530, 28090, 26513, 23621, 21044, 18748], + + Track:[ + [0x451F, 0x3D95, 0x36DD, 0x33C8, 0x2E22, 0x291A, 0x249E],// Start : size 7, + [0x228F, 0x249E, 0x291A, 0x2E22, 0x33C8, 0x36DD, 0x3D95, 0x451F],// End : size 8, + [0x228F, 0x1B6E, 0x1711, 0x1147 ],// LevelUp : size 4, + [0x1147, 0x1711, 0x1B6E, 0x228F ],// LevelDwon : size 4, + ], + + Infinite_Buff: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Infinite_Count: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Infinite_Start: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + + SenserSet:{ + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + + InputData: { + Analog: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0, + }, + Digital: { + A1: 0, + A2: 0, + A3: 0, + A4: 0, + FEA1: 0, + FEA2: 0, + FEA3: 0, + FEA4: 0, + REA1: 0, + REA2: 0, + REA3: 0, + REA4: 0, + BEA1: 0, + BEA2: 0, + BEA3: 0, + BEA4: 0, + }, + Remote: { + R_1: 0, + R_2: 0, + R_3: 0, + R_4: 0, + R_5: 0, + R_6: 0, + R_7: 0, + R_8: 0, + R_L1: 0, + R_L2: 0, + R_R1: 0, + R_R2: 0, + }, + EEPROM: { + EC: 0, + EEPR2: 0, + EEPR1: 0, + }, + Infinite:{ + ROTATION_1: 0, + ROTATION_2: 0, + ROTATION_3: 0, + ROTATION_4: 0 + }, + Acceler:{ + AXIS_X1: 0, + AXIS_X2: 0, + AXIS_X3: 0, + AXIS_X4: 0, + AXIS_Y1: 0, + AXIS_Y2: 0, + AXIS_Y3: 0, + AXIS_Y4: 0, + AXIS_Z1: 0, + AXIS_Z2: 0, + AXIS_Z3: 0, + AXIS_Z4: 0, + } + }, + RemoteData: { + B1: 0, + B2: 0, + B3: 0, + B4: 0, + Servo1: 0, + Servo2: 0, + Servo3: 0, + Servo4: 0, + DC1: 0, + DC2: 0, + DC3: 0, + DC4: 0, + MEL2: 0, + MEL1: 0, + FND: 100, + EEPR4: 0, + EEPR3: 0, + EEPR2: 0, + EEPR1: 0, + ASET2: 0, + ASET1: 0, + }, + EdgeFlag: { + FEA1: 0, + FEA2: 0, + FEA3: 0, + FEA4: 0, + REA1: 0, + REA2: 0, + REA3: 0, + REA4: 0, + BEA1: 0, + BEA2: 0, + BEA3: 0, + BEA4: 0, + }, + EEPROM: { + EEPROM_Buff: 0, + EEPROM_Count: 0, + }, + + setZero: function() { + for (let key in this.EdgeFlag) { + this.EdgeFlag[key] = 0; + } + for (let key in this.RemoteData) { + Entry.hw.sendQueue[key] = this.RemoteData[key]; + } + for (let key in this.SenserSet) { + this.SenserSet[key] = 0; + } + Entry.hw.update(); + }, + convertDropdownRemote(value) { + switch (value) { + case '1': + return 'R_1'; + case '2': + return 'R_2'; + case '3': + return 'R_3'; + case '4': + return 'R_4'; + case '5': + return 'R_5'; + case '6': + return 'R_6'; + case '7': + return'R_7'; + case '8': + return'R_8'; + case '9': + return 'R_L1'; + case '10': + return 'R_L2'; + case '11': + return 'R_R1'; + case '12': + return 'R_R2'; + default: + return value; + } + }, + convertDropdownDigital(value) { + switch (value) { + case '1': + return 'A1'; + case '2': + return 'A2'; + case '3': + return 'A3'; + case '4': + return 'A4'; + case '5': + return 'FEA1'; + case '6': + return 'FEA2'; + case '7': + return 'FEA3'; + case '8': + return 'FEA4'; + case '9': + return 'REA1'; + case '10': + return 'REA2'; + case '11': + return 'REA3'; + case '12': + return 'REA4'; + case '13': + return 'BEA1'; + case '14': + return 'BEA2'; + case '15': + return 'BEA3'; + case '16': + return 'BEA4'; + default: + return value; + } + }, + convertDropdownAnalog(value) { + switch (value) { + case '1': + case '2': + case '3': + case '4': + return 'AA' + value; + default: + return value; + } + }, + convertDropdownAxis(value, axis) { + switch (value) { + case 'AA1': + case 'AA2': + case 'AA3': + case 'AA4': + value = value.substr(2, 2); + break; + } + return "AXIS_" + axis + value; + }, + convertDropdownSensor1(value) { + switch (value) { + case Lang.template.item_switch: + case '1': + return 1; + case Lang.template.item_infrared: + case '2': + return 2; + case Lang.template.item_magnetic: + case '3': + return 3; + case Lang.template.item_rotation: + case '4': + return 4; + case Lang.template.item_color: + case '5': + return 5; + case Lang.template.item_acceleration: + case '6': + return 6; + case Lang.template.item_ultrasonic: + case '7': + return 7; + case Lang.template.item_heart_rate: + case '8': + return 8; + case Lang.template.item_illuminance: + case '9': + return 9; + case Lang.template.item_sound: + case '10': + return 10; + case Lang.template.item_tilt: + case '11': + return 11; + case Lang.template.item_pressure: + case '12': + return 12; + case Lang.template.item_multi_touch: + case '13': + return 13; + case Lang.template.item_compass: + case '14': + return 14; + case Lang.template.item_3acceleration: + case '15': + return 15; + case Lang.template.item_multi_switch: + case '16': + return 16; + } + }, + convertDropdownSensor2(value) { + switch (value) { + case Lang.template.item_infinite_rotation: + case '1': + return 1; + case Lang.template.item_compass: + case '2': + return 2; + default: + return value; + } + }, + convertDropdownKey(value) { + switch (value) { + case Lang.template.item_key_1: + case '1': + return 0; + case Lang.template.item_key_2: + case '2': + return 1; + case Lang.template.item_key_3: + case '3': + return 2; + case Lang.template.item_key_4: + case '4': + return 3; + case Lang.template.item_key_5: + case '5': + return 4; + case Lang.template.item_key_6: + case '6': + return 5; + case Lang.template.item_key_7: + case '7': + return 6; + case Lang.template.item_key_8: + case '8': + return 7; + default: + return value; + } + }, + convertDropdownOnOff(value) { + switch (value) { + case Lang.template.item_on: + case '1': + return 1; + case Lang.template.item_off: + case '0': + return 0; + default: + return value + } + + }, + convertDropdownDC(value) { + switch (value) { + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + return 'DC' + value; + default: + return value; + } + }, + convertDropdownServo(value) { + switch (value) { + case '1': + case '2': + case '3': + case '4': + return 'Servo' + value; + default: + return value; + } + }, + convertDropdownPort(value) { + switch (value) { + case '1': + case '2': + case '3': + case '4': + return 'B' + value; + default: + return value; + } + }, + convertDropdownSensorTransfer(value) { + switch (value) { + case '1': + case Lang.template.item_value: + return 1; + case '2': + case Lang.template.item_angle: + return 2; + case '3': + case Lang.template.item_absolute_angle: + return 3; + case '4': + case Lang.template.item_number_of_rotations: + return 4; + default: + value; + } + }, + convertDropdownPitch(pitch) { + // 배열의 인덱스 1번부터 음표 + const index = (pitch % 12) + 1; + + let value = 0; + if (36 <= pitch && pitch <= 47) { + value = Entry.ProboConnect.Melody[index]; + } else if (48 <= pitch && pitch <= 59) { + value = Entry.ProboConnect.Melody[index] >> 1; + } else if (60 <= pitch && pitch <= 71) { + value = Entry.ProboConnect.Melody[index] >> 2; + } else if (72 <= pitch && pitch <= 83) { + value = Entry.ProboConnect.Melody[index] >> 3; + } else { + value = Entry.ProboConnect.Melody[0]; + } + return value; + }, + convertDropdownNote(value) { + switch (value) { + case Lang.template.item_note_whole: + case '1': + return 'n1'; + case Lang.template.item_note_half: + case '2': + return 'n2'; + case Lang.template.item_note_quarter: + case '4': + return 'n4'; + case Lang.template.item_note_eighth: + case '8': + return 'n8'; + case Lang.template.item_note_sixteenth: + case '16': + return 'n16'; + case Lang.template.item_note_thirty_second: + case '32': + return 'n32'; + default: + return value; + } + }, + convertDropdownMelody(value) { + switch (value) { + case Lang.template.item_melody_start: + case '1': + return 0; + case Lang.template.item_melody_end: + case '2': + return 1; + case Lang.template.item_melody_level_up: + case '3': + return 2; + case Lang.template.item_melody_level_down: + case '4': + return 3; + default: + return value; + } + }, + convertDropdownColor1(value) { + switch (value) { + case Lang.template.item_color_red: + return 0; + case Lang.template.item_color_green: + return 1; + case Lang.template.item_color_blue: + return 2; + case Lang.template.item_color_yellow: + return 3; + case Lang.template.item_color_black: + return 4; + case Lang.template.item_color_white: + return 5; + default: + return value - 1; + } + }, + convertDropdownColor2(value) { + switch (value) { + case Lang.template.item_color_red: + case '1': + return 1; + case Lang.template.item_color_green: + case '2': + return 23; + case Lang.template.item_color_blue: + case '3': + return 45; + case Lang.template.item_color_cyan: + case '4': + return 34; + case Lang.template.item_color_magenta: + case '5': + return 56; + case Lang.template.item_color_yellow: + case '6': + return 12; + case '7': + case Lang.template.item_color_white: + return 67; + default: + return value; + } + }, +}; + +Entry.ProboConnect.setLanguage = function() { + return { + ko: { + template: { + item_switch: '스위치', + item_infrared: '적외선', + item_magnetic: '자석', + item_rotation: '회전', + item_color: '컬러', + item_acceleration: '가속도', + item_ultrasonic: '초음파', + item_heart_rate: '심박', + item_illuminance: '조도', + item_temperature: '온도', + item_sound: '소리', + item_tilt: '기울기', + item_pressure: '압력', + item_multi_touch: '멀티키', + item_compass: '나침반', + item_3acceleration: '3가속', + item_multi_switch: '분배기', + item_infinite_rotation: '무한회전', + item_color_red: '빨간색', + item_color_green: '초록색', + item_color_blue: '파란색', + item_color_cyan: '청녹색', + item_color_magenta: '자홍색', + item_color_yellow: '노란색', + item_color_black: '검정색', + item_color_white: '하얀색', + item_value: '값', + item_angle: '각도', + item_absolute_angle: '절대각도', + item_number_of_rotations: '회전 수', + item_key_1: '키1', + item_key_2: '키2', + item_key_3: '키3', + item_key_4: '키4', + item_key_5: '키5', + item_key_6: '키6', + item_key_7: '키7', + item_key_8: '키8', + item_all: '모두', + item_on: '켜기', + item_off: '끄기', + item_note_whole: '온', + item_note_half: '2분', + item_note_quarter: '4분', + item_note_eighth: '8분', + item_note_sixteenth: '16분', + item_note_thirty_second: '32분', + item_pitch_do: '도', + item_pitch_do_sharp: '도#', + item_pitch_re: '레', + item_pitch_re_sharp: '레#', + item_pitch_mi: '미', + item_pitch_fa: '파', + item_pitch_fa_sharp: '파#', + item_pitch_sol: '솔', + item_pitch_sol_sharp: '솔#', + item_pitch_ra: '라', + item_pitch_ra_sharp: '라#', + item_pitch_si: '시', + item_melody_start: '시작음', + item_melody_end: '종료음', + item_melody_level_up: '레벨 업', + item_melody_level_down: '레벨 다운', + + connect_remote_event: '%1 리모컨 %2 키를 눌렀을 때', + connect_digital_event: '%1 디지털 입력 %2 이(가) 들어왔을 때', + + connect_senser_setting: '입력포트 %1 을(를) %2 센서로 설정 %3', + + connect_remote_input: '리모컨 입력 %1', + connect_digital_input: '디지털 입력 %1', + connect_analog_input: '아날로그 입력 %1', + connect_3axis_acceler_x: '3가속도 %1의 X축', + connect_3axis_acceler_y: '3가속도 %1의 Y축', + connect_3axis_acceler_z: '3가속도 %1의 Z축', + connect_value_mapping: '%1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환', + connect_color_input_b: '컬러 센서 %1 이(가) %2 인가?', + connect_color_input_r: '컬러 센서 %1 의 색상', + connect_infinite_setting: '%1 센서 %2 을 %3 값으로 정하기 %4', + connect_infinite_mm_diameter: '%1 센서 %2 지름 %3 의 mm 값', + connect_infinite_transform_input: '%1 센서 %2 의 %3', + connect_multi_sensor: '멀티키 센서 %1의 %2', + connect_multi_switch: '분배 스위치 %1의 %2', + connect_eeprom_buffset: 'EEPROM %1 주소의 값 호출하기 %2', + connect_eeprom_address_value: 'EEPROM 주소의 값', + + connect_port_output: '출력핀 %1 을(를) %2 %3', + connect_servo_output: '서보 모터 %1 의 위치를 %2 로 이동 %3', + connect_s_dc_output: 'S 모터 %1 을(를) %2 속도로 회전 %3', + connect_dc_output: 'DC 모터 %1 을(를) %2 속도로 회전 %3', + connect_melody_note_output: '%1 을(를) %2 음표로 연주하기 %3', + connect_melody_sec_output: '%1 을(를) %2 초 동안 연주하기 %3', + connect_melody_output: '%1 을(를) 연주하기 %2', + connect_value_sec_output: '%1 값을(를) %2 초 동안 연주하기 %3', + connect_value_output: '%1 값을(를) 연주하기 %2', + connect_melody_track_output: '%1 을(를) %2초 간격으로 재생하기 %3', + connect_melody_off: '멜로디 중지 %1', + connect_rgbled_on_output: 'RGB LED %1 을(를) %2 으로 켜기 %3', + connect_rgbled_off_output: 'RGB LED %1 을(를) 끄기 %2', + connect_rgbled_dimming_output: 'RGB LED %1 을(를) %2 으로 디밍 %3', + connect_rgbled_flashing_output: 'RGB LED %1 %2 으로 %3 초 간격 %4', + connect_fnd_output: 'FND를 %1 (으)로 설정 %2', + connect_fnd_off: 'FND 끄기 %1', + connect_eeprom_write: 'EEPROM %1 주소에 %2 값 설정하기 %3', + }, + }, + en: { + template: { + item_switch: 'Switch', + item_infrared: 'Infrared', + item_magnetic: 'Magnetic', + item_rotation: 'Rotation', + item_color: 'Color', + item_acceleration: 'Acceleration', + item_ultrasonic: 'Ultrasonic', + item_heart_rate: 'Heart Rate', + item_illuminance: 'Illuminance', + item_temperature: 'Temperature', + item_sound: 'Sound', + item_tilt: 'Tilt', + item_pressure: 'Pressure', + item_multi_touch: 'Multi Touch', + item_compass: 'Compass', + item_3acceleration: '3Acceleration', + item_multi_switch: 'Multi Switch', + item_infinite_rotation: 'Infinite Rotation', + item_color_red: 'Red', + item_color_green: 'Green', + item_color_blue: 'Blue', + item_color_cyan: 'Cyan', + item_color_magenta: 'Magenta', + item_color_yellow: 'Yellow', + item_color_black: 'Black', + item_color_white: 'White', + item_value: 'Value', + item_angle: 'Angle', + item_absolute_angle: 'Absolute Angle', + item_number_of_rotations: 'Number of Rotations', + item_key_1: 'Key1', + item_key_2: 'Key2', + item_key_3: 'Key3', + item_key_4: 'Key4', + item_key_5: 'Key5', + item_key_6: 'Key6', + item_key_7: 'Key7', + item_key_8: 'Key8', + item_all: 'All', + item_on: 'On', + item_off: 'Off', + item_note_whole: 'Whole', + item_note_half: 'Half', + item_note_quarter: 'Quarter', + item_note_eighth: 'Eighth', + item_note_sixteenth: 'Sixteenth', + item_note_thirty_second: 'Thirty-Second', + item_pitch_do: 'do', + item_pitch_do_sharp: 'xdo', + item_pitch_re: 're', + item_pitch_re_sharp: 'xre', + item_pitch_mi: 'mi', + item_pitch_fa: 'fa', + item_pitch_fa_sharp: 'xfa', + item_pitch_sol: 'sol', + item_pitch_sol_sharp: 'xsol', + item_pitch_ra: 'ra', + item_pitch_ra_sharp: 'xra', + item_pitch_si: 'si', + item_melody_start: 'Start', + item_melody_end: 'End', + item_melody_level_up: 'Level up', + item_melody_level_down: 'Level down', + + connect_remote_event: '%1 When %2 remote control key pressed', + connect_digital_event: '%1 When %2 digital pin input', + + connect_senser_setting: 'Set input port %1 to %2 sensor %3', + + connect_remote_input: 'Remote control %1', + connect_digital_input: 'Read digital pin %1', + connect_analog_input: 'Read analog pin %1', + connect_3axis_acceler_x: '3acceleration %1 and X', + connect_3axis_acceler_y: '3acceleration %1 and Y', + connect_3axis_acceler_z: '3acceleration %1 and Z', + connect_value_mapping: '%1 to value %2 ~ %3 change %4 ~ %5', + connect_color_input_b: 'Is color sensor %1 %2 ?', + connect_color_input_r: 'Color of color sensor %1', + connect_infinite_setting: 'Set %1 sensor %2 to %3 value %4', + connect_infinite_mm_diameter: 'The move distance(in mm) when the %1 sensor %2 is %3 mm in diameter', + connect_infinite_transform_input: '%1 rotation sensor %2 to %3', + connect_multi_sensor: 'Multi sensor %1 key %2', + connect_multi_switch: 'A key number of the multi-switch sensor %1 = %2', + connect_eeprom_buffset:'Calling the value of EEPROM %1 address', + connect_eeprom_address_value: 'Value of EEPROM address', + + connect_dc_output: 'DC motor %1 velocity %2 %3', + connect_servo_output: 'Servo motor %1 position %2 %3', + connect_s_dc_output: 'Servo motor %1 speed %2 %3', + connect_port_output: 'Set digital pint %1 as %2 %3', + connect_melody_note_output: 'Play key %1 for %2 note %3', + connect_melody_sec_output: 'Play key %1 for %2 secs %3', + connect_melody_output: 'Play key %1 %2', + connect_value_sec_output: 'Play value %1 for %2 secs %3', + connect_value_output: 'Play value %1 %2', + connect_melody_track_output: 'Play sound %1 for %2 secs %3', + connect_melody_off: 'Stop tone %1', + connect_rgbled_on_output: 'Turn on RGB LED %1 to %2 %3', + connect_rgbled_off_output: 'Turn off RGB LED %1 %2', + connect_rgbled_dimming_output: 'Dimming RGB LED %1 to %2 %3', + connect_rgbled_flashing_output: 'RGB LED %1 Blinking %2 at %3 second intervals %4', + connect_fnd_output: 'Set FND to %1 %2', + connect_fnd_off: 'Turn off FND %1', + connect_eeprom_write: 'Set EEPROM %1 address to %2 %3', + }, + }, + }; +}; + +Entry.ProboConnect.blockMenuBlocks = [ + 'connect_dropdown_remote', + 'connect_dropdown_digital', + 'connect_dropdown_analog', + 'connect_dropdown_sensor_1', + 'connect_dropdown_sensor_2', + 'connect_dropdown_color_1', + 'connect_dropdown_color_2', + 'connect_dropdown_sensor_transfer', + 'connect_dropdown_key', + 'connect_dropdown_dc_1_all', + 'connect_dropdown_servo_1_4', + 'connect_dropdown_port_1_4', + 'connect_dropdown_on_off', + 'connect_dropdown_velocity', + 'connect_dropdown_servo_position', + 'connect_dropdown_note', + 'connect_dropdown_time_1', + 'connect_dropdown_time_2', + 'connect_dropdown_time_3', + 'connect_dropdown_pitch', + 'connect_dropdown_melody', + + //event + 'connect_remote_event', + 'connect_digital_event', + + //input + 'connect_senser_setting', + 'connect_remote_input', + 'connect_digital_input', + 'connect_analog_input', + 'connect_3axis_acceler_x', + 'connect_3axis_acceler_y', + 'connect_3axis_acceler_z', + 'connect_value_mapping', + 'connect_color_input_b', + 'connect_color_input_r', + 'connect_infinite_setting', + 'connect_infinite_mm_diameter', + 'connect_infinite_transform_input', + 'connect_multi_sensor', + 'connect_multi_switch', + 'connect_eeprom_buffset', + 'connect_eeprom_address_value', + + //output + 'connect_dc_output', + 'connect_servo_output', + 'connect_s_dc_output', + 'connect_port_output', + 'connect_melody_note_output', + 'connect_melody_sec_output', + 'connect_melody_output', + 'connect_value_sec_output', + 'connect_value_output', + 'connect_melody_track_output', + 'connect_melody_off', + 'connect_rgbled_on_output', + 'connect_rgbled_off_output', + 'connect_rgbled_flashing_output', + 'connect_rgbled_dimming_output', + 'connect_fnd_output', + 'connect_fnd_off', + // EEPROM + 'connect_eeprom_write', +]; + +// 블록 생성 +Entry.ProboConnect.getBlocks = function() { + return { + ///======================================================================================== + /// Dropdown block + ///======================================================================================== + connect_dropdown_remote: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['R_1', '1'], + ['R_2', '2'], + ['R_3', '3'], + ['R_4', '4'], + ['R_5', '5'], + ['R_6', '6'], + ['R_7', '7'], + ['R_8', '8'], + ['R_L1', '9'], + ['R_L2', '10'], + ['R_R1', '11'], + ['R_R2', '12'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_digital: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['A1', '1'], + ['A2', '2'], + ['A3', '3'], + ['A4', '4'], + ['FEA1', '5'], + ['FEA2', '6'], + ['FEA3', '7'], + ['FEA4', '8'], + ['REA1', '9'], + ['REA2', '10'], + ['REA3', '11'], + ['REA4', '12'], + ['BEA1', '13'], + ['BEA2', '14'], + ['BEA3', '15'], + ['BEA4', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_analog: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['AA1', '1'], + ['AA2', '2'], + ['AA3', '3'], + ['AA4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_sensor_1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_switch, '1'], + [Lang.template.item_infrared, '2'], + [Lang.template.item_magnetic, '3'], + [Lang.template.item_rotation, '4'], + [Lang.template.item_color, '5'], + [Lang.template.item_acceleration, '6'], + [Lang.template.item_ultrasonic, '7'], + [Lang.template.item_heart_rate, '8'], + [Lang.template.item_illuminance, '9'], + [Lang.template.item_sound, '10'], + [Lang.template.item_tilt, '11'], + [Lang.template.item_pressure, '12'], + [Lang.template.item_multi_touch, '13'], + [Lang.template.item_compass, '14'], + [Lang.template.item_3acceleration, '15'], + [Lang.template.item_multi_switch, '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_sensor_2: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_infinite_rotation, '1'], + [Lang.template.item_compass, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_color_1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_color_red, '1'], + [Lang.template.item_color_green, '2'], + [Lang.template.item_color_blue, '3'], + [Lang.template.item_color_yellow, '4'], + [Lang.template.item_color_black, '5'], + [Lang.template.item_color_white, '6'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_color_2: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_color_red, '1'], + [Lang.template.item_color_green, '2'], + [Lang.template.item_color_blue, '3'], + [Lang.template.item_color_cyan, '4'], + [Lang.template.item_color_magenta, '5'], + [Lang.template.item_color_yellow, '6'], + [Lang.template.item_color_white, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_sensor_transfer: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_value, '1'], + [Lang.template.item_angle, '2'], + [Lang.template.item_absolute_angle, '3'], + [Lang.template.item_number_of_rotations, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_key_1, '1'], + [Lang.template.item_key_2, '2'], + [Lang.template.item_key_3, '3'], + [Lang.template.item_key_4, '4'], + [Lang.template.item_key_5, '5'], + [Lang.template.item_key_6, '6'], + [Lang.template.item_key_7, '7'], + [Lang.template.item_key_8, '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_dc_1_all: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', 'DC1'], + ['2', 'DC2'], + ['3', 'DC3'], + ['4', 'DC4'], + ['1,2', 'DC5'], + ['3,4', 'DC6'], + [Lang.template.item_all, 'DC7'], + ], + value: 'DC1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_servo_1_4: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', 'Servo1'], + ['2', 'Servo2'], + ['3', 'Servo3'], + ['4', 'Servo4'], + ], + value: 'Servo1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_velocity: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['20', '20'], + ['15', '15'], + ['10', '10'], + ['5', '5'], + ['0', '0'], + ['-5', '-5'], + ['-10', '-10'], + ['-15', '-15'], + ['-20', '-20'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_servo_position: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['20', '20'], + ['40', '40'], + ['60', '60'], + ['80', '80'], + ['100', '100'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_port_1_4: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', 'B1'], + ['2', 'B2'], + ['3', 'B3'], + ['4', 'B4'], + ], + value: 'B1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_on_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_on, '1'], + [Lang.template.item_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_note: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_note_whole, '1'], + [Lang.template.item_note_half, '2'], + [Lang.template.item_note_quarter, '4'], + [Lang.template.item_note_eighth, '8'], + [Lang.template.item_note_sixteenth, '16'], + [Lang.template.item_note_thirty_second, '32'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_time_1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_time_2: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_time_3: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.05', '0.05'], + ['0.1', '0.1'], + ['0.2', '0.2'], + ['0.5', '0.5'], + ['1', '1'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + connect_dropdown_pitch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'DropdownExtra', + options: [ + [Lang.template.item_pitch_do + ' (36)', '36'], + [Lang.template.item_pitch_do_sharp + ' (37)', '37'], + [Lang.template.item_pitch_re + ' (38)', '38'], + [Lang.template.item_pitch_re_sharp + ' (39)', '39'], + [Lang.template.item_pitch_mi + ' (40)', '40'], + [Lang.template.item_pitch_fa + ' (41)', '41'], + [Lang.template.item_pitch_fa_sharp + ' (42)', '42'], + [Lang.template.item_pitch_sol + ' (43)', '43'], + [Lang.template.item_pitch_sol_sharp + ' (44)', '44'], + [Lang.template.item_pitch_ra + ' (45)', '45'], + [Lang.template.item_pitch_ra_sharp + ' (46)', '46'], + [Lang.template.item_pitch_si + ' (47)', '47'], + + [Lang.template.item_pitch_do + ' (48)', '48'], + [Lang.template.item_pitch_do_sharp + ' (49)', '49'], + [Lang.template.item_pitch_re + ' (50)', '50'], + [Lang.template.item_pitch_re_sharp + ' (51)', '51'], + [Lang.template.item_pitch_mi + ' (52)', '52'], + [Lang.template.item_pitch_fa + ' (53)', '53'], + [Lang.template.item_pitch_fa_sharp + ' (54)', '54'], + [Lang.template.item_pitch_sol + ' (55)', '55'], + [Lang.template.item_pitch_sol_sharp + ' (56)', '56'], + [Lang.template.item_pitch_ra + ' (57)', '57'], + [Lang.template.item_pitch_ra_sharp + ' (58)', '58'], + [Lang.template.item_pitch_si + ' (59)', '59'], + + [Lang.template.item_pitch_do + ' (60)', '60'], + [Lang.template.item_pitch_do_sharp + ' (61)', '61'], + [Lang.template.item_pitch_re + ' (62)', '62'], + [Lang.template.item_pitch_re_sharp + ' (63)', '63'], + [Lang.template.item_pitch_mi + ' (64)', '64'], + [Lang.template.item_pitch_fa + ' (65)', '65'], + [Lang.template.item_pitch_fa_sharp + ' (66)', '66'], + [Lang.template.item_pitch_sol + ' (67)', '67'], + [Lang.template.item_pitch_sol_sharp + ' (68)', '68'], + [Lang.template.item_pitch_ra + ' (69)', '69'], + [Lang.template.item_pitch_ra_sharp + ' (70)', '70'], + [Lang.template.item_pitch_si + ' (71)', '71'], + + [Lang.template.item_pitch_do + ' (72)', '72'], + [Lang.template.item_pitch_do_sharp + ' (73)', '73'], + [Lang.template.item_pitch_re + ' (74)', '74'], + [Lang.template.item_pitch_re_sharp + ' (75)', '75'], + [Lang.template.item_pitch_mi + ' (76)', '76'], + [Lang.template.item_pitch_fa + ' (77)', '77'], + [Lang.template.item_pitch_fa_sharp + ' (78)', '78'], + [Lang.template.item_pitch_sol + ' (79)', '79'], + [Lang.template.item_pitch_sol_sharp + ' (80)', '80'], + [Lang.template.item_pitch_ra + ' (81)', '81'], + [Lang.template.item_pitch_ra_sharp + ' (82)', '82'], + [Lang.template.item_pitch_si + ' (83)', '83'], + ], + value: '60', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + const value = script.getField('PARAM0'); + return value; + } + }, + connect_dropdown_melody: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.item_melody_start, '1'], + [Lang.template.item_melody_end, '2'], + [Lang.template.item_melody_level_up, '3'], + [Lang.template.item_melody_level_down, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('PARAM0'); + } + }, + ///======================================================================================== + /// Event block + ///======================================================================================== + // 리모컨 R_1 키를 눌렀을 때 + connect_remote_event: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardware.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'connect_dropdown_remote', + }, + ], + type: 'connect_remote_event', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'event', + isNotFor: ['ProboConnect'], + event: 'event_remote_input', + func(sprite, script) { + const btn = Entry.ProboConnect.convertDropdownRemote( + script.getStringValue('PARAM1') + ); + if (Entry.hw.portData.InputData.Remote[btn] == 1 ) { + return script.callReturn(); + } + return this.die(); + }, + }, + // 디지털 입력 A1 이(가) 들어왔을 때 + connect_digital_event: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardware.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'connect_dropdown_digital', + }, + ], + type: 'connect_digital_event', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'event', + isNotFor: ['ProboConnect'], + event: 'event_digital_input', + func(sprite, script) { + const port = Entry.ProboConnect.convertDropdownDigital( + script.getStringValue('PARAM1') + ); + switch(port) { + case 'FEA1': + case 'FEA2': + case 'FEA3': + case 'FEA4': + case 'REA1': + case 'REA2': + case 'REA3': + case 'REA4': + case 'BEA1': + case 'BEA2': + case 'BEA3': + case 'BEA4': + if (Entry.hw.portData.InputData.Digital[port] == 1) { + if (Entry.ProboConnect.EdgeFlag[port] == 0) { + Entry.ProboConnect.EdgeFlag[port] = 1; + return script.callReturn(); + } + } else { + Entry.ProboConnect.EdgeFlag[port] = 0; + } + break; + default: + if (Entry.hw.portData.InputData.Digital[port] == 1 ) { + return script.callReturn(); + } + break; + } + + return this.die(); + }, + }, + ///======================================================================================== + /// Input block + ///======================================================================================== + // 입력포트 AA1 을(를) 스위치 센서로 설정 + connect_senser_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + { + type: 'connect_dropdown_sensor_1', + }, + null, + ], + type: 'connect_senser_setting', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'setting', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const sensor = Entry.ProboConnect.convertDropdownSensor1( + script.getStringValue('PARAM1') + ); + let index = 0; + switch (port) { + case 'AA1': + index = 0; + break; + case 'AA2': + index = 1; + break; + case 'AA3': + index = 2; + break; + case 'AA4': + index = 3; + break; + } + + let Aset = [0, 0, 0, 0]; + let value = [0, 0, 0, 0]; + + Aset[index] = sensor; + for (let i = 0; i < 4; i++) { + switch (Aset[i]) { + case 1: // 스위치 + case 2: // 적외선 + case 3: // 자석 + case 16: // 분배기 + value[i] = 1; + break; + case 4: // 회전 + case 9: // 조도 + case 7: // 초음파 + value[i] = 2; + break; + case 10: // 소리 + value[i] = 3; + break; + case 11: // 기울기 + value[i] = 4; + break; + case 12: // 압력 + value[i] = 5; + break; + case 8: // 심박 + value[i] = 6; + break; + case 5: // 컬러 + value[i] = 7; + break; + case 6: // 가속도 + value[i] = 8; + break; + case 14: // 나침반 + case 15: // 3가속 + value[i] = 9; + break; + case 13: // 멀티터치(멀티키) + value[i] = 11; + break; + } + } + + Entry.ProboConnect.SenserSet.AA1 = value[0]; + Entry.ProboConnect.SenserSet.AA2 = value[1]; + Entry.ProboConnect.SenserSet.AA3 = value[2]; + Entry.ProboConnect.SenserSet.AA4 = value[3]; + + Entry.hw.sendQueue['ASET2'] = (value[0] << 4) | value[1]; + Entry.hw.sendQueue['ASET1'] = (value[2] << 4) | value[3]; + + let fps = Entry.FPS || 60; + let timeValue = 60 / fps * 200; // 0.2초 + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + + }, + }, + // 리모컨 입력 R_1 + connect_remote_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_remote', + }, + ], + type: 'connect_remote_input', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const btn = Entry.ProboConnect.convertDropdownRemote( + script.getStringValue('PARAM0') + ); + return Entry.hw.portData.InputData.Remote[btn] == 1 ? true : false; + }, + }, + // 디지털 입력 A1 + connect_digital_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_digital', + }, + ], + type: 'connect_digital_input', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownDigital( + script.getStringValue('PARAM0') + ); + let rt = false; + switch(port) { + case 'FEA1': + case 'FEA2': + case 'FEA3': + case 'FEA4': + case 'REA1': + case 'REA2': + case 'REA3': + case 'REA4': + case 'BEA1': + case 'BEA2': + case 'BEA3': + case 'BEA4': + if (Entry.hw.portData.InputData.Digital[port] == 1) { + if (Entry.ProboConnect.EdgeFlag[port] == 0) { + Entry.ProboConnect.EdgeFlag[port] = 1; + rt = true; + } + } else { + Entry.ProboConnect.EdgeFlag[port] = 0; + } + break; + default: + rt = Entry.hw.portData.InputData.Digital[port] == 1 ? true : false; + break; + } + return rt; + }, + }, + // 아날로그 입력 AA1 + connect_analog_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + ], + type: 'connect_analog_input', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + let value = Entry.ProboConnect.SenserSet[port] == 5 + ? 255 - Entry.hw.portData.InputData.Analog[port] + : Entry.hw.portData.InputData.Analog[port]; + return value; + }, + }, + // 3가속도 AA1 의 X축 + connect_3axis_acceler_x: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + ], + type: 'connect_3axis_acceler_x', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const axis = Entry.ProboConnect.convertDropdownAxis( + script.getStringValue('PARAM0'), + "X" + ); + let value = (Entry.hw.portData.InputData.Acceler[axis]); + if (value & 0x80) { + value = (value - 255); + } + return Number(value / 10).toFixed(1); + }, + }, + // 3가속도 AA1의 Y축 + connect_3axis_acceler_y: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + ], + type: 'connect_3axis_acceler_y', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const axis = Entry.ProboConnect.convertDropdownAxis( + script.getStringValue('PARAM0'), + "Y" + ); + let value = (Entry.hw.portData.InputData.Acceler[axis]); + if (value & 0x80) { + value = (value - 255); + } + return Number(value / 10).toFixed(1); + }, + }, + // 3가속도 AA1 의 Z축 + connect_3axis_acceler_z: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + ], + type: 'connect_3axis_acceler_z', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const axis = Entry.ProboConnect.convertDropdownAxis( + script.getStringValue('PARAM0'), + "Z" + ); + let value = (Entry.hw.portData.InputData.Acceler[axis]); + if (value & 0x80) { + value = (value - 255); + } + return Number(value / 10).toFixed(1); + }, + }, + // AA1의 0 ~ 255 값을 0 ~ 100 (으)로 변환 + connect_value_mapping: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 255 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 100 ], + }, + ], + type: 'connect_value_mapping', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + PARAM3: 3, + PARAM4: 4, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const source1 = script.getNumberValue('PARAM1'); + const source2 = script.getNumberValue('PARAM2'); + const target1 = script.getNumberValue('PARAM3'); + const target2 = script.getNumberValue('PARAM4'); + + // Port 라는 key값을 가진 정보를 읽는다. + let data = 0; + if (Entry.ProboConnect.SenserSet[port] == 5) { + data = 255 - Entry.hw.portData.InputData.Analog[port]; + } else { + data = Entry.hw.portData.InputData.Analog[port]; + } + let value = 0; + let rate = (data - source1) / (source2 - source1); + let num = 0; + + if (target1 < target2) { + value = (target2 - target1) * rate; + num = value % 1; + if (num < 0.5) { + value -= num; + } + else { + value += 1 - num; + } + value = target1 + value; + if (value < target1) { + value = target1; + } else if (value > target2) { + value = target2; + } + } else { + value = (target1 - target2) * rate; + num = value % 1; + if (num < 0.5) { + value -= num; + } else { + value += 1 - num; + } + value = target1 - value; + if (value > target1) { + value = target1; + } else if (value < target2) { + value = target2; + } + } + return value; + }, + }, + // 컬러센서 AA1 이(가) 빨간색 색인가? + connect_color_input_b: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + { + type: 'connect_dropdown_color_1', + }, + ], + type: 'connect_color_input_b', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const target = Entry.ProboConnect.convertDropdownColor1( + script.getNumberValue('PARAM1') + ); + const value = Entry.hw.portData.InputData.Analog[port]; + const color = Entry.ProboConnect.Color; + return color[target][0] <= value && value <= color[target][1]; + }, + }, + // 컬러센서 AA1 의 색상 + connect_color_input_r: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + ], + type: 'connect_color_input_r', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const value = Entry.hw.portData.InputData.Analog[port]; + const color = Entry.ProboConnect.Color; + let colorName = ''; + for (let i = 0; i < 6; i++) { + if (color[i][0] <= value && value <= color[i][1]) { + switch (i) { + case 0: + colorName = Lang.template.item_color_red; + break; + case 1: + colorName = Lang.template.item_color_green; + break; + case 2: + colorName = Lang.template.item_color_blue; + break; + case 3: + colorName = Lang.template.item_color_yellow; + break; + case 4: + colorName = Lang.template.item_color_black; + break; + case 5: + colorName = Lang.template.item_color_white; + break; + } + } + } + return colorName; + }, + }, + // 무한회전 센서 AA1 을 0 값으로 정하기 + connect_infinite_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + } + ], + def: { + params: [ + { + type: 'connect_dropdown_sensor_2', + }, + { + type: 'connect_dropdown_analog', + }, + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'connect_infinite_setting', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM1') + ); + let value = script.getNumberValue('PARAM2'); + let count = 0; + + if (value != 0) { + count = Number(value / 255).toFixed(0); + value = value % 255; + } else { + value = 0; + count = 0; + } + + Entry.ProboConnect.Infinite_Buff[port] = Entry.hw.portData.InputData.Analog[port]; + Entry.ProboConnect.Infinite_Start[port] = Entry.hw.portData.InputData.Analog[port]-value; + Entry.ProboConnect.Infinite_Count[port] = count; + + return script.callReturn(); + }, + }, + // 무한회전 센서 AA1 지름 53.5 의 mm 값 + connect_infinite_mm_diameter: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_sensor_2', + }, + { + type: 'connect_dropdown_analog', + }, + { + type: 'number', + params: [ 53.5 ], + }, + ], + type: 'connect_infinite_mm_diameter', + }, + paramsKeyMap: { + PARAM1: 1, + PARAM2: 2, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM1') + ); + const diameter = script.getNumberValue('PARAM2'); + let value = Entry.hw.portData.InputData.Analog[port]; + + if (value < Entry.ProboConnect.Infinite_Buff[port] - 150) { + + Entry.ProboConnect.Infinite_Count[port]++; + } else if (value > Entry.ProboConnect.Infinite_Buff[port] + 150) { + Entry.ProboConnect.Infinite_Count[port]--; + } + Entry.ProboConnect.Infinite_Buff[port] = value; + value = (Entry.ProboConnect.Infinite_Buff[port] - Entry.ProboConnect.Infinite_Start[port]) + (Entry.ProboConnect.Infinite_Count[port] * 255); + + return Number( + 2 * + 3.141592 * + (diameter / 2) / + 255 * + value + ).toFixed(3); + }, + }, + // 무한회전 센서 AA1 의 값 + connect_infinite_transform_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_sensor_2', + }, + { + type: 'connect_dropdown_analog', + }, + { + type: 'connect_dropdown_sensor_transfer', + }, + ], + type: 'connect_infinite_transform_input', + }, + paramsKeyMap: { + PARAM1: 1, + PARAM2: 2, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM1') + ); + const select = Entry.ProboConnect.convertDropdownSensorTransfer( + script.getStringValue('PARAM2') + ); + + let value = Entry.hw.portData.InputData.Analog[port]; + + if (value < (Entry.ProboConnect.Infinite_Buff[port] - 150)) { + Entry.ProboConnect.Infinite_Count[port]++; + } else if (value > (Entry.ProboConnect.Infinite_Buff[port] + 150)) { + Entry.ProboConnect.Infinite_Count[port]--; + } + Entry.ProboConnect.Infinite_Buff[port] = value; + value = (Entry.ProboConnect.Infinite_Buff[port] - Entry.ProboConnect.Infinite_Start[port]) + (Entry.ProboConnect.Infinite_Count[port] * 255); + + switch (select) { + case 2: + if (value > 0) { + return Math.floor((value%255) * 1.41732); + } else { + return Math.ceil((value%255) * 1.41732); + } + case 3: + return Number((360/255) * Entry.hw.portData.InputData.Analog[port]).toFixed(0); + case 4: + if (value > 0) { + return Math.floor(value / 255); + } else { + return Math.ceil(value / 255); + } + default: + return value; + } + }, + }, + // 멀티키 센서 AA1 의 키1 + connect_multi_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + { + type: 'connect_dropdown_key', + }, + ], + type: 'connect_multi_sensor', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const key = Entry.ProboConnect.convertDropdownKey( + script.getStringValue('PARAM1') + ); + const value = Entry.hw.portData.InputData.Analog[port] & (0x1 << key)? 1 : 0; + return value; + }, + }, + // 분배스위치 센서 AA1의 키1 + connect_multi_switch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_analog', + }, + { + type: 'connect_dropdown_key', + }, + ], + type: 'connect_multi_switch', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownAnalog( + script.getStringValue('PARAM0') + ); + const key = Entry.ProboConnect.convertDropdownKey( + script.getStringValue('PARAM1') + ); + const analog = Entry.hw.portData.InputData.Analog[port]; + let value = -1; + if (1 <= analog && analog <= 19) { + value = 0; + } else if (26 <= analog && analog <= 44) { + value = 1; + } else if (53 <= analog && analog <= 77) { + value = 2; + } else if (83 <= analog && analog <= 101) { + value = 3; + } else if (107 <= analog && analog <= 125) { + value = 4; + } else if (139 <= analog && analog <= 157) { + value = 5; + } else if (160 <= analog && analog <= 178) { + value = 6; + } else if (191 <= analog && analog <= 209) { + value = 7; + } + return key === value ? 1 : 0; + }, + }, + connect_eeprom_buffset: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [{ type: 'number', params: ['0'] }, null], + type: 'connect_eeprom_buffset', + }, + paramsKeyMap: { + ADDRESS: 0, + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const address = script.getNumberValue('ADDRESS', script); + if (!script.isStart) { + Entry.ProboConnect.EEPROM.EEPROM_Count = Entry.hw.portData.InputData.EEPROM.EC; + Entry.hw.sendQueue['EEPR4'] = 0x40; + Entry.hw.sendQueue['EEPR3'] = address; + + script.isStart = true; + script.timeFlag = 1; + var timeValue = 0.05; + var fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + var blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboConnect.EEPROM.EEPROM_Buff = + (Entry.hw.portData.InputData.EEPROM.EEPR2 << 8) + + Entry.hw.portData.InputData.EEPROM.EEPR1; + Entry.hw.sendQueue['EEPR4'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // EEPROM 주소의 값 + connect_eeprom_address_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + def: { + type: 'connect_eeprom_address_value', + }, + class: 'input', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + var value = 0; + const count = Entry.ProboConnect.EEPROM.EEPROM_Count; + if (Entry.hw.portData.InputData.EEPROM.EC != count) { + value = Entry.ProboConnect.EEPROM.EEPROM_Buff; + } + return value; + }, + }, + ///======================================================================================== + /// output block + ///======================================================================================== + // DC 모터 1을(를) 0 속도로 회전 + connect_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_dc_1_all', + }, + { + type: 'connect_dropdown_velocity', + }, + null, + ], + type: 'connect_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const motor = Entry.ProboConnect.convertDropdownDC( + script.getStringValue('PARAM0') + ); + const value = script.getNumberValue('PARAM1'); + switch (motor) { + case 'DC5': + Entry.hw.sendQueue['DC1'] = value; + Entry.hw.sendQueue['DC2'] = value; + break; + case 'DC6': + Entry.hw.sendQueue['DC3'] = value; + Entry.hw.sendQueue['DC4'] = value; + break; + case 'DC7': + Entry.hw.sendQueue['DC1'] = value; + Entry.hw.sendQueue['DC2'] = value; + Entry.hw.sendQueue['DC3'] = value; + Entry.hw.sendQueue['DC4'] = value; + break; + default: + Entry.hw.sendQueue[motor] = value; + break; + } + return script.callReturn(); + }, + }, + // 서보모터 1 의 위치를 1 로 이동 + connect_servo_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_servo_1_4', + }, + { + type: 'connect_dropdown_servo_position', + }, + null, + ], + type: 'connect_servo_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const servo = Entry.ProboConnect.convertDropdownServo( + script.getStringValue('PARAM0') + ); + let value = script.getNumberValue('PARAM1'); + if (value < 1) { + value = 0; + } else if (value > 100) { + value = 100; + } + + Entry.hw.sendQueue[servo] = value; + return script.callReturn(); + }, + }, + // S 모터 1 을(를) 0 속도로 회전 + connect_s_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_servo_1_4', + }, + { + type: 'connect_dropdown_velocity', + }, + null, + ], + type: 'connect_s_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const motor = Entry.ProboConnect.convertDropdownServo( + script.getStringValue('PARAM0') + ); + let value = script.getNumberValue('PARAM1'); + + if (value > 20) { + value = 20; + } else if (value < -20) { + value = -20; + } + value += 148; + + switch (motor) { + case 'Servo5': + Entry.hw.sendQueue['Servo1'] = value; + Entry.hw.sendQueue['Servo2'] = value; + break; + case 'Servo6': + Entry.hw.sendQueue['Servo3'] = value; + Entry.hw.sendQueue['Servo4'] = value; + break; + default: + Entry.hw.sendQueue[motor] = value; + break; + } + return script.callReturn(); + }, + }, + // 출력핀 1 을(를) 켜기 + connect_port_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_port_1_4', + }, + { + type: 'connect_dropdown_on_off', + }, + null + ], + type: 'connect_port_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const motor = Entry.ProboConnect.convertDropdownPort( + script.getStringValue('PARAM0') + ); + const value = Entry.ProboConnect.convertDropdownOnOff( + script.getNumberValue('PARAM1') + ); + + Entry.hw.sendQueue[motor] = value; + return script.callReturn(); + }, + }, + // 도(60) 을(를) 4분 음표로 연주하기 + connect_melody_note_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_pitch', + }, + { + type: 'connect_dropdown_note', + }, + null + ], + type: 'connect_melody_note_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboConnect.convertDropdownPitch( + script.getNumberValue('PARAM0') + ); + const note = Entry.ProboConnect.convertDropdownNote( + script.getStringValue('PARAM1') + ); + + let timeValue = Entry.ProboConnect.Note[note]; + + Entry.hw.sendQueue['MEL2'] = pitch >> 8; + Entry.hw.sendQueue['MEL1'] = pitch; + + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue; + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // 도(60) 을(를) 0.5 초 동안 연주하기 + connect_melody_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_pitch', + }, + { + type: 'connect_dropdown_time_1', + }, + null + ], + type: 'connect_melody_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboConnect.convertDropdownPitch( + script.getNumberValue('PARAM0') + ); + let timeValue = script.getNumberValue('PARAM1'); + + Entry.hw.sendQueue['MEL2'] = pitch >> 8; + Entry.hw.sendQueue['MEL1'] = pitch; + + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // 도(60) 을(를) 연주하기 + connect_melody_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_pitch', + }, + null + ], + type: 'connect_melody_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const pitch = Entry.ProboConnect.convertDropdownPitch( + script.getNumberValue('PARAM0') + ); + + Entry.hw.sendQueue['MEL2'] = pitch >> 8; + Entry.hw.sendQueue['MEL1'] = pitch; + return script.callReturn(); + }, + }, + // 35391 값을 0.5 초 동안 연주하기 + connect_value_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + { + type: 'connect_dropdown_time_1', + }, + null + ], + type: 'connect_value_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + let melody = script.getNumberValue('PARAM0'); + let timeValue = script.getNumberValue('PARAM1'); + + Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; + Entry.hw.sendQueue['MEL1'] = melody & 0xff; + + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // 35391 값을(를) 연주하기 + connect_value_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + null + ], + type: 'connect_value_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + let melody = script.getNumberValue('PARAM0'); + Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; + Entry.hw.sendQueue['MEL1'] = melody & 0xff; + return script.callReturn(); + }, + }, + // 시작음 을(를) 1 초 간격으로 재생하기 + connect_melody_track_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_melody', + }, + { + type: 'connect_dropdown_time_2', + }, + null + ], + type: 'connect_melody_track_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + function getTrackStep(track,script){ + if(!script.isStart){ + script.isStart = true; + script.trackStep = 0; + } + else { + script.trackStep++; + } + let timeValue = script.getNumberValue('PARAM1'); + script.timeFlag = 1; + let melody = Entry.ProboConnect.Track[track][script.trackStep]; + Entry.hw.sendQueue['MEL2'] = (melody >> 8) & 0xff; + Entry.hw.sendQueue['MEL1'] = melody & 0xff; + + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + timeValue + ); + } + const TR = Entry.ProboConnect.convertDropdownMelody( + script.getStringValue('PARAM0') + ); + if (!script.isStart) { + switch(TR) { + case 0 : + script.maxStep = 6; + break; + case 1 : + script.maxStep = 7; + break; + case 2 : + script.maxStep = 3; + break; + case 3 : + script.maxStep = 3; + break; + } + getTrackStep(TR,script); + return script; + } else if (script.timeFlag == 1) { + return script; + } else if (script.trackStep < script.maxStep){ + getTrackStep(TR,script); + return script; + } else { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + + delete script.trackStep; + delete script.maxStep; + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + // 멜로디 중지 + connect_melody_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + null + ], + type: 'connect_melody_off', + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + Entry.hw.sendQueue['MEL2'] = 0; + Entry.hw.sendQueue['MEL1'] = 0; + return script.callReturn(); + }, + }, + // RGB LED 1 을(를) 빨간색 으로 켜기 + connect_rgbled_on_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_servo_1_4', + }, + { + type: 'connect_dropdown_color_2', + }, + null + ], + type: 'connect_rgbled_on_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownServo( + script.getStringValue('PARAM0') + ); + const color = Entry.ProboConnect.convertDropdownColor2( + script.getStringValue('PARAM1') + ); + Entry.hw.sendQueue[port] = color; + return script.callReturn(); + }, + }, + // RGB LED 을(를) 끄기 + connect_rgbled_off_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_servo_1_4', + }, + null + ], + type: 'connect_rgbled_off_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownServo( + script.getStringValue('PARAM0') + ); + Entry.hw.sendQueue[port] = 0; + }, + }, + // RGB LED 1 빨간색으로 0.5초 간격 + connect_rgbled_flashing_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_servo_1_4', + }, + { + type: 'connect_dropdown_color_2', + }, + { + type: 'connect_dropdown_time_3', + }, + null + ], + type: 'connect_rgbled_flashing_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownServo( + script.getStringValue('PARAM0') + ); + const color = Entry.ProboConnect.convertDropdownColor2( + script.getStringValue('PARAM1') + ); + const sec = script.getNumberValue('PARAM2'); + let value = 0; + switch (sec) { + case 0.05: + value = color + 0; + break; + case 0.1: + value = color + 1; + break; + case 0.2: + value = color + 2; + break; + case 0.5: + value = color + 3; + break; + case 1: + value = color + 4; + break; + } + Entry.hw.sendQueue[port] = value; + return script.callReturn(); + }, + }, + // RGB LED 1을(를) 빨간색으로 디밍 + connect_rgbled_dimming_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'connect_dropdown_servo_1_4', + }, + { + type: 'connect_dropdown_color_2', + }, + null + ], + type: 'connect_rgbled_dimming_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const port = Entry.ProboConnect.convertDropdownServo( + script.getStringValue('PARAM0') + ); + let color = 0; + switch (script.getStringValue('PARAM1')) { + case '1': + color = 90; + break; + case '2': + color = 92; + break; + case '3': + color = 94; + break; + case '4': + color = 93; + break; + case '5': + color = 95; + break; + case '6': + color = 91; + break; + case '7': + color = 96; + break; + } + Entry.hw.sendQueue[port] = color; + return script.callReturn(); + }, + }, + // FND를 0 (으)로 설정 + connect_fnd_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'connect_fnd_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const fnd = script.getNumberValue('PARAM0'); + Entry.hw.sendQueue['FND'] = fnd; + return script.callReturn(); + }, + }, + // FND 끄기 + connect_fnd_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + null + ], + type: 'connect_fnd_off', + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + Entry.hw.sendQueue['FND'] = 100; + return script.callReturn(); + }, + }, + // EEPROM 0 주소에 0 값 설정하기 + connect_eeprom_write: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + def: { + params: [ + { + type: 'number', + params: [ 0 ] + }, + { + type: 'number', + params: [ 0 ] + }, + null, + ], + type: 'connect_eeprom_write', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'output', + isNotFor: ['ProboConnect'], + func: function(sprite, script) { + const address = script.getNumberValue('PARAM0'); + const value = script.getNumberValue('PARAM1'); + if (!script.isStart) { + Entry.hw.update(); + Entry.hw.sendQueue['EEPR4'] = 0x80; + Entry.hw.sendQueue['EEPR3'] = address; + Entry.hw.sendQueue['EEPR2'] = (value >> 8) & 0xff; + Entry.hw.sendQueue['EEPR1'] = value & 0xff; + script.isStart = true; + script.timeFlag = 1; + let timeValue = 0.05; + let fps = Entry.FPS || 60; + timeValue = 60 / fps * timeValue * 1000; + + let blockId = script.block.id; + Entry.TimeWaitManager.add( + blockId, + function() { + script.timeFlag = 0; + }, + timeValue + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.hw.update(); + Entry.hw.sendQueue['EEPR4'] = 0x40; + Entry.hw.sendQueue['EEPR3'] = address; + Entry.hw.sendQueue['EEPR2'] = 0; + Entry.hw.sendQueue['EEPR1'] = 0; + + setTimeout(function() { + Entry.hw.update(); + Entry.hw.sendQueue['EEPR4'] = 0; + Entry.hw.sendQueue['EEPR3'] = 0; + Entry.hw.sendQueue['EEPR2'] = 0; + Entry.hw.sendQueue['EEPR1'] = 0; + }, 100); + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + }, + }; +}; + +module.exports = Entry.ProboConnect; From 2d38ffcaa9ddaedb2937609c869be1fd4a31069b Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Wed, 16 Oct 2024 15:55:44 +0900 Subject: [PATCH 44/65] =?UTF-8?q?Lang:=20=ED=8E=8C=EC=9B=A8=EC=96=B4=20?= =?UTF-8?q?=EC=84=A4=EC=B9=98=20=EC=98=81=EB=AC=B8=20=EB=8B=A4=EA=B5=AD?= =?UTF-8?q?=EC=96=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extern/lang/en.js | 28 ++++++++++++++++++++++++++-- extern/lang/ko.js | 1 - 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/extern/lang/en.js b/extern/lang/en.js index 8aede946a8..37ec09f5ad 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -1862,6 +1862,7 @@ Lang.Buttons = { create: 'Create Class', done: 'Done', accept: 'Accept', + select: 'Select', refuse: 'Refuse', yes: 'Yes', button_no: 'No', @@ -5415,10 +5416,33 @@ Lang.Workspace = { send_backward: 'Send Backward', upload_error_msg: 'Unable to upload as image is suspected of violating usage policy.', confirm_firmware_hwlite_block_title: 'Verify firmware Installation', - confirm_firmware_hwlite_block_msg: - 'The firmware must be installed\n to connect the %1\n to the Entry wirelessly.', + confirm_firmware_hwlite_block_msg: 'To use %1 in Entry,\n please install the firmware first.', confirm_firmware_hwlite_block_pass: 'Already installed', confirm_firmware_hwlite_block_download: 'Install firmware', + confirm_firmware_hwlite_block_usb_connect: 'USB connect', + progress_firmware_hwlite_title: 'Install firmware', + progress_firmware_hwlite_step1_title: 'Check USB port', + progress_firmware_hwlite_step1_content1: 'Connect the device and PC with USB.', + progress_firmware_hwlite_step1_content2: + 'Select the device to connect.\nWait for a USB connection.', + progress_firmware_hwlite_step1_content3: 'USB connection detected.', + progress_firmware_hwlite_step2_title: 'Install firmware', + progress_firmware_hwlite_step2_content1: 'Installing firmware.\nPlease wait.', + progress_firmware_hwlite_step2_content_complete: 'Installation is complete.', + progress_firmware_hwlite_step2_content_fail: 'Firmware installation failed.', + progress_firmware_hwlite_step2_content_select: 'Select the firmware version to install.', + progress_firmware_hwlite_button_select: 'Check', + progress_firmware_hwlite_button_reselect: 'Retry', + progress_firmware_hwlite_button_install: 'Install firmware', + progress_firmware_hwlite_button_connect_device: 'Connect device', + progress_firmware_hwlite_button_retry: 'Retry', + usbconnect_fail_alert: + "기기 연결에 실패했습니다. 연결 상태를 확인하고 '다시 선택'을 눌러 주세요.", + select_hwlite_block_duplicated: 'Please select only one hardware device.', + select_hwlite_block_none: 'Please select the hardware device to connect.', + select_firmware_hwlite_title: 'Download Firmware', + select_firmware_hwlite_content: + 'Please download and install the appropriate firmware \n for your hardware version.', select_flash_firmware_hwlite_title: 'Select firmware to install', select_flash_firmware_hwlite_content: 'Please select the version of\n the Microbit you want to connect to.\n When the installation is complete,\n a message is displayed.', diff --git a/extern/lang/ko.js b/extern/lang/ko.js index e204ae9a7c..f12fe55534 100644 --- a/extern/lang/ko.js +++ b/extern/lang/ko.js @@ -5541,7 +5541,6 @@ Lang.Workspace = { confirm_firmware_hwlite_block_download: '펌웨어 다운로드', confirm_firmware_hwlite_block_usb_connect: 'USB 연결', confirm_firmware_hwlite_block_pass: '이미 설치함', - confirm_firmware_hwlite_block_usb_connect: 'USB 연결', progress_firmware_hwlite_title: '펌웨어 설치', progress_firmware_hwlite_step1_title: 'USB 연결 확인', progress_firmware_hwlite_step1_content1: 'USB로 기기와 PC를 연결하고 아래 버튼을 눌러 주세요.', From 2e3fd6e1c06703ac7e51bf90b259f8ac1c710e87 Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Wed, 16 Oct 2024 18:03:05 +0900 Subject: [PATCH 45/65] =?UTF-8?q?lang:=20=EC=B6=94=EA=B0=80=20=EB=8B=A4?= =?UTF-8?q?=EA=B5=AD=EC=96=B4=20=EB=AC=B8=EA=B5=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extern/lang/en.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/extern/lang/en.js b/extern/lang/en.js index 37ec09f5ad..0827366db2 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -5436,8 +5436,7 @@ Lang.Workspace = { progress_firmware_hwlite_button_install: 'Install firmware', progress_firmware_hwlite_button_connect_device: 'Connect device', progress_firmware_hwlite_button_retry: 'Retry', - usbconnect_fail_alert: - "기기 연결에 실패했습니다. 연결 상태를 확인하고 '다시 선택'을 눌러 주세요.", + usbconnect_fail_alert: "USB connection failed. Check the connection status and click 'Retry'.", select_hwlite_block_duplicated: 'Please select only one hardware device.', select_hwlite_block_none: 'Please select the hardware device to connect.', select_firmware_hwlite_title: 'Download Firmware', From 241b090fe40e58e9c6f6610f4011be889db3c1f7 Mon Sep 17 00:00:00 2001 From: usbsync Date: Mon, 21 Oct 2024 17:40:47 +0900 Subject: [PATCH 46/65] =?UTF-8?q?=EC=9D=B4=EC=8A=88=208794=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/util/utils.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/util/utils.js b/src/util/utils.js index 0998735a44..75a5d54e71 100644 --- a/src/util/utils.js +++ b/src/util/utils.js @@ -2108,8 +2108,9 @@ Entry.Utils.stopProjectWithToast = _throttle( } if (error) { - error.message = `${message}: ${error.message}`; - throw error; + const newError = new Error(`${message}: ${error.message}`); + newError.stack = error.stack; + throw newError; } throw new Error(message); From 044252813c6c63fe49168edaec4029e3a7437c16 Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Tue, 22 Oct 2024 12:00:18 +0900 Subject: [PATCH 47/65] =?UTF-8?q?feat:=20=EA=B5=90=EA=B3=BC=ED=98=95=20?= =?UTF-8?q?=ED=95=98=EB=93=9C=EC=9B=A8=EC=96=B4=20=EC=B9=B4=ED=85=8C?= =?UTF-8?q?=EA=B3=A0=EB=A6=AC=EC=97=90=20=EC=97=B0=EA=B2=B0=20=ED=95=98?= =?UTF-8?q?=EB=93=9C=EC=9B=A8=EC=96=B4=EB=AA=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extern/lang/en.js | 1 + extern/lang/ko.js | 1 + extern/util/static_mini.js | 34 +++++++++++++++---------- src/class/hw.ts | 24 ++++++++++++++---- src/playground/block_entry.js | 42 ++++++++++++++++++++++++++++++ src/playground/block_menu.ts | 48 ++++++++++++++++++++--------------- types/index.d.ts | 9 +++---- 7 files changed, 115 insertions(+), 44 deletions(-) diff --git a/extern/lang/en.js b/extern/lang/en.js index 0827366db2..9a1d44de1e 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -587,6 +587,7 @@ Lang.Blocks = { hardware_noti_installed: 'When using connection program', hardware_noti_not_installed: 'When using web browser', hardware_device_name_title: 'Name:', + hardware_device_name_title_robot: 'Name:', hardware_device_name_content: 'None', hardware_program_download: 'Download program', hardware_connected_noti: 'Please check connection program.', diff --git a/extern/lang/ko.js b/extern/lang/ko.js index f12fe55534..8801096d9e 100644 --- a/extern/lang/ko.js +++ b/extern/lang/ko.js @@ -318,6 +318,7 @@ Lang.Blocks = { hardware_noti_not_installed: '프로그램 설치 없이 연결할 때', hardware_program_download: '연결 프로그램 다운로드', hardware_device_name_title: '연결한 하드웨어:', + hardware_device_name_title_robot: '연결한 로봇:', hardware_device_name_content: '없음', hardware_connected_noti: '하드웨어 연결 프로그램을\n확인해 주세요.', arduino_noti_text: diff --git a/extern/util/static_mini.js b/extern/util/static_mini.js index a83bad0a6f..d0cdea022c 100644 --- a/extern/util/static_mini.js +++ b/extern/util/static_mini.js @@ -434,30 +434,38 @@ EntryStatic.getAllBlocks = function () { { category: 'hw_sensor', visible: false, - blocks: ['practical_course_dummy'].concat( - EntryStatic.DynamicPracticalHardwareBlocks['hw_sensor'] - ), + blocks: [ + 'practical_course_dummy', + 'hardware_device_name_title_sensor', + 'hardware_device_name_content_sensor', + ].concat(EntryStatic.DynamicPracticalHardwareBlocks['hw_sensor']), }, { category: 'hw_motor', visible: false, - blocks: ['practical_course_dummy'].concat( - EntryStatic.DynamicPracticalHardwareBlocks['hw_motor'] - ), + blocks: [ + 'practical_course_dummy', + 'hardware_device_name_title_motor', + 'hardware_device_name_content_motor', + ].concat(EntryStatic.DynamicPracticalHardwareBlocks['hw_motor']), }, { category: 'hw_led', visible: false, - blocks: ['practical_course_dummy'].concat( - EntryStatic.DynamicPracticalHardwareBlocks['hw_led'] - ), + blocks: [ + 'practical_course_dummy', + 'hardware_device_name_title_led', + 'hardware_device_name_content_led', + ].concat(EntryStatic.DynamicPracticalHardwareBlocks['hw_led']), }, { category: 'hw_melody', visible: false, - blocks: ['practical_course_dummy'].concat( - EntryStatic.DynamicPracticalHardwareBlocks['hw_melody'] - ), + blocks: [ + 'practical_course_dummy', + 'hardware_device_name_title_melody', + 'hardware_device_name_content_melody', + ].concat(EntryStatic.DynamicPracticalHardwareBlocks['hw_melody']), }, { category: 'hw_robot', @@ -468,7 +476,7 @@ EntryStatic.getAllBlocks = function () { 'arduino_connect', 'hardware_program_download', 'arduino_connected', - 'hardware_device_name_title', + 'hardware_device_name_title_robot', 'hardware_device_name_content', 'hardware_connected_noti', 'robot_noti', diff --git a/src/class/hw.ts b/src/class/hw.ts index 544e5c36d2..14fed78f4b 100644 --- a/src/class/hw.ts +++ b/src/class/hw.ts @@ -345,7 +345,7 @@ export default class Hardware { return; } this.communicationType = this.hwModule.communicationType || 'auto'; - Entry.block.changeBlockText('hardware_device_name_content', this.hwModule.title.ko); + this.setDeviceNameContent(true); this._banClassAllHardware(); Entry.dispatchEvent('hwChanged'); @@ -363,6 +363,23 @@ export default class Hardware { } } + // INFO: 블록메뉴의 '연결한 하드웨어:' 블럭의 값을 세팅하는 함수. + // setName이 true이면 연결된 하드웨어명을, false이면 기본값(없음)으로 세팅한다. + setDeviceNameContent(setName: boolean) { + const deviceName = setName + ? this.hwModule.title[Lang.type] + : Lang.Blocks.hardware_device_name_content; + console.log('deviceName : ', deviceName); + if (this.hwModule?.hasPracticalCourse && EntryStatic.isPracticalCourse) { + Entry.block.changeBlockText('hardware_device_name_content_sensor', deviceName); + Entry.block.changeBlockText('hardware_device_name_content_motor', deviceName); + Entry.block.changeBlockText('hardware_device_name_content_led', deviceName); + Entry.block.changeBlockText('hardware_device_name_content_melody', deviceName); + } else { + Entry.block.changeBlockText('hardware_device_name_content', deviceName); + } + } + private _initHardwareObject() { const { hardwareEnable } = Entry; this.popupHelper = createHardwarePopup(() => { @@ -596,10 +613,7 @@ export default class Hardware { Entry.propertyPanel && Entry.propertyPanel.removeMode('hw'); this.currentDeviceKey = undefined; this.hwModule = undefined; - Entry.block.changeBlockText( - 'hardware_device_name_content', - Lang.Blocks.hardware_device_name_content - ); + this.setDeviceNameContent(false); Entry.dispatchEvent('hwChanged'); Entry.toast.alert( Lang.Msgs.hw_connection_termination_title, diff --git a/src/playground/block_entry.js b/src/playground/block_entry.js index 4a9e8a3997..2fc1f5f59c 100644 --- a/src/playground/block_entry.js +++ b/src/playground/block_entry.js @@ -448,6 +448,36 @@ function getBlocks() { ], events: {}, }, + hardware_device_name_title_robot: { + parent: 'hardware_device_name_title', + params: [ + { + type: 'Text', + text: Lang.Blocks.hardware_device_name_title_robot, + color: EntryStatic.colorSet.common.TEXT, + align: 'center', + fontWeight: '100', + }, + ], + isNotFor: [ + 'arduinoConnect', + 'arduinoConnected', + 'arduinoLiteConnectFailed', + 'arduinoLiteConnected', + ], + }, + hardware_device_name_title_sensor: { + parent: 'hardware_device_name_title_robot', + }, + hardware_device_name_title_motor: { + parent: 'hardware_device_name_title_robot', + }, + hardware_device_name_title_led: { + parent: 'hardware_device_name_title_robot', + }, + hardware_device_name_title_melody: { + parent: 'hardware_device_name_title_robot', + }, hardware_device_name_content: { skeleton: 'basic_text', skeletonOptions: { @@ -474,6 +504,18 @@ function getBlocks() { ], events: {}, }, + hardware_device_name_content_sensor: { + parent: 'hardware_device_name_content', + }, + hardware_device_name_content_motor: { + parent: 'hardware_device_name_content', + }, + hardware_device_name_content_led: { + parent: 'hardware_device_name_content', + }, + hardware_device_name_content_melody: { + parent: 'hardware_device_name_content', + }, hardware_connected_noti: { skeleton: 'basic_text', skeletonOptions: { diff --git a/src/playground/block_menu.ts b/src/playground/block_menu.ts index adbfed1ccb..695a1557e2 100644 --- a/src/playground/block_menu.ts +++ b/src/playground/block_menu.ts @@ -980,32 +980,40 @@ class BlockMenu extends ModelClass { } _generateHwCode(shouldHide?: boolean) { - const threads = this.code.getThreadsByCategory(HW); + const targetHwCategory = [HW]; + const targetPracticalCategories = practicalCourseCategoryList.filter( + (category) => category != 'hw_robot' + ); + EntryStatic.isPracticalCourse && targetHwCategory.push(...targetPracticalCategories); - if (!(this._categoryData && this.shouldGenerateHwCode(threads))) { - return; - } + targetHwCategory.map((hwCategory) => { + const threads = this.code.getThreadsByCategory(hwCategory); - threads.forEach((t: any) => { - this._deleteThreadsMap(t); - t.destroy(); - }); + if (!(this._categoryData && this.shouldGenerateHwCode(threads))) { + return; + } - const blocks = this._getCategoryBlocks(HW); + threads.forEach((t: any) => { + this._deleteThreadsMap(t); + t.destroy(); + }); - if (isEmpty(blocks)) { - return; - } + const blocks = this._getCategoryBlocks(hwCategory); - this._buildCategoryCodes( - blocks.filter((b) => !this.checkBanClass(Entry.block[b])), - HW - ).forEach((t: any) => { - if (shouldHide) { - t[0].x = -99999; + if (isEmpty(blocks)) { + return; } - this._createThread(t); - delete t[0].x; + + this._buildCategoryCodes( + blocks.filter((b) => !this.checkBanClass(Entry.block[b])), + hwCategory + ).forEach((t: any) => { + if (shouldHide) { + t[0].x = -99999; + } + this._createThread(t); + delete t[0].x; + }); }); this.hwCodeOutdated = false; diff --git a/types/index.d.ts b/types/index.d.ts index c253a5e913..eff40e1504 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -19,9 +19,7 @@ export declare interface ISkeleton { morph?: ['prev', 'next']; // for pebble dropdownHeight?: number; // for pebble path: (blockView: any) => string; // svg path string - box: ( - blockView: any - ) => { + box: (blockView: any) => { offsetX: number; offsetY: number; width: number; @@ -30,9 +28,7 @@ export declare interface ISkeleton { topFieldHeight?: number; }; contentPos: (blockView: any) => Point; - magnets?: ( - blockView: any - ) => { + magnets?: (blockView: any) => { next?: Point; previous?: Point; boolean?: {}; @@ -187,6 +183,7 @@ export declare interface EntryHardwareBlockModule extends EntryBlockModule { monitorTemplate?: UnknownAny; communicationType?: string; sendMessage?: (hw: import('../src/class/hw').default) => void; + hasPracticalCourse?: boolean; // 필수 함수 목록 setZero: () => void; From b098f94f7ec560db980d13f64f22c4a9fcd64e25 Mon Sep 17 00:00:00 2001 From: truedo Date: Tue, 22 Oct 2024 14:34:33 +0900 Subject: [PATCH 48/65] =?UTF-8?q?=EC=A3=BC=EB=AF=B8=20=EB=AF=B8=EB=8B=88?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 블록 이미지 추가한 것 삭제하고, 기본 이미지로 설정 isNotFor 주석 제거 --- images/block_icon/zumiMini/april_detector.svg | 9 -- images/block_icon/zumiMini/bottom_sensor.svg | 16 --- images/block_icon/zumiMini/button_input.svg | 13 --- images/block_icon/zumiMini/cat_detector.svg | 24 ----- images/block_icon/zumiMini/color_detector.svg | 12 --- images/block_icon/zumiMini/emotion.svg | 8 -- images/block_icon/zumiMini/face_detector.svg | 10 -- images/block_icon/zumiMini/front_sensor.svg | 27 ----- images/block_icon/zumiMini/go_back.svg | 10 -- images/block_icon/zumiMini/go_infinite.svg | 18 ---- images/block_icon/zumiMini/go_until.svg | 14 --- images/block_icon/zumiMini/gogo.svg | 10 -- images/block_icon/zumiMini/led.svg | 16 --- images/block_icon/zumiMini/line_dist.svg | 12 --- images/block_icon/zumiMini/line_infinite.svg | 13 --- images/block_icon/zumiMini/line_until.svg | 12 --- images/block_icon/zumiMini/motion_stop.svg | 6 -- images/block_icon/zumiMini/motor_control.svg | 21 ---- images/block_icon/zumiMini/move_straight.svg | 10 -- images/block_icon/zumiMini/move_turn.svg | 12 --- images/block_icon/zumiMini/screen_toggle.svg | 9 -- images/block_icon/zumiMini/turn_left.svg | 16 --- images/block_icon/zumiMini/turn_right.svg | 14 --- .../blocks/hardware/block_zumiMini.js | 100 +++++++++--------- 24 files changed, 50 insertions(+), 362 deletions(-) delete mode 100644 images/block_icon/zumiMini/april_detector.svg delete mode 100644 images/block_icon/zumiMini/bottom_sensor.svg delete mode 100644 images/block_icon/zumiMini/button_input.svg delete mode 100644 images/block_icon/zumiMini/cat_detector.svg delete mode 100644 images/block_icon/zumiMini/color_detector.svg delete mode 100644 images/block_icon/zumiMini/emotion.svg delete mode 100644 images/block_icon/zumiMini/face_detector.svg delete mode 100644 images/block_icon/zumiMini/front_sensor.svg delete mode 100644 images/block_icon/zumiMini/go_back.svg delete mode 100644 images/block_icon/zumiMini/go_infinite.svg delete mode 100644 images/block_icon/zumiMini/go_until.svg delete mode 100644 images/block_icon/zumiMini/gogo.svg delete mode 100644 images/block_icon/zumiMini/led.svg delete mode 100644 images/block_icon/zumiMini/line_dist.svg delete mode 100644 images/block_icon/zumiMini/line_infinite.svg delete mode 100644 images/block_icon/zumiMini/line_until.svg delete mode 100644 images/block_icon/zumiMini/motion_stop.svg delete mode 100644 images/block_icon/zumiMini/motor_control.svg delete mode 100644 images/block_icon/zumiMini/move_straight.svg delete mode 100644 images/block_icon/zumiMini/move_turn.svg delete mode 100644 images/block_icon/zumiMini/screen_toggle.svg delete mode 100644 images/block_icon/zumiMini/turn_left.svg delete mode 100644 images/block_icon/zumiMini/turn_right.svg diff --git a/images/block_icon/zumiMini/april_detector.svg b/images/block_icon/zumiMini/april_detector.svg deleted file mode 100644 index 1ca6868202..0000000000 --- a/images/block_icon/zumiMini/april_detector.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/images/block_icon/zumiMini/bottom_sensor.svg b/images/block_icon/zumiMini/bottom_sensor.svg deleted file mode 100644 index 6f40423ab6..0000000000 --- a/images/block_icon/zumiMini/bottom_sensor.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/button_input.svg b/images/block_icon/zumiMini/button_input.svg deleted file mode 100644 index 5095400829..0000000000 --- a/images/block_icon/zumiMini/button_input.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/cat_detector.svg b/images/block_icon/zumiMini/cat_detector.svg deleted file mode 100644 index 2150b4ea7a..0000000000 --- a/images/block_icon/zumiMini/cat_detector.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/color_detector.svg b/images/block_icon/zumiMini/color_detector.svg deleted file mode 100644 index d3724b5cef..0000000000 --- a/images/block_icon/zumiMini/color_detector.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/emotion.svg b/images/block_icon/zumiMini/emotion.svg deleted file mode 100644 index f805496e7d..0000000000 --- a/images/block_icon/zumiMini/emotion.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/images/block_icon/zumiMini/face_detector.svg b/images/block_icon/zumiMini/face_detector.svg deleted file mode 100644 index 15c87a92c7..0000000000 --- a/images/block_icon/zumiMini/face_detector.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/images/block_icon/zumiMini/front_sensor.svg b/images/block_icon/zumiMini/front_sensor.svg deleted file mode 100644 index d92835c86c..0000000000 --- a/images/block_icon/zumiMini/front_sensor.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/go_back.svg b/images/block_icon/zumiMini/go_back.svg deleted file mode 100644 index 43bb00d4a4..0000000000 --- a/images/block_icon/zumiMini/go_back.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/images/block_icon/zumiMini/go_infinite.svg b/images/block_icon/zumiMini/go_infinite.svg deleted file mode 100644 index 260975357f..0000000000 --- a/images/block_icon/zumiMini/go_infinite.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/go_until.svg b/images/block_icon/zumiMini/go_until.svg deleted file mode 100644 index 5dc01dbe95..0000000000 --- a/images/block_icon/zumiMini/go_until.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/gogo.svg b/images/block_icon/zumiMini/gogo.svg deleted file mode 100644 index ab7007b826..0000000000 --- a/images/block_icon/zumiMini/gogo.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/images/block_icon/zumiMini/led.svg b/images/block_icon/zumiMini/led.svg deleted file mode 100644 index fae9a71b0d..0000000000 --- a/images/block_icon/zumiMini/led.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/line_dist.svg b/images/block_icon/zumiMini/line_dist.svg deleted file mode 100644 index fad8a3b6b2..0000000000 --- a/images/block_icon/zumiMini/line_dist.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/line_infinite.svg b/images/block_icon/zumiMini/line_infinite.svg deleted file mode 100644 index ec6882d133..0000000000 --- a/images/block_icon/zumiMini/line_infinite.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/line_until.svg b/images/block_icon/zumiMini/line_until.svg deleted file mode 100644 index 072e2ec66b..0000000000 --- a/images/block_icon/zumiMini/line_until.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/motion_stop.svg b/images/block_icon/zumiMini/motion_stop.svg deleted file mode 100644 index c8bd0ee418..0000000000 --- a/images/block_icon/zumiMini/motion_stop.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/block_icon/zumiMini/motor_control.svg b/images/block_icon/zumiMini/motor_control.svg deleted file mode 100644 index c28826ee66..0000000000 --- a/images/block_icon/zumiMini/motor_control.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/move_straight.svg b/images/block_icon/zumiMini/move_straight.svg deleted file mode 100644 index 1e8dfe87d0..0000000000 --- a/images/block_icon/zumiMini/move_straight.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/images/block_icon/zumiMini/move_turn.svg b/images/block_icon/zumiMini/move_turn.svg deleted file mode 100644 index 6ce09ea90b..0000000000 --- a/images/block_icon/zumiMini/move_turn.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/screen_toggle.svg b/images/block_icon/zumiMini/screen_toggle.svg deleted file mode 100644 index b6122a6f4e..0000000000 --- a/images/block_icon/zumiMini/screen_toggle.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/images/block_icon/zumiMini/turn_left.svg b/images/block_icon/zumiMini/turn_left.svg deleted file mode 100644 index 2330fd5a00..0000000000 --- a/images/block_icon/zumiMini/turn_left.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/images/block_icon/zumiMini/turn_right.svg b/images/block_icon/zumiMini/turn_right.svg deleted file mode 100644 index c0a47da68c..0000000000 --- a/images/block_icon/zumiMini/turn_right.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/playground/blocks/hardware/block_zumiMini.js b/src/playground/blocks/hardware/block_zumiMini.js index e3437ec52e..27f564c089 100644 --- a/src/playground/blocks/hardware/block_zumiMini.js +++ b/src/playground/blocks/hardware/block_zumiMini.js @@ -350,7 +350,7 @@ Entry.ZumiMini.getBlocks = function() { bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, - { type: 'Indicator', img: 'block_icon/zumiMini/led.svg', size: 14 }, + { type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 14 }, ], def: { params: ['BLUE', 'ON', null], @@ -361,7 +361,7 @@ Entry.ZumiMini.getBlocks = function() { ACTION: 1, }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -467,7 +467,7 @@ Entry.ZumiMini.getBlocks = function() { params: [ { type: "Indicator", - img: "block_icon/zumiMini/motion_stop.svg", + img: 'block_icon/hardware_icon.svg', size: 14, } ], @@ -475,7 +475,7 @@ Entry.ZumiMini.getBlocks = function() { type: "motion_stop" }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -593,7 +593,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: "Indicator", - img: "block_icon/zumiMini/move_straight.svg", + img: 'block_icon/hardware_icon.svg', size: 14 }, ], @@ -607,7 +607,7 @@ Entry.ZumiMini.getBlocks = function() { DIST: 2, }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -737,7 +737,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: "Indicator", - img: "block_icon/zumiMini/line_infinite.svg", + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -749,7 +749,7 @@ Entry.ZumiMini.getBlocks = function() { SPD: 0, }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const COMMAND_TRACE_INFINITE = 30; @@ -800,7 +800,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: "Indicator", - img: "block_icon/zumiMini/go_infinite.svg", + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -813,7 +813,7 @@ Entry.ZumiMini.getBlocks = function() { SPD: 1, }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const COMMAND_GO_INFINITE = 29; @@ -864,7 +864,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: "Indicator", - img: "block_icon/zumiMini/line_dist.svg", + img: 'block_icon/hardware_icon.svg', size: 14 }, ], @@ -877,7 +877,7 @@ Entry.ZumiMini.getBlocks = function() { DIST: 1, }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -1013,7 +1013,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: "Indicator", - img: "block_icon/zumiMini/move_turn.svg", + img: 'block_icon/hardware_icon.svg', size: 14 }, ], @@ -1027,7 +1027,7 @@ Entry.ZumiMini.getBlocks = function() { DEG: 2, }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -1146,7 +1146,7 @@ Entry.ZumiMini.getBlocks = function() { params: [ { type: "Indicator", - img: "block_icon/zumiMini/gogo.svg", + img: 'block_icon/hardware_icon.svg', size: 14 } ], @@ -1154,7 +1154,7 @@ Entry.ZumiMini.getBlocks = function() { type: "go_forward" }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -1245,7 +1245,7 @@ Entry.ZumiMini.getBlocks = function() { params: [ { type: "Indicator", - img: "block_icon/zumiMini/go_back.svg", + img: 'block_icon/hardware_icon.svg', size: 14 } ], @@ -1253,7 +1253,7 @@ Entry.ZumiMini.getBlocks = function() { type: "go_back" }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -1342,7 +1342,7 @@ Entry.ZumiMini.getBlocks = function() { params: [ { type: "Indicator", - img: "block_icon/zumiMini/turn_left.svg", + img: 'block_icon/hardware_icon.svg', size: 14 } ], @@ -1350,7 +1350,7 @@ Entry.ZumiMini.getBlocks = function() { type: "turn_left" }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -1441,7 +1441,7 @@ Entry.ZumiMini.getBlocks = function() { params: [ { type: "Indicator", - img: "block_icon/zumiMini/turn_right.svg", + img: 'block_icon/hardware_icon.svg', size: 14 } ], @@ -1449,7 +1449,7 @@ Entry.ZumiMini.getBlocks = function() { type: "turn_right" }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -1541,7 +1541,7 @@ Entry.ZumiMini.getBlocks = function() { params: [ { type: "Indicator", - img: "block_icon/zumiMini/go_until.svg", + img: 'block_icon/hardware_icon.svg', size: 14 } ], @@ -1549,7 +1549,7 @@ Entry.ZumiMini.getBlocks = function() { type: "going_forward_until_sensing" }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -1638,7 +1638,7 @@ Entry.ZumiMini.getBlocks = function() { params: [ { type: "Indicator", - img: "block_icon/zumiMini/line_until.svg", + img: 'block_icon/hardware_icon.svg', size: 14, } ], @@ -1646,7 +1646,7 @@ Entry.ZumiMini.getBlocks = function() { type: "following_line_until_sensing" }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -1747,7 +1747,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: 'Indicator', - img: 'block_icon/zumiMini/front_sensor.svg', + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -1759,7 +1759,7 @@ Entry.ZumiMini.getBlocks = function() { DIR: 0, }, class: 'output', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function(sprite, script) { const sen = script.getStringField('DIR', script); return Entry.hw.portData.inputData.irSensor[sen]; @@ -1785,7 +1785,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: 'Indicator', - img: 'block_icon/zumiMini/bottom_sensor.svg', + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -1797,7 +1797,7 @@ Entry.ZumiMini.getBlocks = function() { B_DIR: 0, }, class: 'output', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const sen = script.getStringField('B_DIR', script); return Entry.hw.portData.inputData.irSensor[sen]; @@ -1812,7 +1812,7 @@ Entry.ZumiMini.getBlocks = function() { params: [ { type: 'Indicator', - img: 'block_icon/zumiMini/button_input.svg', + img: 'block_icon/hardware_icon.svg', size: 12, }, ], @@ -1820,7 +1820,7 @@ Entry.ZumiMini.getBlocks = function() { type: 'button_input', }, class: 'output', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { var bStat = Entry.hw.portData.inputData.euler['ROLL']; @@ -1853,7 +1853,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: 'Indicator', - img: 'block_icon/zumiMini/face_detector.svg', + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -1865,7 +1865,7 @@ Entry.ZumiMini.getBlocks = function() { PARAM: 0, }, class: 'output', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const REQUEST_FACE_DETECTION = 0x01; @@ -1899,7 +1899,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: 'Indicator', - img: 'block_icon/zumiMini/cat_detector.svg', + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -1911,7 +1911,7 @@ Entry.ZumiMini.getBlocks = function() { PARAM: 0, }, class: 'output', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const REQUEST_USER_DEFINED = 0x10; @@ -1946,7 +1946,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: 'Indicator', - img: 'block_icon/zumiMini/color_detector.svg', + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -1958,7 +1958,7 @@ Entry.ZumiMini.getBlocks = function() { PARAM: 0, }, class: 'output', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const REQUEST_COLOR_DETECTION = 0x02; @@ -2002,7 +2002,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: 'Indicator', - img: 'block_icon/zumiMini/april_detector.svg', + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -2014,7 +2014,7 @@ Entry.ZumiMini.getBlocks = function() { A_INFO: 0, }, class: 'output', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const REQUEST_APRIL_DETECTION = 0x04; @@ -2062,7 +2062,7 @@ Entry.ZumiMini.getBlocks = function() { EULER: 0, }, class: 'output', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const REQUEST_IMU_DETECTION = 0x08; @@ -2092,7 +2092,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: 'Indicator', - img: 'block_icon/zumiMini/screen_toggle.svg', + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -2104,7 +2104,7 @@ Entry.ZumiMini.getBlocks = function() { TYPE: 0, }, class: 'base', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const COMMAND_SCREEN_TOGGLE = 240; @@ -2150,7 +2150,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: 'Indicator', - img: 'block_icon/zumiMini/emotion.svg', + img: 'block_icon/hardware_icon.svg', size: 14, }, ], @@ -2162,7 +2162,7 @@ Entry.ZumiMini.getBlocks = function() { TYPE: 0, }, class: 'base', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const COMMAND_EMOTION_CHANGE = 241; @@ -2237,7 +2237,7 @@ Entry.ZumiMini.getBlocks = function() { TYPE: 0, }, class: 'base', - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const COMMAND_PLAY_SOUND = 242; @@ -2314,7 +2314,7 @@ Entry.ZumiMini.getBlocks = function() { bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, }, - { type: 'Indicator', img: 'block_icon/zumiMini/led.svg', size: 14 }, + { type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 14 }, ], def: { params: ['WHITE', 'NORMAL', 'ON', null], @@ -2326,7 +2326,7 @@ Entry.ZumiMini.getBlocks = function() { ACTION: 2, }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; @@ -2490,7 +2490,7 @@ Entry.ZumiMini.getBlocks = function() { }, { type: "Indicator", - img: "block_icon/zumiMini/motor_control.svg", + img: 'block_icon/hardware_icon.svg', size: 14 }, ], @@ -2504,7 +2504,7 @@ Entry.ZumiMini.getBlocks = function() { SPD: 2, }, class: "base", - //isNotFor: ['zumi_mini'], + isNotFor: ['zumi_mini'], func: function (sprite, script) { const Z_WAIT = 0; From 745ca0fa0aeb91b0d92cb2ff1e707ff0f3a19af4 Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Tue, 22 Oct 2024 15:14:58 +0900 Subject: [PATCH 49/65] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20console=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/class/hw.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/class/hw.ts b/src/class/hw.ts index 14fed78f4b..2112a05be0 100644 --- a/src/class/hw.ts +++ b/src/class/hw.ts @@ -369,7 +369,6 @@ export default class Hardware { const deviceName = setName ? this.hwModule.title[Lang.type] : Lang.Blocks.hardware_device_name_content; - console.log('deviceName : ', deviceName); if (this.hwModule?.hasPracticalCourse && EntryStatic.isPracticalCourse) { Entry.block.changeBlockText('hardware_device_name_content_sensor', deviceName); Entry.block.changeBlockText('hardware_device_name_content_motor', deviceName); From deee0d0c66c561c218e97b4373734a562be4d61c Mon Sep 17 00:00:00 2001 From: shlee Date: Thu, 5 Sep 2024 16:29:29 +0900 Subject: [PATCH 50/65] [CHANGE] Add RoBico --- images/hardware/robico.png | Bin 0 -> 10251 bytes images/hw/robico.png | Bin 0 -> 10251 bytes .../blocks/hardware/block_robico.js | 2354 +++++++++++++++++ 3 files changed, 2354 insertions(+) create mode 100644 images/hardware/robico.png create mode 100644 images/hw/robico.png create mode 100644 src/playground/blocks/hardware/block_robico.js diff --git a/images/hardware/robico.png b/images/hardware/robico.png new file mode 100644 index 0000000000000000000000000000000000000000..b0071800e95582a5f40fce6fa62ff2afc096f710 GIT binary patch literal 10251 zcmaiaRZv__wDq9DEyxhu-9KD|GY|*^1or^Jf(Lg95H!dDAwZCU02$mJg4^Kk8r&J2 zJO9i7av$!g(|un0RCTT1vew=m^IlU0ALk7Y006*OQ&j{bzaRhKz`{h%uA6DP007&h zn&MkspP$FszNs`Sfv2*1D}m`vH4e%JrqwpSY0e+j%_`ruZYtRd*q$fLVKMiF9839Z z6GbyPVaH$xS>%kOk*tdoSsekFfVe%jgBd{XVN65Ff0LiGCL|u(JQ_~QOCKj1To9(V zABRy>J+378a+VreN}CT5ur;HZz(|3w)}B{Mj|$%Fz?n$_xdcH8%mHoXet`JUKOnsd zB@Nm(dx3QbwT&lUQbAk-ihJtB|6g?DNuds%9CqLyiN$8%?^}P6f!O5LDPw8#FhS)U z!v%``+6^TIBnZUJu&U;PH9bHfb1ZQckO0~z6p|2t$*_rj;xypDA?F|DRr(0W1CQsW1V^3grP^g(-8bElHMv34`Jhdr|`X&1x zeOq4!RR~oC(VjX7Ea?vXm4qnl%pHQg3I0gbO%!UNmyH|u9XC$EWy}l>v5w8qeJ0N z{SZ1V2AmETs*4BALKVlSApTPfarGfN61o2U<>o0f7>UfuOCQD{~Gj}(Dj>&}u;5RTLdQIbPcX;gkfrpDih#_zdi zrEj`^(*DgM*&z1>H6=sWBZ%LC@VUKJ4aInrkYe*$o zs+WYOzLeHI{}f;~jIl4x)d#6i6G0!fxS%p@5vlPfPRlUoKT88g=>_CP`hoGS5}r%( zByR$^)vXL?qiSc@CXBotU}dWdTu>&Q=+g(f%Rny`p}#b$s%;yvv&(7+mRie= zYgU-9lgU3U#W<&;3q_hnRECcjq<5^=BTs!9IqBnf>53}oL=5Qdr!P?Ofeyq*xQ;B1 z=?8pdzbk{_Ph;utc(U%pc<0`&)WySm%n=Z7m1CU^w6>D_5VUSg%|Pg6BzJIaEo5pR z*LB%C_t5?l=|`sLII^YO&_t5~Dt?7t&8B@eytzZOlc3IqAtS#>G+0|kSs;RhaorDmzGL&T8xa_1bHZpAkTJu}@X5c(>& zpG%zZ=HzQ%$LqaAl{d1)rv-mP7*~JQwO`s)mUFZ*%Ebw&!7opU<*#rUth1dy8u*yF zD0EBAka#VYOkiVK$1At-S$+0+H1Qytc9PObsA2Ut(F!e`2U>qd1iqM7^wf7S$|1L5 zZgj{Mne=X2=UsZS6BGNJ{m1>*N}~pYX#mlf14Djf#jQqS#`JQ6@Zyhyv>*P$vGLt5 z{Z$i2!EYU}57P5bvL-CiHXoh^*ATJ}h9C5J)a><8u;DXbq{^eV@L=(5`CVFbXgUZQ zZLEt_VXg^pT^UeY#GGTO(?{F)#X(`J+`|q!LofLPMPALTT1rtE(E`eTIS=*>iVxF5 z%}t}f`KEjxC#@3wPT7On1+KN9$S!++bG+7fzP>4HcbZN}7!AND!tB^%hd$r4;1?zk z;1a{ z>wW@kcn4+=CI5X@J6j=<&&d@hw?zll?YnGE9OO3!S}Ve;KF5tIV7?>k5`9&cIp$&l zkM>ucxHD3V(bdBO2-wap*OdqAcmzu5z0rX?gGwah1U92lCjT%%r>R0}-o*PXhf4%F z{Golb{{xKg)y>{~)B4H6mRWD~gl5*I{DRR-&$y^wbNp*63GDhBc_IlwdP^MU$4{`S zoV_Q#tvEtSsX#opPo?m6Of;vsoGc#h$m=Zp06*4<*BrF_qWZ#^FsftlJbY0E1HuBG zz5hZyo@zv|$)_%#3f6ao!OLvE5GnPqbodnK*Z*kAsv}Jm_e|!cZR($5b(1T$b3GPA zyQU7Id~08VvaatB6%8x+e9O&eE2OLAbN)zKhCN^?FzL zw`#U6eu>2T@!Nmf+6VM~N4@oAgCF@4YJkHB%F*Nw3pV^k5n!g&;TCqXh7I3igIW1P zCxvL{z5xgG)X6#Qybh1wZW_4JV9ujQdD!)SXfuxF)Tf^AP)!y{{9bWA*J#0U^v1c! z0Sc~s;ecuRD~44wfFd?b<-G%7iT68*r`wI3Ns;S4X5V{K+Q+^QLn4sakm$J>MkkuG;`j?^N>ebP=bW0)$BDZM>-jrbVLtCncz)R&-^-eV>1h>h z3Z!v;v64*CDTLZ!K!hoP7OrO$kN;G(D*di&oR%A-0w4M)>0ZIY1?p?%1UXche>EUb zc$+?QoCfR}iy!`JNY<JpDp+&n|6;-;eCcz|A_d5hBSf0gky ziJUHKXPP4{(or8}T(jlm0<@Va^#;$$91_pQQ+dG1-YXso)UJX!cak(;h~qGm~XH%{9H1Ko>-^B+lmV&SRM%^*Ihx~g;?y~xMmrFsar zIa9*(qnZ{Vl~8Si_gN@mK!~wRpscjCH2aPYcUl!TwNcr(jxM2J{Oj|o8`ZX>h=s}x zfzR!C*R>6HK&s2CKSD(LWH4BOV5WhLbzdBh&iNw|=de7;SDwL~9A54ZnS$gfdwYw5 zl$0l{|73hmC6g{I^UWfPW;b2^ClDz&gE~910*fEmTAvOl3L`BP`|oYQccnw;+S=L_ zP#X@+e7oya$5^(vOi$4}1yUT>S;OJGi}cft*2}R16W)~J9aUp;SRcO$XLW&rt@i>; zF{wRD4NVkF33|;Whm^hBd9TYaC^Y`z^o3k>Er0=%CRaiYE&_ZP=o?}4Nj}^`%dcbo z?yC9R;1V1g^?b>&`h3%HdE(vCl8kAOHyakJzao{77x>%iVBQ#`AShSYy2-YmfxU~v z^oiyb6QEz=P_1@VlaocQ7_NLc`nc2)m>K-Mr!wE{73WU*xp|-Uqzz#vAt{;pb7X`5 z)9bLcxP7$W9dyw}b@FW9)cCcUEd3F+#3OWj`riMfzv@aU#Aq@q+gapqAd z=%E(2akTTVQEijS`JE`bNvlT;y-8Bln4GLe1tRf$NrMMJ6W2TAb~YZ@FEyUFKYVg_ zW=S8OC2CpoZgIH)oy+@ZXQ}0e9*4G~ z>7PSiKSj0MmJYCn5=Pd?UOQVuNJZ4|Ho5fh;9uT;??BFHHiFC7+W8fqj~@ER&EHX| z1SKVW!7$4b_OilFMWruFTuJy?s$2zYE1W83Qj9Tw+zdKtKGd#v zMw)t<@#m(?}I!lN`J>s=xX4dtf+5h(lwhzpbEz@!l_{q~k*{FRjJb1HKF*+CB}d5d!eO z@B9s3y-RSC)uEW|BvUD4T&M=oaT z{F~11EO+tARMW{o-Ks5r`Ls@V&C3lH*SbH{*58e*LRjphhBc+)U;OUnF)?#?dS2Ja zaT%3C{$duId@*LNUPzEUX+)dzLYc3zb76skCI4;-fGozD>a>S%7Z*%Ag21^azj+Ar zJbUyJsCAU^U9dK>Qmu@fV2LWLR{ndR9KPVYpqwB-$&?h=K1#cbnTjBM4h*P#j0nf= zQ74LwgaCFuzM9&pPbNZo8om@<8=F%l$h(dcU&U;YJQhQu-VpD$^5gCEu5|JFc<&{L zeN=}ee;-DhDYs#Oc*_@<&0w-yTxP6*gx7osGYNLfdv@mG9rx?yvon6s-9{gOm@uj# z23vB3QBkkmwJt#EhJ97JMy#;vvq?6_u@5jsVdx2I0}P4~y5}>0sfz)>zCL7x!85-b zO5fk#w+smQsj2RMy2>CUk%QZ*YW%aoGJ`K*zu{*+lREidEX;}Qu-bS^F8Oji9+A63 z1@*3-oR*xw6k#eapJ+RNocTPi11WfAQbvt!*PEG`Qvecf^C19ijtHG#L09jsgTMb- z2Gw-J1d<6dmrW!bvcJA(QCe79q~~`U2GYS|fi>y6r5H;mHWusJ?dS2im3DCEcEa4p zZ57|^GCqp{t1trfi-9vB9d$N9vXaatz>3g2_}o_zBUc-?zWw4=NiB`+<*W|BwXrhZxn?rJ+b66HGScs+Y2ohv^CLLF?uQ5{CkR_VOVQET znCw3e7H4PYG|%c%Ylo+9t$;qvRfzKv5@@HT@>y(3T0zmP=}ovv56#!gm31Sj+2}FH zV=E1U;Wun)MyN+S8&San&0a0+q!tU+Hp@W|$E2}Jlby2x-;D|5v>_y5@(S~oDF0Kx zgpUhshrR=8Z0i9hf>%Wh%S*Jyk8Fe+&r^JrpT%enrR}UQLc4fb(LD&rZ(~mp;Y^0c zH)8*&{3IxJ2GY5FVI^qi3aI(DtS) zgtAIF*?3~`<5q2bJ(xGGGJcooA&PSP4VZjbB=Ib=C0FJ4oBYDx<^bXg(~9o4omao< zZmd^)ByM1P7WXO~Yqx-lq1WrTngg#yL~^Sej~39b@W?31E9Y_yj_k{^Mbs zLfvf6F{pL@ZcyopVrpv2ZPFN`qbZItTwQijl3M9?_(56uYtgixD~F9cZ4GC^9ak*%pO2X`HApby8n$HYn1p+D+Ujov#rYt)w0Hc(kI zPW1l6{#h9AjHvWJ)iP+i7gts`DXeY0o;6luCP~G?=u3sKC2IbP1Q=iF6FONhKm?Q* zX$BxkqCCC9XG%T!1lz)F>+MerBdRDmS5>mEGB-S2{1}9X7q8FLUof8rY&HBzjO`)E zKP|5BYQ+9MFu$%jgW?H?%F@7#*FX+&7XjvNTQsNZM>X)>gR+X<+pWZ6T~7VXU#Tiu zT7;&i+3e6#jZ*HD%MHTdjIxTRukGzJpIguS9Ht5i3XlPZY1wx#`wD?b(O@|Y>*z~W z+cug@$7YkS9AoHVPY}XAGw67xGz)O!+Y$WfyGv;jc&)eXE-r{l`v!i#RQ*bAaDgx3 ztXxkr^HWvVHSy&l5!;xYv~Y;m7I>MkLfND?X?s!juOC9NHA>Xdh`Ogl`X2?NAh<>r zi%5XoGDA`q;LPq2PE3$66()eWrvH8Tz8ZyC-q*~~`^%T}L9L+V!}68{`Mi)>PFv4B zUCynCQrlft5^OV{4UC}2ExH<~1wkWYWATTh8pj`VMm2ud4($(}Xtz1$gMjI<3GQY> zA(T22lFu_77KTbBG2*w+^jb1^R9~ZF0j)bcNbbrKek1MP4xj6H*Xy|Fqg&BrJ>4|M z)VUzy+Wpml$E11uw#|pg=(T~11m$TN+``lswVNcPHTETYEk9^7k@jcj{M#4dFpbq$ zP-4{7ic0QS_l3yyY_q6W(b(LDH-Us}2&>Xk!-H;J+fQdp)!g^@_3t^;Zs+@D`s`#M z3{RT&awJ+YcHA?C9cTH)#0=cX52WjTg1i0d9JuapE!@Qt!c&irR+joN;ivTJLLUVw z%iF%NAlH+InQvb_mTt>~-EG%^`m$}gCPVU6;Ubt-ztP%!vD}OZ44b7Q;W2JwVAkf5g&Om2G~1+t=j(-G5!4QIYLpQ;s}CDY(0H53 ztZqhS^cFCxvKr<7ojgNECS3MK3ONGMfbv+$gUk7JS-);e69es_ z3dts;BEixLDyeb9O_k#uyV2iFyPUy6wp{rtUFPtO36rYi)6j5`% zR~wjdiT?64qPx?8*S#oRv37p`{xM%lr^6VaJ#N%SMn>%9v3U6SGoyYEGIeSyRtWr+ z!_FZ3q4_VONzjUl+=&TPK)Q)L_P*zvW4|~*nGSA<9FCx2I&P4V;vfOgKDsXoC6&Oo zW70w&Qsgzx0kd)gi$zAfbr@|gXP!^a9AcVCE^29!oTf*sKqu12`j*zPsY^)`5cMmg z`SR^6(}t0f;+&z!yUQ~Ah+Hw?@$qqOL&Ma}jGld2Q&)n>qHq|=dq8yRo8f~Vgv!6u zHI*tLdZk^qmq^au_s+^DU0eSJG-KDva_(4!#^xewIDwo1W?UZ@f2rVSn%J~j0zkAK zvAl6He*1q;KhpD7s`t-L3RC0&Mp@Of_q~5Hdk|0948VGBT=?agR7LYY(q7E?eNVvL zwLzmRgXl7m&xf=*aFQysDin+~DhUaRe@90j&o_IyO`B7}B^rU8%tM?yXa>t)lpOhY zhF(|MyEj?h98p3|zJ3(!J@2PeDKY8B6iGD!wWD%~6$Jl;+A z+^p$|f6`Sd}*eOZy}Fejm5=9pDn7jfun_*^T3LP ziE|495VeSoW8P5pA9Rb9(F6fO!I-@+B=Q-;j^yoo)*(DBqJMfyT53Y?i3RrmYi1-) zYk3p?-6DVnV1b3K<$Kx;b^-Cb*L}Y6cnIQM6*Y}l5$C9svc!XFbM~ayeM?>ELku91 zHiq!8^^7Tlzf$4b+sxXv)PUFEfEx(N1_@pxV%5L#`Tj6dz#0>oJCQq`T3H#5qZINP zHeT)anln`?(fxxqO>}I*hACGt`i;Dxb%<4TaQh>~gf~M9nVzukPq<8=3p~cZw96iyre}3+Q zS}v#DC+!chQrFYL=gS^&LGetx-4R;e#&vlJpLxRRgYe*xEwMi!$oal-_WDDJ`9e4s zd)knX84;B)6dHbpM><`NdcRsC@LI2GwGQ}rHoinYR6^B71Tag1{RTaH8-+EK0?|QeBo>$jb?;L?;mOOj=TRyN^ zQ8)XW*n91-V(7e!ABlbZyB2ggDX;p0sRE%-{Fr%i_ivc;ouDPZ>74PJw=E4(kGVc} zcWaOeV8?LyW@w-an{|&kb>YRKC2{ykU8!8o*Zt03qRyI}C#r4>&&%6@KeQuGH-hSr z-gOxeLG)Q7``ME>y=C0ZX~~Vc_JgYZ#O!PW_#3!HwM3UOn;-;RR8pbVaRNbh7tns6 zpaj1x9U=HYvE{&LBpQ=J14k95edQ}017-?Ysw@Ww9;i7Meh3Y%=K;mYvDkC|ipbGh zR2~_zDC{Jaj$WTlYUF5SBuIxW_&nGHzA=LG(CPZ! zkb=Fqu8xd>`7R*Ggjc2MC_nX^SK;%M&NU*o6DyMjl1TOB*NJNB^4Cjid%a80+S+;B zJro9{p@AB3qhL~HFmZ+EguKHwDgbr^Ym150n~7s3&gV`#uM#cVd^!9M`FpdT(dsN^ zZyv^a&Fd(A_uYKT8j{?|jQ8r!Bj#IUFAz9xe;tsovnyEz`guN$67ls#EeGGT;|Zanybw#lfgv;O@1`OD2pJ>}Ggh z$M-v~rTx3N-V48-vjsbL{WF~Tdn5IlYI@oH77o#ydoLV~95T2ZmcDQ#n!E_b!%Urc1d z_bpNuD?}HS6p9(<-uAE+wTej?wWt|mF$iXAymfpUFE?$G2w0P4OBsy5{hPz^7xmjT zD2Z1sNrM$h#Aj9#+fR|Cf5$z>y(#X{ud!VJ-FZ|pFkKa@JEM0KSh4wmJmV+c^!Dv7 zdRtq~z~1E_;|2n2JoR*5o8E6^+p$W1&RH`BukpCzK?|fLl^6TcjbD22-VJnmfEMPx zO}-9@@qdv2IU9Qo5jvau-2eOnw<>m$xgLWq2M?mILdIOf%?F;hDYRCYq03}a9Q0~X zFms9;P9$Tbe2#oxXPMb`DHED%WL38twK=HCVXoXXOGR0kSG9QRc%v_pC|WLM8pneD zE%@7zB(C%1KI!1cGc{)FZhiExJ82hOzcAtm0a%k_pu4o}<50gE=P2YEvZmz0VEDt; zK35YeWdJk(<2oPEgrzYl$YypM#{%6r@$i>_YtJ236o>c+BL8`kr$dx02t!Xv8-E8{ zn@sy`IeUv>X08BN{f1$%D}c`A5U_FZZ*;vnSX7b-3!B z-E}YS?U_I1d?Y5@Bt_%=eC$81$D_R$JD-3@kA$u1oy9k6(QdtD`qapMQ}QBBrn{P( z0ZQ#|>TT`szchOH_)#z&carm*hfkYC&@Y4y>v8i~`MBRh|J-Kjx0Ca(_xO&r!t!OJ$l;FmFpf0PAA_o&TotX!GiCah;dD}cj%FUjT>55z6&Gxj z^d-IhY3UXvd!nm5ApwZVNU1NYP67^0Fi(m$ zIABH;rnuR5xi@;bxe)Pp_i#8ZNi1?HfFwq70Wssaw6v6XdT@Zm`0LlN^HtWbTD%G0 zb3;mr{hYz?du@Za^CI!e6m4J$2VB)=SeTx$=M zdN}ff@JeSldF+AD0yOQ1E4v{_ncV#EZ}R?}MOggi>Md`A9sSI<4A%dqMrC_P8@vqJ zIHefP^MV7`9#5XkUBM+wEiEl8_wnIV6BraGXDukqcv#R>5J#P*r{|UYFVXRHwTnB{ zr3S?1h!EUqsqws*Eh;LC1ew#hK&;C94~uvqj3c*S4|rW+TR9MAM?K;ByzhkZ!Rt*; zX}87E&XNoAd1uonD=o&eFylGDWw+Q2*r`#b-y`r@c6j@(eyyKe;M0_Kj8 zrDSifx=Yd6UDr?^-%UGN@!MN?ZliSi@beb3AL5DRZ`vgl=t=gu0?YNVFFep7Vh{(? z4QIsiD=I4dKYjY=0DXi)!A;0N65jkRauR6~`L24Dm64ILu(;SfQoW5)?`*y}BW!K& z?Tv^lFV{p$rP3z;r7s6LmZW;vpKj#r0LoY&EVN7-MncgPpxKfQvJGB`v#0n3CwD=- z=}SLHZMEh*f?uMbslgY!q8;LaPuFuojyF!sNj)Kx8k|ab7i|AIV@G{hvJG&GE1rd2 z2GyM`JRmWX4SYQBN6;YS#FVD7kzr2Y{=tC)-Tip#T*7?td%d_PWJh;xY>$m2-LzH& zX^~-LV`KbSQtx@wgLS#dgZ~p3zw>5dDkwf#sM*uvR&QrY1C44G8>>Q-nMnpqUrxjb z^7cq}$K-`x|7N9tUzRB^Ap++vTb&gY6lAH8q$07atIHh3p;4JWVqy5cJ#2Kar4`a(3n`b@8vF%%P9}JRi;_F3#zQ;v^g!;+6PSSj+XT)t8_Gf z986~0)JmeUm)H!(ArF>XtS0gF^o)or9lP+9;6WB7-f3weisbWd8=6c`4$BYQg)%kT zsWNK3Pid7<){wP#muyMzlU^hd36jXxbcCt*TDkck zA4id_z|yw1r(#?R-em!#YBKx$`Cw=A^vZm(+i>Lwi~&SaKqdXTxFC++eq{6SW#+Oq zYi}g;@aAUBPb>}OT-GCf+pbljYvtn;?IfbEqVlQ_n8yWazj&eDzVt;hn!3<~=|FYX z6yxNF!-FlfXYbC8C|!*x0QO}VQz1DSt+H^#4OkeB=bYD$`l%kOk*tdoSsekFfVe%jgBd{XVN65Ff0LiGCL|u(JQ_~QOCKj1To9(V zABRy>J+378a+VreN}CT5ur;HZz(|3w)}B{Mj|$%Fz?n$_xdcH8%mHoXet`JUKOnsd zB@Nm(dx3QbwT&lUQbAk-ihJtB|6g?DNuds%9CqLyiN$8%?^}P6f!O5LDPw8#FhS)U z!v%``+6^TIBnZUJu&U;PH9bHfb1ZQckO0~z6p|2t$*_rj;xypDA?F|DRr(0W1CQsW1V^3grP^g(-8bElHMv34`Jhdr|`X&1x zeOq4!RR~oC(VjX7Ea?vXm4qnl%pHQg3I0gbO%!UNmyH|u9XC$EWy}l>v5w8qeJ0N z{SZ1V2AmETs*4BALKVlSApTPfarGfN61o2U<>o0f7>UfuOCQD{~Gj}(Dj>&}u;5RTLdQIbPcX;gkfrpDih#_zdi zrEj`^(*DgM*&z1>H6=sWBZ%LC@VUKJ4aInrkYe*$o zs+WYOzLeHI{}f;~jIl4x)d#6i6G0!fxS%p@5vlPfPRlUoKT88g=>_CP`hoGS5}r%( zByR$^)vXL?qiSc@CXBotU}dWdTu>&Q=+g(f%Rny`p}#b$s%;yvv&(7+mRie= zYgU-9lgU3U#W<&;3q_hnRECcjq<5^=BTs!9IqBnf>53}oL=5Qdr!P?Ofeyq*xQ;B1 z=?8pdzbk{_Ph;utc(U%pc<0`&)WySm%n=Z7m1CU^w6>D_5VUSg%|Pg6BzJIaEo5pR z*LB%C_t5?l=|`sLII^YO&_t5~Dt?7t&8B@eytzZOlc3IqAtS#>G+0|kSs;RhaorDmzGL&T8xa_1bHZpAkTJu}@X5c(>& zpG%zZ=HzQ%$LqaAl{d1)rv-mP7*~JQwO`s)mUFZ*%Ebw&!7opU<*#rUth1dy8u*yF zD0EBAka#VYOkiVK$1At-S$+0+H1Qytc9PObsA2Ut(F!e`2U>qd1iqM7^wf7S$|1L5 zZgj{Mne=X2=UsZS6BGNJ{m1>*N}~pYX#mlf14Djf#jQqS#`JQ6@Zyhyv>*P$vGLt5 z{Z$i2!EYU}57P5bvL-CiHXoh^*ATJ}h9C5J)a><8u;DXbq{^eV@L=(5`CVFbXgUZQ zZLEt_VXg^pT^UeY#GGTO(?{F)#X(`J+`|q!LofLPMPALTT1rtE(E`eTIS=*>iVxF5 z%}t}f`KEjxC#@3wPT7On1+KN9$S!++bG+7fzP>4HcbZN}7!AND!tB^%hd$r4;1?zk z;1a{ z>wW@kcn4+=CI5X@J6j=<&&d@hw?zll?YnGE9OO3!S}Ve;KF5tIV7?>k5`9&cIp$&l zkM>ucxHD3V(bdBO2-wap*OdqAcmzu5z0rX?gGwah1U92lCjT%%r>R0}-o*PXhf4%F z{Golb{{xKg)y>{~)B4H6mRWD~gl5*I{DRR-&$y^wbNp*63GDhBc_IlwdP^MU$4{`S zoV_Q#tvEtSsX#opPo?m6Of;vsoGc#h$m=Zp06*4<*BrF_qWZ#^FsftlJbY0E1HuBG zz5hZyo@zv|$)_%#3f6ao!OLvE5GnPqbodnK*Z*kAsv}Jm_e|!cZR($5b(1T$b3GPA zyQU7Id~08VvaatB6%8x+e9O&eE2OLAbN)zKhCN^?FzL zw`#U6eu>2T@!Nmf+6VM~N4@oAgCF@4YJkHB%F*Nw3pV^k5n!g&;TCqXh7I3igIW1P zCxvL{z5xgG)X6#Qybh1wZW_4JV9ujQdD!)SXfuxF)Tf^AP)!y{{9bWA*J#0U^v1c! z0Sc~s;ecuRD~44wfFd?b<-G%7iT68*r`wI3Ns;S4X5V{K+Q+^QLn4sakm$J>MkkuG;`j?^N>ebP=bW0)$BDZM>-jrbVLtCncz)R&-^-eV>1h>h z3Z!v;v64*CDTLZ!K!hoP7OrO$kN;G(D*di&oR%A-0w4M)>0ZIY1?p?%1UXche>EUb zc$+?QoCfR}iy!`JNY<JpDp+&n|6;-;eCcz|A_d5hBSf0gky ziJUHKXPP4{(or8}T(jlm0<@Va^#;$$91_pQQ+dG1-YXso)UJX!cak(;h~qGm~XH%{9H1Ko>-^B+lmV&SRM%^*Ihx~g;?y~xMmrFsar zIa9*(qnZ{Vl~8Si_gN@mK!~wRpscjCH2aPYcUl!TwNcr(jxM2J{Oj|o8`ZX>h=s}x zfzR!C*R>6HK&s2CKSD(LWH4BOV5WhLbzdBh&iNw|=de7;SDwL~9A54ZnS$gfdwYw5 zl$0l{|73hmC6g{I^UWfPW;b2^ClDz&gE~910*fEmTAvOl3L`BP`|oYQccnw;+S=L_ zP#X@+e7oya$5^(vOi$4}1yUT>S;OJGi}cft*2}R16W)~J9aUp;SRcO$XLW&rt@i>; zF{wRD4NVkF33|;Whm^hBd9TYaC^Y`z^o3k>Er0=%CRaiYE&_ZP=o?}4Nj}^`%dcbo z?yC9R;1V1g^?b>&`h3%HdE(vCl8kAOHyakJzao{77x>%iVBQ#`AShSYy2-YmfxU~v z^oiyb6QEz=P_1@VlaocQ7_NLc`nc2)m>K-Mr!wE{73WU*xp|-Uqzz#vAt{;pb7X`5 z)9bLcxP7$W9dyw}b@FW9)cCcUEd3F+#3OWj`riMfzv@aU#Aq@q+gapqAd z=%E(2akTTVQEijS`JE`bNvlT;y-8Bln4GLe1tRf$NrMMJ6W2TAb~YZ@FEyUFKYVg_ zW=S8OC2CpoZgIH)oy+@ZXQ}0e9*4G~ z>7PSiKSj0MmJYCn5=Pd?UOQVuNJZ4|Ho5fh;9uT;??BFHHiFC7+W8fqj~@ER&EHX| z1SKVW!7$4b_OilFMWruFTuJy?s$2zYE1W83Qj9Tw+zdKtKGd#v zMw)t<@#m(?}I!lN`J>s=xX4dtf+5h(lwhzpbEz@!l_{q~k*{FRjJb1HKF*+CB}d5d!eO z@B9s3y-RSC)uEW|BvUD4T&M=oaT z{F~11EO+tARMW{o-Ks5r`Ls@V&C3lH*SbH{*58e*LRjphhBc+)U;OUnF)?#?dS2Ja zaT%3C{$duId@*LNUPzEUX+)dzLYc3zb76skCI4;-fGozD>a>S%7Z*%Ag21^azj+Ar zJbUyJsCAU^U9dK>Qmu@fV2LWLR{ndR9KPVYpqwB-$&?h=K1#cbnTjBM4h*P#j0nf= zQ74LwgaCFuzM9&pPbNZo8om@<8=F%l$h(dcU&U;YJQhQu-VpD$^5gCEu5|JFc<&{L zeN=}ee;-DhDYs#Oc*_@<&0w-yTxP6*gx7osGYNLfdv@mG9rx?yvon6s-9{gOm@uj# z23vB3QBkkmwJt#EhJ97JMy#;vvq?6_u@5jsVdx2I0}P4~y5}>0sfz)>zCL7x!85-b zO5fk#w+smQsj2RMy2>CUk%QZ*YW%aoGJ`K*zu{*+lREidEX;}Qu-bS^F8Oji9+A63 z1@*3-oR*xw6k#eapJ+RNocTPi11WfAQbvt!*PEG`Qvecf^C19ijtHG#L09jsgTMb- z2Gw-J1d<6dmrW!bvcJA(QCe79q~~`U2GYS|fi>y6r5H;mHWusJ?dS2im3DCEcEa4p zZ57|^GCqp{t1trfi-9vB9d$N9vXaatz>3g2_}o_zBUc-?zWw4=NiB`+<*W|BwXrhZxn?rJ+b66HGScs+Y2ohv^CLLF?uQ5{CkR_VOVQET znCw3e7H4PYG|%c%Ylo+9t$;qvRfzKv5@@HT@>y(3T0zmP=}ovv56#!gm31Sj+2}FH zV=E1U;Wun)MyN+S8&San&0a0+q!tU+Hp@W|$E2}Jlby2x-;D|5v>_y5@(S~oDF0Kx zgpUhshrR=8Z0i9hf>%Wh%S*Jyk8Fe+&r^JrpT%enrR}UQLc4fb(LD&rZ(~mp;Y^0c zH)8*&{3IxJ2GY5FVI^qi3aI(DtS) zgtAIF*?3~`<5q2bJ(xGGGJcooA&PSP4VZjbB=Ib=C0FJ4oBYDx<^bXg(~9o4omao< zZmd^)ByM1P7WXO~Yqx-lq1WrTngg#yL~^Sej~39b@W?31E9Y_yj_k{^Mbs zLfvf6F{pL@ZcyopVrpv2ZPFN`qbZItTwQijl3M9?_(56uYtgixD~F9cZ4GC^9ak*%pO2X`HApby8n$HYn1p+D+Ujov#rYt)w0Hc(kI zPW1l6{#h9AjHvWJ)iP+i7gts`DXeY0o;6luCP~G?=u3sKC2IbP1Q=iF6FONhKm?Q* zX$BxkqCCC9XG%T!1lz)F>+MerBdRDmS5>mEGB-S2{1}9X7q8FLUof8rY&HBzjO`)E zKP|5BYQ+9MFu$%jgW?H?%F@7#*FX+&7XjvNTQsNZM>X)>gR+X<+pWZ6T~7VXU#Tiu zT7;&i+3e6#jZ*HD%MHTdjIxTRukGzJpIguS9Ht5i3XlPZY1wx#`wD?b(O@|Y>*z~W z+cug@$7YkS9AoHVPY}XAGw67xGz)O!+Y$WfyGv;jc&)eXE-r{l`v!i#RQ*bAaDgx3 ztXxkr^HWvVHSy&l5!;xYv~Y;m7I>MkLfND?X?s!juOC9NHA>Xdh`Ogl`X2?NAh<>r zi%5XoGDA`q;LPq2PE3$66()eWrvH8Tz8ZyC-q*~~`^%T}L9L+V!}68{`Mi)>PFv4B zUCynCQrlft5^OV{4UC}2ExH<~1wkWYWATTh8pj`VMm2ud4($(}Xtz1$gMjI<3GQY> zA(T22lFu_77KTbBG2*w+^jb1^R9~ZF0j)bcNbbrKek1MP4xj6H*Xy|Fqg&BrJ>4|M z)VUzy+Wpml$E11uw#|pg=(T~11m$TN+``lswVNcPHTETYEk9^7k@jcj{M#4dFpbq$ zP-4{7ic0QS_l3yyY_q6W(b(LDH-Us}2&>Xk!-H;J+fQdp)!g^@_3t^;Zs+@D`s`#M z3{RT&awJ+YcHA?C9cTH)#0=cX52WjTg1i0d9JuapE!@Qt!c&irR+joN;ivTJLLUVw z%iF%NAlH+InQvb_mTt>~-EG%^`m$}gCPVU6;Ubt-ztP%!vD}OZ44b7Q;W2JwVAkf5g&Om2G~1+t=j(-G5!4QIYLpQ;s}CDY(0H53 ztZqhS^cFCxvKr<7ojgNECS3MK3ONGMfbv+$gUk7JS-);e69es_ z3dts;BEixLDyeb9O_k#uyV2iFyPUy6wp{rtUFPtO36rYi)6j5`% zR~wjdiT?64qPx?8*S#oRv37p`{xM%lr^6VaJ#N%SMn>%9v3U6SGoyYEGIeSyRtWr+ z!_FZ3q4_VONzjUl+=&TPK)Q)L_P*zvW4|~*nGSA<9FCx2I&P4V;vfOgKDsXoC6&Oo zW70w&Qsgzx0kd)gi$zAfbr@|gXP!^a9AcVCE^29!oTf*sKqu12`j*zPsY^)`5cMmg z`SR^6(}t0f;+&z!yUQ~Ah+Hw?@$qqOL&Ma}jGld2Q&)n>qHq|=dq8yRo8f~Vgv!6u zHI*tLdZk^qmq^au_s+^DU0eSJG-KDva_(4!#^xewIDwo1W?UZ@f2rVSn%J~j0zkAK zvAl6He*1q;KhpD7s`t-L3RC0&Mp@Of_q~5Hdk|0948VGBT=?agR7LYY(q7E?eNVvL zwLzmRgXl7m&xf=*aFQysDin+~DhUaRe@90j&o_IyO`B7}B^rU8%tM?yXa>t)lpOhY zhF(|MyEj?h98p3|zJ3(!J@2PeDKY8B6iGD!wWD%~6$Jl;+A z+^p$|f6`Sd}*eOZy}Fejm5=9pDn7jfun_*^T3LP ziE|495VeSoW8P5pA9Rb9(F6fO!I-@+B=Q-;j^yoo)*(DBqJMfyT53Y?i3RrmYi1-) zYk3p?-6DVnV1b3K<$Kx;b^-Cb*L}Y6cnIQM6*Y}l5$C9svc!XFbM~ayeM?>ELku91 zHiq!8^^7Tlzf$4b+sxXv)PUFEfEx(N1_@pxV%5L#`Tj6dz#0>oJCQq`T3H#5qZINP zHeT)anln`?(fxxqO>}I*hACGt`i;Dxb%<4TaQh>~gf~M9nVzukPq<8=3p~cZw96iyre}3+Q zS}v#DC+!chQrFYL=gS^&LGetx-4R;e#&vlJpLxRRgYe*xEwMi!$oal-_WDDJ`9e4s zd)knX84;B)6dHbpM><`NdcRsC@LI2GwGQ}rHoinYR6^B71Tag1{RTaH8-+EK0?|QeBo>$jb?;L?;mOOj=TRyN^ zQ8)XW*n91-V(7e!ABlbZyB2ggDX;p0sRE%-{Fr%i_ivc;ouDPZ>74PJw=E4(kGVc} zcWaOeV8?LyW@w-an{|&kb>YRKC2{ykU8!8o*Zt03qRyI}C#r4>&&%6@KeQuGH-hSr z-gOxeLG)Q7``ME>y=C0ZX~~Vc_JgYZ#O!PW_#3!HwM3UOn;-;RR8pbVaRNbh7tns6 zpaj1x9U=HYvE{&LBpQ=J14k95edQ}017-?Ysw@Ww9;i7Meh3Y%=K;mYvDkC|ipbGh zR2~_zDC{Jaj$WTlYUF5SBuIxW_&nGHzA=LG(CPZ! zkb=Fqu8xd>`7R*Ggjc2MC_nX^SK;%M&NU*o6DyMjl1TOB*NJNB^4Cjid%a80+S+;B zJro9{p@AB3qhL~HFmZ+EguKHwDgbr^Ym150n~7s3&gV`#uM#cVd^!9M`FpdT(dsN^ zZyv^a&Fd(A_uYKT8j{?|jQ8r!Bj#IUFAz9xe;tsovnyEz`guN$67ls#EeGGT;|Zanybw#lfgv;O@1`OD2pJ>}Ggh z$M-v~rTx3N-V48-vjsbL{WF~Tdn5IlYI@oH77o#ydoLV~95T2ZmcDQ#n!E_b!%Urc1d z_bpNuD?}HS6p9(<-uAE+wTej?wWt|mF$iXAymfpUFE?$G2w0P4OBsy5{hPz^7xmjT zD2Z1sNrM$h#Aj9#+fR|Cf5$z>y(#X{ud!VJ-FZ|pFkKa@JEM0KSh4wmJmV+c^!Dv7 zdRtq~z~1E_;|2n2JoR*5o8E6^+p$W1&RH`BukpCzK?|fLl^6TcjbD22-VJnmfEMPx zO}-9@@qdv2IU9Qo5jvau-2eOnw<>m$xgLWq2M?mILdIOf%?F;hDYRCYq03}a9Q0~X zFms9;P9$Tbe2#oxXPMb`DHED%WL38twK=HCVXoXXOGR0kSG9QRc%v_pC|WLM8pneD zE%@7zB(C%1KI!1cGc{)FZhiExJ82hOzcAtm0a%k_pu4o}<50gE=P2YEvZmz0VEDt; zK35YeWdJk(<2oPEgrzYl$YypM#{%6r@$i>_YtJ236o>c+BL8`kr$dx02t!Xv8-E8{ zn@sy`IeUv>X08BN{f1$%D}c`A5U_FZZ*;vnSX7b-3!B z-E}YS?U_I1d?Y5@Bt_%=eC$81$D_R$JD-3@kA$u1oy9k6(QdtD`qapMQ}QBBrn{P( z0ZQ#|>TT`szchOH_)#z&carm*hfkYC&@Y4y>v8i~`MBRh|J-Kjx0Ca(_xO&r!t!OJ$l;FmFpf0PAA_o&TotX!GiCah;dD}cj%FUjT>55z6&Gxj z^d-IhY3UXvd!nm5ApwZVNU1NYP67^0Fi(m$ zIABH;rnuR5xi@;bxe)Pp_i#8ZNi1?HfFwq70Wssaw6v6XdT@Zm`0LlN^HtWbTD%G0 zb3;mr{hYz?du@Za^CI!e6m4J$2VB)=SeTx$=M zdN}ff@JeSldF+AD0yOQ1E4v{_ncV#EZ}R?}MOggi>Md`A9sSI<4A%dqMrC_P8@vqJ zIHefP^MV7`9#5XkUBM+wEiEl8_wnIV6BraGXDukqcv#R>5J#P*r{|UYFVXRHwTnB{ zr3S?1h!EUqsqws*Eh;LC1ew#hK&;C94~uvqj3c*S4|rW+TR9MAM?K;ByzhkZ!Rt*; zX}87E&XNoAd1uonD=o&eFylGDWw+Q2*r`#b-y`r@c6j@(eyyKe;M0_Kj8 zrDSifx=Yd6UDr?^-%UGN@!MN?ZliSi@beb3AL5DRZ`vgl=t=gu0?YNVFFep7Vh{(? z4QIsiD=I4dKYjY=0DXi)!A;0N65jkRauR6~`L24Dm64ILu(;SfQoW5)?`*y}BW!K& z?Tv^lFV{p$rP3z;r7s6LmZW;vpKj#r0LoY&EVN7-MncgPpxKfQvJGB`v#0n3CwD=- z=}SLHZMEh*f?uMbslgY!q8;LaPuFuojyF!sNj)Kx8k|ab7i|AIV@G{hvJG&GE1rd2 z2GyM`JRmWX4SYQBN6;YS#FVD7kzr2Y{=tC)-Tip#T*7?td%d_PWJh;xY>$m2-LzH& zX^~-LV`KbSQtx@wgLS#dgZ~p3zw>5dDkwf#sM*uvR&QrY1C44G8>>Q-nMnpqUrxjb z^7cq}$K-`x|7N9tUzRB^Ap++vTb&gY6lAH8q$07atIHh3p;4JWVqy5cJ#2Kar4`a(3n`b@8vF%%P9}JRi;_F3#zQ;v^g!;+6PSSj+XT)t8_Gf z986~0)JmeUm)H!(ArF>XtS0gF^o)or9lP+9;6WB7-f3weisbWd8=6c`4$BYQg)%kT zsWNK3Pid7<){wP#muyMzlU^hd36jXxbcCt*TDkck zA4id_z|yw1r(#?R-em!#YBKx$`Cw=A^vZm(+i>Lwi~&SaKqdXTxFC++eq{6SW#+Oq zYi}g;@aAUBPb>}OT-GCf+pbljYvtn;?IfbEqVlQ_n8yWazj&eDzVt;hn!3<~=|FYX z6yxNF!-FlfXYbC8C|!*x0QO}VQz1DSt+H^#4OkeB=bYD$`l 0; + case 2: + return (pd.acc & 4) > 0; + } + return false; + }, + }, + Robico_SensorDrop: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_boolean_field', + template: '로비코 %1', + params: [ + { + type: 'Dropdown', + options: [ + ['들림', 1], + ['내림', 2], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [1], + type: 'Robico_SensorDrop', + }, + paramsKeyMap: { + VALUE: 0, + }, + isNotFor: ['Robico'], + class: 'Robico_Sensor', + func: function (sprite, script) { + let var1 = script.getNumberField('VALUE', script); + let pd = Entry.hw.portData; + switch (var1) { + case 1: + return pd.drop == 1; + case 2: + return pd.drop == 0; + } + return false; + }, + }, + Robico_DetectLine: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_boolean_field', + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['라인 감지', 1], + ['갈림길 감지', 2], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [1], + type: 'Robico_DetectLine', + }, + paramsKeyMap: { + VALUE: 0, + }, + isNotFor: ['Robico'], + class: 'Robico_Sensor', + func: function (sprite, script) { + let var1 = script.getNumberField('VALUE', script); + let pd = Entry.hw.portData; + switch (var1) { + case 1: + if (pd.line) + return true; + break; + case 2: + if (pd.line_mode) + return true; + break; + } + return false; + }, + }, + Robico_Move1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 (으)로 %2 cm만큼 %3 이동하기 %4', + params: [ + { + type: 'Dropdown', + options: [ + ['앞', 1], + ['뒤', -1], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Dropdown', + options: [ + ['느리게', 4], + ['보통으로', 6], + ['빠르게', 9], + ['부스터', 12], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1, 10, 6], + type: 'Robico_Move1', + }, + paramsKeyMap: { + DIRECTION: 0, + DISTANCE: 1, + SPEED: 2, + }, + class: 'Robico_Movement', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('DIRECTION', script); + let var2 = script.getNumberValue('DISTANCE', script); + let var3 = script.getNumberValue('SPEED', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 1; + sq.act = 1; + sq.pcnt = 2; + sq.p1 = var2 * var1 * 10; + sq.p2 = var3 * 10; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.motor) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.motor) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_Move2: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 cm 거리를 %2 cm/s 속도로 이동하기 %3', + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [5, 5], + type: 'Robico_Move2', + }, + paramsKeyMap: { + DISTANCE: 0, + SPEED: 1, + }, + class: 'Robico_Movement', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberValue('DISTANCE', script); + let var2 = script.getNumberValue('SPEED', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 1; + sq.act = 1; + sq.pcnt = 2; + sq.p1 = var1 * 10; + sq.p2 = var2 * 10; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.motor) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.motor) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_Wheel: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '왼쪽 바퀴 %1 (으)로 %2, 오른쪽 바퀴 %3 (으)로 %4 움직이기 %5', + params: [ + { + type: 'Dropdown', + options: [ + ['앞', 1], + ['뒤', -1], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + ['느리게', 4], + ['보통으로', 6], + ['빠르게', 9], + ['부스터', 12], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + ['앞', 1], + ['뒤', -1], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + ['느리게', 4], + ['보통으로', 6], + ['빠르게', 9], + ['부스터', 12], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1, 6, 1, 6], + type: 'Robico_Wheel', + }, + paramsKeyMap: { + DIRECTION_L: 0, + SPEED_L: 1, + DIRECTION_R: 2, + SPEED_R: 3, + }, + class: 'Robico_Movement', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('DIRECTION_L', script); + let var2 = script.getNumberField('SPEED_L', script); + let var3 = script.getNumberField('DIRECTION_R', script); + let var4 = script.getNumberField('SPEED_R', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 1; + sq.act = 2; + sq.pcnt = 2; + sq.p1 = var1 * var2 * 10; + sq.p2 = var3 * var4 * 10; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 100); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_Rotate1: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 으로 %2 만큼 회전하기 %3', + params: [ + { + type: 'Dropdown', + options: [ + ['시계 방향', 1], + ['반 시계 방향', -1], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + defaultType: 'angle', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1, 90], + type: 'Robico_Rotate1', + }, + paramsKeyMap: { + DIRECTION: 0, + ANGLE: 1, + }, + class: 'Robico_Movement', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('DIRECTION', script); + let var2 = script.getNumberValue('ANGLE', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 1; + sq.act = 3; + sq.pcnt = 2; + sq.p1 = var1 * var2; + sq.p2 = 90; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.motor) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.motor) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_Rotate2: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 으로 %2 만큼 회전하기 %3', + params: [ + { + type: 'Dropdown', + options: [ + ['시계 방향', 1], + ['반 시계 방향', -1], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + ['반 바퀴', 180], + ['한 바퀴', 360], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1, 360], + type: 'Robico_Rotate2', + }, + paramsKeyMap: { + DIRECTION: 0, + ANGLE: 1, + }, + class: 'Robico_Movement', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('DIRECTION', script); + let var2 = script.getNumberValue('ANGLE', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 1; + sq.act = 3; + sq.pcnt = 2; + sq.p1 = var1 * var2; + sq.p2 = 90; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.motor) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.motor) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_Stop: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '바퀴 정지 %1', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + type: 'Robico_Stop', + }, + paramsKeyMap: {}, + class: 'Robico_Movement', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 1; + sq.act = 0; + sq.pcnt = 0; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 100); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_Linetrace: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '선을 따라 이동하기 %1 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['시작', 0], + ['멈춤', 3], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [0], + type: 'Robico_Linetrace', + }, + paramsKeyMap: { + MODE: 0, + }, + class: 'Robico_Linetrace', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberValue('MODE', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 2; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 1000); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_Ladder: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '선을 따라 사다리 타기 %1 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['시작', 1], + ['멈춤', 3], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1], + type: 'Robico_Ladder', + }, + paramsKeyMap: { + MODE: 0, + }, + class: 'Robico_Linetrace', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberValue('MODE', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 2; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 1000); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_Maze: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '선을 따라 %1 으로 미로 찾기 %2 %3', + params: [ + { + type: 'Dropdown', + options: [ + ['랜덤', 0], + ['왼쪽', 1], + ['오른쪽', 2], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + ['시작', 2], + ['멈춤', 3], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [0, 2], + type: 'Robico_Maze', + }, + paramsKeyMap: { + RULE: 0, + MODE: 1, + }, + class: 'Robico_Linetrace', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberValue('RULE', script); + let var2 = script.getNumberValue('MODE', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 2; + sq.act = 0; + sq.pcnt = 2; + sq.p1 = var1; + sq.p2 = var2; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 1000); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_WaitCL: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '다음 갈림길까지 기다리기 %1', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [], + type: 'Robico_WaitCL', + }, + paramsKeyMap: { + }, + class: 'Robico_Linetrace', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + if(pd.line_mode) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_HR: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '갈림길에서 방향을 %1 으로 선택하기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['좌회전', 1], + ['우회전', 2], + ['직진', 3], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1], + type: 'Robico_HR', + }, + paramsKeyMap: { + HR: 0, + }, + class: 'Robico_Linetrace', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberValue('HR', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 2; + sq.act = 2; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 500); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_TracingSpeed: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '선을 따라가는 속도를 %1 설정하기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['느리게', 0], + ['보통으로', 1], + ['빠르게', 2], + ['부스터', 3], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1], + type: 'Robico_TracingSpeed', + }, + paramsKeyMap: { + SPEED: 0, + }, + class: 'Robico_Linetrace', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberValue('SPEED', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 2; + sq.act = 3; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 500); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_LightColorP: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 불빛 %2 색으로 켜기 %3', + params: [ + { + type: 'Dropdown', + options: [ + ['왼쪽', 5], + ['오른쪽', 10], + ['양쪽', 15], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Color', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [5, null], + type: 'Robico_LightColorP', + }, + paramsKeyMap: { + SELECT: 0, + COLOR: 1, + }, + class: 'Robico_LEDs', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + let var2 = script.getStringField('COLOR', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 3; + sq.act = 1; + sq.pcnt = 2; + sq.p1 = var1; + sq.p2 = parseInt(parseInt(var2.substr(1, 6), 16)); + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 100); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_LightColorL: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 불빛 %2 색으로 켜기 %3', + params: [ + { + type: 'Dropdown', + options: [ + ['왼쪽', 5], + ['오른쪽', 10], + ['양쪽', 15], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + ['빨강', 0], + ['주황', 1], + ['노랑', 2], + ['초록', 3], + ['파랑', 4], + ['분홍', 5], + ['보라', 6], + ['하양', 7], + ['무작위', -1], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [15, 0], + type: 'Robico_LightColorL', + }, + paramsKeyMap: { + SELECT: 0, + COLOR: 1, + }, + class: 'Robico_LEDs', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + let var2 = script.getNumberField('COLOR', script); + let pool = new Array(0xFF0000, 0xFF4500, 0xFFFF00, 0x008000, 0x1E32FF, 0xFF00FF, 0x4B00C8, 0xFFFFFF); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 3; + sq.act = 1; + sq.pcnt = 2; + sq.p1 = var1; + if (var2 >= 0) { + sq.p2 = pool[var2]; + } + else { + sq.p2 = pool[Math.floor(Math.random() * 8)]; + } + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 100); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_LightColorF: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '바닥 색상을 불빛으로 켜기 %1', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + type: 'Robico_LightColorF', + }, + paramsKeyMap: {}, + class: 'Robico_LEDs', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 3; + sq.act = 2; + sq.pcnt = 2; + sq.p1 = 15; + switch (pd.color) { + case 1: + sq.p1 = 0xFFFFFF; + break; + case 3: + sq.p1 = 0x000000; + break; + case 4: + sq.p1 = 0xFF0000; + break; + case 5: + sq.p1 = 0x00FF00; + break; + case 6: + sq.p1 = 0x0000FF; + break; + case 7: + sq.p1 = 0xFFFF00; + break; + default: + sq.p1 = 0x010101; + break; + } + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 100); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_LightOff: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 불빛 끄기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['왼쪽', 5], + ['오른쪽', 10], + ['양쪽', 15], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [15], + type: 'Robico_LightOff', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_LEDs', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 3; + sq.act = 0; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 100); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_LightFun: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '재미있는 불빛 %1 켜기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['신호등', 1], + ['무지개', 3], + ['경찰차', 4], + ['크리스마스', 2], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1], + type: 'Robico_LightFun', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_LEDs', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 5; + sq.act = 2; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 100); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundNum: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '숫자 %1 소리 내기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['1', 311], + ['2', 312], + ['3', 313], + ['4', 314], + ['5', 315], + ['6', 316], + ['7', 317], + ['8', 318], + ['9', 319], + ['10', 320], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [311], + type: 'Robico_SoundNum', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundCol: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '색상 %1 소리 내기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['빨강', 301], + ['주황', 302], + ['노랑', 303], + ['초록', 304], + ['파랑', 305], + ['분홍', 308], + ['보라', 307], + ['하양', 310], + ['검정', 309], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [301], + type: 'Robico_SoundCol', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundMov: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '이동 %1 소리 내기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['사이렌', 23], + ['경적', 24], + ['엔진음', 25], + ['헬리콥터', 26], + ['뱃고동', 27], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [23], + type: 'Robico_SoundMov', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundAni: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '동물 %1 소리 내기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['개', 28], + ['호랑이', 29], + ['소', 30], + ['닭', 31], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [28], + type: 'Robico_SoundAni', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundEmo: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '감정 %1 소리 내기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['행복', 321], + ['슬픔', 322], + ['신남', 323], + ['지루함', 324], + ['화남', 325], + ['사랑', 326], + ['놀람', 336], + ['안심', 335], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [321], + type: 'Robico_SoundEmo', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundGre: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '인사 %1 소리 내기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['안녕?', 112], + ['반가워!', 332], + ['고마워!', 350], + ['도와줘!', 340], + ['걱정 마!', 342], + ['조심해!', 347], + ['맛있어!', 348], + ['응', 337], + ['아니', 338], + ['좋아', 204], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [112], + type: 'Robico_SoundGre', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundMis: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '미션 %1 소리 내기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['시작!', 330], + ['출발!', 201], + ['도착!', 331], + ['짜잔', 334], + ['한번 해 볼까?', 341], + ['앗, 큰일이야!', 346], + ['야호!', 203], + ['박수', 22], + ['미션 성공!', 345], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [330], + type: 'Robico_SoundMis', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 1; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundTon: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 음을 %2 음으로 %3 초동안 연주하기 %4', + params: [ + { + type: 'Dropdown', + options: [ + ['도', 523], + ['레', 587], + ['미', 659], + ['파', 699], + ['솔', 784], + ['라', 880], + ['시', 988], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Dropdown', + options: [ + ['낮은', 2], + ['높은', 4], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [523, 2, 0.5], + type: 'Robico_SoundTon', + }, + paramsKeyMap: { + SELECT: 0, + OCTAVE: 1, + INTERVAL: 2, + }, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + let var2 = script.getNumberField('OCTAVE', script); + let var3 = script.getNumberValue('INTERVAL', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 2; + sq.pcnt = 2; + sq.p1 = var1 * var2; + sq.p2 = var3 * 1000; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundColF: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '바닥 색상을 소리 내기 %1', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [], + type: 'Robico_SoundColF', + }, + paramsKeyMap: {}, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 4; + sq.pcnt = 1; + switch (pd.color) { + case 1: + sq.p1 = 310; + break; + case 3: + sq.p1 = 309; + break; + case 4: + sq.p1 = 301; + break; + case 5: + sq.p1 = 304; + break; + case 6: + sq.p1 = 305; + break; + case 7: + sq.p1 = 303; + break; + default: + sq.p1 = 0; + break; + } + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundRec: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '녹음된 소리 내기 %1', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [1], + type: 'Robico_SoundRec', + }, + paramsKeyMap: {}, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 3; + sq.pcnt = 1; + sq.p1 = 0; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + if (!pd.audio) { + Entry.Robico.state = RobicoState.STATE_WAIT; + } + return script; + case RobicoState.STATE_WAIT: + if (pd.audio) { + Entry.Robico.state = RobicoState.STATE_DONE; + } + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + Robico_SoundStop: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '소리 끄기 %1', + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [], + type: 'Robico_SoundStop', + }, + paramsKeyMap: {}, + class: 'Robico_Sounds', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 4; + sq.act = 0; + sq.pcnt = 0; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + Entry.Robico.state = RobicoState.STATE_DONE; + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + + Robico_Fun: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + template: '%1 움직이기 %2', + params: [ + { + type: 'Dropdown', + options: [ + ['댄스', 5], + ['소용돌이', 6], + ['뒤로가기', 7], + ], + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [5], + type: 'Robico_Fun', + }, + paramsKeyMap: { + SELECT: 0, + }, + class: 'Robico_Fun', + isNotFor: ['Robico'], + func: function (sprite, script) { + let sq = Entry.hw.sendQueue; + let pd = Entry.hw.portData; + let var1 = script.getNumberField('SELECT', script); + if (!Entry.Robico.isStarted) { + sq.seq = Entry.Robico.sequance++; + sq.cat = 5; + sq.act = 2; + sq.pcnt = 1; + sq.p1 = var1; + Entry.Robico.isStarted = true; + Entry.Robico.state = RobicoState.STATE_READY; + return script; + } else { + switch (Entry.Robico.state) { + case RobicoState.STATE_READY: + setTimeout(() => { + Entry.Robico.state = RobicoState.STATE_DONE; + }, 100); + Entry.Robico.state = RobicoState.STATE_WAIT; + return script; + case RobicoState.STATE_WAIT: + return script; + case RobicoState.STATE_DONE: + Entry.Robico.isStarted = false; + return script.callReturn(); + } + } + return script; + }, + }, + }; +}; + +module.exports = Entry.Robico; From 7a2dc5a1b7e9d98de29eb192482f08e65788a21d Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 23 Oct 2024 10:10:55 +0900 Subject: [PATCH 51/65] Revert lang files to commit 829d9a7b7ec9bdb2c8a7a385072eabc8721f3f2d --- extern/lang/code.js | 7 ------- extern/lang/ebs.js | 5 ----- extern/lang/en.js | 5 ----- extern/lang/jp.js | 5 ----- extern/lang/ko.js | 7 ------- extern/lang/vn.js | 3 --- 6 files changed, 32 deletions(-) diff --git a/extern/lang/code.js b/extern/lang/code.js index 149ed6cd1b..1374ffbc21 100644 --- a/extern/lang/code.js +++ b/extern/lang/code.js @@ -676,8 +676,6 @@ Lang.Blocks = { "dplay_analog_number_3": "A3", "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", - - "ARDUINO_arduino_get_string_1": "신호", "ARDUINO_arduino_get_string_2": "의 글자 결괏값", "ARDUINO_arduino_send_1": "신호", @@ -2858,7 +2856,6 @@ Lang.Menus = { "e_sensor": "E 센서보드", "e_sensor_board": "E 센서보드", "e_sensor_robot": "E 센서로봇", - "avatarbot": "avatarbot", "arduino": "아두이노", "arduinoext": "아두이노 Uno 확장모드", "arduinonano": "아두이노 Nano", @@ -5885,10 +5882,6 @@ Lang.template = { "albert_clear_led": "Entry.Hamster.clearLed(' %1 ') %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - - - - "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/ebs.js b/extern/lang/ebs.js index 81ea765eef..3ad284537a 100644 --- a/extern/lang/ebs.js +++ b/extern/lang/ebs.js @@ -676,7 +676,6 @@ Lang.Blocks = { "dplay_analog_number_3": "A3", "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", - "ARDUINO_arduino_get_string_1": "신호", "ARDUINO_arduino_get_string_2": "의 글자 결괏값", "ARDUINO_arduino_send_1": "신호", @@ -2866,7 +2865,6 @@ Lang.Menus = { "e_sensor": "E 센서보드", "e_sensor_board": "E 센서보드", "e_sensor_robot": "E 센서로봇", - "avatarbot": "avatarbot", "arduino": "아두이노", "arduinoext": "아두이노 Uno 확장모드", "arduinonano": "아두이노 Nano", @@ -5898,9 +5896,6 @@ Lang.template = { "albert_clear_led": "%1 %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - - - "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/en.js b/extern/lang/en.js index be1914f4f8..93187e0e50 100644 --- a/extern/lang/en.js +++ b/extern/lang/en.js @@ -2725,7 +2725,6 @@ Lang.Menus = { e_sensor: 'E Sensorboard', e_sensor_board: 'E Sensor-board', e_sensor_robot: 'E Sensor-robot', - avatarbot: 'avatarbot', arduino: 'Arduino', arduinoext: 'ArduinoExt Uno', arduinonano: 'Arduino Nano', @@ -6559,10 +6558,6 @@ Lang.template = { albert_clear_led: 'clear %1 led %2', albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', - - - - arduino_text: '%1', arduino_get_sensor_number: '%1 ', arduino_get_port_number: '%1 ', diff --git a/extern/lang/jp.js b/extern/lang/jp.js index 5b575d41cb..416501869c 100644 --- a/extern/lang/jp.js +++ b/extern/lang/jp.js @@ -671,7 +671,6 @@ Lang.Blocks = { "dplay_analog_number_3": "A3", "dplay_analog_number_4": "A4", "dplay_analog_number_5": "A5", - "ARDUINO_arduino_get_string_1": "string result of signal", "ARDUINO_arduino_get_string_2": "", "ARDUINO_arduino_send_1": "Send signal", @@ -2859,7 +2858,6 @@ Lang.Menus = { "e_sensor": "Eセンサーボード", "e_sensor_board": "Eセンサーボード", "e_sensor_robot": "Eセンサーロボット", - "avatarbot": "avatarbot", "arduino": "Arduino", "arduinoext": "ArduinoExt Uno", "arduinonano": "Arduino Nano", @@ -5889,9 +5887,6 @@ Lang.template = { "albert_clear_led": "clear %1 led %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - - - "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", diff --git a/extern/lang/ko.js b/extern/lang/ko.js index 20b33d7f8e..644f821a2f 100644 --- a/extern/lang/ko.js +++ b/extern/lang/ko.js @@ -689,8 +689,6 @@ Lang.Blocks = { dplay_analog_number_3: 'A3', dplay_analog_number_4: 'A4', dplay_analog_number_5: 'A5', - - ARDUINO_arduino_get_string_1: '신호', ARDUINO_arduino_get_string_2: '의 글자 결과값', ARDUINO_arduino_send_1: '신호', @@ -3045,7 +3043,6 @@ Lang.Menus = { e_sensor: 'E 센서보드', e_sensor_board: 'E 센서보드', e_sensor_robot: 'E 센서로봇', - avatarbot: 'avatarbot', arduino: '아두이노', arduinoext: '아두이노 Uno 확장모드', arduinonano: '아두이노 Nano', @@ -7058,10 +7055,6 @@ Lang.template = { albert_clear_led: '%1 %2', albert_change_wheels_by: '%1 %2 %3', albert_set_wheels_to: '%1 %2 %3', - - - - arduino_text: '%1', arduino_get_sensor_number: '%1 ', arduino_get_port_number: '%1 ', diff --git a/extern/lang/vn.js b/extern/lang/vn.js index dd38458e6a..b44ad83f9c 100644 --- a/extern/lang/vn.js +++ b/extern/lang/vn.js @@ -2857,7 +2857,6 @@ Lang.Menus = { "e_sensor": "E Sensorboard", "e_sensor_board": "E Sensor-board", "e_sensor_robot": "E Sensor-robot", - "avatarbot": 'avatarbot', "arduino": "Arduino", "arduinoext": "ArduinoExt Uno", "arduinonano": "Arduino Nano", @@ -5887,8 +5886,6 @@ Lang.template = { "albert_clear_led": "xóa %1 %2", "albert_change_wheels_by": "%1 %2 %3", "albert_set_wheels_to": "%1 %2 %3", - - "arduino_text": "%1", "arduino_get_sensor_number": "%1 ", "arduino_get_port_number": "%1 ", From db932f4ce31adfa7748a1c0e22ccbb79b6372104 Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 23 Oct 2024 14:18:24 +0900 Subject: [PATCH 52/65] =?UTF-8?q?=EB=A1=9C=EB=B4=87=EC=95=84=EC=9D=B4,=20?= =?UTF-8?q?=EC=BD=94=EC=95=8C=EB=9D=BC=EB=B4=87=20=EB=B8=94=EB=A1=9D=20?= =?UTF-8?q?=EB=AC=B8=EA=B5=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_robotisRB.js | 2 +- .../block_robotisRBPracticalAssembly.js | 57 ++++++++--------- .../block_robotis_robotai_lite.js | 61 +++++++++---------- 3 files changed, 58 insertions(+), 62 deletions(-) diff --git a/src/playground/blocks/hardware/block_robotisRB.js b/src/playground/blocks/hardware/block_robotisRB.js index 4367c8c5a7..31ada80e29 100644 --- a/src/playground/blocks/hardware/block_robotisRB.js +++ b/src/playground/blocks/hardware/block_robotisRB.js @@ -318,7 +318,7 @@ Entry.Robotis_rb.setLanguage = function() { robotis_face22: "목욕", robotis_face23: "햐트뿅뿅", - robotis_car_anim01: "기본표정", + robotis_car_anim01: "기본 표정", robotis_car_anim02: "감동", robotis_car_anim03: "미소", robotis_car_anim04: "웃음", diff --git a/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js b/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js index 0f28164d65..6d0cf52a30 100644 --- a/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js +++ b/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js @@ -183,11 +183,11 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_Practice_drive_stop: "정지하기 %1", robotis_Practice_securitybot_init: "보안 로봇 초기화 %1", - robotis_Practice_securitybot_hi: "보안 로봇 위아래로 흔들기 %1", - robotis_Practice_securitybot_alert: "보안 로봇 좌우로 흔들기 %1", + robotis_Practice_securitybot_hi: "보안 로봇 긍정적 행동하기 %1", + robotis_Practice_securitybot_alert: "보안 로봇 부정적 행동하기 %1", - robotis_Practice_petbot_happy: "반려 로봇 웃음 %1", - robotis_Practice_petbot_sad: "반려 로봇 화남 %1", + robotis_Practice_petbot_happy: "반려 로봇 행복한 행동하기 %1", + robotis_Practice_petbot_sad: "반려 로봇 화난 행동하기 %1", robotis_Practice_farmbot_init: "스마트팜 로봇 초기화 %1", robotis_Practice_farmbot_seek: "농작물 찾기 %1", @@ -256,23 +256,23 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { // 인공지능 카메라 값 블록 - robotis_Practice_huskylens_connection_status: "인공지능 카메라: %1이면", - robotis_Practice_huskylens_if_detected: "인공지능 카메라: %1 이/가 표시되면", + robotis_Practice_huskylens_connection_status: "인공지능 카메라가 %1이면", + robotis_Practice_huskylens_if_detected: "인공지능 카메라에 %1 이/가 표시되면", - robotis_Practice_huskylens_block_value_closest_to_center: "인공지능 카메라: 화면 중앙과 가까운 %1의 %2", - robotis_Practice_huskylens_arrow_value_closest_to_center: "인공지능 카메라: 화면 중앙과 가까운 화살표의 %1", - robotis_Practice_huskylens_number_of_learned_id: "인공지능 카메라: 학습한 번호의 갯수", - robotis_Practice_huskylens_block_value_of_id: "인공지능 카메라: 감지된 번호가 %1인 %2의 %3", - robotis_Practice_huskylens_arrow_value_of_id: "인공지능 카메라: 감지된 번호가 %1인 화살표의 %2", + robotis_Practice_huskylens_block_value_closest_to_center: "인공지능 카메라가 인식한 %1의 %2", + robotis_Practice_huskylens_arrow_value_closest_to_center: "인공지능 카메라가 인식한 화살표의 %1", + robotis_Practice_huskylens_number_of_learned_id: "인공지능 카메라가 학습한 클래스의 갯수", + robotis_Practice_huskylens_block_value_of_id: "인공지능 카메라가 감지한 클래스가 %1인 %2의 %3", + robotis_Practice_huskylens_arrow_value_of_id: "인공지능 카메라가 감지한 클래스가 %1인 화살표의 %2", - robotis_Practice_huskylens_if_learned_id: "인공지능 카메라: 번호가 %1인 데이터를 학습하였으면", - robotis_Practice_huskylens_if_detected_id_type: "인공지능 카메라: 번호가 %1인 %2데이터를 인식하였으면", + robotis_Practice_huskylens_if_learned_id: "인공지능 카메라가 클래스가 %1인 데이터를 학습하였으면", + robotis_Practice_huskylens_if_detected_id_type: "인공지능 카메라가 클래스가 %1인 %2데이터를 인식하였으면", // 인공지능 카메라 제어 - robotis_Practice_huskylens_set_mode: "인공지능 카메라: 모드를 %1(으)로 설정 %2", - robotis_Practice_huskylens_print_custom_text: "인공지능 카메라: 화면 위치 (%1,%2)에 %3를 보여주기%4", - robotis_Practice_huskylens_clear_custom_text: "인공지능 카메라: 화면의 글 지우기 %1", + robotis_Practice_huskylens_set_mode: "인공지능 카메라의 작동방식을 %1(으)로 설정 %2", + robotis_Practice_huskylens_print_custom_text: "인공지능 카메라의 화면 위치 (%1,%2)에 %3를 보여주기%4", + robotis_Practice_huskylens_clear_custom_text: "인공지능 카메라의 화면의 글 지우기 %1", }, Helper: { // 주행 제어 @@ -365,8 +365,8 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_Practice_huskylens_connection_status: "인공지능 카메라가 연결된 상태이면 '참', 아니면 '거짓'으로 판단합니다.", robotis_Practice_huskylens_if_detected: "인공지능 카메라의 LCD화면에 선택한 기호(사각형/화살표)가 표시되면 '참', 아니면 '거짓'으로 판단합니다.", - robotis_Practice_huskylens_block_value_closest_to_center: "인공지능 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/학습번호", - robotis_Practice_huskylens_arrow_value_closest_to_center: "인공지능 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/학습번호", + robotis_Practice_huskylens_block_value_closest_to_center: "인공지능 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/클래스", + robotis_Practice_huskylens_arrow_value_closest_to_center: "인공지능 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/클래스", robotis_Practice_huskylens_number_of_learned_id: "인공지능 카메라가 학습한 번호의 갯수", robotis_Practice_huskylens_block_value_of_id: "인공지능 카메라가 감지한 사각형중 지정한 번호의 사각형의 X좌표/Y좌표/너비/높이", robotis_Practice_huskylens_arrow_value_of_id: "인공지능 카메라가 감지한 화살표중 지정한 번호의 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표", @@ -753,13 +753,12 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_connected: "연결", robotis_disconnected: "없음", - robotis_huskylens_mode_face_recognition: "얼굴인식", - robotis_huskylens_mode_object_tracking: "물체추적", - robotis_huskylens_mode_object_recognition: "물체인식", - robotis_huskylens_mode_line_tracking: "라인인식", - robotis_huskylens_mode_color_recognition: "색상인식", - robotis_huskylens_mode_tag_recognition: "태그인식", - robotis_huskylens_mode_object_classification: "물체분류", + robotis_huskylens_mode_face_recognition: "얼굴 인식", + robotis_huskylens_mode_line_tracking: "라인 인식", + robotis_huskylens_mode_color_recognition: "색상 인식", + robotis_huskylens_mode_tag_recognition: "태그 인식", + robotis_huskylens_mode_object_classification: "사물 분류", + robotis_huskylens_mode_expression_recognition: '표정 인식', robotis_huskylens_target_face: "얼굴", robotis_huskylens_target_object: "사물", robotis_huskylens_target_color: "색상", @@ -771,7 +770,7 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_huskylens_center_block_center_y: "중심 Y좌표", robotis_huskylens_center_block_width: "너비", robotis_huskylens_center_block_height: "높이", - robotis_huskylens_center_leared_id: "학습번호", + robotis_huskylens_center_leared_id: "클래스", robotis_huskylens_center_arrow_origin_x: "시작점 X좌표", robotis_huskylens_center_arrow_origin_y: "시작점 Y좌표", robotis_huskylens_center_arrow_target_x: "끝점 X좌표", @@ -1150,12 +1149,11 @@ Entry.Robotis_rb_P_Assembly.setLanguage = function () { robotis_connected: "connected", robotis_disconnected: "NOT connected", robotis_huskylens_mode_face_recognition: "Face recognition", - robotis_huskylens_mode_object_tracking: "Object tracking", - robotis_huskylens_mode_object_recognition: "Object recognition", robotis_huskylens_mode_line_recognition: "Line tracking", robotis_huskylens_mode_color_recognition: "Color recognition", robotis_huskylens_mode_tag_recognition: "Tag recognition", robotis_huskylens_mode_object_classification: "Object classification", + robotis_huskylens_mode_expression_recognition: 'Expression recognition', robotis_huskylens_target_block: "Rectangle", robotis_huskylens_target_arrow: "Arrow", robotis_huskylens_center_block_center_x: "Center X", @@ -7327,12 +7325,11 @@ Entry.Robotis_rb_P_Assembly.getBlocks = function () { type: 'Dropdown', options: [ [Lang.Blocks.robotis_huskylens_mode_face_recognition, '0'], - [Lang.Blocks.robotis_huskylens_mode_object_tracking, '1'], - [Lang.Blocks.robotis_huskylens_mode_object_recognition, '2'], [Lang.Blocks.robotis_huskylens_mode_line_tracking, '3'], [Lang.Blocks.robotis_huskylens_mode_color_recognition, '4'], [Lang.Blocks.robotis_huskylens_mode_tag_recognition, '5'], [Lang.Blocks.robotis_huskylens_mode_object_classification, '6'], + [Lang.Blocks.robotis_huskylens_mode_expression_recognition, '9'], ], value: '0', fontSize: 11, diff --git a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js index dad5790493..870d80dfe3 100644 --- a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js +++ b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js @@ -472,11 +472,11 @@ let camera_id_for_use = 0; robotis_robotai_lite_drive_stop: '정지하기 %1', robotis_robotai_lite_securitybot_init: '보안 로봇 초기화 %1', - robotis_robotai_lite_securitybot_hi: '보안 로봇 위아래로 흔들기 %1', - robotis_robotai_lite_securitybot_alert: '보안 로봇 좌우로 흔들기 %1', + robotis_robotai_lite_securitybot_hi: '보안 로봇 긍정적 행동하기 %1', + robotis_robotai_lite_securitybot_alert: '보안 로봇 부정적 행동하기 %1', - robotis_robotai_lite_petbot_happy: '반려 로봇 웃음 %1', - robotis_robotai_lite_petbot_sad: '반려 로봇 화남 %1', + robotis_robotai_lite_petbot_happy: '반려 로봇 행복한 행동하기 %1', + robotis_robotai_lite_petbot_sad: '반려 로봇 화난 행동하기 %1', robotis_robotai_lite_farmbot_init: '스마트팜 로봇 초기화 %1', robotis_robotai_lite_farmbot_seek: '농작물 찾기 %1', @@ -512,7 +512,7 @@ let camera_id_for_use = 0; robotis_robotai_lite_playRecord: '소리 %1번을 재생하기 %2', // LCD 제어 - robotis_robotai_lite_screen: '화면 표정을 %1 %2 (으)로 정하기 %3', + robotis_robotai_lite_screen: '화면을 %1 %2 (으)로 정하기 %3', robotis_robotai_lite_anim_screen: '화면 애니메이션을 %1 %2 (으)로 정하기 %3', robotis_robotai_lite_icon_screen_food_plant: @@ -548,32 +548,32 @@ let camera_id_for_use = 0; '%1 모터 %2 속도로 %3 바퀴 %4으로 회전 %5', // ai_camera 값 블록 - robotis_robotai_lite_ai_camera_connection_status: '인공지능 카메라: %1이면', - robotis_robotai_lite_ai_camera_if_detected: '인공지능 카메라: %1 이/가 표시되면', + robotis_robotai_lite_ai_camera_connection_status: '인공지능 카메라가 %1이면', + robotis_robotai_lite_ai_camera_if_detected: '인공지능 카메라에 %1 이/가 표시되면', robotis_robotai_lite_ai_camera_block_value_closest_to_center: - '인공지능 카메라: 화면 중앙과 가까운 %1의 %2', + '인공지능 카메라가 인식한 %1의 %2', robotis_robotai_lite_ai_camera_arrow_value_closest_to_center: - '인공지능 카메라: 화면 중앙과 가까운 화살표의 %1', + '인공지능 카메라가 인식한 화살표의 %1', robotis_robotai_lite_ai_camera_number_of_learned_id: - '인공지능 카메라: 학습한 번호의 갯수', + '인공지능 카메라가 학습한 클래스의 갯수', robotis_robotai_lite_ai_camera_block_value_of_id: - '인공지능 카메라: 감지된 번호가 %1인 %2의 %3', + '인공지능 카메라가 감지한 클래스가 %1인 %2의 %3', robotis_robotai_lite_ai_camera_arrow_value_of_id: - '인공지능 카메라: 감지된 번호가 %1인 화살표의 %2', + '인공지능 카메라가 감지한 클래스가 %1인 화살표의 %2', robotis_robotai_lite_ai_camera_if_learned_id: - '인공지능 카메라: 번호가 %1인 데이터를 학습하였으면', + '인공지능 카메라가 클래스가 %1인 데이터를 학습하였으면', robotis_robotai_lite_ai_camera_if_detected_id_type: - '인공지능 카메라: 번호가 %1인 %2데이터를 인식하였으면', + '인공지능 카메라가 클래스가 %1인 %2데이터를 인식하였으면', // 인공지능 카메라 제어 robotis_robotai_lite_ai_camera_set_mode: - '인공지능 카메라: 모드를 %1(으)로 설정 %2', + '인공지능 카메라의 작동 방식을 %1(으)로 설정 %2', robotis_robotai_lite_ai_camera_print_custom_text: - '인공지능 카메라: 화면 위치 (%1,%2)에 %3를 보여주기%4', + '인공지능 카메라의 화면 위치 (%1,%2)에 %3를 보여주기%4', robotis_robotai_lite_ai_camera_clear_custom_text: - '인공지능 카메라: 화면의 글 지우기 %1', + '인공지능 카메라의 화면의 글 지우기 %1', }, Helper: { // 주행 제어 @@ -595,7 +595,7 @@ let camera_id_for_use = 0; robotis_robotai_lite_drive_stop: '로봇아이 정지하기', robotis_robotai_lite_securitybot_init: - '보안 로봇을 초기화합니다. 두 모터를 관절모드로 설정하고 카메라를 얼굴인식모드로 설정합니다.', + '보안 로봇을 초기화합니다. 두 모터를 관절모드로 설정하고 카메라를 얼굴 인식모드로 설정합니다.', robotis_robotai_lite_securitybot_hi: '보안 로봇이 "사용자를 확인하였습니다." 문구를 화면에 표시하고 팔을 위아래로 흔듭니다.', robotis_robotai_lite_securitybot_alert: @@ -696,9 +696,9 @@ let camera_id_for_use = 0; "인공지능 카메라의 LCD화면에 선택한 기호(사각형/화살표)가 표시되면 '참', 아니면 '거짓'으로 판단합니다.", robotis_robotai_lite_ai_camera_block_value_closest_to_center: - '인공지능 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/학습번호', + '인공지능 카메라 화면 중앙과 가장 가까운 사각형의 X좌표/Y좌표/너비/높이/클래스', robotis_robotai_lite_ai_camera_arrow_value_closest_to_center: - '인공지능 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/학습번호', + '인공지능 카메라 화면 중앙과 가장 가까운 화살표의 시작점X좌표/시작점Y좌표/끝점X좌표/끝점Y좌표/클래스', robotis_robotai_lite_ai_camera_number_of_learned_id: '인공지능 카메라가 학습한 번호의 갯수', robotis_robotai_lite_ai_camera_block_value_of_id: @@ -873,7 +873,7 @@ let camera_id_for_use = 0; robotis_pitch: '앞뒤 회전각 (pitch)', robotis_direction_forward: '전진방향', robotis_direction_backward: '후진방향', - robotis_stMotion1: '기본자세', + robotis_stMotion1: '기본 자세', robotis_stMotion2: '전진', robotis_stMotion3: '우전진', robotis_stMotion4: '좌전진', @@ -1095,13 +1095,12 @@ let camera_id_for_use = 0; robotis_connected: '연결', robotis_disconnected: '없음', - robotis_ai_camera_mode_face_recognition: '얼굴인식', - robotis_ai_camera_mode_object_tracking: '물체추적', - robotis_ai_camera_mode_object_recognition: '물체인식', - robotis_ai_camera_mode_line_tracking: '라인인식', - robotis_ai_camera_mode_color_recognition: '색상인식', - robotis_ai_camera_mode_tag_recognition: '태그인식', - robotis_ai_camera_mode_object_classification: '물체분류', + robotis_ai_camera_mode_face_recognition: '얼굴 인식', + robotis_ai_camera_mode_line_tracking: '라인 인식', + robotis_ai_camera_mode_color_recognition: '색상 인식', + robotis_ai_camera_mode_tag_recognition: '태그 인식', + robotis_ai_camera_mode_object_classification: '사물 분류', + robotis_ai_camera_mode_expression_recognition: '표정 인식', robotis_ai_camera_target_face: '얼굴', robotis_ai_camera_target_object: '사물', robotis_ai_camera_target_color: '색상', @@ -1113,7 +1112,7 @@ let camera_id_for_use = 0; robotis_ai_camera_center_block_center_y: '중심 Y좌표', robotis_ai_camera_center_block_width: '너비', robotis_ai_camera_center_block_height: '높이', - robotis_ai_camera_center_leared_id: '학습번호', + robotis_ai_camera_center_leared_id: '클래스', robotis_ai_camera_center_arrow_origin_x: '시작점 X좌표', robotis_ai_camera_center_arrow_origin_y: '시작점 Y좌표', robotis_ai_camera_center_arrow_target_x: '끝점 X좌표', @@ -1785,6 +1784,7 @@ let camera_id_for_use = 0; robotis_ai_camera_mode_color_recognition: 'Color recognition', robotis_ai_camera_mode_tag_recognition: 'Tag recognition', robotis_ai_camera_mode_object_classification: 'Object classification', + robotis_ai_camera_mode_expression_recognition: 'Expression recognition', robotis_ai_camera_target_block: 'Rectangle', robotis_ai_camera_target_arrow: 'Arrow', robotis_ai_camera_center_block_center_x: 'Center X', @@ -7235,12 +7235,11 @@ let camera_id_for_use = 0; type: 'Dropdown', options: [ [Lang.Blocks.robotis_ai_camera_mode_face_recognition, '0'], - [Lang.Blocks.robotis_ai_camera_mode_object_tracking, '1'], - [Lang.Blocks.robotis_ai_camera_mode_object_recognition, '2'], [Lang.Blocks.robotis_ai_camera_mode_line_tracking, '3'], [Lang.Blocks.robotis_ai_camera_mode_color_recognition, '4'], [Lang.Blocks.robotis_ai_camera_mode_tag_recognition, '5'], [Lang.Blocks.robotis_ai_camera_mode_object_classification, '6'], + [Lang.Blocks.robotis_ai_camera_mode_expression_recognition, '9'], ], value: '0', fontSize: 11, From fb2bae5609ca941e4aec818c4b8936ec8c31dd9e Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 23 Oct 2024 15:46:30 +0900 Subject: [PATCH 53/65] =?UTF-8?q?es-lint=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hardwareLite/block_robotis_robotai_lite.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js index 870d80dfe3..60d7bc0c01 100644 --- a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js +++ b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js @@ -476,7 +476,7 @@ let camera_id_for_use = 0; robotis_robotai_lite_securitybot_alert: '보안 로봇 부정적 행동하기 %1', robotis_robotai_lite_petbot_happy: '반려 로봇 행복한 행동하기 %1', - robotis_robotai_lite_petbot_sad: '반려 로봇 화난 행동하기 %1', + robotis_robotai_lite_petbot_sad: '반려 로봇 화난 행동하기 %1', robotis_robotai_lite_farmbot_init: '스마트팜 로봇 초기화 %1', robotis_robotai_lite_farmbot_seek: '농작물 찾기 %1', @@ -486,7 +486,7 @@ let camera_id_for_use = 0; // 값 블록 robotis_robotai_lite_cm_ir_value: '%1 적외선센서 값', robotis_robotai_lite_cm_ir_compare: '%1 적외선센서 값이 %2 보다 %3', - robotis_robotai_lite_detectFrontObj: '적외선센서의 %1에 물체가 있으면', // 거리센서를 사용하지 않을 경우 + robotis_robotai_lite_detectFrontObj: '적외선센서의 %1에 물체가 있으면', robotis_robotai_lite_cm_btn_value: '제어기의 %1 버튼을 클릭했을때', robotis_robotai_lite_cm_joystick_value: '제어기의 노랑 조이스틱 위치가 %1 이면', @@ -548,8 +548,10 @@ let camera_id_for_use = 0; '%1 모터 %2 속도로 %3 바퀴 %4으로 회전 %5', // ai_camera 값 블록 - robotis_robotai_lite_ai_camera_connection_status: '인공지능 카메라가 %1이면', - robotis_robotai_lite_ai_camera_if_detected: '인공지능 카메라에 %1 이/가 표시되면', + robotis_robotai_lite_ai_camera_connection_status: + '인공지능 카메라가 %1이면', + robotis_robotai_lite_ai_camera_if_detected: + '인공지능 카메라에 %1 이/가 표시되면', robotis_robotai_lite_ai_camera_block_value_closest_to_center: '인공지능 카메라가 인식한 %1의 %2', @@ -7342,7 +7344,7 @@ let camera_id_for_use = 0; // Encode the text as UTF-8 let encoder = new TextEncoder(); let utf8Array = encoder.encode(text); - + // utf8Array is now a Uint8Array containing the UTF-8 bytes of the text let text_len = utf8Array.length; From 93a9f25969058ca27077852f4868a8b4d6ffe198 Mon Sep 17 00:00:00 2001 From: Jason Kim Date: Wed, 23 Oct 2024 18:00:55 +0900 Subject: [PATCH 54/65] =?UTF-8?q?AI=20Camera=20=EB=AA=A8=EB=93=9C=20?= =?UTF-8?q?=EC=88=9C=EC=84=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/hardware/block_robotisRBPracticalAssembly.js | 2 +- .../blocks/hardwareLite/block_robotis_robotai_lite.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js b/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js index 6d0cf52a30..6ee50d054d 100644 --- a/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js +++ b/src/playground/blocks/hardware/block_robotisRBPracticalAssembly.js @@ -7325,11 +7325,11 @@ Entry.Robotis_rb_P_Assembly.getBlocks = function () { type: 'Dropdown', options: [ [Lang.Blocks.robotis_huskylens_mode_face_recognition, '0'], + [Lang.Blocks.robotis_huskylens_mode_expression_recognition, '9'], [Lang.Blocks.robotis_huskylens_mode_line_tracking, '3'], [Lang.Blocks.robotis_huskylens_mode_color_recognition, '4'], [Lang.Blocks.robotis_huskylens_mode_tag_recognition, '5'], [Lang.Blocks.robotis_huskylens_mode_object_classification, '6'], - [Lang.Blocks.robotis_huskylens_mode_expression_recognition, '9'], ], value: '0', fontSize: 11, diff --git a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js index 60d7bc0c01..8ca8f36b0c 100644 --- a/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js +++ b/src/playground/blocks/hardwareLite/block_robotis_robotai_lite.js @@ -7237,11 +7237,11 @@ let camera_id_for_use = 0; type: 'Dropdown', options: [ [Lang.Blocks.robotis_ai_camera_mode_face_recognition, '0'], + [Lang.Blocks.robotis_ai_camera_mode_expression_recognition, '9'], [Lang.Blocks.robotis_ai_camera_mode_line_tracking, '3'], [Lang.Blocks.robotis_ai_camera_mode_color_recognition, '4'], [Lang.Blocks.robotis_ai_camera_mode_tag_recognition, '5'], [Lang.Blocks.robotis_ai_camera_mode_object_classification, '6'], - [Lang.Blocks.robotis_ai_camera_mode_expression_recognition, '9'], ], value: '0', fontSize: 11, From 84e62bfe6407b43c491c24ee808663ccd6dd0a81 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 23 Oct 2024 18:44:17 +0900 Subject: [PATCH 55/65] .git - yarn-lock --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8bf4b73004..afcc4bd53f 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ extern/closure-library .idea/ dist/ +yarn.lock From b29a3d4ce9243672471df13cd17551bfaaa8803f Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 23 Oct 2024 18:51:36 +0900 Subject: [PATCH 56/65] checkout yarn.lock --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index afcc4bd53f..8bf4b73004 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,3 @@ extern/closure-library .idea/ dist/ -yarn.lock From 8abcdc8a1887cdd283c25056aa9f52d0fbef3ba3 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 23 Oct 2024 18:54:55 +0900 Subject: [PATCH 57/65] checkout yarn.lock --- yarn.lock | 6985 ++++++++++++++++++++++++++--------------------------- 1 file changed, 3378 insertions(+), 3607 deletions(-) diff --git a/yarn.lock b/yarn.lock index 60aad834ff..eedd0ad67f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,21 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" "@babel/code-frame@7.12.11": version "7.12.11" @@ -17,896 +25,977 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== - dependencies: - "@babel/highlight" "^7.24.7" - picocolors "^1.0.0" - -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" - integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/code-frame@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + +"@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + +"@babel/core@^7.1.0": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" -"@babel/core@^7.1.0", "@babel/core@^7.22.1": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" - integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== +"@babel/core@^7.22.1": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" + integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helpers" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - convert-source-map "^2.0.0" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.8" + "@babel/types" "^7.22.5" + convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.3" + json5 "^2.2.2" semver "^6.3.1" "@babel/eslint-parser@^7.11.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.24.7.tgz#27ebab1a1ec21f48ae191a8aaac5b82baf80d9c7" - integrity sha512-SO5E3bVxDuxyNxM5agFv480YA2HO6ohZbGxbazZdIk3KQOPOGVNw6q78I9/lbviIf95eq6tPozeYnJLbjnC8IA== + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz" + integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" - semver "^6.3.1" + semver "^6.3.0" "@babel/eslint-plugin@^7.11.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.24.7.tgz#ebdab31638cdcc720f0c788813066e9b5c0b3e29" - integrity sha512-lODNPJnM+OfcxxBvdmI2YmUeC0fBK3k9yET5O+1Eukr8d5VpO19c6ARtNheE2t2i/8XNYTzp3HeGEAAGZH3nnQ== + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.17.7.tgz" + integrity sha512-JATUoJJXSgwI0T8juxWYtK1JSgoLpIGUsCHIv+NMXcUDA2vIe6nvAHR9vnuJgs/P1hOFw7vPwibixzfqBBLIVw== dependencies: eslint-rule-composer "^0.3.0" -"@babel/generator@^7.24.7", "@babel/generator@^7.4.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" - integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== +"@babel/generator@^7.17.9", "@babel/generator@^7.4.0": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.22.7", "@babel/generator@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" + integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== dependencies: - "@babel/types" "^7.24.7" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" + "@babel/types" "^7.22.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" - integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== dependencies: - "@babel/types" "^7.24.7" + "@babel/types" "^7.16.7" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" - integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9" - integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== dependencies: - "@babel/compat-data" "^7.24.7" - "@babel/helper-validator-option" "^7.24.7" - browserslist "^4.22.2" + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-compilation-targets@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" + integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.5" + browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz#2eaed36b3a1c11c53bdf80d53838b293c52f5b3b" - integrity sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-member-expression-to-functions" "^7.24.7" - "@babel/helper-optimise-call-expression" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz" + integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-member-expression-to-functions" "^7.17.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz#be4f435a80dc2b053c76eeb4b7d16dd22cfc89da" - integrity sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA== +"@babel/helper-create-regexp-features-plugin@^7.16.7": + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - regexpu-core "^5.3.1" - semver "^6.3.1" + "@babel/helper-annotate-as-pure" "^7.16.7" + regexpu-core "^5.0.1" -"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" - integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" + semver "^6.1.2" -"@babel/helper-environment-visitor@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" - integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== dependencies: - "@babel/types" "^7.24.7" + "@babel/types" "^7.16.7" + +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== -"@babel/helper-function-name@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" - integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== dependencies: - "@babel/template" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-hoist-variables@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" - integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== - dependencies: - "@babel/types" "^7.24.7" + "@babel/types" "^7.16.7" + +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz#67613d068615a70e4ed5101099affc7a41c5225f" - integrity sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-module-imports@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" - integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-module-transforms@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8" - integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== - dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - -"@babel/helper-optimise-call-expression@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" - integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== - dependencies: - "@babel/types" "^7.24.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0" - integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== - -"@babel/helper-remap-async-to-generator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz#b3f0f203628522713849d49403f1a414468be4c7" - integrity sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-wrap-function" "^7.24.7" - -"@babel/helper-replace-supers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz#f933b7eed81a1c0265740edc91491ce51250f765" - integrity sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg== - dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-member-expression-to-functions" "^7.24.7" - "@babel/helper-optimise-call-expression" "^7.24.7" - -"@babel/helper-simple-access@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" - integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" - integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-split-export-declaration@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" - integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== - dependencies: - "@babel/types" "^7.24.7" - -"@babel/helper-string-parser@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" - integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== - -"@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== - -"@babel/helper-validator-option@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6" - integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== - -"@babel/helper-wrap-function@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz#52d893af7e42edca7c6d2c6764549826336aae1f" - integrity sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw== - dependencies: - "@babel/helper-function-name" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helpers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416" - integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg== - dependencies: - "@babel/template" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" - integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== - dependencies: - "@babel/helper-validator-identifier" "^7.24.7" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" +"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== + dependencies: + "@babel/types" "^7.17.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.7", "@babel/parser@^7.4.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" - integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz#fd059fd27b184ea2b4c7e646868a9a381bbc3055" - integrity sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ== +"@babel/helper-module-imports@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz#468096ca44bbcbe8fcc570574e12eb1950e18107" - integrity sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg== +"@babel/helper-module-transforms@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" + integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" - integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/plugin-transform-optional-chaining" "^7.24.7" + "@babel/types" "^7.16.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz#71b21bb0286d5810e63a1538aa901c58e87375ec" - integrity sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg== +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/plugin-proposal-class-properties@^7.8.3": +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-identifier@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helper-validator-option@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== + dependencies: + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + +"@babel/helpers@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" + integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== + dependencies: + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.6" + "@babel/types" "^7.22.5" + +"@babel/highlight@^7.10.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/highlight@^7.16.7": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz" + integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9", "@babel/parser@^7.4.3": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz" + integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== + +"@babel/parser@^7.22.5", "@babel/parser@^7.22.7": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz" + integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz" + integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz" + integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.17.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz" + integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.17.6" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz" + integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz" + integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz" + integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz" + integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-object-rest-spread@^7.8.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.16.7", "@babel/plugin-proposal-object-rest-spread@^7.8.3": + version "7.17.3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== + dependencies: + "@babel/compat-data" "^7.17.0" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" + "@babel/plugin-transform-parameters" "^7.16.7" -"@babel/plugin-proposal-private-methods@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.16.11", "@babel/plugin-proposal-private-methods@^7.8.3": + version "7.16.11" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.10" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz" + integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz" + integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" - integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" - integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" - integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-async-generator-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz#7330a5c50e05181ca52351b8fd01642000c96cfd" - integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== - dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-remap-async-to-generator" "^7.24.7" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-transform-async-to-generator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" - integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== +"@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz" + integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== dependencies: - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-remap-async-to-generator" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-block-scoped-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" - integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" -"@babel/plugin-transform-block-scoping@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz#42063e4deb850c7bd7c55e626bf4e7ab48e6ce02" - integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-class-properties@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" - integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== +"@babel/plugin-transform-block-scoping@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz" + integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-class-static-block@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" - integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== +"@babel/plugin-transform-classes@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz" + integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-transform-classes@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz#4ae6ef43a12492134138c1e45913f7c46c41b4bf" - integrity sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" - integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/template" "^7.24.7" - -"@babel/plugin-transform-destructuring@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz#a097f25292defb6e6cc16d6333a4cfc1e3c72d9e" - integrity sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-dotall-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" - integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-duplicate-keys@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" - integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-dynamic-import@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" - integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz" + integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-exponentiation-operator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" - integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== +"@babel/plugin-transform-destructuring@^7.16.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz" + integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-export-namespace-from@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" - integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-for-of@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" - integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz" + integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-function-name@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz#6d8601fbffe665c894440ab4470bc721dd9131d6" - integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== dependencies: - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-json-strings@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" - integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== +"@babel/plugin-transform-for-of@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz" + integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-literals@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz#36b505c1e655151a9d7607799a9988fc5467d06c" - integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ== +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-logical-assignment-operators@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" - integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== +"@babel/plugin-transform-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz" + integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-member-expression-literals@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" - integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-modules-amd@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" - integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz" + integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== dependencies: - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.8.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz#9fd5f7fdadee9085886b183f1ad13d1ab260f4ab" - integrity sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ== +"@babel/plugin-transform-modules-commonjs@^7.16.8", "@babel/plugin-transform-modules-commonjs@^7.8.3": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz" + integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== dependencies: - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz#f8012316c5098f6e8dee6ecd58e2bc6f003d0ce7" - integrity sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw== +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.17.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz" + integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== dependencies: - "@babel/helper-hoist-variables" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" - integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== +"@babel/plugin-transform-modules-umd@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz" + integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== dependencies: - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" - integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" -"@babel/plugin-transform-new-target@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" - integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== +"@babel/plugin-transform-new-target@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz" + integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" - integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-transform-numeric-separator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" - integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-object-assign@^7.8.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.24.7.tgz#9d2cc7ee1482bd208fcc51974ca4f7649662c899" - integrity sha512-DOzAi77P9jSyPijHS7Z8vH0wLRcZH6wWxuIZgLAiy8FWOkcKMJmnyHjy2JM94k6A0QxlA/hlLh+R9T3GEryjNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-object-rest-spread@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" - integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== - dependencies: - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.24.7" - -"@babel/plugin-transform-object-super@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" - integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.16.7.tgz" + integrity sha512-R8mawvm3x0COTJtveuoqZIjNypn2FjfvXZr4pSQ8VhEFBuQGBz4XhHasZtHXjgXU4XptZ4HtGof3NoYc93ZH9Q== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-optional-catch-binding@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" - integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" -"@babel/plugin-transform-optional-chaining@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz#b8f6848a80cf2da98a8a204429bec04756c6d454" - integrity sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ== +"@babel/plugin-transform-parameters@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz" + integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" - integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-private-methods@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" - integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-private-property-in-object@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" - integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-property-literals@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" - integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== +"@babel/plugin-transform-regenerator@^7.16.7": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz" + integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + regenerator-transform "^0.15.0" -"@babel/plugin-transform-regenerator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" - integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz" + integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - regenerator-transform "^0.15.2" - -"@babel/plugin-transform-reserved-words@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" - integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-runtime@^7.8.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz#00a5bfaf8c43cf5c8703a8a6e82b59d9c58f38ca" - integrity sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw== - dependencies: - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.1" - babel-plugin-polyfill-regenerator "^0.6.1" - semver "^6.3.1" - -"@babel/plugin-transform-shorthand-properties@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" - integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-spread@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" - integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz" + integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + semver "^6.3.0" -"@babel/plugin-transform-sticky-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" - integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-template-literals@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" - integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== +"@babel/plugin-transform-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz" + integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" -"@babel/plugin-transform-typeof-symbol@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz#f074be466580d47d6e6b27473a840c9f9ca08fb0" - integrity sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg== +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-unicode-escapes@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" - integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== +"@babel/plugin-transform-template-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz" + integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-unicode-property-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" - integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz" + integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-unicode-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" - integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-unicode-sets-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" - integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.10.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.7.tgz#ff067b4e30ba4a72f225f12f123173e77b987f37" - integrity sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ== - dependencies: - "@babel/compat-data" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-validator-option" "^7.24.7" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.7" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + version "7.16.11" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + dependencies: + "@babel/compat-data" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.8" + "@babel/plugin-proposal-class-properties" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.16.7" + "@babel/plugin-proposal-json-strings" "^7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" + "@babel/plugin-proposal-private-property-in-object" "^7.16.7" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.24.7" - "@babel/plugin-syntax-import-attributes" "^7.24.7" - "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -916,120 +1005,134 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.24.7" - "@babel/plugin-transform-async-generator-functions" "^7.24.7" - "@babel/plugin-transform-async-to-generator" "^7.24.7" - "@babel/plugin-transform-block-scoped-functions" "^7.24.7" - "@babel/plugin-transform-block-scoping" "^7.24.7" - "@babel/plugin-transform-class-properties" "^7.24.7" - "@babel/plugin-transform-class-static-block" "^7.24.7" - "@babel/plugin-transform-classes" "^7.24.7" - "@babel/plugin-transform-computed-properties" "^7.24.7" - "@babel/plugin-transform-destructuring" "^7.24.7" - "@babel/plugin-transform-dotall-regex" "^7.24.7" - "@babel/plugin-transform-duplicate-keys" "^7.24.7" - "@babel/plugin-transform-dynamic-import" "^7.24.7" - "@babel/plugin-transform-exponentiation-operator" "^7.24.7" - "@babel/plugin-transform-export-namespace-from" "^7.24.7" - "@babel/plugin-transform-for-of" "^7.24.7" - "@babel/plugin-transform-function-name" "^7.24.7" - "@babel/plugin-transform-json-strings" "^7.24.7" - "@babel/plugin-transform-literals" "^7.24.7" - "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" - "@babel/plugin-transform-member-expression-literals" "^7.24.7" - "@babel/plugin-transform-modules-amd" "^7.24.7" - "@babel/plugin-transform-modules-commonjs" "^7.24.7" - "@babel/plugin-transform-modules-systemjs" "^7.24.7" - "@babel/plugin-transform-modules-umd" "^7.24.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" - "@babel/plugin-transform-new-target" "^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" - "@babel/plugin-transform-numeric-separator" "^7.24.7" - "@babel/plugin-transform-object-rest-spread" "^7.24.7" - "@babel/plugin-transform-object-super" "^7.24.7" - "@babel/plugin-transform-optional-catch-binding" "^7.24.7" - "@babel/plugin-transform-optional-chaining" "^7.24.7" - "@babel/plugin-transform-parameters" "^7.24.7" - "@babel/plugin-transform-private-methods" "^7.24.7" - "@babel/plugin-transform-private-property-in-object" "^7.24.7" - "@babel/plugin-transform-property-literals" "^7.24.7" - "@babel/plugin-transform-regenerator" "^7.24.7" - "@babel/plugin-transform-reserved-words" "^7.24.7" - "@babel/plugin-transform-shorthand-properties" "^7.24.7" - "@babel/plugin-transform-spread" "^7.24.7" - "@babel/plugin-transform-sticky-regex" "^7.24.7" - "@babel/plugin-transform-template-literals" "^7.24.7" - "@babel/plugin-transform-typeof-symbol" "^7.24.7" - "@babel/plugin-transform-unicode-escapes" "^7.24.7" - "@babel/plugin-transform-unicode-property-regex" "^7.24.7" - "@babel/plugin-transform-unicode-regex" "^7.24.7" - "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.4" - babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.31.0" - semver "^6.3.1" + "@babel/plugin-transform-arrow-functions" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.16.7" + "@babel/plugin-transform-classes" "^7.16.7" + "@babel/plugin-transform-computed-properties" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.8" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.8" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.20.2" + semver "^6.3.0" -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - "@babel/runtime@^7.8.4": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" - integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.24.7", "@babel/template@^7.4.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" - integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.24.7", "@babel/traverse@^7.4.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" - integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-hoist-variables" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/types" "^7.24.7" - debug "^4.3.1" + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz" + integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.16.7", "@babel/template@^7.4.0": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/template@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.4.3": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.9" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": + version "7.22.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" + integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.7" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/types" "^7.22.5" + debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" - integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== +"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: - "@babel/helper-string-parser" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" "@cnakazawa/watch@^1.0.3": version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz" integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== dependencies: exec-sh "^0.3.2" @@ -1042,33 +1145,21 @@ "@egjs/component@^2.1.0": version "2.2.2" - resolved "https://registry.yarnpkg.com/@egjs/component/-/component-2.2.2.tgz#b8208ea4ca05f6562a51d58f1e6f9979aad8a9d9" + resolved "https://registry.npmjs.org/@egjs/component/-/component-2.2.2.tgz" integrity sha512-2m6nu6/Mbs6VnoT4IHFGUBX6V82Zp01zDmlWpIJ3fMatHpe7BB1qUYFgMmSWGY0uOvOl4plvflwbCRUAGMfwWQ== "@egjs/visible@^2.1.0": version "2.4.0" - resolved "https://registry.yarnpkg.com/@egjs/visible/-/visible-2.4.0.tgz#065ccea237c5cff91231431b4d3df1c294c38254" + resolved "https://registry.npmjs.org/@egjs/visible/-/visible-2.4.0.tgz" integrity sha512-p9hRZCgH8dsJDKcBbOTPg25dxenuDw8EYm+15eN1Q/LJkNtL5hpJ3ee/QBK4TTICuOjzXpZj4jBdLqaVArykwA== dependencies: "@egjs/component" "^2.1.0" "@entrylabs/event@^1.0.3": version "1.0.3" - resolved "https://registry.yarnpkg.com/@entrylabs/event/-/event-1.0.3.tgz#a8754edcf4e44c0365a0e95b57801f3f52532e9d" + resolved "https://registry.npmjs.org/@entrylabs/event/-/event-1.0.3.tgz" integrity sha512-IDC7sWnfe8GVQIEGsct9Bcsj1Nh4XikO6PG+veVuix0Zv/XH98NkFjmXiyrriJ/rjJoGFBq6sKesfmaFCCr3MA== -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.6.1": - version "4.10.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.1.tgz#361461e5cb3845d874e61731c11cfedd664d83a0" - integrity sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA== - "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" @@ -1084,35 +1175,6 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== - -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -1122,24 +1184,14 @@ debug "^4.1.1" minimatch "^3.0.4" -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - "@humanwhocodes/object-schema@^1.2.0": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== - "@jest/console@^24.7.1", "@jest/console@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + resolved "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz" integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== dependencies: "@jest/source-map" "^24.9.0" @@ -1148,7 +1200,7 @@ "@jest/core@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + resolved "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz" integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== dependencies: "@jest/console" "^24.7.1" @@ -1182,7 +1234,7 @@ "@jest/environment@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz" integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== dependencies: "@jest/fake-timers" "^24.9.0" @@ -1192,7 +1244,7 @@ "@jest/fake-timers@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz" integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== dependencies: "@jest/types" "^24.9.0" @@ -1201,7 +1253,7 @@ "@jest/reporters@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz" integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== dependencies: "@jest/environment" "^24.9.0" @@ -1226,16 +1278,9 @@ source-map "^0.6.0" string-length "^2.0.0" -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - "@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz" integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== dependencies: callsites "^3.0.0" @@ -1244,7 +1289,7 @@ "@jest/test-result@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz" integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== dependencies: "@jest/console" "^24.9.0" @@ -1253,7 +1298,7 @@ "@jest/test-sequencer@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz" integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== dependencies: "@jest/test-result" "^24.9.0" @@ -1263,7 +1308,7 @@ "@jest/transform@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz" integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== dependencies: "@babel/core" "^7.1.0" @@ -1285,90 +1330,101 @@ "@jest/types@^24.9.0": version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + resolved "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz" integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== dependencies: - "@jridgewell/set-array" "^1.2.1" + "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.6" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz" + integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== + +"@jridgewell/set-array@^1.0.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz" + integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/source-map@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" - integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@mediapipe/tasks-vision@^0.10.3": - version "0.10.14" - resolved "https://registry.yarnpkg.com/@mediapipe/tasks-vision/-/tasks-vision-0.10.14.tgz#16c5ddc513408f2a416ccc6ce8ccc797ee02da3b" - integrity sha512-vOifgZhkndgybdvoRITzRkIueWWSiCKuEUXXK6Q4FaJsFvRJuwgg++vqFUMlL0Uox62U5aEXFhHxlhV7Ja5e3Q== +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== dependencies: - eslint-scope "5.1.1" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" +"@mediapipe/tasks-vision@^0.10.3": + version "0.10.3" + resolved "https://registry.yarnpkg.com/@mediapipe/tasks-vision/-/tasks-vision-0.10.3.tgz#d1465126923df8f03b4a31a231867d284e120961" + integrity sha512-q6yPXKGlANzLUc77X1zN+AKLFTiviCYtRXv5SV27GnbUVw0lsy94ybBmsxIMa+pATWIi0GmmtENJt3k0BAQheA== "@pixi/accessibility@5.3.12": version "5.3.12" @@ -1381,7 +1437,7 @@ "@pixi/accessibility@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.7.tgz#a9ca9c7c04925014af4b137b38dd8b77b208e603" + resolved "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-5.3.7.tgz" integrity sha512-104qzGZWnA/cQUH48jTiCXKGqOCfOqZAHmVg1z0p5l5tnzVX5zUQDBJxt4AAIPguZZe1YkniealwO1WGz0yBgA== dependencies: "@pixi/core" "5.3.7" @@ -1398,7 +1454,7 @@ "@pixi/app@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.7.tgz#1a469dcdb9a3746d98eb58f2f7fa3e0951880a82" + resolved "https://registry.npmjs.org/@pixi/app/-/app-5.3.7.tgz" integrity sha512-xlXxMGiGGmOA154SyltOQ2ZfPEtErzXl8GOxXJJJBxmIfvCQa+Y6iO5jf4q7yNbpSbrfaeIrYUnNbJAViiACzg== dependencies: "@pixi/core" "5.3.7" @@ -1411,7 +1467,7 @@ "@pixi/constants@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.7.tgz#a2e1789a98deb3713cfcb3eba3db84588bc9161e" + resolved "https://registry.npmjs.org/@pixi/constants/-/constants-5.3.7.tgz" integrity sha512-MBcgIM/mSqonFezkCI9080IqNlc0wb8S9QJ5otBdseOWUQa/ua2jF7Jd1sCBGmi0IzS9/NOHFXzZVTdS7AC7Ow== "@pixi/core@5.3.12": @@ -1428,7 +1484,7 @@ "@pixi/core@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.7.tgz#a8d65ca17f0c4ef8c0c5a22d31b9e02a4ab73b93" + resolved "https://registry.npmjs.org/@pixi/core/-/core-5.3.7.tgz" integrity sha512-WBhU2f5aJSVVaFP55FFBFKjKlRf5fYGxgA/U3kD4yD4Y3d3d6V3MIZv+o0VX+kBs1Eq7ePZqEv2smDrlzzMEjQ== dependencies: "@pixi/constants" "5.3.7" @@ -1449,7 +1505,7 @@ "@pixi/display@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.7.tgz#b661d2ecfd2a67f213665a0698acd29e17eee8fe" + resolved "https://registry.npmjs.org/@pixi/display/-/display-5.3.7.tgz" integrity sha512-ma1JyLe5vaEgmaOR+anvj5YOKqT9OEWnboIe7NVmwGF1CZ7JFnB12rsRulHUsSaFG9bP5xjvroAZjFg/WvyGLw== dependencies: "@pixi/math" "5.3.7" @@ -1467,7 +1523,7 @@ "@pixi/extract@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.7.tgz#2f32b804d90621ad3187e4ae7fb959d19b3959f1" + resolved "https://registry.npmjs.org/@pixi/extract/-/extract-5.3.7.tgz" integrity sha512-xQ5hYFIdxQTjNWwtwsjIK0DjbGLlUl92rIj5yvNJFiJvRjZ8IfvtIaM5uwjhiY2U9q3fDLFgb8EiNfmdDc78xQ== dependencies: "@pixi/core" "5.3.7" @@ -1483,7 +1539,7 @@ "@pixi/filter-alpha@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.7.tgz#e979db57e9ee47b84d0900e5f9767b8632426fb4" + resolved "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-5.3.7.tgz" integrity sha512-jkvbzmSCIPjCJMFNUocAxsZ7Cq3ssFwXnmXNYKYhJy01LxiyO/JbVDAxAD7Chyn5jbKsI21OV3UQaIJhFpXw7Q== dependencies: "@pixi/core" "5.3.7" @@ -1498,7 +1554,7 @@ "@pixi/filter-blur@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.7.tgz#7eee3559704b280e8588c2fc9e8d912aac80f8a9" + resolved "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-5.3.7.tgz" integrity sha512-xM+Zz2i2UCmY7oHBPlGaN2ImhCY4l/V8NFc8FNSUIHm8NXHJ4/VCQpXp9BFTjY1+GZExFLkqB8kIYEddGVFiLA== dependencies: "@pixi/core" "5.3.7" @@ -1513,7 +1569,7 @@ "@pixi/filter-color-matrix@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.7.tgz#230cafe46bde36e25441b13f3ac5dd8e8fee4311" + resolved "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.7.tgz" integrity sha512-Z12cxoHx9uMh3CZ0PLVRzsaFHHF/CfU3J83KI9k+Bg/DFOh/J/5EToCd44jYJbMKp3nvXcO1EJyZ3wwC/IsyfQ== dependencies: "@pixi/core" "5.3.7" @@ -1528,7 +1584,7 @@ "@pixi/filter-displacement@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.7.tgz#4364d5514221c4a03950b67795cebd1b34dca401" + resolved "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-5.3.7.tgz" integrity sha512-akMVkAHqliQujveiJ5KBMuwh/JVGN37NQsD8n1XbDDSe6SKjpX0kaq2Bh2Xu9pPj3+Jhofy0sI65q2M8qs2Uog== dependencies: "@pixi/core" "5.3.7" @@ -1543,7 +1599,7 @@ "@pixi/filter-fxaa@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.7.tgz#55b778fbc60fd87f16d17d66a36b122e2f5c3b57" + resolved "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-5.3.7.tgz" integrity sha512-NJpVcbOCUVYUDGqxvh7Jp/+arWEnLKgI/7Qf8VEYv0aQslqE8ZtFSAX7JfP+iGfFWXlkMe6AKspesYhUrIpRKg== dependencies: "@pixi/core" "5.3.7" @@ -1557,7 +1613,7 @@ "@pixi/filter-noise@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.7.tgz#70e638f5d6ebc4b62b4c67f2de939a7fa900d7a5" + resolved "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-5.3.7.tgz" integrity sha512-P0mVQR2J7GHujVcq0iiuD2/1yvmue7orpppa5iuNHoOMT+vZpO0hdCKTg5vm5ZcWnHrOwtvv8zYngnT9rLdCtw== dependencies: "@pixi/core" "5.3.7" @@ -1576,7 +1632,7 @@ "@pixi/graphics@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.7.tgz#36ae80e2508e0a9c61ce454807d517d370d90a74" + resolved "https://registry.npmjs.org/@pixi/graphics/-/graphics-5.3.7.tgz" integrity sha512-+6+bT/AC29a1Hw5XDxsH1UqBsXSqcna7wNTTrBQ02owotIJtyRc6w48f5qxzhxycumyVCR87IV5tAtdwX3xhag== dependencies: "@pixi/constants" "5.3.7" @@ -1599,7 +1655,7 @@ "@pixi/interaction@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.7.tgz#dd4d7b43fc266c9b0e8994f4f05cb9f73438b586" + resolved "https://registry.npmjs.org/@pixi/interaction/-/interaction-5.3.7.tgz" integrity sha512-B+5suog6fo8tJclTIO1Nn0HikyXQ9OWQGmTiYUnDVDriX5dGujh79RpcL51HFQ/2Gs2Gt0rl3AfP9OsCLe7VPA== dependencies: "@pixi/core" "5.3.7" @@ -1619,7 +1675,7 @@ "@pixi/loaders@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.7.tgz#7231106d8d490d9ca230df7a07a53e1e4d412163" + resolved "https://registry.npmjs.org/@pixi/loaders/-/loaders-5.3.7.tgz" integrity sha512-zwWgvhUz7l5Z3me5gT1XbJzmj4bnz176PnawoUdlRxNARnMW3Rsk7Egzu8atWhJUL+MWEv+t8KkyHRXG39q5FA== dependencies: "@pixi/core" "5.3.7" @@ -1633,7 +1689,7 @@ "@pixi/math@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.7.tgz#066e7ea149fd38db8d8a9584aac5f41d02b36bdd" + resolved "https://registry.npmjs.org/@pixi/math/-/math-5.3.7.tgz" integrity sha512-WnjUwX7rkxR36F0xknpsNd9BsfQosV0BbyFE0Il88IURBM3Tu9X4tC7RGJDgWU+aXw23HgHu0j+MWJrCVCM2fA== "@pixi/mesh-extras@5.3.12": @@ -1649,7 +1705,7 @@ "@pixi/mesh-extras@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.7.tgz#e4ab9e4b0cb05606a621cacd6d37d472067c6041" + resolved "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-5.3.7.tgz" integrity sha512-txVo2yk935gLgvlwO/ODUuz0wHUZtc9AK0sOQbbD9rh1TUdZ9OYrRvqshItLC34EimmAfgOsyzT78zeUTaP1OA== dependencies: "@pixi/constants" "5.3.7" @@ -1672,7 +1728,7 @@ "@pixi/mesh@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.7.tgz#9de12a6404abdd17fe14c08d2bbe163bdf72bb9a" + resolved "https://registry.npmjs.org/@pixi/mesh/-/mesh-5.3.7.tgz" integrity sha512-7K5Ba3+t0rBAfZeuQi7nem0DgVH9GNhRvZ8HYbhPs5XVI7yZZhUN4HpUMy7gYEnz8EbXqwUz20X4ham/0O9WsQ== dependencies: "@pixi/constants" "5.3.7" @@ -1696,7 +1752,7 @@ "@pixi/mixin-cache-as-bitmap@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.7.tgz#2a30fc3f552f7a0a51bd0fe5a6e937132a5fff52" + resolved "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.7.tgz" integrity sha512-UEP1PVEEqgWs8vUx/GvOiQ4r130NDLQoD9i5YA1i5BGml2UmNyrFlIh8N9hVAPiIpTIpECkU6nLakP7t6fm9zA== dependencies: "@pixi/core" "5.3.7" @@ -1715,7 +1771,7 @@ "@pixi/mixin-get-child-by-name@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.7.tgz#49c5aa84840bf09e2c089011665407e8c1a3466e" + resolved "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.7.tgz" integrity sha512-KiWirq5HpLKrAsShdZx0+RwNwY6nO5cM+Wqq59n11xTgvUoNULiptZRePQR5rOIsLIcwNtro/2LWPj1UzbJHbg== dependencies: "@pixi/display" "5.3.7" @@ -1730,7 +1786,7 @@ "@pixi/mixin-get-global-position@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.7.tgz#68c0167054abbac01ecd10275212f5b9afe049bf" + resolved "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.7.tgz" integrity sha512-OIXi+m611GVH1dVAc5YdiMC55Bbjf0JmesiB+6/gMzrjKxW/YDAA5ZRVri75hmRedHA8LPflf+i0pO10mrGP8g== dependencies: "@pixi/display" "5.3.7" @@ -1749,7 +1805,7 @@ "@pixi/particles@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.7.tgz#9f0500b818f20af8e9338fee24c1c33530dfa925" + resolved "https://registry.npmjs.org/@pixi/particles/-/particles-5.3.7.tgz" integrity sha512-mEnBljvBVbKuUJVZ0oH9dP/k7qsHEHUlvfBQgLOSkd6viHlx3PoSPKOYm35+I6fAylkV0Xm9+j5v/IESuip2RQ== dependencies: "@pixi/constants" "5.3.7" @@ -1768,7 +1824,7 @@ "@pixi/polyfill@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.7.tgz#eb43ef1eefc7967bf8d44f704677c19adfdc539c" + resolved "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-5.3.7.tgz" integrity sha512-qU23xdb/e4Qvze0TWVy4fNZ0nlABIEZmuLu5nI9SpgfIYtjd2tZo7ngCXU5mZHxW1/xvkAMJEHCsSszotzF9xQ== dependencies: es6-promise-polyfill "^1.2.0" @@ -1788,7 +1844,7 @@ "@pixi/prepare@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.7.tgz#00916a56c61d8349be47937a9b384f3cf90157ca" + resolved "https://registry.npmjs.org/@pixi/prepare/-/prepare-5.3.7.tgz" integrity sha512-saU+o202vA3U2HVMYvh5aB2RJmP4hR//J22QuRfGen/ukM5mApOroJ445Id2+kSvis0M+UeFUKfBGWDzitr19Q== dependencies: "@pixi/core" "5.3.7" @@ -1805,7 +1861,7 @@ "@pixi/runner@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.7.tgz#78ed2c92b392b8c099d2e4557dded7faa921446b" + resolved "https://registry.npmjs.org/@pixi/runner/-/runner-5.3.7.tgz" integrity sha512-kt5apNb21HAvpBaDaPRs33k2O0VzrKe13w4we8iftCpXX8w68ErAY1lH68vmtDNrxnlHg4M9nRgEoMeiHlo2RA== "@pixi/settings@5.3.12": @@ -1817,7 +1873,7 @@ "@pixi/settings@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.7.tgz#b661883231bf2a1ff5260c214bd0c4b438759841" + resolved "https://registry.npmjs.org/@pixi/settings/-/settings-5.3.7.tgz" integrity sha512-g6AoRSGWxU34gtKSQwX2AMQoLUv86L/5iIXRsqo+X4bfUSCenTci1X7ueVrSIbo39dxh6IOpriZF2Yk3TeHG5w== dependencies: ismobilejs "^1.1.0" @@ -1833,7 +1889,7 @@ "@pixi/sprite-animated@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.7.tgz#94e6d7657cd133a8953e476bd24e18cbfab6a978" + resolved "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-5.3.7.tgz" integrity sha512-CSXTSwH/UUcTe5637AD35OCETQO+tDkmlr6e1/eIyUlgOsPkbjo+l134feLZtZudiPHTPyb/YAYIlgPfVr7MGw== dependencies: "@pixi/core" "5.3.7" @@ -1854,7 +1910,7 @@ "@pixi/sprite-tiling@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.7.tgz#f4ec4cd205ff7ecebe636062ea27f7a139fb8e22" + resolved "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-5.3.7.tgz" integrity sha512-0BMLQGniJF1HvfyrJVe5jC8ayBpTh19dAHJIQWGp8zxxFh/WHjR1b32BN74rDjxQQSjZjV8vBNio8J3W+yDttw== dependencies: "@pixi/constants" "5.3.7" @@ -1878,7 +1934,7 @@ "@pixi/sprite@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.7.tgz#c6edf3d4a9928868696b62e35a60ded27d167058" + resolved "https://registry.npmjs.org/@pixi/sprite/-/sprite-5.3.7.tgz" integrity sha512-Bjl+NOOvigEzUsm1cDr1KmBUpPSWO8pDXpUPTi+v2N75gwRfTycmj5f2TU0QmMW3Gc6sv0CB0AkL7dkMPwPb8g== dependencies: "@pixi/constants" "5.3.7" @@ -1900,7 +1956,7 @@ "@pixi/spritesheet@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.7.tgz#826b84c8220ca41c3eba201f453d42394d4da562" + resolved "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-5.3.7.tgz" integrity sha512-K1Befbrq3LDbFtnLmbk54QQ/YRk2Mgd+2iOkZx5KsS2pTh1va/GM9FbpO9aZgsEu8Eq76QPxyR8nRqygyMRSuQ== dependencies: "@pixi/core" "5.3.7" @@ -1924,7 +1980,7 @@ "@pixi/text-bitmap@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.7.tgz#736b489424c6e9c26c2907356e2d70e1ae2cb292" + resolved "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.3.7.tgz" integrity sha512-LWXgxyMgBAldHA6Swx0irAISCMEyDEcZV7YxBoBpSDnV8ybtZP4fSgtj6vlpnrttKcnXFEcGokOuC3vSdEs39g== dependencies: "@pixi/core" "5.3.7" @@ -1949,7 +2005,7 @@ "@pixi/text@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.7.tgz#cb71b2576bdc1f66fb79977d281f9575dd06d3d5" + resolved "https://registry.npmjs.org/@pixi/text/-/text-5.3.7.tgz" integrity sha512-WVAc31MDgHTvP0dJNWsvLVJhjeVGZ3NrLpHcH9iIAd6HVO5Z+i+fk4zvodD+Y7jWU0psx8ZD8xe1wy8ECfbCBA== dependencies: "@pixi/core" "5.3.7" @@ -1967,7 +2023,7 @@ "@pixi/ticker@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.7.tgz#c331b270042d507fe18543ae435a9a857a8fd5ae" + resolved "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.3.7.tgz" integrity sha512-ZEXiJwPtuPeWa0QmRODF5qK0+ugZu/xeq7QxCvFOCc3NFVBeGms4g92HPucOju9R7jcODIoJxtICALsuwLAr9w== dependencies: "@pixi/settings" "5.3.7" @@ -1985,7 +2041,7 @@ "@pixi/utils@5.3.7": version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.7.tgz#55fe2a2fbf0fba842da5a602576ce68c498e7e16" + resolved "https://registry.npmjs.org/@pixi/utils/-/utils-5.3.7.tgz" integrity sha512-f8zAeHHURxfwBr8MZiXEIwY2h9wbS6vN0ypvapGvKFOexZ1EInTs35FhEiRWzLEPLHyn1RgCdKzR2zl++E4tIw== dependencies: "@pixi/constants" "5.3.7" @@ -1994,34 +2050,24 @@ eventemitter3 "^3.1.0" url "^0.11.0" -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - "@tensorflow-models/coco-ssd@^2.0.1": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@tensorflow-models/coco-ssd/-/coco-ssd-2.2.3.tgz#3825286569076d6788199c9cb89fb2fa31f7d2f2" - integrity sha512-iCLGktG/XhHbP6h2FWxqCKMp/Px0lCp6MZU1fjNhjDHeaWEC9G7S7cZrnPXsfH+NewCM53YShlrHnknxU3SQig== + version "2.2.2" + resolved "https://registry.npmjs.org/@tensorflow-models/coco-ssd/-/coco-ssd-2.2.2.tgz" + integrity sha512-Jey2JscmKEValcFZH2ZLz14s8KPRmVtfJ0d0M3dPhvBp9dJiGNanVXr/pJAY5OS7emKj9uSciGhdkHWXY9Hovw== "@tensorflow-models/posenet@^2.2.1": version "2.2.2" - resolved "https://registry.yarnpkg.com/@tensorflow-models/posenet/-/posenet-2.2.2.tgz#2abcfa33b43892135d232c9c4408a38cc8f74ba6" + resolved "https://registry.npmjs.org/@tensorflow-models/posenet/-/posenet-2.2.2.tgz" integrity sha512-0SXIksRet/IdX7WVH+JSD6W3upkGHix1hwtd3xykIoIMGR7zQ4SC5+wZcNt9ofASyxNYQoI+tUULUo4LNw0c3w== -"@tensorflow/tfjs-converter@1.7.4", "@tensorflow/tfjs-converter@^1.7.0": +"@tensorflow/tfjs-converter@1.7.4", "@tensorflow/tfjs-converter@^1.5.2": version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-1.7.4.tgz#90838fe9ca2d540f22a65fdcbe2311a01e786380" + resolved "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-1.7.4.tgz" integrity sha512-B/Ux9I3osI0CXoESGR0Xe5C6BsEfC04+g2xn5zVaW9KEuVEnGEgnuBQxgijRFzkqTwoyLv4ptAmjyIghVARX0Q== "@tensorflow/tfjs-core@1.7.0": version "1.7.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-1.7.0.tgz#9207c8f2481c52a6a40135a6aaf21a9bb0339bdf" + resolved "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.7.0.tgz" integrity sha512-uwQdiklNjqBnHPeseOdG0sGxrI3+d6lybaKu2+ou3ajVeKdPEwpWbgqA6iHjq1iylnOGkgkbbnQ6r2lwkiIIHw== dependencies: "@types/offscreencanvas" "~2019.3.0" @@ -2031,9 +2077,9 @@ node-fetch "~2.1.2" seedrandom "2.4.3" -"@tensorflow/tfjs-core@1.7.4", "@tensorflow/tfjs-core@^1.7.0": +"@tensorflow/tfjs-core@1.7.4", "@tensorflow/tfjs-core@^1.5.2": version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-1.7.4.tgz#43a44bc01d46de98ee9f15c0b2a4d9af4723e7ea" + resolved "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.7.4.tgz" integrity sha512-3G4VKJ6nPs7iCt6gs3bjRj8chihKrYWenf63R0pm7D9MhlrVoX/tpN4LYVMGgBL7jHPxMLKdOkoAZJrn/J88HQ== dependencies: "@types/offscreencanvas" "~2019.3.0" @@ -2045,7 +2091,7 @@ "@tensorflow/tfjs-data@1.7.4": version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-1.7.4.tgz#3aa1cb14ac48a0354acd21d08f177c8a262fbb32" + resolved "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-1.7.4.tgz" integrity sha512-WFYG9wWjNDi62x6o3O20Q0XJxToCw2J4/fBEXiK/Gr0hIqVhl2oLQ1OjTWq7O08NUxM6BRzuG+ra3gWYdQUzOw== dependencies: "@types/node-fetch" "^2.1.2" @@ -2053,12 +2099,12 @@ "@tensorflow/tfjs-layers@1.7.4": version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-1.7.4.tgz#93cdef70a4f414edb4ee470c49415d216f54ba20" + resolved "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-1.7.4.tgz" integrity sha512-5/K8Z8RBfXsucL6EaSeb3/8jB/I8oPaaXkxwKVsBPQ+u6lB6LEtSKzeiFc57nDr5OMtVaUZV+pKDNEzP0RUQlg== -"@tensorflow/tfjs@^1.7.0": +"@tensorflow/tfjs@^1.5.2": version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-1.7.4.tgz#ea5483bc4b34f5a4c66d600e456c25b6071ea75e" + resolved "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-1.7.4.tgz" integrity sha512-XWGwRQ/ECEoQacd74JY/dmbLdnMpwtq3H8tls45dQ+GJ553Advir1FDo/aQt0Yr6fTimQDeiOIG4Mcb5KduP/w== dependencies: "@tensorflow/tfjs-converter" "1.7.4" @@ -2067,77 +2113,77 @@ "@tensorflow/tfjs-layers" "1.7.4" "@types/babel__core@^7.1.0": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + version "7.1.19" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + version "7.6.4" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + version "7.4.1" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" - integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== + version "7.17.1" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz" + integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.3.0" "@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== dependencies: "@types/connect" "*" "@types/node" "*" "@types/bonjour@^3.5.9": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" - integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" - integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" + integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" "@types/createjs-lib@*": - version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/createjs-lib/-/createjs-lib-0.0.33.tgz#03b0d67f6ae33a4e3239ef2184ccbb4fe4a91844" - integrity sha512-mvK1sn2qSyGPwctg/MsjAP5m3/TBx83eB0hcEdZ6UqpuzQqCUWpVyyQddqkbAsKRpMECK0s7JosYXoTtIuNbhw== + version "0.0.29" + resolved "https://registry.npmjs.org/@types/createjs-lib/-/createjs-lib-0.0.29.tgz" + integrity sha1-+uguO6hgZmOxkOeJzsfZxyj8Qdc= "@types/createjs@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/createjs/-/createjs-0.0.29.tgz#4d19b0feaa38252dcd79d78a38a4cc6df3f181fc" - integrity sha512-bDZJTAEoGZw12zjXHLrcQHz0tuyv+MMlFh9tLm7DWZfF33biqWaXQgk4g7pMvploRu42sbH4XkXVJ7Wz9O1sCg== + resolved "https://registry.npmjs.org/@types/createjs/-/createjs-0.0.29.tgz" + integrity sha1-TRmw/qo4JS3NedeKOKTMbfPxgfw= dependencies: "@types/createjs-lib" "*" "@types/easeljs" "*" @@ -2146,48 +2192,48 @@ "@types/tweenjs" "*" "@types/crypto-js@^4.0.1": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@types/crypto-js/-/crypto-js-4.2.2.tgz#771c4a768d94eb5922cc202a3009558204df0cea" - integrity sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ== + version "4.1.1" + resolved "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz" + integrity sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA== "@types/easeljs@*": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/easeljs/-/easeljs-1.0.5.tgz#f6641c3bd496fb892b90f9bd5f81a77fb4733932" - integrity sha512-YRWGkZdq4trhJhieE0NdLTbOp5zT5yunPJKNqQJWq/X8y7qlmGeQB8hPnQHzMbW9iY38ZV91oXgW7V3U5VY2uw== + version "1.0.1" + resolved "https://registry.npmjs.org/@types/easeljs/-/easeljs-1.0.1.tgz" + integrity sha512-mu4oIs+2CbN60Vgq8DSt7aXR2I0tV9K2ev/ZIPlkyE5UvQ+xIvw8D3NDB4dnGFkvHN303faYcETIhuvNDm6siQ== dependencies: "@types/createjs-lib" "*" "@types/tweenjs" "*" "@types/eslint-scope@^3.7.3": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + resolved "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz" integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== "@types/eslint@*": - version "8.56.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" - integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + version "8.40.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.0.tgz#ae73dc9ec5237f2794c4f79efd6a4c73b13daf23" + integrity sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.19.3" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz#e469a13e4186c9e1c0418fb17be8bc8ff1b19a7a" - integrity sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg== + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2195,9 +2241,9 @@ "@types/send" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -2205,104 +2251,100 @@ "@types/serve-static" "*" "@types/hammerjs@^2.0.41": - version "2.0.45" - resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.45.tgz#ffa764bb68a66c08db6efb9c816eb7be850577b1" - integrity sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ== + version "2.0.41" + resolved "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz#f6ecf57d1b12d2befcce00e928a6a097c22980aa" + integrity sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA== "@types/html-minifier-terser@^6.0.0": version "6.1.0" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== -"@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== - "@types/http-proxy@^1.17.8": - version "1.17.14" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" - integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + version "1.17.11" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" + integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== dependencies: "@types/node" "*" "@types/isomorphic-fetch@^0.0.35": version "0.0.35" - resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz#c1c0d402daac324582b6186b91f8905340ea3361" + resolved "https://registry.npmjs.org/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz" integrity sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw== "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + version "2.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^1.1.1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz" integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" "@types/jquery@^3.3.38": - version "3.5.30" - resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.30.tgz#888d584cbf844d3df56834b69925085038fd80f7" - integrity sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A== + version "3.5.14" + resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz" + integrity sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg== dependencies: "@types/sizzle" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/lodash@^4.14.155": - version "4.17.5" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.5.tgz#e6c29b58e66995d57cd170ce3e2a61926d55ee04" - integrity sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw== + version "4.14.182" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== "@types/mime@^1": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" - integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/node-fetch@^2.1.2": - version "2.6.11" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" - integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== - dependencies: - "@types/node" "*" - form-data "^4.0.0" - -"@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + version "2.6.1" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz" + integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== dependencies: "@types/node" "*" + form-data "^3.0.0" "@types/node@*": - version "20.14.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" - integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== - dependencies: - undici-types "~5.26.4" + version "17.0.29" + resolved "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz" + integrity sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA== "@types/node@^14.0.11": - version "14.18.63" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" - integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== + version "14.18.16" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.16.tgz" + integrity sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q== "@types/offscreencanvas@~2019.3.0": version "2019.3.0" - resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" + resolved "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz" integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q== "@types/pixi.js@5.0.0": @@ -2313,26 +2355,26 @@ pixi.js "*" "@types/preloadjs@*": - version "0.6.36" - resolved "https://registry.yarnpkg.com/@types/preloadjs/-/preloadjs-0.6.36.tgz#9e40f988dce9b1d5a71d4a9d145d3f60e813cdf6" - integrity sha512-/Xo6BRCkvZiw0VXHszRQJnnTHyfkISPD5DiMj0JDrmQWiw104BxoijjeIlZ0umQxXEUb+gWLZsdZbuEhmP5vsw== + version "0.6.32" + resolved "https://registry.npmjs.org/@types/preloadjs/-/preloadjs-0.6.32.tgz" + integrity sha1-Es/3x/kuODingNQ4zknIzsmBgw0= dependencies: "@types/createjs-lib" "*" "@types/q@^1.5.1": - version "1.5.8" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" - integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== + version "1.5.5" + resolved "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== "@types/qs@*": - version "6.9.15" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" - integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/range-parser@*": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" - integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/retry@0.12.0": version "0.12.0" @@ -2341,117 +2383,106 @@ "@types/seedrandom@2.4.27": version "2.4.27" - resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.27.tgz#9db563937dd86915f69092bc43259d2f48578e41" - integrity sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ== + resolved "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz" + integrity sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE= "@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/serve-index@^1.9.1": - version "1.9.4" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" - integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== dependencies: "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" - integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + version "1.15.1" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" + integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== dependencies: - "@types/http-errors" "*" + "@types/mime" "*" "@types/node" "*" - "@types/send" "*" "@types/sizzle@*": - version "2.3.8" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.8.tgz#518609aefb797da19bf222feb199e8f653ff7627" - integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg== + version "2.3.3" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz" + integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== "@types/socket.io-client@^1.4.33": version "1.4.36" - resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.36.tgz#e4f1ca065f84c20939e9850e70222202bd76ff3f" + resolved "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.36.tgz" integrity sha512-ZJWjtFBeBy1kRSYpVbeGYTElf6BqPQUkXDlHHD4k/42byCN5Rh027f4yARHCink9sKAkbtGZXEAmR0ZCnc2/Ag== "@types/sockjs@^0.3.33": - version "0.3.36" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" - integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== dependencies: "@types/node" "*" "@types/soundjs@*": - version "0.6.31" - resolved "https://registry.yarnpkg.com/@types/soundjs/-/soundjs-0.6.31.tgz#ca55cf777830efb55fa752191ec1ef9ca0fcd69d" - integrity sha512-5bditJi7P1YbRIRa1UFxIr+8vKJYEc6nTZb5NL0647rWGqGf8Ih4GD+0aDWteWIG17EXPw+VTOQE/8LHitnn4A== + version "0.6.28" + resolved "https://registry.npmjs.org/@types/soundjs/-/soundjs-0.6.28.tgz" + integrity sha512-K3ktwPvYfQrH+qGEe1tgxC5o4rJC7CVxQmL9Cz9tgVq0oW99PmPfRp1F7YXELibCvV3lieD4E0sUZvnDEKWaPg== dependencies: "@types/createjs-lib" "*" "@types/preloadjs" "*" "@types/stack-utils@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== "@types/tweenjs@*": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tweenjs/-/tweenjs-1.0.8.tgz#800748b468a36ceb16e58a268dba3c370dd023f2" - integrity sha512-/HTVWu8c+AUJFK9P6b3LRzfodAYwDogtQKoH3ovZmnOY4aNJf+k3VqPx+D+AsLZP06AmoSLzqu9n/E5XCglCZw== + version "1.0.4" + resolved "https://registry.npmjs.org/@types/tweenjs/-/tweenjs-1.0.4.tgz" + integrity sha512-UnGcZRjGYz2w+2LB/70QkzWjtqOcTu4Nxa/Cy9YZ4I8HU44kcayNgbXZYMQu4ll7z+1GP7r1+viqLKNv7+Mrzw== dependencies: "@types/createjs-lib" "*" -"@types/w3c-web-usb@^1.0.8": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz#cf89cccd2d93b6245e784c19afe0a9f5038d4528" - integrity sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ== - -"@types/web-bluetooth@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz#74bd1c8fd3a2058cb6fc76b188fcded50a83d866" - integrity sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw== - "@types/webgl-ext@0.0.30": version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" + resolved "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz" integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== "@types/webgl2@0.0.4": version "0.0.4" - resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.4.tgz#c3b0f9d6b465c66138e84e64cb3bdf8373c2c279" + resolved "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.4.tgz" integrity sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw== "@types/webpack-env@^1.15.2": - version "1.18.5" - resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.18.5.tgz#eccda0b04fe024bed505881e2e532f9c119169bf" - integrity sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA== + version "1.16.4" + resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.4.tgz" + integrity sha512-llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw== -"@types/ws@^8.5.5": - version "8.5.10" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== +"@types/ws@^8.5.1": + version "8.5.4" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" + integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + version "21.0.0" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^13.0.0": version "13.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz" integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== dependencies: "@types/yargs-parser" "*" "@typescript-eslint/experimental-utils@3.10.1": version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz" integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== dependencies: "@types/json-schema" "^7.0.3" @@ -2460,9 +2491,9 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^3.1.0": +"@typescript-eslint/parser@^3.0.0", "@typescript-eslint/parser@^3.1.0": version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz" integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== dependencies: "@types/eslint-visitor-keys" "^1.0.0" @@ -2471,38 +2502,14 @@ "@typescript-eslint/typescript-estree" "3.10.1" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/parser@^6.7.5": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== - dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - "@typescript-eslint/types@3.10.1": version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz" integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== - "@typescript-eslint/typescript-estree@3.10.1": version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz" integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== dependencies: "@typescript-eslint/types" "3.10.1" @@ -2514,44 +2521,17 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/visitor-keys@3.10.1": version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz" integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== dependencies: eslint-visitor-keys "^1.1.0" -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== - dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - -"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" - integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== dependencies: "@webassemblyjs/helper-numbers" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" @@ -2566,10 +2546,10 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" - integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== "@webassemblyjs/helper-numbers@1.11.6": version "1.11.6" @@ -2585,15 +2565,15 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" - integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-gen" "1.11.6" "@webassemblyjs/ieee754@1.11.6": version "1.11.6" @@ -2614,94 +2594,94 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== -"@webassemblyjs/wasm-edit@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" - integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-opt" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" - "@webassemblyjs/wast-printer" "1.12.1" - -"@webassemblyjs/wasm-gen@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" - integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== - dependencies: - "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-opt@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" - integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" -"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" - integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== dependencies: - "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/ast" "1.11.6" "@webassemblyjs/helper-api-error" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wast-printer@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" - integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== dependencies: - "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== +"@webpack-cli/configtest@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.0.tgz#b59b33377b1b896a9a7357cfc643b39c1524b1e6" + integrity sha512-K/vuv72vpfSEZoo5KIU0a2FsEoYdW0DUMtMpB5X3LlUwshetMZRZRxB7sCsVji/lFaSxtQQ3aM9O4eMolXkU9w== -"@webpack-cli/info@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== +"@webpack-cli/info@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0" + integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA== -"@webpack-cli/serve@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== +"@webpack-cli/serve@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.4.tgz#3982ee6f8b42845437fc4d391e93ac5d9da52f0f" + integrity sha512-0xRgjgDLdz6G7+vvDLlaRpFatJaJ69uTalZLRSMX5B3VUrDmXcrVA3+6fXXQgmYz7bY9AAgs348XQdmtLsK41A== "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abab@^2.0.0: version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -2709,7 +2689,7 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: acorn-globals@^4.1.0: version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz" integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== dependencies: acorn "^6.0.1" @@ -2720,44 +2700,49 @@ acorn-import-assertions@^1.9.0: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: +acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^6.0.1: version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== acorn@^5.5.3: version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.0.1: version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.4.0: +acorn@^7.1.1, acorn@^7.4.0: version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.5.0, acorn@^8.7.1: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +acorn@^8.8.2: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== after@0.8.2: version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA== + resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= ajv-errors@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv-formats@^2.1.1: @@ -2769,7 +2754,7 @@ ajv-formats@^2.1.1: ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv-keywords@^5.1.0: @@ -2779,9 +2764,9 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2789,24 +2774,34 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4" - integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== +ajv@^8.0.0, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: - fast-deep-equal "^3.1.3" + fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" alphanum-sort@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= ansi-colors@3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== ansi-colors@^4.1.1: @@ -2816,9 +2811,16 @@ ansi-colors@^4.1.1: ansi-escapes@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" @@ -2826,176 +2828,131 @@ ansi-html-community@^0.0.8: ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.0.0, ansi-regex@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - anymatch@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== - dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-equal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.2.tgz#a8572e64e822358271250b9156d20d96ef5dec04" - integrity sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA== + version "1.0.0" + resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array-flatten@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.reduce@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz#6aadc2f995af29cb887eb866d981dc85ab6f7dc7" - integrity sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-array-method-boxes-properly "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - is-string "^1.0.7" - -arraybuffer.prototype.slice@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" - define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" - is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= arraybuffer.slice@~0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== asn1@~0.2.3: version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assertion-error@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= astral-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== astral-regex@^2.0.0: @@ -3005,34 +2962,34 @@ astral-regex@^2.0.0: async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^2.4.1, async@^2.6.2: version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= atob@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== audiobuffer-to-wav@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/audiobuffer-to-wav/-/audiobuffer-to-wav-1.0.0.tgz#d5b432271455e7fee56b111cd0f8d620d7f9e105" - integrity sha512-CAoir4NRrAzAgYo20tEMiKZR84coE8bq/L+H2kwAaULVY4+0xySsEVtNT5raqpzmH6y0pqzY6EmoViLd9W8F/w== + resolved "https://registry.npmjs.org/audiobuffer-to-wav/-/audiobuffer-to-wav-1.0.0.tgz" + integrity sha1-1bQyJxRV5/7laxEc0PjWINf54QU= autoprefixer@^9.4.3: version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz" integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== dependencies: browserslist "^4.12.0" @@ -3043,26 +3000,19 @@ autoprefixer@^9.4.3: postcss "^7.0.32" postcss-value-parser "^4.1.0" -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.0.tgz#d9b802e9bb9c248d7be5f7f5ef178dc3684e9dcc" - integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g== + version "1.11.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== babel-jest@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz" integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== dependencies: "@jest/transform" "^24.9.0" @@ -3074,25 +3024,25 @@ babel-jest@^24.9.0: slash "^2.0.0" babel-loader@^8.0.6: - version "8.3.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" - integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + version "8.2.5" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz" + integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== dependencies: find-cache-dir "^3.3.1" loader-utils "^2.0.0" make-dir "^3.1.0" schema-utils "^2.6.5" -babel-plugin-dynamic-import-node@^2.3.0: +babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" babel-plugin-istanbul@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz" integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -3102,38 +3052,38 @@ babel-plugin-istanbul@^5.1.0: babel-plugin-jest-hoist@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz" integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== dependencies: "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.11" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" - integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.2" - semver "^6.3.1" + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.1" + semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: - version "0.10.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz#789ac82405ad664c20476d0233b485281deb9c77" - integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.1" - core-js-compat "^3.36.1" + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" - integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" + "@babel/helper-define-polyfill-provider" "^0.3.1" babel-preset-jest@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz" integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" @@ -3141,23 +3091,23 @@ babel-preset-jest@^24.9.0: backo2@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== + resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-arraybuffer@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" - integrity sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg== + integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= base64-arraybuffer@0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g== + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= base64-js@^1.3.1: version "1.5.1" @@ -3166,12 +3116,12 @@ base64-js@^1.3.1: base64id@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw== + resolved "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= base@^0.11.1: version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" @@ -3184,57 +3134,57 @@ base@^0.11.1: batch@0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" better-assert@~1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ== + resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= dependencies: callsite "1.0.0" big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" blob@0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + resolved "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== bluebird@^3.3.0: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.20.2, body-parser@^1.16.1: - version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" - content-type "~1.0.5" + content-type "~1.0.4" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -3242,41 +3192,54 @@ body-parser@1.20.2, body-parser@^1.16.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.2" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@^1.16.1: + version "1.20.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" - integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== + version "1.1.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" + integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== dependencies: + array-flatten "^2.1.2" + dns-equal "^1.0.0" fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - braces@^2.3.1: version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" @@ -3290,55 +3253,76 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: - fill-range "^7.1.1" + fill-range "^7.0.1" browser-process-hrtime@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== browser-resolve@^1.11.3: version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz" integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== dependencies: resolve "1.1.7" browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: - version "4.23.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" - integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.20.3: + version "4.20.3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz" + integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== + dependencies: + caniuse-lite "^1.0.30001332" + electron-to-chromium "^1.4.118" + escalade "^3.1.1" + node-releases "^2.0.3" + picocolors "^1.0.0" + +browserslist@^4.14.5: + version "4.21.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551" + integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA== + dependencies: + caniuse-lite "^1.0.30001489" + electron-to-chromium "^1.4.411" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + +browserslist@^4.21.9: + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== dependencies: - caniuse-lite "^1.0.30001629" - electron-to-chromium "^1.4.796" - node-releases "^2.0.14" - update-browserslist-db "^1.0.16" + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" + update-browserslist-db "^1.0.11" bser@2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== dependencies: node-int64 "^0.4.0" buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== buffer-alloc@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: buffer-alloc-unsafe "^1.1.0" @@ -3346,8 +3330,8 @@ buffer-alloc@^1.2.0: buffer-fill@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= buffer-from@^1.0.0: version "1.1.2" @@ -3364,17 +3348,17 @@ buffer@^6.0.3: bytes@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= bytes@3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" @@ -3387,44 +3371,41 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.0.2" caller-callsite@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" callsite@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ== + resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= callsites@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^4.1.2: @@ -3437,17 +3418,17 @@ camel-case@^4.1.2: camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== can-use-dom@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" - integrity sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ== + resolved "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz" + integrity sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo= caniuse-api@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== dependencies: browserslist "^4.0.0" @@ -3455,27 +3436,37 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001629: - version "1.0.30001632" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz#964207b7cba5851701afb4c8afaf1448db3884b6" - integrity sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001332: + version "1.0.30001334" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz" + integrity sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw== + +caniuse-lite@^1.0.30001489: + version "1.0.30001492" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001492.tgz#4a06861788a52b4c81fd3344573b68cc87fe062b" + integrity sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw== + +caniuse-lite@^1.0.30001517: + version "1.0.30001518" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001518.tgz#b3ca93904cb4699c01218246c4d77a71dbe97150" + integrity sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA== capture-exit@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz" integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== dependencies: rsvp "^4.8.4" caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chai@^3.2.0: version "3.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" - integrity sha512-eRYY0vPS2a9zt5w5Z0aCeWbrXTEyvk7u/Xf71EzNObrjSCPgMm1Nku/D/u2tiqHBX5j40wWhj54YJLtgn8g55A== + resolved "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz" + integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= dependencies: assertion-error "^1.0.1" deep-eql "^0.1.3" @@ -3483,8 +3474,8 @@ chai@^3.2.0: chalk@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -3492,9 +3483,9 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -3503,16 +3494,21 @@ chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + chokidar@^3.0.0, chokidar@^3.5.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -3525,18 +3521,18 @@ chokidar@^3.0.0, chokidar@^3.5.3: fsevents "~2.3.2" chrome-trace-event@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" - integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + version "1.0.3" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" @@ -3545,22 +3541,34 @@ class-utils@^0.3.5: static-extend "^0.1.1" clean-css@^5.2.2: - version "5.3.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" - integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== dependencies: source-map "~0.6.0" clean-webpack-plugin@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-1.0.1.tgz#b16ee2f1386aea403010236e632447c7d3505f5a" + resolved "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-1.0.1.tgz" integrity sha512-gvwfMsqu3HBgTVvaBa1H3AZKO03CHpr5uP92SPIktP3827EovAitwW+1xoqXyTxCuXnLYpMHG5ytS4AoukHDWA== dependencies: rimraf "^2.6.1" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + cliui@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" @@ -3578,17 +3586,17 @@ clone-deep@^4.0.1: clone@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= co@^4.6.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= coa@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== dependencies: "@types/q" "^1.5.1" @@ -3597,39 +3605,39 @@ coa@^2.0.2: collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" object-visit "^1.0.0" color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.6.0: version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== dependencies: color-name "^1.0.0" @@ -3637,7 +3645,7 @@ color-string@^1.6.0: color@^3.0.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz" integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== dependencies: color-convert "^1.9.3" @@ -3650,12 +3658,12 @@ colorette@^2.0.10, colorette@^2.0.14: colors@^1.1.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" @@ -3677,49 +3685,49 @@ commander@^8.3.0: common-tags@^1.4.0: version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= complex.js@^2.0.11: version "2.1.1" - resolved "https://registry.yarnpkg.com/complex.js/-/complex.js-2.1.1.tgz#0675dac8e464ec431fb2ab7d30f41d889fb25c31" + resolved "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz" integrity sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg== component-bind@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw== + resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= component-emitter@1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA== + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= component-emitter@^1.2.1, component-emitter@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" - integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + version "1.3.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== component-inherit@0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA== + resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= compressible@~2.0.16: version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" compression@^1.7.4: version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" @@ -3732,8 +3740,8 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= connect-history-api-fallback@^2.0.0: version "2.0.0" @@ -3742,7 +3750,7 @@ connect-history-api-fallback@^2.0.0: connect@^3.6.0: version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== dependencies: debug "2.6.9" @@ -3752,83 +3760,81 @@ connect@^3.6.0: content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.4.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +convert-source-map@^1.4.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw== + resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= -cookie@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== copy-anything@^2.0.1: version "2.0.6" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz" integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== dependencies: is-what "^3.14.1" copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.31.0, core-js-compat@^3.36.1: - version "3.37.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.1.tgz#c844310c7852f4bdf49b8d339730b97e17ff09ee" - integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.22.3" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.3.tgz" + integrity sha512-wliMbvPI2idgFWpFe7UEyHMvu6HWgW8WA+HnDRtgzoSDYvXFMpoGX1H3tPDDXrcfUSyXafCLDd7hOeMQHEZxGw== dependencies: - browserslist "^4.23.0" + browserslist "^4.20.3" + semver "7.0.0" core-js@^2.6.2: version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.6.4: - version "3.37.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9" - integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw== + version "3.22.3" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.22.3.tgz" + integrity sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg== core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^5.0.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" @@ -3838,14 +3844,14 @@ cosmiconfig@^5.0.0: cross-env@^5.1.4: version "5.2.1" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" + resolved "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz" integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ== dependencies: cross-spawn "^6.0.5" cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" @@ -3856,7 +3862,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -3864,18 +3870,18 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: which "^2.0.1" crypto-js@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" - integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== + version "4.1.1" + resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= css-declaration-sorter@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== dependencies: postcss "^7.0.1" @@ -3883,7 +3889,7 @@ css-declaration-sorter@^4.0.1: css-loader@^3.2.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz" integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== dependencies: camelcase "^5.3.1" @@ -3902,12 +3908,12 @@ css-loader@^3.2.0: css-select-base-adapter@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== css-select@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== dependencies: boolbase "^1.0.0" @@ -3917,7 +3923,7 @@ css-select@^2.0.0: css-select@^4.1.3: version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" @@ -3928,7 +3934,7 @@ css-select@^4.1.3: css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== dependencies: mdn-data "2.0.4" @@ -3936,7 +3942,7 @@ css-tree@1.0.0-alpha.37: css-tree@^1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" @@ -3944,22 +3950,22 @@ css-tree@^1.1.2: css-what@^3.2.1: version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== css-what@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== cssnano-preset-default@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz" integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== dependencies: css-declaration-sorter "^4.0.1" @@ -3995,29 +4001,29 @@ cssnano-preset-default@^4.0.8: cssnano-util-get-arguments@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= cssnano-util-get-match@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= cssnano-util-raw-cache@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== dependencies: postcss "^7.0.0" cssnano-util-same-parent@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== cssnano@^4.1.10: version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz" integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== dependencies: cosmiconfig "^5.0.0" @@ -4027,141 +4033,114 @@ cssnano@^4.1.10: csso@^4.0.2: version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: css-tree "^1.1.2" cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== cssstyle@^1.0.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz" integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== dependencies: cssom "0.3.x" cuid@^2.1.6: version "2.1.8" - resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.8.tgz#cbb88f954171e0d5747606c0139fb65c5101eac0" + resolved "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz" integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg== custom-event@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== + resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz" + integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" data-urls@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz" integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== dependencies: abab "^2.0.0" whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - date-format@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" + resolved "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz" integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@3.2.6: version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" debug@^3.2.6: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" debug@~3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decimal.js@^10.2.1: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + version "10.3.1" + resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + version "0.2.0" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-eql@^0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" - integrity sha512-6sEotTRGBFiNcqVoeHwnfopbSpi5NbH1VWJmYCVkmxMmaVTT0bUTrNaGyBwhgP4MZL012W/mkzIn3Da+iDYweg== + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz" + integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= dependencies: type-detect "0.1.1" deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== default-gateway@^6.0.3: @@ -4171,46 +4150,36 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" @@ -4218,86 +4187,84 @@ define-property@^2.0.2: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= depd@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== depd@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= destroy@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-newline@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= detect-node@^2.0.4: version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== di@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== + resolved "https://registry.npmjs.org/di/-/di-0.0.1.tgz" + integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= diff-sequences@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== diff@3.5.0: version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - dlv@^1.1.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + dns-packet@^5.2.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + version "5.6.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" + integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dom-converter@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== dependencies: utila "~0.4" dom-serialize@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== + resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz" + integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= dependencies: custom-event "~1.0.0" ent "~2.2.0" @@ -4306,7 +4273,7 @@ dom-serialize@^2.2.0: dom-serializer@0: version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: domelementtype "^2.0.1" @@ -4314,7 +4281,7 @@ dom-serializer@0: dom-serializer@^1.0.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" @@ -4323,31 +4290,31 @@ dom-serializer@^1.0.1: domelementtype@1: version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domexception@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz" integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== dependencies: webidl-conversions "^4.0.2" domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" domutils@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" @@ -4355,7 +4322,7 @@ domutils@^1.7.0: domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" @@ -4372,71 +4339,81 @@ dot-case@^3.0.4: dot-prop@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" earcut@^2.1.5: - version "2.2.4" - resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" - integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== + version "2.2.3" + resolved "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz" + integrity sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug== ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.4.118: + version "1.4.124" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.124.tgz" + integrity sha512-VhaE9VUYU6d2eIb+4xf83CATD+T+3bTzvxvlADkQE+c2hisiw3sZmvEDtsW704+Zky9WZGhBuQXijDVqSriQLA== + +electron-to-chromium@^1.4.411: + version "1.4.416" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.416.tgz#7291f704168d3842ae4da3ae9fdc7bfbeb97d116" + integrity sha512-AUYh0XDTb2vrj0rj82jb3P9hHSyzQNdTPYWZIhPdCOui7/vpme7+HTE07BE5jwuqg/34TZ8ktlRz6GImJ4IXjA== -electron-to-chromium@^1.4.796: - version "1.4.798" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.798.tgz#6a3fcab2edc1e66e3883466f6b4b8944323c0164" - integrity sha512-by9J2CiM9KPGj9qfp5U4FcPSbXJG7FNzqnYaY4WLzX+v2PHieVGmnsA4dxfpGE3QEC7JofpPZmn7Vn1B9NR2+Q== +electron-to-chromium@^1.4.477: + version "1.4.482" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.482.tgz#77c5ed37b93d4dda860e27538e0e2a01d6a19e02" + integrity sha512-h+UqpfmEr1Qkk0zp7ej/jid7CXoq4m4QzW6wNTb0ELJ/BZCpA4wgUylBIMGCe621tnr4l5VmoHjdoSx2lbnNJA== emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= encoding@^0.1.11: version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" engine.io-client@~3.2.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz" integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== dependencies: component-emitter "1.2.1" @@ -4452,9 +4429,9 @@ engine.io-client@~3.2.0: yeast "0.1.2" engine.io-client@~3.5.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.3.tgz#3254f61fdbd53503dc9a6f9d46a52528871ca0d7" - integrity sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw== + version "3.5.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.2.tgz#0ef473621294004e9ceebe73cef0af9e36f2f5fa" + integrity sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA== dependencies: component-emitter "~1.3.0" component-inherit "0.0.3" @@ -4470,7 +4447,7 @@ engine.io-client@~3.5.0: engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz" integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== dependencies: after "0.8.2" @@ -4492,7 +4469,7 @@ engine.io-parser@~2.2.0: engine.io@~3.2.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" + resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz" integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== dependencies: accepts "~1.3.4" @@ -4502,144 +4479,84 @@ engine.io@~3.2.0: engine.io-parser "~2.1.0" ws "~3.3.1" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.16.0: - version "5.17.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz#d037603789dd9555b89aaec7eb78845c49089bc5" - integrity sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA== +enhanced-resolve@^5.0.0, enhanced-resolve@^5.14.1: + version "5.14.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" + integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" enquirer@^2.3.5: - version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" - integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" - strip-ansi "^6.0.1" ent@~2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== + resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" + integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= entities@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== envinfo@^7.7.3: - version "7.13.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" - integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== errno@^0.1.1: version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: - version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" - integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== - dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" +es-abstract@^1.17.2, es-abstract@^1.19.1: + version "1.19.5" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz" + integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== + dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - has-proto "^1.0.3" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" has-symbols "^1.0.3" - hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" - is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" + is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.13" is-weakref "^1.0.2" - object-inspect "^1.13.1" + object-inspect "^1.12.0" object-keys "^1.1.1" - object.assign "^4.1.5" - regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.2.1, es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" es-module-lexer@^1.2.1: - version "1.5.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.3.tgz#25969419de9c0b1fbe54279789023e8a9a788412" - integrity sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg== - -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== - dependencies: - get-intrinsic "^1.2.4" - has-tostringtag "^1.0.2" - hasown "^2.0.1" + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" + integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -4648,42 +4565,42 @@ es-to-primitive@^1.2.1: es6-promise-polyfill@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz#f38925f23cb3e3e8ce6cda8ff774fcebbb090cde" - integrity sha512-HHb0vydCpoclpd0ySPkRXMmBw80MRt1wM4RBJBlXkux97K7gleabZdsR0gvE1nNPM9mgOZIBTzjjXiPxf4lIqQ== + resolved "https://registry.npmjs.org/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz" + integrity sha1-84kl8jyz4+jObNqP93T867sJDN4= -escalade@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-latex@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1" + resolved "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz" integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^1.9.1: version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" @@ -4693,14 +4610,16 @@ escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== +eslint-config-prettier@^6.11.0: + version "6.15.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz" + integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== + dependencies: + get-stdin "^6.0.0" eslint-loader@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" + resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz" integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== dependencies: find-cache-dir "^3.3.1" @@ -4709,17 +4628,16 @@ eslint-loader@^4.0.2: object-hash "^2.0.3" schema-utils "^2.6.5" -eslint-plugin-prettier@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== +eslint-plugin-prettier@^3.1.3: + version "3.4.1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz" + integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== dependencies: prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" eslint-rule-composer@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + resolved "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz" integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== eslint-scope@5.1.1, eslint-scope@^5.0.0, eslint-scope@^5.1.1: @@ -4730,36 +4648,30 @@ eslint-scope@5.1.1, eslint-scope@^5.0.0, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1, eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" + eslint-visitor-keys "^1.1.0" eslint-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - eslint@7.32.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" @@ -4806,49 +4718,57 @@ eslint@7.32.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -eslint@^8.7.0: - version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" imurmurhash "^0.1.4" + inquirer "^7.0.0" is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2, espree@^6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" espree@^7.3.0, espree@^7.3.1: version "7.3.1" @@ -4859,77 +4779,68 @@ espree@^7.3.0, espree@^7.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" -espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0, esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== +esquery@^1.0.1, esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eventemitter3@^3.1.0: version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== eventemitter3@^4.0.0: version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.0.0, events@^3.2.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== exec-sh@^0.3.2: version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== execa@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" @@ -4957,13 +4868,13 @@ execa@^5.0.0: exit@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -4975,7 +4886,7 @@ expand-brackets@^2.1.4: expect@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + resolved "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz" integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== dependencies: "@jest/types" "^24.9.0" @@ -4986,16 +4897,16 @@ expect@^24.9.0: jest-regex-util "^24.9.0" express@^4.17.3: - version "4.19.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.2" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.6.0" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -5024,27 +4935,36 @@ express@^4.17.3: extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" extend@^3.0.0, extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" @@ -5058,7 +4978,7 @@ extglob@^2.0.4: extract-text-webpack-plugin@^4.0.0-beta.0: version "4.0.0-beta.0" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz#f7361d7ff430b42961f8d1321ba8c1757b5d4c42" + resolved "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz" integrity sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA== dependencies: async "^2.4.1" @@ -5068,17 +4988,17 @@ extract-text-webpack-plugin@^4.0.0-beta.0: extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== face-api.js@^0.22.1: version "0.22.2" - resolved "https://registry.yarnpkg.com/face-api.js/-/face-api.js-0.22.2.tgz#5accbf7e53b1569685d116a7e18dbc4800770d39" + resolved "https://registry.npmjs.org/face-api.js/-/face-api.js-0.22.2.tgz" integrity sha512-9Bbv/yaBRTKCXjiDqzryeKhYxmgSjJ7ukvOvEBy6krA0Ah/vNBlsf7iBNfJljWiPA8Tys1/MnB3lyP2Hfmsuyw== dependencies: "@tensorflow/tfjs-core" "1.7.0" @@ -5086,71 +5006,67 @@ face-api.js@^0.22.1: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.9: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" + version "1.2.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastest-levenshtein@^1.0.12: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - faye-websocket@^0.11.3: version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + version "2.0.1" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== dependencies: bser "2.1.1" +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" file-loader@^4.2.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + resolved "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz" integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== dependencies: loader-utils "^1.2.3" @@ -5158,34 +5074,34 @@ file-loader@^4.2.0: file-saver@^2.0.2: version "2.0.5" - resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" + resolved "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz" integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== file-uri-to-path@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range "^2.1.0" -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" finalhandler@1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -5198,7 +5114,7 @@ finalhandler@1.1.2: finalhandler@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" @@ -5211,7 +5127,7 @@ finalhandler@1.2.0: find-cache-dir@^3.3.1: version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" @@ -5220,89 +5136,84 @@ find-cache-dir@^3.3.1: find-up@3.0.0, find-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - flatted "^3.2.9" - keyv "^4.5.3" + flatted "^3.1.0" rimraf "^3.0.2" flat@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + resolved "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== dependencies: is-buffer "~2.0.3" -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - flatted@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== +flatted@^3.1.0: + version "3.2.5" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== follow-redirects@^1.0.0: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + version "1.14.9" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== fontfaceonload@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/fontfaceonload/-/fontfaceonload-1.0.2.tgz#b783b4d252ab559a073b697586c49cd21c8ff5e7" - integrity sha512-OsgQJ62yiUO8w9MvwfhWjS3AMzJnaG2HB8PhaLwxAbFb+CahxZueiz1jBfV/JqIdGxLpZB7prCB3+IsgsDQqCA== + resolved "https://registry.npmjs.org/fontfaceonload/-/fontfaceonload-1.0.2.tgz" + integrity sha1-t4O00lKrVZoHO2l1hsSc0hyP9ec= for-each@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" for-in@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -5310,7 +5221,7 @@ form-data@^4.0.0: form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -5319,29 +5230,29 @@ form-data@~2.3.2: forwarded@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fraction.js@^4.0.12: - version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + version "4.2.0" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= fs-extra@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" @@ -5350,85 +5261,73 @@ fs-extra@^7.0.1: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" -fs-monkey@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" - integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== +fs-monkey@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz" integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.1, function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== functional-red-black-tree@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== get-stream@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" @@ -5438,41 +5337,33 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: - call-bind "^1.0.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" + call-bind "^1.0.2" + get-intrinsic "^1.1.1" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" @@ -5480,7 +5371,7 @@ glob-to-regexp@^0.4.1: glob@7.1.3: version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: fs.realpath "^1.0.0" @@ -5491,94 +5382,74 @@ glob@7.1.3: path-is-absolute "^1.0.0" glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + version "7.2.0" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" globals@^11.1.0: version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0, globals@^13.6.0, globals@^13.9.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" + type-fest "^0.8.1" -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== +globals@^13.6.0, globals@^13.9.0: + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" + type-fest "^0.20.2" -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: +graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - growl@1.10.5: version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== growly@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== + resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= hammerjs@^2.0.8: version "2.0.8" - resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" - integrity sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ== + resolved "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz" + integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE= handle-thing@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -5586,66 +5457,61 @@ har-validator@~5.1.3: has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-binary2@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== dependencies: isarray "2.0.1" has-cors@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA== + resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1, has-proto@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + get-intrinsic "^1.1.1" has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: - has-symbols "^1.0.3" + has-symbols "^1.0.2" has-value@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -5653,8 +5519,8 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -5662,48 +5528,43 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== - -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: - function-bind "^1.1.2" + function-bind "^1.1.1" he@1.2.0, he@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hex-color-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== hosted-git-info@^2.1.4: version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hpack.js@^2.1.6: version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" obuf "^1.0.0" @@ -5712,29 +5573,29 @@ hpack.js@^2.1.6: hsl-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= hsla-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= html-encoding-sniffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz" integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== dependencies: whatwg-encoding "^1.0.1" html-entities@^2.3.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" - integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== html-escaper@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== html-minifier-terser@^6.0.2: @@ -5751,9 +5612,9 @@ html-minifier-terser@^6.0.2: terser "^5.10.0" html-webpack-plugin@^5.5.3: - version "5.6.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" - integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== + version "5.5.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" + integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -5763,12 +5624,12 @@ html-webpack-plugin@^5.5.3: html-webpack-template@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/html-webpack-template/-/html-webpack-template-6.2.0.tgz#3c9f15f616f4500927909d34adfbccb20d37943c" + resolved "https://registry.npmjs.org/html-webpack-template/-/html-webpack-template-6.2.0.tgz" integrity sha512-wyzIjbe9yXGyQ6yAeFjWmku7YOlW85w1dxqLnAQ564uRNNoBhpZVTQl7ouROoyQrfZUSoPUJiw7oWn31NDiuQQ== htmlparser2@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: domelementtype "^2.0.1" @@ -5778,12 +5639,12 @@ htmlparser2@^6.1.0: http-deceiver@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= http-errors@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -5794,8 +5655,8 @@ http-errors@2.0.0: http-errors@~1.6.2: version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" inherits "2.0.3" @@ -5803,9 +5664,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + version "0.5.6" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz" + integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== http-proxy-middleware@^2.0.3: version "2.0.6" @@ -5820,7 +5681,7 @@ http-proxy-middleware@^2.0.3: http-proxy@^1.13.0, http-proxy@^1.18.1: version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" @@ -5829,8 +5690,8 @@ http-proxy@^1.13.0, http-proxy@^1.18.1: http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -5841,23 +5702,23 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== dependencies: postcss "^7.0.14" @@ -5869,37 +5730,32 @@ ieee754@^1.2.1: ignore@^4.0.6: version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== - image-size@~0.5.0: version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= import-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== + resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= dependencies: import-from "^2.1.0" import-fresh@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -5907,14 +5763,14 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: import-from@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== + resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= dependencies: resolve-from "^3.0.0" import-local@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: pkg-dir "^3.0.0" @@ -5930,49 +5786,68 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== indexes-of@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= indexof@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg== + resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -internal-slot@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" - integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== +inquirer@^7.0.0: + version "7.3.3" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: - es-errors "^1.3.0" - hasown "^2.0.0" + get-intrinsic "^1.1.0" + has "^1.0.3" side-channel "^1.0.4" interpret@^3.1.1: @@ -5982,73 +5857,72 @@ interpret@^3.1.1: invariant@^2.2.4: version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== is-absolute-url@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= -is-accessor-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" - integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: - hasown "^2.0.0" - -is-any-array@^2.0.0, is-any-array@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-any-array/-/is-any-array-2.0.1.tgz#9233242a9c098220290aa2ec28f82ca7fa79899e" - integrity sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ== + kind-of "^3.0.2" -is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + kind-of "^6.0.0" + +is-any-array@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-any-array/-/is-any-array-2.0.0.tgz#e71bc13741537c06afac03c07885967ef56d8742" + integrity sha512-WdPV58rT3aOWXvvyuBydnCq4S2BM1Yz8shKxlEpk/6x+GX202XRvXOycEFtNgnHVLoc46hpexPFx8Pz1/sMS0w== is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -6056,30 +5930,30 @@ is-boolean-object@^1.1.0: is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@~2.0.3: version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" is-color-stop@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= dependencies: css-color-names "^0.0.4" hex-color-regex "^1.1.0" @@ -6088,54 +5962,63 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: - hasown "^2.0.0" + has "^1.0.3" -is-data-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" - integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== +is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: - hasown "^2.0.0" + has "^1.0.3" -is-data-view@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" - integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: - is-typed-array "^1.1.13" + kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-descriptor@^0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" - integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + version "0.1.6" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" - integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + version "1.0.2" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" is-directory@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" @@ -6144,77 +6027,72 @@ is-docker@^2.0.0, is-docker@^2.1.1: is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-fn@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" @@ -6222,14 +6100,14 @@ is-plain-obj@^3.0.0: is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -6237,20 +6115,20 @@ is-regex@^1.1.4: is-resolvable@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.2" is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: version "2.0.1" @@ -6259,51 +6137,44 @@ is-stream@^2.0.0: is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - dependencies: - which-typed-array "^1.1.14" - is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" is-what@^3.14.1: version "3.14.1" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + resolved "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz" integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= is-wsl@^2.2.0: version "2.2.0" @@ -6314,69 +6185,64 @@ is-wsl@^2.2.0: isarray@1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isarray@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ== - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= isbinaryfile@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== dependencies: buffer-alloc "^1.2.0" isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= ismobilejs@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" + resolved "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz" integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== isobject@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isomorphic-fetch@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA== + resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= dependencies: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz" integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz" integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== dependencies: "@babel/generator" "^7.4.0" @@ -6389,7 +6255,7 @@ istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: istanbul-lib-report@^2.0.4: version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz" integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== dependencies: istanbul-lib-coverage "^2.0.5" @@ -6398,7 +6264,7 @@ istanbul-lib-report@^2.0.4: istanbul-lib-source-maps@^3.0.1: version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz" integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== dependencies: debug "^4.1.1" @@ -6409,19 +6275,19 @@ istanbul-lib-source-maps@^3.0.1: istanbul-reports@^2.2.6: version "2.2.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz" integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== dependencies: html-escaper "^2.0.0" javascript-natural-sort@^0.7.1: version "0.7.1" - resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" - integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== + resolved "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz" + integrity sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k= jest-changed-files@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz" integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== dependencies: "@jest/types" "^24.9.0" @@ -6430,7 +6296,7 @@ jest-changed-files@^24.9.0: jest-cli@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz" integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== dependencies: "@jest/core" "^24.9.0" @@ -6449,7 +6315,7 @@ jest-cli@^24.9.0: jest-config@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz" integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== dependencies: "@babel/core" "^7.1.0" @@ -6472,7 +6338,7 @@ jest-config@^24.9.0: jest-diff@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz" integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== dependencies: chalk "^2.0.1" @@ -6482,14 +6348,14 @@ jest-diff@^24.9.0: jest-docblock@^24.3.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz" integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== dependencies: detect-newline "^2.1.0" jest-each@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz" integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== dependencies: "@jest/types" "^24.9.0" @@ -6500,7 +6366,7 @@ jest-each@^24.9.0: jest-environment-jsdom@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz" integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== dependencies: "@jest/environment" "^24.9.0" @@ -6512,7 +6378,7 @@ jest-environment-jsdom@^24.9.0: jest-environment-node@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz" integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== dependencies: "@jest/environment" "^24.9.0" @@ -6523,12 +6389,12 @@ jest-environment-node@^24.9.0: jest-get-type@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== jest-haste-map@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz" integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== dependencies: "@jest/types" "^24.9.0" @@ -6547,7 +6413,7 @@ jest-haste-map@^24.9.0: jest-jasmine2@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz" integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== dependencies: "@babel/traverse" "^7.1.0" @@ -6569,7 +6435,7 @@ jest-jasmine2@^24.9.0: jest-leak-detector@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz" integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== dependencies: jest-get-type "^24.9.0" @@ -6577,7 +6443,7 @@ jest-leak-detector@^24.9.0: jest-matcher-utils@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz" integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== dependencies: chalk "^2.0.1" @@ -6587,7 +6453,7 @@ jest-matcher-utils@^24.9.0: jest-message-util@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz" integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== dependencies: "@babel/code-frame" "^7.0.0" @@ -6601,24 +6467,24 @@ jest-message-util@^24.9.0: jest-mock@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz" integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== dependencies: "@jest/types" "^24.9.0" jest-pnp-resolver@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + version "1.2.2" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz" integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== jest-resolve-dependencies@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz" integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== dependencies: "@jest/types" "^24.9.0" @@ -6627,7 +6493,7 @@ jest-resolve-dependencies@^24.9.0: jest-resolve@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz" integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== dependencies: "@jest/types" "^24.9.0" @@ -6638,7 +6504,7 @@ jest-resolve@^24.9.0: jest-runner@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz" integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== dependencies: "@jest/console" "^24.7.1" @@ -6663,7 +6529,7 @@ jest-runner@^24.9.0: jest-runtime@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz" integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== dependencies: "@jest/console" "^24.7.1" @@ -6692,12 +6558,12 @@ jest-runtime@^24.9.0: jest-serializer@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz" integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== jest-snapshot@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz" integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== dependencies: "@babel/types" "^7.0.0" @@ -6716,7 +6582,7 @@ jest-snapshot@^24.9.0: jest-util@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz" integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== dependencies: "@jest/console" "^24.9.0" @@ -6734,7 +6600,7 @@ jest-util@^24.9.0: jest-validate@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz" integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== dependencies: "@jest/types" "^24.9.0" @@ -6746,7 +6612,7 @@ jest-validate@^24.9.0: jest-watcher@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz" integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== dependencies: "@jest/test-result" "^24.9.0" @@ -6759,7 +6625,7 @@ jest-watcher@^24.9.0: jest-worker@^24.6.0, jest-worker@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz" integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== dependencies: merge-stream "^2.0.0" @@ -6776,7 +6642,7 @@ jest-worker@^27.4.5: jest@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + resolved "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz" integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== dependencies: import-local "^2.0.0" @@ -6784,12 +6650,12 @@ jest@^24.9.0: "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@3.13.1: version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" @@ -6797,27 +6663,20 @@ js-yaml@3.13.1: js-yaml@^3.13.1: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsdom@^11.5.1: version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz" integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== dependencies: abab "^2.0.0" @@ -6849,22 +6708,17 @@ jsdom@^11.5.1: jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= json-parse-better-errors@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-parse-even-better-errors@^2.3.1: @@ -6874,7 +6728,7 @@ json-parse-even-better-errors@^2.3.1: json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: @@ -6884,41 +6738,46 @@ json-schema-traverse@^1.0.0: json-schema@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.3: +json5@^2.1.2, json5@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" jsprim@^1.2.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" @@ -6928,26 +6787,26 @@ jsprim@^1.2.2: karma-chai@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/karma-chai/-/karma-chai-0.1.0.tgz#bee5ad40400517811ae34bb945f762909108b79a" - integrity sha512-mqKCkHwzPMhgTYca10S90aCEX9+HjVjjrBFAsw36Zj7BlQNbokXXCAe6Ji04VUMsxcY5RLP7YphpfO06XOubdg== + resolved "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz" + integrity sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o= karma-chrome-launcher@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" - integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== + version "3.1.1" + resolved "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz" + integrity sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ== dependencies: which "^1.2.1" karma-mocha@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" - integrity sha512-twRO+KCXIFOBs7o6i7oIpTJhVvjKZbIsUM96A+k2QaeXOzbVQXCkjVzXqNeQoczW4ruasPZYi0iWMTkfTrQVCw== + resolved "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz" + integrity sha1-7qrH/8DiAetjxGdEDStpx883eL8= dependencies: minimist "1.2.0" karma@^4.2.0: version "4.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" + resolved "https://registry.npmjs.org/karma/-/karma-4.4.1.tgz" integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== dependencies: bluebird "^3.3.0" @@ -6977,53 +6836,51 @@ karma@^4.2.0: tmp "0.0.33" useragent "2.3.0" -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" -kind-of@^6.0.2: +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== kleur@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== launch-editor@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" - integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + version "2.6.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" + integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== dependencies: picocolors "^1.0.0" - shell-quote "^1.8.1" + shell-quote "^1.7.3" left-pad@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== less-loader@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" + resolved "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz" integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== dependencies: clone "^2.1.1" @@ -7032,7 +6889,7 @@ less-loader@^5.0.0: less@^3.10.1: version "3.13.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" + resolved "https://registry.npmjs.org/less/-/less-3.13.1.tgz" integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== dependencies: copy-anything "^2.0.1" @@ -7048,25 +6905,25 @@ less@^3.10.1: leven@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - libsvm-js@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/libsvm-js/-/libsvm-js-0.2.1.tgz#607a0b073fb0a635546ca5b93b7205282051a877" @@ -7074,8 +6931,8 @@ libsvm-js@^0.2.1: load-json-file@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -7088,18 +6945,18 @@ loader-runner@^4.2.0: integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + version "1.4.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^1.0.1" loader-utils@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + version "2.0.2" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -7107,7 +6964,7 @@ loader-utils@^2.0.0: locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -7115,42 +6972,35 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= lodash.memoize@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= lodash.merge@^4.6.0, lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.sortby@^4.7.0: version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= lodash.throttle@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= lodash.truncate@^4.4.2: version "4.4.2" @@ -7159,24 +7009,24 @@ lodash.truncate@^4.4.2: lodash.uniq@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" log4js@^4.0.0: version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" + resolved "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz" integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== dependencies: date-format "^2.0.0" @@ -7187,20 +7037,20 @@ log4js@^4.0.0: loglevel-colored-level-prefix@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" - integrity sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA== + resolved "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz" + integrity sha1-akAhj9x64V/HbD0PPmdsRlOIYD4= dependencies: chalk "^1.1.3" loglevel "^1.4.1" loglevel@^1.4.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" - integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== + version "1.8.0" + resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz" + integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== loose-envify@^1.0.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" @@ -7214,7 +7064,7 @@ lower-case@^2.0.2: lru-cache@4.1.x: version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" @@ -7222,14 +7072,21 @@ lru-cache@4.1.x: lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + make-dir@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" @@ -7237,33 +7094,33 @@ make-dir@^2.1.0: make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" makeerror@1.0.12: version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== dependencies: tmpl "1.0.5" map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" mathjs@^7.1.0: version "7.6.0" - resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-7.6.0.tgz#f0b7579e0756b13422995d0c4f29bd17d65d4dcc" + resolved "https://registry.npmjs.org/mathjs/-/mathjs-7.6.0.tgz" integrity sha512-abywR28hUpKF4at5jE8Ys+Kigk40eKMT5mcBLD0/dtsqjfOLbtzd3WjlRqIopNo7oQ6FME51qph6lb8h/bhpUg== dependencies: complex.js "^2.0.11" @@ -7277,49 +7134,44 @@ mathjs@^7.1.0: mdn-data@2.0.14: version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== mdn-data@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + version "3.5.1" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.1.tgz#f0cd1e2bfaef58f6fe09bfb9c2288f07fea099ec" + integrity sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA== dependencies: - fs-monkey "^1.0.4" + fs-monkey "^1.0.3" merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - methods@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" @@ -7336,98 +7188,90 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" - integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== +micromatch@^4.0.0, micromatch@^4.0.2: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.3" + braces "^3.0.2" picomatch "^2.3.1" mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime@1.6.0, mime@^1.4.1: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.0.3, mime@^2.3.1: version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mini-css-extract-plugin@^2.7.6: - version "2.9.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz#c73a1327ccf466f69026ac22a8e8fd707b78a235" - integrity sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA== + version "2.7.6" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" + integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== dependencies: schema-utils "^4.0.0" - tapable "^2.2.1" mini-signals@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/mini-signals/-/mini-signals-1.2.0.tgz#45b08013c5fae51a24aa1a935cd317c9ed721d74" - integrity sha512-alffqMkGCjjTSwvYMVLx+7QeJ6sTuxbXqBkP21my4iWU5+QpTQAJt3h7htA1OKm9F3BpMM0vnu72QIoiJakrLA== + resolved "https://registry.npmjs.org/mini-signals/-/mini-signals-1.2.0.tgz" + integrity sha1-RbCAE8X65RokqhqTXNMXye1yHXQ= minimalistic-assert@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimatch@3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.2, minimatch@^3.0.4: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" minimist@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minimist@~0.0.1: version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw== + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" @@ -7435,14 +7279,14 @@ mixin-deep@^1.2.0: mkdirp@0.5.4: version "0.5.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz" integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== dependencies: minimist "^1.2.5" mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" @@ -7493,16 +7337,16 @@ ml-cart@^2.1.1: ml-matrix "^6.8.2" ml-matrix@^6.8.2: - version "6.11.1" - resolved "https://registry.yarnpkg.com/ml-matrix/-/ml-matrix-6.11.1.tgz#fff3e1e7c3ad93dc996fec5d53d9dbc8e0e43473" - integrity sha512-Fvp1xF1O07tt6Ux9NcnEQTei5UlqbRpvvaFZGs7l3Ij+nOaEDcmbSVtxwNa8V4IfdyFI1NLNUteroMJ1S6vcEg== + version "6.10.2" + resolved "https://registry.yarnpkg.com/ml-matrix/-/ml-matrix-6.10.2.tgz#520f42322c34c0ed7a9916c11f9d693167d197b6" + integrity sha512-+yxwzMazC76DAsgEvDrdCfRMH7+lO7UdnuWllavnPeWkPD2oIBA6rLzvst7BFYUxzgRz/h6V6lLzYIYtTvINbw== dependencies: - is-any-array "^2.0.1" + is-any-array "^2.0.0" ml-array-rescale "^1.3.7" mocha@^6.2.0: version "6.2.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" + resolved "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz" integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== dependencies: ansi-colors "3.2.3" @@ -7531,22 +7375,22 @@ mocha@^6.2.0: ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@2.1.3, ms@^2.1.1: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multicast-dns@^7.2.5: @@ -7557,14 +7401,19 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + nan@^2.12.1: - version "2.19.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" - integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== + version "2.15.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" @@ -7581,17 +7430,17 @@ nanomatch@^1.2.9: native-request@^1.0.5: version "1.1.0" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" + resolved "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz" integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= negotiator@0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.2: @@ -7601,7 +7450,7 @@ neo-async@^2.6.2: nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== no-case@^3.0.4: @@ -7614,7 +7463,7 @@ no-case@^3.0.4: node-environment-flags@1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" + resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz" integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== dependencies: object.getownpropertydescriptors "^2.0.3" @@ -7622,7 +7471,7 @@ node-environment-flags@1.0.5: node-fetch@^1.0.1: version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz" integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== dependencies: encoding "^0.1.11" @@ -7630,8 +7479,8 @@ node-fetch@^1.0.1: node-fetch@~2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - integrity sha512-IHLHYskTc2arMYsHZH82PVX8CSKT5lzb7AXeyO06QnjGDKtkv+pv3mEki6S7reB/x1QPo+YPxQRNEVgR5V/w3Q== + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz" + integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= node-forge@^1: version "1.3.1" @@ -7640,12 +7489,12 @@ node-forge@^1: node-int64@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= node-notifier@^5.4.2: version "5.4.5" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.5.tgz#0cbc1a2b0f658493b4025775a13ad938e96091ef" + resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz" integrity sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ== dependencies: growly "^1.3.0" @@ -7654,14 +7503,24 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== + +node-releases@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz" + integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== normalize-package-data@^2.3.2: version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -7671,30 +7530,30 @@ normalize-package-data@^2.3.2: normalize-path@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-url@^3.0.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" @@ -7707,47 +7566,47 @@ npm-run-path@^4.0.1: nth-check@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + version "2.0.1" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== dependencies: boolbase "^1.0.0" num2fraction@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== + resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= nwsapi@^2.0.7: - version "2.2.10" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8" - integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== + version "2.2.0" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-component@0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA== + resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" @@ -7755,29 +7614,29 @@ object-copy@^0.1.0: object-hash@^2.0.3: version "2.2.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz" integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== -object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== object-keys@^1.0.11, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" object.assign@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== dependencies: define-properties "^1.1.2" @@ -7785,79 +7644,75 @@ object.assign@4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.assign@^4.1.0, object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.6: - version "2.1.8" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" - integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz" + integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== dependencies: - array.prototype.reduce "^1.0.6" - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - gopd "^1.0.1" - safe-array-concat "^1.1.2" + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" object.values@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + version "1.1.5" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== on-finished@2.4.1: version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" -onetime@^5.1.2: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" @@ -7873,15 +7728,15 @@ open@^8.0.9: optimist@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g== + resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= dependencies: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.1: +optionator@^0.8.1, optionator@^0.8.3: version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -7891,74 +7746,60 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1, optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.5" + word-wrap "^1.2.3" os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= p-each-series@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - integrity sha512-J/e9xiZZQNrt+958FFzJ+auItsBGq+UrQ7nE89AUP7UOTtjHnkISANXLdayhVzh538UnLMCSlf13lFfRIAKQOA== + resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz" + integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= dependencies: p-reduce "^1.0.0" p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - p-reduce@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ== + resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= p-retry@^4.5.0: version "4.6.2" @@ -7970,7 +7811,7 @@ p-retry@^4.5.0: p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== param-case@^3.0.4: @@ -7983,33 +7824,33 @@ param-case@^3.0.4: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" parse-uri@^1.0.0: - version "1.0.9" - resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.9.tgz#813c2a1107f9e833a12490cb1cb0408a67294b8f" - integrity sha512-YZfRHHkEZa6qTfPF/xgZ1ErQYCABfud/Vcqp1Q1GNa7RKwv6Oe0YaxXfQQMnQsGdNTo3fwaT0GbVEX7dMAr7tw== + version "1.0.7" + resolved "https://registry.npmjs.org/parse-uri/-/parse-uri-1.0.7.tgz" + integrity sha512-eWuZCMKNlVkXrEoANdXxbmqhu2SQO9jUMCSpdbJDObin0JxISn6e400EWsSRbr/czdKvWKkhZnMKEGUwf/Plmg== parse5@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + resolved "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== parseqs@0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw== + resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= dependencies: better-assert "~1.0.0" @@ -8020,8 +7861,8 @@ parseqs@0.0.6: parseuri@0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog== + resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= dependencies: better-assert "~1.0.0" @@ -8032,7 +7873,7 @@ parseuri@0.0.6: parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascal-case@^3.1.2: @@ -8045,94 +7886,89 @@ pascal-case@^3.1.2: pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-type@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picocolors@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== -picocolors@^1.0.0, picocolors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pirates@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + version "4.0.5" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== pixi.js@*, pixi.js@5.3.7: version "5.3.7" - resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.7.tgz#d295076cdb631a0578ee5976d9da195087b6a50e" + resolved "https://registry.npmjs.org/pixi.js/-/pixi.js-5.3.7.tgz" integrity sha512-DyFTn6sHB6njtBd879OCx7UZpt8dpVtOSNuLAdVaWZ2GhAFsTY59n07Ol0f+zx07QtpCmSt1P3pXGHjt9sPzbw== dependencies: "@pixi/accessibility" "5.3.7" @@ -8212,36 +8048,31 @@ pixi.js@5.3.12: pkg-dir@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pn@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -possible-typed-array-names@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" - integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-calc@^7.0.1: version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz" integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== dependencies: postcss "^7.0.27" @@ -8250,7 +8081,7 @@ postcss-calc@^7.0.1: postcss-colormin@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz" integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== dependencies: browserslist "^4.0.0" @@ -8261,7 +8092,7 @@ postcss-colormin@^4.0.3: postcss-convert-values@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== dependencies: postcss "^7.0.0" @@ -8269,42 +8100,42 @@ postcss-convert-values@^4.0.1: postcss-discard-comments@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== dependencies: postcss "^7.0.0" postcss-discard-duplicates@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== dependencies: postcss "^7.0.0" postcss-discard-empty@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== dependencies: postcss "^7.0.0" postcss-discard-overridden@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== dependencies: postcss "^7.0.0" postcss-flexbugs-fixes@^4.1.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz" integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== dependencies: postcss "^7.0.26" postcss-load-config@^2.0.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz" integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== dependencies: cosmiconfig "^5.0.0" @@ -8312,7 +8143,7 @@ postcss-load-config@^2.0.0: postcss-loader@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz" integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== dependencies: loader-utils "^1.1.0" @@ -8322,7 +8153,7 @@ postcss-loader@^3.0.0: postcss-merge-longhand@^4.0.11: version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== dependencies: css-color-names "0.0.4" @@ -8332,7 +8163,7 @@ postcss-merge-longhand@^4.0.11: postcss-merge-rules@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== dependencies: browserslist "^4.0.0" @@ -8344,7 +8175,7 @@ postcss-merge-rules@^4.0.3: postcss-minify-font-values@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== dependencies: postcss "^7.0.0" @@ -8352,7 +8183,7 @@ postcss-minify-font-values@^4.0.2: postcss-minify-gradients@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== dependencies: cssnano-util-get-arguments "^4.0.0" @@ -8362,7 +8193,7 @@ postcss-minify-gradients@^4.0.2: postcss-minify-params@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== dependencies: alphanum-sort "^1.0.0" @@ -8374,7 +8205,7 @@ postcss-minify-params@^4.0.2: postcss-minify-selectors@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== dependencies: alphanum-sort "^1.0.0" @@ -8384,14 +8215,14 @@ postcss-minify-selectors@^4.0.2: postcss-modules-extract-imports@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz" integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: postcss "^7.0.5" postcss-modules-local-by-default@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz" integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== dependencies: icss-utils "^4.1.1" @@ -8401,7 +8232,7 @@ postcss-modules-local-by-default@^3.0.2: postcss-modules-scope@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz" integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== dependencies: postcss "^7.0.6" @@ -8409,7 +8240,7 @@ postcss-modules-scope@^2.2.0: postcss-modules-values@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz" integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== dependencies: icss-utils "^4.0.0" @@ -8417,14 +8248,14 @@ postcss-modules-values@^3.0.0: postcss-normalize-charset@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== dependencies: postcss "^7.0.0" postcss-normalize-display-values@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== dependencies: cssnano-util-get-match "^4.0.0" @@ -8433,7 +8264,7 @@ postcss-normalize-display-values@^4.0.2: postcss-normalize-positions@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== dependencies: cssnano-util-get-arguments "^4.0.0" @@ -8443,7 +8274,7 @@ postcss-normalize-positions@^4.0.2: postcss-normalize-repeat-style@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== dependencies: cssnano-util-get-arguments "^4.0.0" @@ -8453,7 +8284,7 @@ postcss-normalize-repeat-style@^4.0.2: postcss-normalize-string@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== dependencies: has "^1.0.0" @@ -8462,7 +8293,7 @@ postcss-normalize-string@^4.0.2: postcss-normalize-timing-functions@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== dependencies: cssnano-util-get-match "^4.0.0" @@ -8471,7 +8302,7 @@ postcss-normalize-timing-functions@^4.0.2: postcss-normalize-unicode@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== dependencies: browserslist "^4.0.0" @@ -8480,7 +8311,7 @@ postcss-normalize-unicode@^4.0.1: postcss-normalize-url@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== dependencies: is-absolute-url "^2.0.0" @@ -8490,7 +8321,7 @@ postcss-normalize-url@^4.0.1: postcss-normalize-whitespace@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== dependencies: postcss "^7.0.0" @@ -8498,7 +8329,7 @@ postcss-normalize-whitespace@^4.0.2: postcss-ordered-values@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== dependencies: cssnano-util-get-arguments "^4.0.0" @@ -8507,7 +8338,7 @@ postcss-ordered-values@^4.1.2: postcss-reduce-initial@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== dependencies: browserslist "^4.0.0" @@ -8517,7 +8348,7 @@ postcss-reduce-initial@^4.0.3: postcss-reduce-transforms@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== dependencies: cssnano-util-get-match "^4.0.0" @@ -8527,7 +8358,7 @@ postcss-reduce-transforms@^4.0.2: postcss-selector-parser@^3.0.0: version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== dependencies: dot-prop "^5.2.0" @@ -8535,16 +8366,16 @@ postcss-selector-parser@^3.0.0: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" - integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== + version "6.0.10" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" postcss-svgo@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz" integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== dependencies: postcss "^7.0.0" @@ -8553,7 +8384,7 @@ postcss-svgo@^4.0.3: postcss-unique-selectors@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== dependencies: alphanum-sort "^1.0.0" @@ -8562,17 +8393,17 @@ postcss-unique-selectors@^4.0.1: postcss-value-parser@^3.0.0: version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz" integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== dependencies: picocolors "^0.2.1" @@ -8580,43 +8411,43 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.2 prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier-eslint@^16.3.0: - version "16.3.0" - resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-16.3.0.tgz#8f7bbc863f35939948e386eafe72ffd653b2d80b" - integrity sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg== +prettier-eslint@^10.1.1: + version "10.1.1" + resolved "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-10.1.1.tgz" + integrity sha512-TtYxuFUMVxudJTSnPScaBqHZm/48ndvX3KLFzhejJYbRzRybmM9RdBfn9YzgN0itfPrYxCesIZGJqyXXZJOR2w== dependencies: - "@typescript-eslint/parser" "^6.7.5" + "@typescript-eslint/parser" "^3.0.0" common-tags "^1.4.0" dlv "^1.1.0" - eslint "^8.7.0" + eslint "^6.8.0" indent-string "^4.0.0" lodash.merge "^4.6.0" loglevel-colored-level-prefix "^1.0.0" - prettier "^3.0.1" - pretty-format "^29.7.0" + prettier "^1.7.0" + pretty-format "^23.0.1" require-relative "^0.8.7" - typescript "^5.2.2" - vue-eslint-parser "^9.1.0" + typescript "^3.9.3" + vue-eslint-parser "~7.1.0" prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" -prettier@^3.0.1, prettier@^3.2.5: - version "3.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" - integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== +prettier@^1.18.2, prettier@^1.7.0: + version "1.19.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== pretty-error@^4.0.0: version "4.0.0" @@ -8626,9 +8457,17 @@ pretty-error@^4.0.0: lodash "^4.17.20" renderkid "^3.0.0" +pretty-format@^23.0.1: + version "23.6.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz" + integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + pretty-format@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz" integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== dependencies: "@jest/types" "^24.9.0" @@ -8636,28 +8475,19 @@ pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== progress@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== prompts@^2.0.1: version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" @@ -8665,7 +8495,7 @@ prompts@^2.0.1: proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" @@ -8673,47 +8503,54 @@ proxy-addr@~2.0.7: prr@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + version "1.8.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^2.1.0, punycode@^2.1.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== q@^1.1.2: version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qjobs@^1.1.4: version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== +qs@6.10.3: + version "6.10.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -8721,39 +8558,32 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.2: - version "6.12.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" - integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== - dependencies: - side-channel "^1.0.6" - qs@~6.5.2: version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -8762,17 +8592,12 @@ raw-body@2.5.2: react-is@^16.8.4: version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^18.0.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - read-pkg-up@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz" integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== dependencies: find-up "^3.0.0" @@ -8780,17 +8605,17 @@ read-pkg-up@^4.0.0: read-pkg@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" path-type "^3.0.0" readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -8801,9 +8626,9 @@ readable-stream@^2.0.1: util-deprecate "~1.0.1" readable-stream@^3.0.6: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -8811,14 +8636,14 @@ readable-stream@^3.0.6: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" realpath-native@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz" integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== dependencies: util.promisify "^1.0.0" @@ -8830,69 +8655,69 @@ rechoir@^0.8.0: dependencies: resolve "^1.20.0" -regenerate-unicode-properties@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" - integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== dependencies: "@babel/runtime" "^7.8.4" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" - integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== - dependencies: - call-bind "^1.0.6" - define-properties "^1.2.1" - es-errors "^1.3.0" - set-function-name "^2.0.1" +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpp@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== dependencies: - "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + unicode-match-property-value-ecmascript "^2.0.0" -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" @@ -8903,8 +8728,8 @@ relateurl@^0.2.7: remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= renderkid@^3.0.0: version "3.0.0" @@ -8919,24 +8744,24 @@ renderkid@^3.0.0: repeat-element@^1.1.2: version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= request-promise-core@1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: lodash "^4.17.19" request-promise-native@^1.0.5: version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: request-promise-core "1.1.4" @@ -8945,7 +8770,7 @@ request-promise-native@^1.0.5: request@^2.87.0: version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -8971,8 +8796,8 @@ request@^2.87.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-from-string@^2.0.2: version "2.0.2" @@ -8981,28 +8806,28 @@ require-from-string@^2.0.2: require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== require-relative@^0.8.7: version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== + resolved "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz" + integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resize-observer-polyfill@^1.5.0: version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== resolve-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" @@ -9015,12 +8840,12 @@ resolve-cwd@^3.0.0: resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: @@ -9030,34 +8855,51 @@ resolve-from@^5.0.0: resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== + resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.10.0, resolve@^1.14.2: + version "1.22.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== +resolve@^1.20.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: - is-core-module "^2.13.0" + is-core-module "^2.11.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resource-loader@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/resource-loader/-/resource-loader-3.0.1.tgz#33355bb5421e2994f59454bbc7f6dbff8df06d47" + resolved "https://registry.npmjs.org/resource-loader/-/resource-loader-3.0.1.tgz" integrity sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA== dependencies: mini-signals "^1.2.0" parse-uri "^1.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== retry@^0.13.1: @@ -9065,96 +8907,84 @@ retry@^0.13.1: resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - rfdc@^1.1.4: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + version "1.3.0" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== rgb-regex@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= rgba-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== + resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" rsvp@^4.8.4: version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== -safe-array-concat@^1.0.0, safe-array-concat@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" - integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== +rxjs@^6.6.0: + version "6.6.7" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" - isarray "^2.0.5" + tslib "^1.9.0" safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" - integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-regex "^1.1.4" - safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sane@^4.0.3: version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz" integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== dependencies: "@cnakazawa/watch" "^1.0.3" @@ -9167,14 +8997,9 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sax@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" - integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== - -sax@~1.2.4: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== schema-utils@^0.4.5: @@ -9187,7 +9012,7 @@ schema-utils@^0.4.5: schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: ajv "^6.1.0" @@ -9196,26 +9021,26 @@ schema-utils@^1.0.0: schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0: version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: "@types/json-schema" "^7.0.5" ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" + integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" schema-utils@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" - integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + version "4.0.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.1.tgz#eb2d042df8b01f4b5c276a2dfd41ba0faab72e8d" + integrity sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" @@ -9224,50 +9049,68 @@ schema-utils@^4.0.0: scrollbarwidth@^0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/scrollbarwidth/-/scrollbarwidth-0.1.3.tgz#1b0de64e288c38c427f4a01fe00a462a04b94fdf" - integrity sha512-edjn9izGjWKgnZo7A3OFsAI6otfGWp/0JLrIhe7vE/CbHZF6rwsHARwxXek0sd7ZoJxHKPl+OEA6jbqJiQQGtw== + resolved "https://registry.npmjs.org/scrollbarwidth/-/scrollbarwidth-0.1.3.tgz" + integrity sha1-Gw3mTiiMOMQn9KAf4ApGKgS5T98= seed-random@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/seed-random/-/seed-random-2.2.0.tgz#2a9b19e250a817099231a5b99a4daf80b7fbed54" - integrity sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ== + resolved "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz" + integrity sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ= seedrandom@2.4.3: version "2.4.3" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc" - integrity sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q== + resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz" + integrity sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw= select-hose@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^2.1.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + version "2.1.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== dependencies: - "@types/node-forge" "^1.3.0" node-forge "^1" "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.6, semver@^7.5.4: - version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== +semver@^7.2.1, semver@^7.3.2: + version "7.3.7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.4: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" send@0.18.0: version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" @@ -9285,16 +9128,16 @@ send@0.18.0: statuses "2.0.1" serialize-javascript@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== dependencies: randombytes "^2.1.0" serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" batch "0.6.1" @@ -9306,7 +9149,7 @@ serve-index@^1.9.1: serve-static@1.15.0: version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" @@ -9316,34 +9159,12 @@ serve-static@1.15.0: set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-function-name@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" @@ -9353,12 +9174,12 @@ set-value@^2.0.0, set-value@^2.0.1: setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shallow-clone@^3.0.0: @@ -9370,63 +9191,62 @@ shallow-clone@^3.0.0: shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.8.1: +shell-quote@^1.7.3: version "1.8.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== shellwords@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -side-channel@^1.0.4, side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" simplebar@^3.1.1: version "3.1.5" - resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-3.1.5.tgz#257f2d0836baa250cd2a8841892a10c3c3081b17" + resolved "https://registry.npmjs.org/simplebar/-/simplebar-3.1.5.tgz" integrity sha512-6hPEvcUEbgRWAyldqdd5yd1OcrnxelopEOKwMwOafLc0/Kc3Um2x1US8t+feUAA5ae+lTbrQwcGJvMH+9A23FA== dependencies: can-use-dom "^0.1.0" @@ -9439,23 +9259,27 @@ simplebar@^3.1.1: sisteransi@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== skmeans@^0.11.3: version "0.11.3" - resolved "https://registry.yarnpkg.com/skmeans/-/skmeans-0.11.3.tgz#6d4dafb8058520a792c10bae9d9b953a6b6379f4" + resolved "https://registry.npmjs.org/skmeans/-/skmeans-0.11.3.tgz" integrity sha512-nccEnlSeOMNAYM9ETMSq+m15u8g0KRCIvH2an/ROTx4Igmci/j3oYHBPGdAeGjhR7knAVoIIQwr/wy2dN/eKQA== slash@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" slice-ansi@^4.0.0: version "4.0.0" @@ -9468,7 +9292,7 @@ slice-ansi@^4.0.0: snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" @@ -9477,14 +9301,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" @@ -9498,12 +9322,12 @@ snapdragon@^0.8.1: socket.io-adapter@~1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== socket.io-client@2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz" integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== dependencies: backo2 "1.0.2" @@ -9522,9 +9346,9 @@ socket.io-client@2.1.1: to-array "0.1.4" socket.io-client@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.5.0.tgz#34f486f3640dde9c2211fce885ac2746f9baf5cb" - integrity sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" + integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== dependencies: backo2 "1.0.2" component-bind "1.0.0" @@ -9540,7 +9364,7 @@ socket.io-client@^2.3.0: socket.io-parser@~3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz" integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== dependencies: component-emitter "1.2.1" @@ -9548,9 +9372,9 @@ socket.io-parser@~3.2.0: isarray "2.0.1" socket.io-parser@~3.3.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.3.tgz#3a8b84823eba87f3f7624e64a8aaab6d6318a72f" - integrity sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg== + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== dependencies: component-emitter "~1.3.0" debug "~3.1.0" @@ -9558,7 +9382,7 @@ socket.io-parser@~3.3.0: socket.io@2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" + resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz" integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== dependencies: debug "~3.1.0" @@ -9579,12 +9403,12 @@ sockjs@^0.3.24: source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: atob "^2.1.2" @@ -9595,7 +9419,7 @@ source-map-resolve@^0.5.0: source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -9603,53 +9427,48 @@ source-map-support@^0.5.6, source-map-support@~0.5.20: source-map-url@^0.4.0: version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + version "3.1.1" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + version "2.3.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.18" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" - integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== + version "3.0.11" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== spdy-transport@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: debug "^4.1.0" @@ -9661,7 +9480,7 @@ spdy-transport@^3.0.0: spdy@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" @@ -9672,20 +9491,20 @@ spdy@^4.0.2: split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" - integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + version "1.17.0" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -9699,42 +9518,42 @@ sshpk@^1.7.0: stable@^0.1.8: version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== stack-utils@^1.0.1: version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz" integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== dependencies: escape-string-regexp "^2.0.0" static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" object-copy "^0.1.0" statuses@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== "statuses@>= 1.4.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= stealthy-require@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= streamroller@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" + resolved "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz" integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== dependencies: async "^2.6.2" @@ -9745,15 +9564,15 @@ streamroller@^1.0.6: string-length@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - integrity sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ== + resolved "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= dependencies: astral-regex "^1.0.0" strip-ansi "^4.0.0" "string-width@^1.0.2 || 2": version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" @@ -9761,101 +9580,89 @@ string-length@^2.0.0: string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" - integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.0" - es-object-atoms "^1.0.0" - -string.prototype.trimend@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" - integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.1.3" -string.prototype.trimstart@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" - integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.1.3" string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-final-newline@^2.0.0: version "2.0.0" @@ -9864,17 +9671,17 @@ strip-final-newline@^2.0.0: strip-json-comments@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== style-loader@^0.20.2: version "0.20.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.3.tgz#ebef06b89dec491bcb1fdb3452e913a6fd1c10c4" + resolved "https://registry.npmjs.org/style-loader/-/style-loader-0.20.3.tgz" integrity sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg== dependencies: loader-utils "^1.1.0" @@ -9882,7 +9689,7 @@ style-loader@^0.20.2: stylehacks@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz" integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== dependencies: browserslist "^4.0.0" @@ -9891,33 +9698,33 @@ stylehacks@^4.0.0: supports-color@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== dependencies: has-flag "^3.0.0" supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" @@ -9931,12 +9738,12 @@ supports-color@^8.0.0: supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svgo@^1.0.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== dependencies: chalk "^2.4.1" @@ -9955,21 +9762,23 @@ svgo@^1.0.0: symbol-tree@^3.2.2: version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" table@^6.0.9: - version "6.8.2" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" - integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -9977,35 +9786,45 @@ table@^6.0.9: string-width "^4.2.3" strip-ansi "^6.0.1" -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: - version "5.3.10" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" - integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== +terser-webpack-plugin@^5.3.7, terser-webpack-plugin@^5.3.9: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: - "@jridgewell/trace-mapping" "^0.3.20" + "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.26.0" + terser "^5.16.8" -terser@^5.10.0, terser@^5.26.0: - version "5.31.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4" - integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg== +terser@^5.10.0: + version "5.20.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.20.0.tgz#ea42aea62578703e33def47d5c5b93c49772423e" + integrity sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" +terser@^5.16.8: + version "5.17.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.6.tgz#d810e75e1bb3350c799cd90ebefe19c9412c12de" + integrity sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + test-exclude@^5.2.3: version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz" integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== dependencies: glob "^7.1.3" @@ -10015,76 +9834,81 @@ test-exclude@^5.2.3: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= throat@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA== + resolved "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= thunky@^1.0.2: version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== timsort@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-emitter@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tmp@0.0.33, tmp@0.0.x: +tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" tmpl@1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== to-array@0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A== + resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" @@ -10094,12 +9918,12 @@ to-regex@^3.0.1, to-regex@^3.0.2: toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" @@ -10107,170 +9931,130 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: tr46@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= dependencies: punycode "^2.1.0" -ts-api-utils@^1.0.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" - integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== - ts-loader@^9.4.3: - version "9.5.1" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.1.tgz#63d5912a86312f1fbe32cef0859fb8b2193d9b89" - integrity sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg== + version "9.4.3" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.3.tgz#55cfa7c28dd82a2de968ae45c3adb75fb888b27e" + integrity sha512-n3hBnm6ozJYzwiwt5YRiJZkzktftRpMiBApHaJPoWLA+qetQBAXkHqCLM6nwSdRDimqVtA5ocIkcTRLMTt7yzA== dependencies: chalk "^4.1.0" enhanced-resolve "^5.0.0" micromatch "^4.0.0" semver "^7.3.4" - source-map "^0.7.4" -tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1: +tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== +tslib@^2.0.3: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsutils@^3.17.1: version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" type-detect@0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" - integrity sha512-5rqszGVwYgBoDkIm2oUtvkfZMQ0vk29iDMU0W2qCa3rG0vPDNczCMT4hV/bLBgLg8k8ri6+u3Zbt+S/14eMzlA== + resolved "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz" + integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= type-detect@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" - integrity sha512-f9Uv6ezcpvCQjJU0Zqbg+65qdcszv3qUQsZfjdRbWiZ7AMenrX1u0lNk9EoWWX6e1F+NULyg27mtdeZ5WhpljA== + resolved "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz" + integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI= type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.18: version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-typed-array "^1.1.13" - -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-byte-offset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" - integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-length@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" - integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - typed-function@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-2.1.0.tgz#ded6f8a442ba8749ff3fe75bc41419c8d46ccc3f" + resolved "https://registry.npmjs.org/typed-function/-/typed-function-2.1.0.tgz" integrity sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ== +typescript@^3.9.3: + version "3.9.10" + resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz" + integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== + typescript@^4.7.4: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typescript@^5.2.2: - version "5.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" - integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== - ua-parser-js@^1.0.35: - version "1.0.38" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.38.tgz#66bb0c4c0e322fe48edfe6d446df6042e62f25e2" - integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ== + version "1.0.35" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" + integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== uid@^0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/uid/-/uid-0.0.2.tgz#5e4a5d4b78138b4f70f89fd3c76fc59aa9d2f103" - integrity sha512-KerEqWSoUfzAYsB4RznGPygtEk1p04caicg8FxqzZ1VYI3GsYHPzouUO5jJvwwy4sg6B1jnSkSjYgGvE4CK6Gg== + resolved "https://registry.npmjs.org/uid/-/uid-0.0.2.tgz" + integrity sha1-XkpdS3gTi09w+J/Tx2/FmqnS8QM= ultron@~1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== -unbox-primitive@^1.0.2: +unbox-primitive@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -10278,37 +10062,32 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== union-value@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" @@ -10318,60 +10097,60 @@ union-value@^1.0.0: uniq@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= uniqs@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unquote@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" isobject "^3.0.0" -update-browserslist-db@^1.0.16: - version "1.0.16" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" - integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== dependencies: - escalade "^3.1.2" - picocolors "^1.0.1" + escalade "^3.1.1" + picocolors "^1.0.0" -uri-js@^4.2.2, uri-js@^4.4.1: +uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-loader@^1.0.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + resolved "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz" integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== dependencies: loader-utils "^1.1.0" @@ -10379,21 +10158,21 @@ url-loader@^1.0.1: schema-utils "^1.0.0" url@^0.11.0: - version "0.11.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" - integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== + version "0.11.0" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: - punycode "^1.4.1" - qs "^6.11.2" + punycode "1.3.2" + querystring "0.2.0" use@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== useragent@2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + resolved "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz" integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== dependencies: lru-cache "4.1.x" @@ -10401,25 +10180,23 @@ useragent@2.3.0: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.2.tgz#02b3dbadbb80071eee4c43aed58747afdfc516db" - integrity sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA== + version "1.1.1" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz" + integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" + call-bind "^1.0.0" + define-properties "^1.1.3" for-each "^0.3.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - object.getownpropertydescriptors "^2.1.6" - safe-array-concat "^1.0.0" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.1" util.promisify@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== dependencies: define-properties "^1.1.3" @@ -10429,32 +10206,32 @@ util.promisify@~1.0.0: utila@~0.4: version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.3.2: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-compile-cache@^2.0.3: - version "2.4.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" - integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== + version "2.3.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -10462,18 +10239,18 @@ validate-npm-package-license@^3.0.1: vary@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vendors@^1.0.0: version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -10481,65 +10258,64 @@ verror@1.10.0: void-elements@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== + resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -vue-eslint-parser@^9.1.0: - version "9.4.3" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" - integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== +vue-eslint-parser@~7.1.0: + version "7.1.1" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.1.1.tgz" + integrity sha512-8FdXi0gieEwh1IprIBafpiJWcApwrU+l2FEj8c1HtHFdNXMd0+2jUSjBVmcQYohf/E72irwAXEXLga6TQcB3FA== dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" + debug "^4.1.1" + eslint-scope "^5.0.0" + eslint-visitor-keys "^1.1.0" + espree "^6.2.1" + esquery "^1.0.1" + lodash "^4.17.15" w3c-hr-time@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: browser-process-hrtime "^1.0.0" walker@^1.0.7, walker@~1.0.5: version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: makeerror "1.0.12" -watchpack@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" - integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" webidl-conversions@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-cli@^5.1.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" - integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== + version "5.1.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.1.tgz#c211ac6d911e77c512978f7132f0d735d4a97ace" + integrity sha512-OLJwVMoXnXYH2ncNGU8gxVpUtm3ybvdioiTvHgUyBuyMLKiVvWy+QObzBsMtp5pH7qQoEuWgeEUQ/sU3ZJFzAw== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.1" - "@webpack-cli/info" "^2.0.2" - "@webpack-cli/serve" "^2.0.5" + "@webpack-cli/configtest" "^2.1.0" + "@webpack-cli/info" "^2.0.1" + "@webpack-cli/serve" "^2.0.4" colorette "^2.0.14" commander "^10.0.1" cross-spawn "^7.0.3" @@ -10550,10 +10326,10 @@ webpack-cli@^5.1.1: rechoir "^0.8.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^5.3.4: - version "5.3.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" - integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== +webpack-dev-middleware@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" + integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== dependencies: colorette "^2.0.10" memfs "^3.4.3" @@ -10562,9 +10338,9 @@ webpack-dev-middleware@^5.3.4: schema-utils "^4.0.0" webpack-dev-server@^4.15.0: - version "4.15.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" - integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + version "4.15.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz#87ba9006eca53c551607ea0d663f4ae88be7af21" + integrity sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -10572,7 +10348,7 @@ webpack-dev-server@^4.15.0: "@types/serve-index" "^1.9.1" "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" + "@types/ws" "^8.5.1" ansi-html-community "^0.0.8" bonjour-service "^1.0.11" chokidar "^3.5.3" @@ -10594,7 +10370,7 @@ webpack-dev-server@^4.15.0: serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^5.3.4" + webpack-dev-middleware "^5.3.1" ws "^8.13.0" webpack-manifest-plugin@^5.0.0: @@ -10606,17 +10382,16 @@ webpack-manifest-plugin@^5.0.0: webpack-sources "^2.2.0" webpack-merge@^5.7.3, webpack-merge@^5.9.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" - integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + version "5.9.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" + integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== dependencies: clone-deep "^4.0.1" - flat "^5.0.2" wildcard "^2.0.0" webpack-sources@^1.1.0: version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" @@ -10643,38 +10418,38 @@ webpack-strip-block@^0.3.0: loader-utils "^1.1.0" webpack@^5.85.0: - version "5.91.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" - integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + version "5.85.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.85.0.tgz#c14a6a3a91f84d67c450225661fda8da36bc7f49" + integrity sha512-7gazTiYqwo5OSqwH1tigLDL2r3qDeP2dOKYgd+LlXpsUMqDTklg6tOghexqky0/+6QY38kb/R/uRPUleuL43zg== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.5" - "@webassemblyjs/ast" "^1.12.1" - "@webassemblyjs/wasm-edit" "^1.12.1" - "@webassemblyjs/wasm-parser" "^1.12.1" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" acorn-import-assertions "^1.9.0" - browserslist "^4.21.10" + browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.16.0" + enhanced-resolve "^5.14.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" + graceful-fs "^4.2.9" json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.2.0" + schema-utils "^3.1.2" tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" - watchpack "^2.4.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: http-parser-js ">=0.5.1" @@ -10683,29 +10458,29 @@ websocket-driver@>=0.5.1, websocket-driver@^0.7.4: websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: iconv-lite "0.4.24" whatwg-fetch@>=0.10.0: - version "3.6.20" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" - integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + version "3.6.2" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== whatwg-url@^6.4.1: version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz" integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== dependencies: lodash.sortby "^4.7.0" @@ -10714,7 +10489,7 @@ whatwg-url@^6.4.1: whatwg-url@^7.0.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz" integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== dependencies: lodash.sortby "^4.7.0" @@ -10723,7 +10498,7 @@ whatwg-url@^7.0.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -10733,38 +10508,27 @@ which-boxed-primitive@^1.0.2: is-symbol "^1.0.3" which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.14, which-typed-array@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" - integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.2" + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@1.3.1, which@^1.2.1, which@^1.2.9, which@^1.3.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wide-align@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" @@ -10774,15 +10538,15 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -word-wrap@^1.2.5, word-wrap@~1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== wordwrap@~0.0.2: version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= worker-loader@^3.0.8: version "3.0.8" @@ -10794,7 +10558,7 @@ worker-loader@^3.0.8: wrap-ansi@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" @@ -10803,33 +10567,40 @@ wrap-ansi@^5.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@2.4.1: version "2.4.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz" integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" signal-exit "^3.0.2" +write@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + ws@^5.2.0: version "5.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" + resolved "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== dependencies: async-limiter "~1.0.0" ws@^8.13.0: - version "8.17.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" - integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== ws@~3.3.1: version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== dependencies: async-limiter "~1.0.0" @@ -10843,13 +10614,13 @@ ws@~7.4.2: xml-name-validator@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== xmlhttprequest-ssl@~1.5.4: version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha512-/bFPLUgJrfGUL10AIv4Y7/CUt6so9CLtB/oFxQSHseSDNNCdC6vwwKEqwLN6wNPBg9YWXAiMu8jkf6RPRS/75Q== + resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= xmlhttprequest-ssl@~1.6.2: version "1.6.3" @@ -10858,27 +10629,32 @@ xmlhttprequest-ssl@~1.6.2: xss-filters@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/xss-filters/-/xss-filters-1.2.7.tgz#59fa1de201f36f2f3470dcac5f58ccc2830b0a9a" - integrity sha512-KzcmYT/f+YzcYrYRqw6mXxd25BEZCxBQnf+uXTopQDIhrmiaLwO+f+yLsIvvNlPhYvgff8g3igqrBxYh9k8NbQ== + resolved "https://registry.npmjs.org/xss-filters/-/xss-filters-1.2.7.tgz" + integrity sha1-Wfod4gHzby80cNysX1jMwoMLCpo= y18n@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== yallist@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.2: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yargs-parser@13.1.2, yargs-parser@^13.1.2: version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" @@ -10886,7 +10662,7 @@ yargs-parser@13.1.2, yargs-parser@^13.1.2: yargs-unparser@1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== dependencies: flat "^4.1.0" @@ -10895,7 +10671,7 @@ yargs-unparser@1.6.0: yargs@13.3.2, yargs@^13.3.0: version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" @@ -10911,10 +10687,5 @@ yargs@13.3.2, yargs@^13.3.0: yeast@0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From 45db11b9c302efd565202b8c3340adc5c623405d Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 23 Oct 2024 19:11:07 +0900 Subject: [PATCH 58/65] Add yarn.lock to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8bf4b73004..afcc4bd53f 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ extern/closure-library .idea/ dist/ +yarn.lock From 2e18ad8e0501c8498869498df3af09b3a5c72a94 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 23 Oct 2024 19:11:35 +0900 Subject: [PATCH 59/65] Remove yarn.lock from tracking --- yarn.lock | 10691 ---------------------------------------------------- 1 file changed, 10691 deletions(-) delete mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index eedd0ad67f..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,10691 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== - -"@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== - -"@babel/core@^7.1.0": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/core@^7.22.1": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.1" - -"@babel/eslint-parser@^7.11.0": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz" - integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== - dependencies: - eslint-scope "^5.1.1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/eslint-plugin@^7.11.0": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.17.7.tgz" - integrity sha512-JATUoJJXSgwI0T8juxWYtK1JSgoLpIGUsCHIv+NMXcUDA2vIe6nvAHR9vnuJgs/P1hOFw7vPwibixzfqBBLIVw== - dependencies: - eslint-rule-composer "^0.3.0" - -"@babel/generator@^7.17.9", "@babel/generator@^7.4.0": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== - dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.22.7", "@babel/generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz" - integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" - -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - -"@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" - -"@babel/highlight@^7.10.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9", "@babel/parser@^7.4.3": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== - -"@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz" - integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz" - integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - -"@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz" - integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.17.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz" - integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.6" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz" - integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz" - integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz" - integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz" - integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.16.7", "@babel/plugin-proposal-object-rest-spread@^7.8.3": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== - dependencies: - "@babel/compat-data" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz" - integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.16.11", "@babel/plugin-proposal-private-methods@^7.8.3": - version "7.16.11" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz" - integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.10" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz" - integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz" - integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - -"@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-block-scoping@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz" - integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz" - integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== - dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz" - integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== - dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.16.8", "@babel/plugin-transform-modules-commonjs@^7.8.3": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz" - integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== - dependencies: - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.17.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz" - integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== - dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz" - integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== - dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - -"@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz" - integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-object-assign@^7.8.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.16.7.tgz" - integrity sha512-R8mawvm3x0COTJtveuoqZIjNypn2FjfvXZr4pSQ8VhEFBuQGBz4XhHasZtHXjgXU4XptZ4HtGof3NoYc93ZH9Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - -"@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-regenerator@^7.16.7": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz" - integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== - dependencies: - regenerator-transform "^0.15.0" - -"@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz" - integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-runtime@^7.8.3": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz" - integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - semver "^6.3.0" - -"@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz" - integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/preset-env@^7.10.2": - version "7.16.11" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== - dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.11" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" - "@babel/plugin-transform-new-target" "^7.16.7" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" - "@babel/plugin-transform-reserved-words" "^7.16.7" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.8.4": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz" - integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.16.7", "@babel/template@^7.4.0": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.4.3": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" - -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@egjs/component@^2.1.0": - version "2.2.2" - resolved "https://registry.npmjs.org/@egjs/component/-/component-2.2.2.tgz" - integrity sha512-2m6nu6/Mbs6VnoT4IHFGUBX6V82Zp01zDmlWpIJ3fMatHpe7BB1qUYFgMmSWGY0uOvOl4plvflwbCRUAGMfwWQ== - -"@egjs/visible@^2.1.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@egjs/visible/-/visible-2.4.0.tgz" - integrity sha512-p9hRZCgH8dsJDKcBbOTPg25dxenuDw8EYm+15eN1Q/LJkNtL5hpJ3ee/QBK4TTICuOjzXpZj4jBdLqaVArykwA== - dependencies: - "@egjs/component" "^2.1.0" - -"@entrylabs/event@^1.0.3": - version "1.0.3" - resolved "https://registry.npmjs.org/@entrylabs/event/-/event-1.0.3.tgz" - integrity sha512-IDC7sWnfe8GVQIEGsct9Bcsj1Nh4XikO6PG+veVuix0Zv/XH98NkFjmXiyrriJ/rjJoGFBq6sKesfmaFCCr3MA== - -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== - dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" - -"@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz" - integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== - dependencies: - "@jest/console" "^24.7.1" - "@jest/reporters" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" - micromatch "^3.1.10" - p-each-series "^1.0.0" - realpath-native "^1.1.0" - rimraf "^2.5.4" - slash "^2.0.0" - strip-ansi "^5.0.0" - -"@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== - dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - -"@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz" - integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - node-notifier "^5.4.2" - slash "^2.0.0" - source-map "^0.6.0" - string-length "^2.0.0" - -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== - dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" - micromatch "^3.1.10" - pirates "^4.0.1" - realpath-native "^1.1.0" - slash "^2.0.0" - source-map "^0.6.1" - write-file-atomic "2.4.1" - -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.6" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz" - integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== - -"@jridgewell/set-array@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz" - integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" - integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== - -"@jridgewell/trace-mapping@^0.3.17": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.9" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - -"@mediapipe/tasks-vision@^0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@mediapipe/tasks-vision/-/tasks-vision-0.10.3.tgz#d1465126923df8f03b4a31a231867d284e120961" - integrity sha512-q6yPXKGlANzLUc77X1zN+AKLFTiviCYtRXv5SV27GnbUVw0lsy94ybBmsxIMa+pATWIi0GmmtENJt3k0BAQheA== - -"@pixi/accessibility@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.12.tgz#c22e28021e285d0db3869829a05db4adda25e393" - integrity sha512-JnfII2VsIeIpvyn1VMNDlhhq5BzHwwHn8sMRKhS3kFyxn4CdP0E4Ktn3/QK0vmL9sHCeTlto5Ybj3uuoKZwCWg== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/accessibility@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-5.3.7.tgz" - integrity sha512-104qzGZWnA/cQUH48jTiCXKGqOCfOqZAHmVg1z0p5l5tnzVX5zUQDBJxt4AAIPguZZe1YkniealwO1WGz0yBgA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/app@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.12.tgz#90daa5fa056d222068b284cbd2f442e9cea31c2f" - integrity sha512-XMpqoO+1BFIVakgHX/VlBaO4qWxg9TitvybDeXZxyVlSCG84DMNulN55jYufVp92nqHhiRr2fAIc9JDccOcNcQ== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - -"@pixi/app@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/app/-/app-5.3.7.tgz" - integrity sha512-xlXxMGiGGmOA154SyltOQ2ZfPEtErzXl8GOxXJJJBxmIfvCQa+Y6iO5jf4q7yNbpSbrfaeIrYUnNbJAViiACzg== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - -"@pixi/constants@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.12.tgz#f02b4366669a30983f044a1d2870fd6dbdeea03d" - integrity sha512-UcuvZZ8cQu+ZC7ufLpKi8NfZX0FncPuxKd0Rf6u6pzO2SmHPq4C1moXYGDnkZjPFAjNYFFHC7chU+zolMtkL/g== - -"@pixi/constants@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/constants/-/constants-5.3.7.tgz" - integrity sha512-MBcgIM/mSqonFezkCI9080IqNlc0wb8S9QJ5otBdseOWUQa/ua2jF7Jd1sCBGmi0IzS9/NOHFXzZVTdS7AC7Ow== - -"@pixi/core@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.12.tgz#14d57aaaac099c512f8955a87648cf5b3f914ac1" - integrity sha512-SKZPU2mP4UE4trWOTcubGekKwopnotbyR2X8nb68wffBd1GzMoaxyakltfJF2oCV/ivrru/biP4CkW9K6MJ56g== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/runner" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/ticker" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/core@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/core/-/core-5.3.7.tgz" - integrity sha512-WBhU2f5aJSVVaFP55FFBFKjKlRf5fYGxgA/U3kD4yD4Y3d3d6V3MIZv+o0VX+kBs1Eq7ePZqEv2smDrlzzMEjQ== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/runner" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/ticker" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/display@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.12.tgz#24ddb270b87b91631284b57144d8e486a2375e17" - integrity sha512-/fsH/GAxc62rvwTnmrnV8oGCkk4LwJ9pt2Jv3UIorNsjXyL0V5fGw7uZnilF2eSdu6LgQKBMWPOtBF0TNML3lg== - dependencies: - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/display@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/display/-/display-5.3.7.tgz" - integrity sha512-ma1JyLe5vaEgmaOR+anvj5YOKqT9OEWnboIe7NVmwGF1CZ7JFnB12rsRulHUsSaFG9bP5xjvroAZjFg/WvyGLw== - dependencies: - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/extract@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.12.tgz#4fb236a78d65bc1586e1b77e1455c76da6be861f" - integrity sha512-PRs9sKeZT+eYSD8wGUqSjHhIRrfvnLU65IIJYlmgTxYo9U4rwzykt74v09ggMj/GFUpjsILISA5VIXM1TV79PQ== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/extract@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/extract/-/extract-5.3.7.tgz" - integrity sha512-xQ5hYFIdxQTjNWwtwsjIK0DjbGLlUl92rIj5yvNJFiJvRjZ8IfvtIaM5uwjhiY2U9q3fDLFgb8EiNfmdDc78xQ== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/filter-alpha@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.12.tgz#d2076e0d328430874d8cc544fa96fc097bbea893" - integrity sha512-/VG+ojZZwStLfiYVKcX4XsXNiPZpv40ZgiDL6igZOMqUsWn7n7dhIgytmbx6uTUWfxIPlOQH3bJGEyAHVEgzZA== - dependencies: - "@pixi/core" "5.3.12" - -"@pixi/filter-alpha@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-5.3.7.tgz" - integrity sha512-jkvbzmSCIPjCJMFNUocAxsZ7Cq3ssFwXnmXNYKYhJy01LxiyO/JbVDAxAD7Chyn5jbKsI21OV3UQaIJhFpXw7Q== - dependencies: - "@pixi/core" "5.3.7" - -"@pixi/filter-blur@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.12.tgz#b4212c13c96d4c3dd12efa20859c77baca092250" - integrity sha512-8zuOmztmuXCl1pXQpycKTS8HmXPtkmMe6xM93Q1gT7CRLzyS97H3pQAh4YuaGOrJslOKBNDrGVzLVY95fxjcTQ== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/settings" "5.3.12" - -"@pixi/filter-blur@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-5.3.7.tgz" - integrity sha512-xM+Zz2i2UCmY7oHBPlGaN2ImhCY4l/V8NFc8FNSUIHm8NXHJ4/VCQpXp9BFTjY1+GZExFLkqB8kIYEddGVFiLA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/settings" "5.3.7" - -"@pixi/filter-color-matrix@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.12.tgz#17fa86afacb9b1de44c5e81b8a911dfdad730e3f" - integrity sha512-CblKOry/TvFm7L7iangxYtvQgO3a9n5MsmxDUue68DWZa/iI4r/3TSnsvA+Iijr590e9GsWxy3mj9P4HBMOGTA== - dependencies: - "@pixi/core" "5.3.12" - -"@pixi/filter-color-matrix@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.7.tgz" - integrity sha512-Z12cxoHx9uMh3CZ0PLVRzsaFHHF/CfU3J83KI9k+Bg/DFOh/J/5EToCd44jYJbMKp3nvXcO1EJyZ3wwC/IsyfQ== - dependencies: - "@pixi/core" "5.3.7" - -"@pixi/filter-displacement@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.12.tgz#2996ca66746050a0c5c950629ae163e4c033a020" - integrity sha512-D/LpJxnGi85wHB6VeBpw0FQAN0mzHHUYNxCADwUhknY+SKfP5RhaYOlk79zqOuakBfQTzL3lPgMNH2EC85EJPw== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/math" "5.3.12" - -"@pixi/filter-displacement@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-5.3.7.tgz" - integrity sha512-akMVkAHqliQujveiJ5KBMuwh/JVGN37NQsD8n1XbDDSe6SKjpX0kaq2Bh2Xu9pPj3+Jhofy0sI65q2M8qs2Uog== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/math" "5.3.7" - -"@pixi/filter-fxaa@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.12.tgz#bb93ecaf3002fa5da9dbff6974ab38fd8045cd79" - integrity sha512-EI+foorDnYUAy7VF3fzi635u/dyf5EHZOFovGEDrHm/ZTmEJ1i6RolwexCN94vf6HGfaDrIgNmqFcKWtbIvJFA== - dependencies: - "@pixi/core" "5.3.12" - -"@pixi/filter-fxaa@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-5.3.7.tgz" - integrity sha512-NJpVcbOCUVYUDGqxvh7Jp/+arWEnLKgI/7Qf8VEYv0aQslqE8ZtFSAX7JfP+iGfFWXlkMe6AKspesYhUrIpRKg== - dependencies: - "@pixi/core" "5.3.7" - -"@pixi/filter-noise@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.12.tgz#66315840bbf5fd7e15e42aafd29024602f4ccb2b" - integrity sha512-9KWmlM2zRryY6o0bfNOHAckdCk8X7g9XWZbmEIXZZs7Jr90C1+RhDreqNs8OrMukmNo2cW9hMrshHgJ9aA1ftQ== - dependencies: - "@pixi/core" "5.3.12" - -"@pixi/filter-noise@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-5.3.7.tgz" - integrity sha512-P0mVQR2J7GHujVcq0iiuD2/1yvmue7orpppa5iuNHoOMT+vZpO0hdCKTg5vm5ZcWnHrOwtvv8zYngnT9rLdCtw== - dependencies: - "@pixi/core" "5.3.7" - -"@pixi/graphics@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.12.tgz#bad1d5e1630e38b5f1bf594f72931c0e7a43ead0" - integrity sha512-uBmFvq15rX0f459/4F2EnR2UhCgfwMWVJDB1L3OnCqQePE/z3ju4mfWEwOT+I7gGejWlGNE6YLdEMVNw/3zb6w== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/graphics@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/graphics/-/graphics-5.3.7.tgz" - integrity sha512-+6+bT/AC29a1Hw5XDxsH1UqBsXSqcna7wNTTrBQ02owotIJtyRc6w48f5qxzhxycumyVCR87IV5tAtdwX3xhag== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/interaction@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.12.tgz#dd4f23fadc24810857f69766db6cdfab8786e5bd" - integrity sha512-Ks7vHDfDI58r1TzKHabnQXcXzFbUu2Sb4eQ3/jnzI/xGB5Z8Q0kS7RwJtFOWNZ67HHQdoHFkQIozTUXVXHs3oA== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/ticker" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/interaction@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/interaction/-/interaction-5.3.7.tgz" - integrity sha512-B+5suog6fo8tJclTIO1Nn0HikyXQ9OWQGmTiYUnDVDriX5dGujh79RpcL51HFQ/2Gs2Gt0rl3AfP9OsCLe7VPA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/ticker" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/loaders@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.12.tgz#ee34783633a76719a196f65330b6d78a52d3bb86" - integrity sha512-M56m1GKpCChFqSic9xrdtQOXFqwYMvGzDXNpsKIsQbkHooaJhUR5UxSPaNiGC4qWv0TO9w8ANouxeX2v6js4eg== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/utils" "5.3.12" - resource-loader "^3.0.1" - -"@pixi/loaders@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/loaders/-/loaders-5.3.7.tgz" - integrity sha512-zwWgvhUz7l5Z3me5gT1XbJzmj4bnz176PnawoUdlRxNARnMW3Rsk7Egzu8atWhJUL+MWEv+t8KkyHRXG39q5FA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/utils" "5.3.7" - resource-loader "^3.0.1" - -"@pixi/math@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.12.tgz#bfc3c1b651a96a2d62cb40e0b181d68fb4962aac" - integrity sha512-VMccUVKSRlLFTGQu6Z450q/W6LVibaFWEo2eSZZfxz+hwjlYiqRPx4heG++4Y6tGskZK7W8l8h+2ixjmo65FCg== - -"@pixi/math@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/math/-/math-5.3.7.tgz" - integrity sha512-WnjUwX7rkxR36F0xknpsNd9BsfQosV0BbyFE0Il88IURBM3Tu9X4tC7RGJDgWU+aXw23HgHu0j+MWJrCVCM2fA== - -"@pixi/mesh-extras@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.12.tgz#b634f2a212714374d5376b70a333fbebf9f69d4f" - integrity sha512-tEBEEIh96aSGJ/KObdtlNcSzVfgrl9fBhvdUDOHepSyVG+SkmX4LMqP3DkGl6iUBDiq9FBRFaRgbxEd8G2U7yw== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/mesh" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/mesh-extras@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-5.3.7.tgz" - integrity sha512-txVo2yk935gLgvlwO/ODUuz0wHUZtc9AK0sOQbbD9rh1TUdZ9OYrRvqshItLC34EimmAfgOsyzT78zeUTaP1OA== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/mesh" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/mesh@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.12.tgz#665e83a26c40f12215ff72193a0774c4bdbb605e" - integrity sha512-8ZiGZsZQBWoP1p8t9bSl/AfERb5l3QlwnY9zYVMDydF/UWfN1gKcYO4lKvaXw/HnLi4ZjE+OHoZVmePss9zzaw== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/mesh@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/mesh/-/mesh-5.3.7.tgz" - integrity sha512-7K5Ba3+t0rBAfZeuQi7nem0DgVH9GNhRvZ8HYbhPs5XVI7yZZhUN4HpUMy7gYEnz8EbXqwUz20X4ham/0O9WsQ== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/mixin-cache-as-bitmap@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.12.tgz#eb2c4aa9ad452593d4c445a2132e4d8d0b02d8ef" - integrity sha512-hPiu8jCQJctN3OVJDgh7jqdtRgyB3qH1BWLM742MOZLjYnbOSamnqmI8snG+tba5yj/WfdjKB+8v0WNwEXlH6w== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/mixin-cache-as-bitmap@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.7.tgz" - integrity sha512-UEP1PVEEqgWs8vUx/GvOiQ4r130NDLQoD9i5YA1i5BGml2UmNyrFlIh8N9hVAPiIpTIpECkU6nLakP7t6fm9zA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/mixin-get-child-by-name@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.12.tgz#581e305b1f2c75533215704e499975b20e92a708" - integrity sha512-VQv0GMNmfyBfug9pnvN5s/ZMKJ/AXvg+4RULTpwHFtAwlCdZu9IeNb4eviSSAwtOeBAtqk5c0MQSsdOUWOeIkA== - dependencies: - "@pixi/display" "5.3.12" - -"@pixi/mixin-get-child-by-name@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.7.tgz" - integrity sha512-KiWirq5HpLKrAsShdZx0+RwNwY6nO5cM+Wqq59n11xTgvUoNULiptZRePQR5rOIsLIcwNtro/2LWPj1UzbJHbg== - dependencies: - "@pixi/display" "5.3.7" - -"@pixi/mixin-get-global-position@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.12.tgz#111261083b4e654361cd7da12cd510b6ff64fded" - integrity sha512-qxsfCC9BsKSjBlMH1Su/AVwsrzY8NHfcut5GkVvm2wa9+ypxFwU5fVsmk6+4a9G7af3iqmOlc9YDymAvbi+e8g== - dependencies: - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - -"@pixi/mixin-get-global-position@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.7.tgz" - integrity sha512-OIXi+m611GVH1dVAc5YdiMC55Bbjf0JmesiB+6/gMzrjKxW/YDAA5ZRVri75hmRedHA8LPflf+i0pO10mrGP8g== - dependencies: - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - -"@pixi/particles@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.12.tgz#37843e0d865d9ed87dda97f46eb309ffd46e1866" - integrity sha512-SV/gOJBFa4jpsEM90f1bz5EuMMiNAz81mu+lhiUxdQQjZ8y/S4TiK7OAiyc+hUtp97JbJ//6u+4ynGwbhV+WDA== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/particles@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/particles/-/particles-5.3.7.tgz" - integrity sha512-mEnBljvBVbKuUJVZ0oH9dP/k7qsHEHUlvfBQgLOSkd6viHlx3PoSPKOYm35+I6fAylkV0Xm9+j5v/IESuip2RQ== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/polyfill@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.12.tgz#5678476f15c33dfd704cff0d216b0cf3ab5267dc" - integrity sha512-qkm8TBIb6m7FmE/Cd/yVagONDlVF5/cWFSSnk4pWA/vt/HLNrXgY9Tx0IXAk6NNK/xc5deGcLPc4iw+DlEhsQw== - dependencies: - es6-promise-polyfill "^1.2.0" - object-assign "^4.1.1" - -"@pixi/polyfill@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-5.3.7.tgz" - integrity sha512-qU23xdb/e4Qvze0TWVy4fNZ0nlABIEZmuLu5nI9SpgfIYtjd2tZo7ngCXU5mZHxW1/xvkAMJEHCsSszotzF9xQ== - dependencies: - es6-promise-polyfill "^1.2.0" - object-assign "^4.1.1" - -"@pixi/prepare@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.12.tgz#68e89aa4102973cde220bc7d965b856d99044f01" - integrity sha512-loZhLzV4riet9MU72WpWIYF6LgbRM78S4soeZOr5SzL1/U5mBneOOmfStaui7dN2GKQKp5GLygDF4dH3FPalnA== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/graphics" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/text" "5.3.12" - "@pixi/ticker" "5.3.12" - -"@pixi/prepare@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/prepare/-/prepare-5.3.7.tgz" - integrity sha512-saU+o202vA3U2HVMYvh5aB2RJmP4hR//J22QuRfGen/ukM5mApOroJ445Id2+kSvis0M+UeFUKfBGWDzitr19Q== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/graphics" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/text" "5.3.7" - "@pixi/ticker" "5.3.7" - -"@pixi/runner@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.12.tgz#48a84a574b95478a7c3cff4f5102f7d7f35ebfb1" - integrity sha512-I5mXx4BiP8Bx5CFIXy3XV3ABYFXbIWaY6FxWsNFkySn0KUhizN7SarPdhFGs//hJuC54EH2FsKKNa98Lfc2nCQ== - -"@pixi/runner@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/runner/-/runner-5.3.7.tgz" - integrity sha512-kt5apNb21HAvpBaDaPRs33k2O0VzrKe13w4we8iftCpXX8w68ErAY1lH68vmtDNrxnlHg4M9nRgEoMeiHlo2RA== - -"@pixi/settings@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.12.tgz#50675601c5485d15d8896e50cb2b523154c2dae8" - integrity sha512-tLAa8tpDGllgj88NMUQn2Obn9MFJfHNF/CKs8aBhfeZGU4yL4PZDtlI+tqaB1ITGl3xxyHmJK+qfmv5lJn+zyA== - dependencies: - ismobilejs "^1.1.0" - -"@pixi/settings@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/settings/-/settings-5.3.7.tgz" - integrity sha512-g6AoRSGWxU34gtKSQwX2AMQoLUv86L/5iIXRsqo+X4bfUSCenTci1X7ueVrSIbo39dxh6IOpriZF2Yk3TeHG5w== - dependencies: - ismobilejs "^1.1.0" - -"@pixi/sprite-animated@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.12.tgz#d5e2def777a181bba30b4a8f5931b8a29dc09a16" - integrity sha512-WkGdGRfqboXFzMZ/SM6pCVukYmG2E2IlpcFz7aEeWvKL2Icm4YtaCBpHHDU07vvA6fP6JrstlCx1RyTENtOeGA== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/ticker" "5.3.12" - -"@pixi/sprite-animated@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-5.3.7.tgz" - integrity sha512-CSXTSwH/UUcTe5637AD35OCETQO+tDkmlr6e1/eIyUlgOsPkbjo+l134feLZtZudiPHTPyb/YAYIlgPfVr7MGw== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/ticker" "5.3.7" - -"@pixi/sprite-tiling@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.12.tgz#574697334948521dd4228dc2dfb57129233cf2fa" - integrity sha512-5/gtNT46jIo7M69sixqkta1aXVhl4NTwksD9wzqjdZkQG8XPpKmHtXamROY2Fw3R+m+KGgyK8ywAf78tPvxPwg== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/sprite-tiling@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-5.3.7.tgz" - integrity sha512-0BMLQGniJF1HvfyrJVe5jC8ayBpTh19dAHJIQWGp8zxxFh/WHjR1b32BN74rDjxQQSjZjV8vBNio8J3W+yDttw== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/sprite@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.12.tgz#0e62a9c074ae288a33fa7c6d18f61db18257e843" - integrity sha512-vticet92RFZ3nDZ6/VDwZ7RANO0jzyXOF/5RuJf0yNVJgBoH4cNix520FfsBWE2ormD+z5t1KEmFeW4e35z2kw== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/sprite@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/sprite/-/sprite-5.3.7.tgz" - integrity sha512-Bjl+NOOvigEzUsm1cDr1KmBUpPSWO8pDXpUPTi+v2N75gwRfTycmj5f2TU0QmMW3Gc6sv0CB0AkL7dkMPwPb8g== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/spritesheet@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.12.tgz#78deabea173f2ceb13a58f4be2e0100b7cf239ca" - integrity sha512-0t5HKgLx0uWtENtkW0zVpqvmfoxqMcRAYB7Nwk2lkgZMBPCOFtFF/4Kdp9Sam5X0EBMRGkmIelW3fD6pniSvCw== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/loaders" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/spritesheet@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-5.3.7.tgz" - integrity sha512-K1Befbrq3LDbFtnLmbk54QQ/YRk2Mgd+2iOkZx5KsS2pTh1va/GM9FbpO9aZgsEu8Eq76QPxyR8nRqygyMRSuQ== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/loaders" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/text-bitmap@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.12.tgz#c1cbf0b2650775f5059f3eaef2afda557ed6595e" - integrity sha512-tiorA3XdriJKJtUhMDcKX1umE3hGbaNJ/y0ZLuQ0lCvoTLrN9674HtveutoR9KkXWguDHCSk2cY+y3mNAvjPHA== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/loaders" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/mesh" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/text" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/text-bitmap@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.3.7.tgz" - integrity sha512-LWXgxyMgBAldHA6Swx0irAISCMEyDEcZV7YxBoBpSDnV8ybtZP4fSgtj6vlpnrttKcnXFEcGokOuC3vSdEs39g== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/loaders" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/mesh" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/text" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/text@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.12.tgz#7dc0ded63fa817c4f72ee1537392ee2139ff09a5" - integrity sha512-tvrDVetwVjq1PVDR6jq4umN/Mv/EPHioEOHhyep63yvFIBFv75mDTg2Ye0CPzkmjqwXXvAY+hHpNwuOXTB40xw== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/text@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/text/-/text-5.3.7.tgz" - integrity sha512-WVAc31MDgHTvP0dJNWsvLVJhjeVGZ3NrLpHcH9iIAd6HVO5Z+i+fk4zvodD+Y7jWU0psx8ZD8xe1wy8ECfbCBA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/ticker@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.12.tgz#94817565e9899d8e0be746d405e15eb98e8bc14f" - integrity sha512-YNYUj94XgogipYhPOjbdFBIsy7+U6KmolvK+Av1G88GDac5SDoALb1Nt6s23fd8HIz6b4YnabHOdXGz3zPir1Q== - dependencies: - "@pixi/settings" "5.3.12" - -"@pixi/ticker@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.3.7.tgz" - integrity sha512-ZEXiJwPtuPeWa0QmRODF5qK0+ugZu/xeq7QxCvFOCc3NFVBeGms4g92HPucOju9R7jcODIoJxtICALsuwLAr9w== - dependencies: - "@pixi/settings" "5.3.7" - -"@pixi/utils@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.12.tgz#15add282a2ee6cc0d931d068caaed2b61eacf149" - integrity sha512-PU/L852YjVbTy/6fDKQtYji6Vqcwi5FZNIjK6JXKuDPF411QfJK3QBaEqJTrexzHlc9Odr0tYECjwtXkCUR02g== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/settings" "5.3.12" - earcut "^2.1.5" - eventemitter3 "^3.1.0" - url "^0.11.0" - -"@pixi/utils@5.3.7": - version "5.3.7" - resolved "https://registry.npmjs.org/@pixi/utils/-/utils-5.3.7.tgz" - integrity sha512-f8zAeHHURxfwBr8MZiXEIwY2h9wbS6vN0ypvapGvKFOexZ1EInTs35FhEiRWzLEPLHyn1RgCdKzR2zl++E4tIw== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/settings" "5.3.7" - earcut "^2.1.5" - eventemitter3 "^3.1.0" - url "^0.11.0" - -"@tensorflow-models/coco-ssd@^2.0.1": - version "2.2.2" - resolved "https://registry.npmjs.org/@tensorflow-models/coco-ssd/-/coco-ssd-2.2.2.tgz" - integrity sha512-Jey2JscmKEValcFZH2ZLz14s8KPRmVtfJ0d0M3dPhvBp9dJiGNanVXr/pJAY5OS7emKj9uSciGhdkHWXY9Hovw== - -"@tensorflow-models/posenet@^2.2.1": - version "2.2.2" - resolved "https://registry.npmjs.org/@tensorflow-models/posenet/-/posenet-2.2.2.tgz" - integrity sha512-0SXIksRet/IdX7WVH+JSD6W3upkGHix1hwtd3xykIoIMGR7zQ4SC5+wZcNt9ofASyxNYQoI+tUULUo4LNw0c3w== - -"@tensorflow/tfjs-converter@1.7.4", "@tensorflow/tfjs-converter@^1.5.2": - version "1.7.4" - resolved "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-1.7.4.tgz" - integrity sha512-B/Ux9I3osI0CXoESGR0Xe5C6BsEfC04+g2xn5zVaW9KEuVEnGEgnuBQxgijRFzkqTwoyLv4ptAmjyIghVARX0Q== - -"@tensorflow/tfjs-core@1.7.0": - version "1.7.0" - resolved "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.7.0.tgz" - integrity sha512-uwQdiklNjqBnHPeseOdG0sGxrI3+d6lybaKu2+ou3ajVeKdPEwpWbgqA6iHjq1iylnOGkgkbbnQ6r2lwkiIIHw== - dependencies: - "@types/offscreencanvas" "~2019.3.0" - "@types/seedrandom" "2.4.27" - "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.4" - node-fetch "~2.1.2" - seedrandom "2.4.3" - -"@tensorflow/tfjs-core@1.7.4", "@tensorflow/tfjs-core@^1.5.2": - version "1.7.4" - resolved "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.7.4.tgz" - integrity sha512-3G4VKJ6nPs7iCt6gs3bjRj8chihKrYWenf63R0pm7D9MhlrVoX/tpN4LYVMGgBL7jHPxMLKdOkoAZJrn/J88HQ== - dependencies: - "@types/offscreencanvas" "~2019.3.0" - "@types/seedrandom" "2.4.27" - "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.4" - node-fetch "~2.1.2" - seedrandom "2.4.3" - -"@tensorflow/tfjs-data@1.7.4": - version "1.7.4" - resolved "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-1.7.4.tgz" - integrity sha512-WFYG9wWjNDi62x6o3O20Q0XJxToCw2J4/fBEXiK/Gr0hIqVhl2oLQ1OjTWq7O08NUxM6BRzuG+ra3gWYdQUzOw== - dependencies: - "@types/node-fetch" "^2.1.2" - node-fetch "~2.1.2" - -"@tensorflow/tfjs-layers@1.7.4": - version "1.7.4" - resolved "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-1.7.4.tgz" - integrity sha512-5/K8Z8RBfXsucL6EaSeb3/8jB/I8oPaaXkxwKVsBPQ+u6lB6LEtSKzeiFc57nDr5OMtVaUZV+pKDNEzP0RUQlg== - -"@tensorflow/tfjs@^1.5.2": - version "1.7.4" - resolved "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-1.7.4.tgz" - integrity sha512-XWGwRQ/ECEoQacd74JY/dmbLdnMpwtq3H8tls45dQ+GJ553Advir1FDo/aQt0Yr6fTimQDeiOIG4Mcb5KduP/w== - dependencies: - "@tensorflow/tfjs-converter" "1.7.4" - "@tensorflow/tfjs-core" "1.7.4" - "@tensorflow/tfjs-data" "1.7.4" - "@tensorflow/tfjs-layers" "1.7.4" - -"@types/babel__core@^7.1.0": - version "7.1.19" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.17.1" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== - dependencies: - "@types/node" "*" - -"@types/connect-history-api-fallback@^1.3.5": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" - integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/createjs-lib@*": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/createjs-lib/-/createjs-lib-0.0.29.tgz" - integrity sha1-+uguO6hgZmOxkOeJzsfZxyj8Qdc= - -"@types/createjs@^0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/createjs/-/createjs-0.0.29.tgz" - integrity sha1-TRmw/qo4JS3NedeKOKTMbfPxgfw= - dependencies: - "@types/createjs-lib" "*" - "@types/easeljs" "*" - "@types/preloadjs" "*" - "@types/soundjs" "*" - "@types/tweenjs" "*" - -"@types/crypto-js@^4.0.1": - version "4.1.1" - resolved "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz" - integrity sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA== - -"@types/easeljs@*": - version "1.0.1" - resolved "https://registry.npmjs.org/@types/easeljs/-/easeljs-1.0.1.tgz" - integrity sha512-mu4oIs+2CbN60Vgq8DSt7aXR2I0tV9K2ev/ZIPlkyE5UvQ+xIvw8D3NDB4dnGFkvHN303faYcETIhuvNDm6siQ== - dependencies: - "@types/createjs-lib" "*" - "@types/tweenjs" "*" - -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - -"@types/eslint@*": - version "8.40.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.0.tgz#ae73dc9ec5237f2794c4f79efd6a4c73b13daf23" - integrity sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.35" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" - integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*", "@types/express@^4.17.13": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/hammerjs@^2.0.41": - version "2.0.41" - resolved "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz#f6ecf57d1b12d2befcce00e928a6a097c22980aa" - integrity sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA== - -"@types/html-minifier-terser@^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" - integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== - -"@types/http-proxy@^1.17.8": - version "1.17.11" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" - integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== - dependencies: - "@types/node" "*" - -"@types/isomorphic-fetch@^0.0.35": - version "0.0.35" - resolved "https://registry.npmjs.org/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz" - integrity sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - -"@types/jquery@^3.3.38": - version "3.5.14" - resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz" - integrity sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg== - dependencies: - "@types/sizzle" "*" - -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": - version "7.0.11" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/lodash@^4.14.155": - version "4.14.182" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" - integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/node-fetch@^2.1.2": - version "2.6.1" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz" - integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*": - version "17.0.29" - resolved "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz" - integrity sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA== - -"@types/node@^14.0.11": - version "14.18.16" - resolved "https://registry.npmjs.org/@types/node/-/node-14.18.16.tgz" - integrity sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q== - -"@types/offscreencanvas@~2019.3.0": - version "2019.3.0" - resolved "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz" - integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q== - -"@types/pixi.js@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/pixi.js/-/pixi.js-5.0.0.tgz#3fbd6d9d26cb563a0f2870e0ea767bc62dddf1b8" - integrity sha512-yZqQBR043lRBlBZci2cx6hgmX0fvBfYIqFm6VThlnueXEjitxd3coy+BGsqsZ7+ary7O//+ks4aJRhC5MJoHqA== - dependencies: - pixi.js "*" - -"@types/preloadjs@*": - version "0.6.32" - resolved "https://registry.npmjs.org/@types/preloadjs/-/preloadjs-0.6.32.tgz" - integrity sha1-Es/3x/kuODingNQ4zknIzsmBgw0= - dependencies: - "@types/createjs-lib" "*" - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== - -"@types/seedrandom@2.4.27": - version "2.4.27" - resolved "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz" - integrity sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE= - -"@types/send@*": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" - integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.1" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" - integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== - dependencies: - "@types/mime" "*" - "@types/node" "*" - -"@types/sizzle@*": - version "2.3.3" - resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== - -"@types/socket.io-client@^1.4.33": - version "1.4.36" - resolved "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.36.tgz" - integrity sha512-ZJWjtFBeBy1kRSYpVbeGYTElf6BqPQUkXDlHHD4k/42byCN5Rh027f4yARHCink9sKAkbtGZXEAmR0ZCnc2/Ag== - -"@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== - dependencies: - "@types/node" "*" - -"@types/soundjs@*": - version "0.6.28" - resolved "https://registry.npmjs.org/@types/soundjs/-/soundjs-0.6.28.tgz" - integrity sha512-K3ktwPvYfQrH+qGEe1tgxC5o4rJC7CVxQmL9Cz9tgVq0oW99PmPfRp1F7YXELibCvV3lieD4E0sUZvnDEKWaPg== - dependencies: - "@types/createjs-lib" "*" - "@types/preloadjs" "*" - -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - -"@types/tweenjs@*": - version "1.0.4" - resolved "https://registry.npmjs.org/@types/tweenjs/-/tweenjs-1.0.4.tgz" - integrity sha512-UnGcZRjGYz2w+2LB/70QkzWjtqOcTu4Nxa/Cy9YZ4I8HU44kcayNgbXZYMQu4ll7z+1GP7r1+viqLKNv7+Mrzw== - dependencies: - "@types/createjs-lib" "*" - -"@types/webgl-ext@0.0.30": - version "0.0.30" - resolved "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz" - integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== - -"@types/webgl2@0.0.4": - version "0.0.4" - resolved "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.4.tgz" - integrity sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw== - -"@types/webpack-env@^1.15.2": - version "1.16.4" - resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.4.tgz" - integrity sha512-llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw== - -"@types/ws@^8.5.1": - version "8.5.4" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" - integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== - dependencies: - "@types/node" "*" - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^13.0.0": - version "13.0.12" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz" - integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/experimental-utils@3.10.1": - version "3.10.1" - resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz" - integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^3.0.0", "@typescript-eslint/parser@^3.1.0": - version "3.10.1" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz" - integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "3.10.1" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== - -"@typescript-eslint/typescript-estree@3.10.1": - version "3.10.1" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== - dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== - dependencies: - eslint-visitor-keys "^1.1.0" - -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== - -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== - -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== - -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== - -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.0.tgz#b59b33377b1b896a9a7357cfc643b39c1524b1e6" - integrity sha512-K/vuv72vpfSEZoo5KIU0a2FsEoYdW0DUMtMpB5X3LlUwshetMZRZRxB7sCsVji/lFaSxtQQ3aM9O4eMolXkU9w== - -"@webpack-cli/info@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0" - integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA== - -"@webpack-cli/serve@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.4.tgz#3982ee6f8b42845437fc4d391e93ac5d9da52f0f" - integrity sha512-0xRgjgDLdz6G7+vvDLlaRpFatJaJ69uTalZLRSMX5B3VUrDmXcrVA3+6fXXQgmYz7bY9AAgs348XQdmtLsK41A== - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abab@^2.0.0: - version "2.0.6" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-globals@^4.1.0: - version "4.3.4" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== - -acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn@^5.5.3: - version "5.7.4" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.0.1: - version "6.4.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.1, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.5.0, acorn@^8.7.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -acorn@^8.8.2: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@^8.9.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^4.0.0, ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assertion-error@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.4.1, async@^2.6.2: - version "2.6.4" - resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -audiobuffer-to-wav@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/audiobuffer-to-wav/-/audiobuffer-to-wav-1.0.0.tgz" - integrity sha1-1bQyJxRV5/7laxEc0PjWINf54QU= - -autoprefixer@^9.4.3: - version "9.8.8" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== - dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" - -babel-loader@^8.0.6: - version "8.2.5" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz" - integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz" - integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - find-up "^3.0.0" - istanbul-lib-instrument "^3.3.0" - test-exclude "^5.2.3" - -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== - dependencies: - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" - -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== - dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-arraybuffer@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" - integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz" - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird@^3.3.0: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -body-parser@^1.16.1: - version "1.20.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.10.3" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour-service@^1.0.11: - version "1.1.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" - integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== - dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.20.3: - version "4.20.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== - dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" - -browserslist@^4.14.5: - version "4.21.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551" - integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA== - dependencies: - caniuse-lite "^1.0.30001489" - electron-to-chromium "^1.4.411" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" - -browserslist@^4.21.9: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== - dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" - node-releases "^2.0.13" - update-browserslist-db "^1.0.11" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -can-use-dom@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz" - integrity sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo= - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001332: - version "1.0.30001334" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz" - integrity sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw== - -caniuse-lite@^1.0.30001489: - version "1.0.30001492" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001492.tgz#4a06861788a52b4c81fd3344573b68cc87fe062b" - integrity sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw== - -caniuse-lite@^1.0.30001517: - version "1.0.30001518" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001518.tgz#b3ca93904cb4699c01218246c4d77a71dbe97150" - integrity sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chai@^3.2.0: - version "3.5.0" - resolved "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz" - integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= - dependencies: - assertion-error "^1.0.1" - deep-eql "^0.1.3" - type-detect "^1.0.0" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chokidar@^3.0.0, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@^5.2.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" - integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== - dependencies: - source-map "~0.6.0" - -clean-webpack-plugin@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-1.0.1.tgz" - integrity sha512-gvwfMsqu3HBgTVvaBa1H3AZKO03CHpr5uP92SPIktP3827EovAitwW+1xoqXyTxCuXnLYpMHG5ytS4AoukHDWA== - dependencies: - rimraf "^2.6.1" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorette@^2.0.10, colorette@^2.0.14: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -colors@^1.1.0: - version "1.4.0" - resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -common-tags@^1.4.0: - version "1.8.2" - resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -complex.js@^2.0.11: - version "2.1.1" - resolved "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz" - integrity sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg== - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-emitter@^1.2.1, component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - -connect@^3.6.0: - version "3.7.0" - resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.4.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -copy-anything@^2.0.1: - version "2.0.6" - resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz" - integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== - dependencies: - is-what "^3.14.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.22.3" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.3.tgz" - integrity sha512-wliMbvPI2idgFWpFe7UEyHMvu6HWgW8WA+HnDRtgzoSDYvXFMpoGX1H3tPDDXrcfUSyXafCLDd7hOeMQHEZxGw== - dependencies: - browserslist "^4.20.3" - semver "7.0.0" - -core-js@^2.6.2: - version "2.6.12" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.6.4: - version "3.22.3" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.22.3.tgz" - integrity sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cross-env@^5.1.4: - version "5.2.1" - resolved "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz" - integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ== - dependencies: - cross-spawn "^6.0.5" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-js@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz" - integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@^3.2.0: - version "3.6.0" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@^4.1.3: - version "4.3.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.8" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" - -cuid@^2.1.6: - version "2.1.8" - resolved "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz" - integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg== - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -date-format@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz" - integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.2.6: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^3.2.6: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-eql@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz" - integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= - dependencies: - type-detect "0.1.1" - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.4" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/di/-/di-0.0.1.tgz" - integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= - -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== - -diff@3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -dlv@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^5.2.2: - version "5.6.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" - integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domelementtype@1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.5.2, domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -earcut@^2.1.5: - version "2.2.3" - resolved "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz" - integrity sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.4.118: - version "1.4.124" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.124.tgz" - integrity sha512-VhaE9VUYU6d2eIb+4xf83CATD+T+3bTzvxvlADkQE+c2hisiw3sZmvEDtsW704+Zky9WZGhBuQXijDVqSriQLA== - -electron-to-chromium@^1.4.411: - version "1.4.416" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.416.tgz#7291f704168d3842ae4da3ae9fdc7bfbeb97d116" - integrity sha512-AUYh0XDTb2vrj0rj82jb3P9hHSyzQNdTPYWZIhPdCOui7/vpme7+HTE07BE5jwuqg/34TZ8ktlRz6GImJ4IXjA== - -electron-to-chromium@^1.4.477: - version "1.4.482" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.482.tgz#77c5ed37b93d4dda860e27538e0e2a01d6a19e02" - integrity sha512-h+UqpfmEr1Qkk0zp7ej/jid7CXoq4m4QzW6wNTb0ELJ/BZCpA4wgUylBIMGCe621tnr4l5VmoHjdoSx2lbnNJA== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-client@~3.5.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.2.tgz#0ef473621294004e9ceebe73cef0af9e36f2f5fa" - integrity sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~7.4.2" - xmlhttprequest-ssl "~1.6.2" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io-parser@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" - integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.4" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== - dependencies: - accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" - -enhanced-resolve@^5.0.0, enhanced-resolve@^5.14.1: - version "5.14.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" - integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== - -errno@^0.1.1: - version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.19.1: - version "1.19.5" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz" - integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-module-lexer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" - integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-promise-polyfill@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz" - integrity sha1-84kl8jyz4+jObNqP93T867sJDN4= - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-latex@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz" - integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^1.9.1: - version "1.14.3" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^6.11.0: - version "6.15.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== - dependencies: - get-stdin "^6.0.0" - -eslint-loader@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz" - integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== - dependencies: - find-cache-dir "^3.3.1" - fs-extra "^8.1.0" - loader-utils "^2.0.0" - object-hash "^2.0.3" - schema-utils "^2.6.5" - -eslint-plugin-prettier@^3.1.3: - version "3.4.1" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-rule-composer@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz" - integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== - -eslint-scope@5.1.1, eslint-scope@^5.0.0, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^2.0.0, eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint@7.32.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^7.0.0" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.3" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^6.1.2, espree@^6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.0.1, esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0, events@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== - dependencies: - "@jest/types" "^24.9.0" - ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" - -express@^4.17.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-text-webpack-plugin@^4.0.0-beta.0: - version "4.0.0-beta.0" - resolved "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz" - integrity sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA== - dependencies: - async "^2.4.1" - loader-utils "^1.1.0" - schema-utils "^0.4.5" - webpack-sources "^1.1.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -face-api.js@^0.22.1: - version "0.22.2" - resolved "https://registry.npmjs.org/face-api.js/-/face-api.js-0.22.2.tgz" - integrity sha512-9Bbv/yaBRTKCXjiDqzryeKhYxmgSjJ7ukvOvEBy6krA0Ah/vNBlsf7iBNfJljWiPA8Tys1/MnB3lyP2Hfmsuyw== - dependencies: - "@tensorflow/tfjs-core" "1.7.0" - tslib "^1.11.1" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastest-levenshtein@^1.0.12: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-loader@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz" - integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" - -file-saver@^2.0.2: - version "2.0.5" - resolved "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz" - integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flat@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" - integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== - dependencies: - is-buffer "~2.0.3" - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== - -follow-redirects@^1.0.0: - version "1.14.9" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== - -fontfaceonload@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/fontfaceonload/-/fontfaceonload-1.0.2.tgz" - integrity sha1-t4O00lKrVZoHO2l1hsSc0hyP9ec= - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^4.0.12: - version "4.2.0" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-monkey@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" - integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@7.1.3: - version "7.1.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.6.0, globals@^13.9.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== - dependencies: - type-fest "^0.20.2" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -hammerjs@^2.0.8: - version "2.0.8" - resolved "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz" - integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE= - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.2.0, he@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-minifier-terser@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" - integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -html-webpack-plugin@^5.5.3: - version "5.5.3" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" - integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== - dependencies: - "@types/html-minifier-terser" "^6.0.0" - html-minifier-terser "^6.0.2" - lodash "^4.17.21" - pretty-error "^4.0.0" - tapable "^2.0.0" - -html-webpack-template@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/html-webpack-template/-/html-webpack-template-6.2.0.tgz" - integrity sha512-wyzIjbe9yXGyQ6yAeFjWmku7YOlW85w1dxqLnAQ564uRNNoBhpZVTQl7ouROoyQrfZUSoPUJiw7oWn31NDiuQQ== - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.6" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz" - integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== - -http-proxy-middleware@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.13.0, http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -inquirer@^7.0.0: - version "7.3.3" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -interpret@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" - integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== - -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" - integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-any-array@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-any-array/-/is-any-array-2.0.0.tgz#e71bc13741537c06afac03c07885967ef56d8742" - integrity sha512-WdPV58rT3aOWXvvyuBydnCq4S2BM1Yz8shKxlEpk/6x+GX202XRvXOycEFtNgnHVLoc46hpexPFx8Pz1/sMS0w== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@~2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.11.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-what@^3.14.1: - version "3.14.1" - resolved "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz" - integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isbinaryfile@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -ismobilejs@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz" - integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isomorphic-fetch@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - -istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-report@^2.0.4: - version "2.0.8" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" - -istanbul-lib-source-maps@^3.0.1: - version "3.0.6" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^2.2.6: - version "2.2.7" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz" - integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== - dependencies: - html-escaper "^2.0.0" - -javascript-natural-sort@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz" - integrity sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k= - -jest-changed-files@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz" - integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== - dependencies: - "@jest/types" "^24.9.0" - execa "^1.0.0" - throat "^4.0.0" - -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz" - integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== - dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - import-local "^2.0.0" - is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^13.3.0" - -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" - -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== - dependencies: - chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== - dependencies: - detect-newline "^2.1.0" - -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== - dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - jsdom "^11.5.1" - -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== - -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== - dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" - -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^24.9.0" - is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== - dependencies: - chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== - dependencies: - "@jest/types" "^24.9.0" - -jest-pnp-resolver@^1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz" - integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== - -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz" - integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== - dependencies: - "@jest/types" "^24.9.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" - -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== - dependencies: - "@jest/types" "^24.9.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" - -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" - -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== - -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" - -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" - -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== - dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" - -jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz" - integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== - dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - jest-util "^24.9.0" - string-length "^2.0.0" - -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz" - integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== - dependencies: - import-local "^2.0.0" - jest-cli "^24.9.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@3.13.1: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -json5@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -karma-chai@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz" - integrity sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o= - -karma-chrome-launcher@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz" - integrity sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ== - dependencies: - which "^1.2.1" - -karma-mocha@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz" - integrity sha1-7qrH/8DiAetjxGdEDStpx883eL8= - dependencies: - minimist "1.2.0" - -karma@^4.2.0: - version "4.4.1" - resolved "https://registry.npmjs.org/karma/-/karma-4.4.1.tgz" - integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - braces "^3.0.2" - chokidar "^3.0.0" - colors "^1.1.0" - connect "^3.6.0" - di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.14" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" - source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -launch-editor@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" - integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.7.3" - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - -less-loader@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz" - integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^4.0.1" - -less@^3.10.1: - version "3.13.1" - resolved "https://registry.npmjs.org/less/-/less-3.13.1.tgz" - integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== - dependencies: - copy-anything "^2.0.1" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - native-request "^1.0.5" - source-map "~0.6.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -libsvm-js@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/libsvm-js/-/libsvm-js-0.2.1.tgz#607a0b073fb0a635546ca5b93b7205282051a877" - integrity sha512-tN9gh91NCAwSIhjgG3y8pdKETTwnwFvvSFNIrQQuJGVtAu0SO6Y43D7OEKMSVhQLQkgLADlDaqo9uxNGVEzJEA== - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.6.0, lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== - dependencies: - date-format "^2.0.0" - debug "^4.1.1" - flatted "^2.0.0" - rfdc "^1.1.4" - streamroller "^1.0.6" - -loglevel-colored-level-prefix@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz" - integrity sha1-akAhj9x64V/HbD0PPmdsRlOIYD4= - dependencies: - chalk "^1.1.3" - loglevel "^1.4.1" - -loglevel@^1.4.1: - version "1.8.0" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz" - integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@4.1.x: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -mathjs@^7.1.0: - version "7.6.0" - resolved "https://registry.npmjs.org/mathjs/-/mathjs-7.6.0.tgz" - integrity sha512-abywR28hUpKF4at5jE8Ys+Kigk40eKMT5mcBLD0/dtsqjfOLbtzd3WjlRqIopNo7oQ6FME51qph6lb8h/bhpUg== - dependencies: - complex.js "^2.0.11" - decimal.js "^10.2.1" - escape-latex "^1.2.0" - fraction.js "^4.0.12" - javascript-natural-sort "^0.7.1" - seed-random "^2.2.0" - tiny-emitter "^2.1.0" - typed-function "^2.0.0" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memfs@^3.4.3: - version "3.5.1" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.1.tgz#f0cd1e2bfaef58f6fe09bfb9c2288f07fea099ec" - integrity sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA== - dependencies: - fs-monkey "^1.0.3" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.0, micromatch@^4.0.2: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.0.3, mime@^2.3.1: - version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mini-css-extract-plugin@^2.7.6: - version "2.7.6" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" - integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== - dependencies: - schema-utils "^4.0.0" - -mini-signals@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mini-signals/-/mini-signals-1.2.0.tgz" - integrity sha1-RbCAE8X65RokqhqTXNMXye1yHXQ= - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.2, minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.4: - version "0.5.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz" - integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== - dependencies: - minimist "^1.2.5" - -mkdirp@^0.5.1, mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -ml-array-max@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/ml-array-max/-/ml-array-max-1.2.4.tgz#2373e2b7e51c8807e456cc0ef364c5863713623b" - integrity sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ== - dependencies: - is-any-array "^2.0.0" - -ml-array-mean@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/ml-array-mean/-/ml-array-mean-1.1.6.tgz#d951a700dc8e3a17b3e0a583c2c64abd0c619c56" - integrity sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ== - dependencies: - ml-array-sum "^1.1.6" - -ml-array-min@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/ml-array-min/-/ml-array-min-1.2.3.tgz#662f027c400105816b849cc3cd786915d0801495" - integrity sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q== - dependencies: - is-any-array "^2.0.0" - -ml-array-rescale@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz#c4d129320d113a732e62dd963dc1695bba9a5340" - integrity sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ== - dependencies: - is-any-array "^2.0.0" - ml-array-max "^1.2.4" - ml-array-min "^1.2.3" - -ml-array-sum@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/ml-array-sum/-/ml-array-sum-1.1.6.tgz#d1d89c20793cd29c37b09d40e85681aa4515a955" - integrity sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw== - dependencies: - is-any-array "^2.0.0" - -ml-cart@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ml-cart/-/ml-cart-2.1.1.tgz#18ff8d51f5002cb6c5caba0609ba4734f1fa07f3" - integrity sha512-f6rIj4EzbjqKLJa2Qmm5AjZ0WVgk+Y7J1N/+pQVaFr0d4oM1uZPLOh5h665LyH+bLBHTFEbvSR4OLKmJRQ8KfA== - dependencies: - ml-array-mean "^1.1.5" - ml-matrix "^6.8.2" - -ml-matrix@^6.8.2: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ml-matrix/-/ml-matrix-6.10.2.tgz#520f42322c34c0ed7a9916c11f9d693167d197b6" - integrity sha512-+yxwzMazC76DAsgEvDrdCfRMH7+lO7UdnuWllavnPeWkPD2oIBA6rLzvst7BFYUxzgRz/h6V6lLzYIYtTvINbw== - dependencies: - is-any-array "^2.0.0" - ml-array-rescale "^1.3.7" - -mocha@^6.2.0: - version "6.2.3" - resolved "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz" - integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "2.2.0" - minimatch "3.0.4" - mkdirp "0.5.4" - ms "2.1.1" - node-environment-flags "1.0.5" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -native-request@^1.0.5: - version "1.1.0" - resolved "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz" - integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-environment-flags@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz" - integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-fetch@~2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz" - integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= - -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-notifier@^5.4.2: - version "5.4.5" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz" - integrity sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ== - dependencies: - growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" - -node-releases@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" - integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== - -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== - -node-releases@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== - dependencies: - boolbase "^1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -nwsapi@^2.0.7: - version "2.2.0" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^2.0.3: - version "2.2.0" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz" - integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== - -object-inspect@^1.12.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object-keys@^1.0.11, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.5" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^8.0.9: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1, optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-each-series@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz" - integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= - dependencies: - p-reduce "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== - dependencies: - "@types/retry" "0.12.0" - retry "^0.13.1" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-uri@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/parse-uri/-/parse-uri-1.0.7.tgz" - integrity sha512-eWuZCMKNlVkXrEoANdXxbmqhu2SQO9jUMCSpdbJDObin0JxISn6e400EWsSRbr/czdKvWKkhZnMKEGUwf/Plmg== - -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - -parseqs@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" - integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" - integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.1: - version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pixi.js@*, pixi.js@5.3.7: - version "5.3.7" - resolved "https://registry.npmjs.org/pixi.js/-/pixi.js-5.3.7.tgz" - integrity sha512-DyFTn6sHB6njtBd879OCx7UZpt8dpVtOSNuLAdVaWZ2GhAFsTY59n07Ol0f+zx07QtpCmSt1P3pXGHjt9sPzbw== - dependencies: - "@pixi/accessibility" "5.3.7" - "@pixi/app" "5.3.7" - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/extract" "5.3.7" - "@pixi/filter-alpha" "5.3.7" - "@pixi/filter-blur" "5.3.7" - "@pixi/filter-color-matrix" "5.3.7" - "@pixi/filter-displacement" "5.3.7" - "@pixi/filter-fxaa" "5.3.7" - "@pixi/filter-noise" "5.3.7" - "@pixi/graphics" "5.3.7" - "@pixi/interaction" "5.3.7" - "@pixi/loaders" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/mesh" "5.3.7" - "@pixi/mesh-extras" "5.3.7" - "@pixi/mixin-cache-as-bitmap" "5.3.7" - "@pixi/mixin-get-child-by-name" "5.3.7" - "@pixi/mixin-get-global-position" "5.3.7" - "@pixi/particles" "5.3.7" - "@pixi/polyfill" "5.3.7" - "@pixi/prepare" "5.3.7" - "@pixi/runner" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/sprite-animated" "5.3.7" - "@pixi/sprite-tiling" "5.3.7" - "@pixi/spritesheet" "5.3.7" - "@pixi/text" "5.3.7" - "@pixi/text-bitmap" "5.3.7" - "@pixi/ticker" "5.3.7" - "@pixi/utils" "5.3.7" - -pixi.js@5.3.12: - version "5.3.12" - resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.12.tgz#1ae667dc066665b536269b0695406811a63b92fe" - integrity sha512-XZzUhrq/m6fx3E0ESv/zXKEVR/GW82dPmbwdapIqsgAldKT2QqBYMfz1WuPf+Q9moPapywVNjjyxPvh+DNPmIg== - dependencies: - "@pixi/accessibility" "5.3.12" - "@pixi/app" "5.3.12" - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/extract" "5.3.12" - "@pixi/filter-alpha" "5.3.12" - "@pixi/filter-blur" "5.3.12" - "@pixi/filter-color-matrix" "5.3.12" - "@pixi/filter-displacement" "5.3.12" - "@pixi/filter-fxaa" "5.3.12" - "@pixi/filter-noise" "5.3.12" - "@pixi/graphics" "5.3.12" - "@pixi/interaction" "5.3.12" - "@pixi/loaders" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/mesh" "5.3.12" - "@pixi/mesh-extras" "5.3.12" - "@pixi/mixin-cache-as-bitmap" "5.3.12" - "@pixi/mixin-get-child-by-name" "5.3.12" - "@pixi/mixin-get-global-position" "5.3.12" - "@pixi/particles" "5.3.12" - "@pixi/polyfill" "5.3.12" - "@pixi/prepare" "5.3.12" - "@pixi/runner" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/sprite-animated" "5.3.12" - "@pixi/sprite-tiling" "5.3.12" - "@pixi/spritesheet" "5.3.12" - "@pixi/text" "5.3.12" - "@pixi/text-bitmap" "5.3.12" - "@pixi/ticker" "5.3.12" - "@pixi/utils" "5.3.12" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-flexbugs-fixes@^4.1.0: - version "4.2.1" - resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz" - integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== - dependencies: - postcss "^7.0.26" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.10" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prettier-eslint@^10.1.1: - version "10.1.1" - resolved "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-10.1.1.tgz" - integrity sha512-TtYxuFUMVxudJTSnPScaBqHZm/48ndvX3KLFzhejJYbRzRybmM9RdBfn9YzgN0itfPrYxCesIZGJqyXXZJOR2w== - dependencies: - "@typescript-eslint/parser" "^3.0.0" - common-tags "^1.4.0" - dlv "^1.1.0" - eslint "^6.8.0" - indent-string "^4.0.0" - lodash.merge "^4.6.0" - loglevel-colored-level-prefix "^1.0.0" - prettier "^1.7.0" - pretty-format "^23.0.1" - require-relative "^0.8.7" - typescript "^3.9.3" - vue-eslint-parser "~7.1.0" - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^1.18.2, prettier@^1.7.0: - version "1.19.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - -pretty-error@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" - integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== - dependencies: - lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-format@^23.0.1: - version "23.6.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz" - integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" - -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qjobs@^1.1.4: - version "1.2.0" - resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - -qs@6.10.3: - version "6.10.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -readable-stream@^2.0.1: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== - dependencies: - util.promisify "^1.0.0" - -rechoir@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" - integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== - dependencies: - resolve "^1.20.0" - -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== - dependencies: - jsesc "~0.5.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" - integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^6.0.1" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.5: - version "1.0.9" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.87.0: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz" - integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resize-observer-polyfill@^1.5.0: - version "1.5.1" - resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.10.0, resolve@^1.14.2: - version "1.22.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.20.0: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resource-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/resource-loader/-/resource-loader-3.0.1.tgz" - integrity sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA== - dependencies: - mini-signals "^1.2.0" - parse-uri "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -rfdc@^1.1.4: - version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^0.4.5: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0: - version "2.7.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" - integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.1.tgz#eb2d042df8b01f4b5c276a2dfd41ba0faab72e8d" - integrity sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -scrollbarwidth@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/scrollbarwidth/-/scrollbarwidth-0.1.3.tgz" - integrity sha1-Gw3mTiiMOMQn9KAf4ApGKgS5T98= - -seed-random@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz" - integrity sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ= - -seedrandom@2.4.3: - version "2.4.3" - resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz" - integrity sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw= - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== - dependencies: - node-forge "^1" - -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.2.1, semver@^7.3.2: - version "7.3.7" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.4: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -simplebar@^3.1.1: - version "3.1.5" - resolved "https://registry.npmjs.org/simplebar/-/simplebar-3.1.5.tgz" - integrity sha512-6hPEvcUEbgRWAyldqdd5yd1OcrnxelopEOKwMwOafLc0/Kc3Um2x1US8t+feUAA5ae+lTbrQwcGJvMH+9A23FA== - dependencies: - can-use-dom "^0.1.0" - core-js "^2.6.2" - lodash.debounce "^4.0.8" - lodash.memoize "^4.1.2" - lodash.throttle "^4.1.1" - resize-observer-polyfill "^1.5.0" - scrollbarwidth "^0.1.3" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -skmeans@^0.11.3: - version "0.11.3" - resolved "https://registry.npmjs.org/skmeans/-/skmeans-0.11.3.tgz" - integrity sha512-nccEnlSeOMNAYM9ETMSq+m15u8g0KRCIvH2an/ROTx4Igmci/j3oYHBPGdAeGjhR7knAVoIIQwr/wy2dN/eKQA== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== - -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.2.0" - to-array "0.1.4" - -socket.io-client@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" - integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "~1.3.0" - debug "~3.1.0" - engine.io-client "~3.5.0" - has-binary2 "~1.0.2" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" - integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== - dependencies: - component-emitter "~1.3.0" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== - dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -source-list-map@^2.0.0, source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.6, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== - dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" - -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz" - integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= - dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -style-loader@^0.20.2: - version "0.20.3" - resolved "https://registry.npmjs.org/style-loader/-/style-loader-0.20.3.tgz" - integrity sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg== - dependencies: - loader-utils "^1.1.0" - schema-utils "^0.4.5" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== - dependencies: - has-flag "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -table@^5.2.3: - version "5.4.6" - resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -table@^6.0.9: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -terser-webpack-plugin@^5.3.7, terser-webpack-plugin@^5.3.9: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.17" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.16.8" - -terser@^5.10.0: - version "5.20.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.20.0.tgz#ea42aea62578703e33def47d5c5b93c49772423e" - integrity sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -terser@^5.16.8: - version "5.17.6" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.6.tgz#d810e75e1bb3350c799cd90ebefe19c9412c12de" - integrity sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz" - integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-emitter@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -ts-loader@^9.4.3: - version "9.4.3" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.3.tgz#55cfa7c28dd82a2de968ae45c3adb75fb888b27e" - integrity sha512-n3hBnm6ozJYzwiwt5YRiJZkzktftRpMiBApHaJPoWLA+qetQBAXkHqCLM6nwSdRDimqVtA5ocIkcTRLMTt7yzA== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - -tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.3: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tsutils@^3.17.1: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz" - integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= - -type-detect@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz" - integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI= - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typed-function@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/typed-function/-/typed-function-2.1.0.tgz" - integrity sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ== - -typescript@^3.9.3: - version "3.9.10" - resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz" - integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== - -typescript@^4.7.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -ua-parser-js@^1.0.35: - version "1.0.35" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" - integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== - -uid@^0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/uid/-/uid-0.0.2.tgz" - integrity sha1-XkpdS3gTi09w+J/Tx2/FmqnS8QM= - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -unbox-primitive@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz" - integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - for-each "^0.3.3" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.1" - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= - -vue-eslint-parser@~7.1.0: - version "7.1.1" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.1.1.tgz" - integrity sha512-8FdXi0gieEwh1IprIBafpiJWcApwrU+l2FEj8c1HtHFdNXMd0+2jUSjBVmcQYohf/E72irwAXEXLga6TQcB3FA== - dependencies: - debug "^4.1.1" - eslint-scope "^5.0.0" - eslint-visitor-keys "^1.1.0" - espree "^6.2.1" - esquery "^1.0.1" - lodash "^4.17.15" - -w3c-hr-time@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webpack-cli@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.1.tgz#c211ac6d911e77c512978f7132f0d735d4a97ace" - integrity sha512-OLJwVMoXnXYH2ncNGU8gxVpUtm3ybvdioiTvHgUyBuyMLKiVvWy+QObzBsMtp5pH7qQoEuWgeEUQ/sU3ZJFzAw== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.0" - "@webpack-cli/info" "^2.0.1" - "@webpack-cli/serve" "^2.0.4" - colorette "^2.0.14" - commander "^10.0.1" - cross-spawn "^7.0.3" - envinfo "^7.7.3" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^3.1.1" - rechoir "^0.8.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== - dependencies: - colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^4.15.0: - version "4.15.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz#87ba9006eca53c551607ea0d663f4ae88be7af21" - integrity sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" - ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.13.0" - -webpack-manifest-plugin@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-5.0.0.tgz#084246c1f295d1b3222d36e955546433ca8df803" - integrity sha512-8RQfMAdc5Uw3QbCQ/CBV/AXqOR8mt03B6GJmRbhWopE8GzRfEpn+k0ZuWywxW+5QZsffhmFDY1J6ohqJo+eMuw== - dependencies: - tapable "^2.0.0" - webpack-sources "^2.2.0" - -webpack-merge@^5.7.3, webpack-merge@^5.9.0: - version "5.9.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" - integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-sources@^1.1.0: - version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" - integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack-strip-block@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/webpack-strip-block/-/webpack-strip-block-0.3.0.tgz#e864c8d71fade02c55332f7fb34f7970ba5076c8" - integrity sha512-rXN+SI6S7tzUr1Jvhq3Rcl2bGfpY5ZC9XSRm2rH68eYkDheCczEs61iir1A00iv1Nt8FY1J6BDRgXKtil+fk+g== - dependencies: - loader-utils "^1.1.0" - -webpack@^5.85.0: - version "5.85.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.85.0.tgz#c14a6a3a91f84d67c450225661fda8da36bc7f49" - integrity sha512-7gazTiYqwo5OSqwH1tigLDL2r3qDeP2dOKYgd+LlXpsUMqDTklg6tOghexqky0/+6QY38kb/R/uRPUleuL43zg== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" - acorn "^8.7.1" - acorn-import-assertions "^1.9.0" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.14.1" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.2" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: - version "1.0.5" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-fetch@>=0.10.0: - version "3.6.2" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz" - integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@1.3.1, which@^1.2.1, which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -wildcard@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -worker-loader@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37" - integrity sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz" - integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write@1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@^5.2.0: - version "5.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" - integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== - dependencies: - async-limiter "~1.0.0" - -ws@^8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@~7.4.2: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -xmlhttprequest-ssl@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" - integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== - -xss-filters@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/xss-filters/-/xss-filters-1.2.7.tgz" - integrity sha1-Wfod4gHzby80cNysX1jMwoMLCpo= - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@13.1.2, yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - -yargs@13.3.2, yargs@^13.3.0: - version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From cf688df8b861d3fc4eb36ba8aa8d0b985076a5b8 Mon Sep 17 00:00:00 2001 From: JinHo Kim Date: Wed, 23 Oct 2024 19:15:06 +0900 Subject: [PATCH 60/65] checkout .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index afcc4bd53f..8bf4b73004 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,3 @@ extern/closure-library .idea/ dist/ -yarn.lock From 4a39ff3cb428c9bf5fd9cba5eef0ca1533d4c484 Mon Sep 17 00:00:00 2001 From: lee Date: Thu, 24 Oct 2024 21:29:58 +0900 Subject: [PATCH 61/65] =?UTF-8?q?knn=20=EB=AA=A8=EB=8D=B8=EC=97=90?= =?UTF-8?q?=EC=84=9C=20export=20import=EC=8B=9C=EC=97=90=20result=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/class/learning/NumberClassification.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/class/learning/NumberClassification.js b/src/class/learning/NumberClassification.js index 60698efcb6..bc38e8e3c6 100644 --- a/src/class/learning/NumberClassification.js +++ b/src/class/learning/NumberClassification.js @@ -33,6 +33,7 @@ class NumberClassification { #fields = []; #predictField = []; #loadModel; + constructor(params = {}) { this.#view = new LearningView({ name: params.name || '', status: 0 }); // 정지시 data 초기화. @@ -42,9 +43,10 @@ class NumberClassification { this.init({ ...params }); } - init({ name, url, table, trainParam, modelId, loadModel }) { + init({ name, url, table, trainParam, modelId, loadModel, result }) { this.#name = name; this.#table = table; + this.result = result; this.#trainCallback = (value) => { this.#view.setValue(value); }; @@ -68,7 +70,7 @@ class NumberClassification { setTable() { const tableSource = DataTable.getSource(this.#table.id); - if (this.#table.fieldsInfo.length !== tableSource.fields.length) { + if (this.#table?.fieldsInfo?.length !== tableSource?.fields?.length) { Entry.toast.alert(Lang.Msgs.warn, Lang.AiLearning.train_param_error); throw Error(Lang.AiLearning.train_param_error); } @@ -148,6 +150,10 @@ class NumberClassification { return this.#predictResult; } + getTrainResult() { + return this.result; + } + getLabels() { const { data: trainData, labels } = convertTableToKnnData(this.#table); return _uniq(labels[0]).sort((a, b) => String(a).localeCompare(String(b))); From 91620c4d2736ef24b13c3885ebc05fb6871ca7f0 Mon Sep 17 00:00:00 2001 From: lee Date: Thu, 24 Oct 2024 21:31:08 +0900 Subject: [PATCH 62/65] =?UTF-8?q?=EB=8B=A4=EC=8B=9C=20=ED=95=99=EC=8A=B5?= =?UTF-8?q?=ED=95=98=EA=B8=B0=EC=8B=9C=EC=97=90=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EB=A9=94=EC=84=B8=EC=A7=80=20=EB=85=B8=EC=B6=9C=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/class/learning/Cluster.js | 2 +- src/class/learning/LearningBase.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/class/learning/Cluster.js b/src/class/learning/Cluster.js index 7389bd1794..17df7ca2b5 100644 --- a/src/class/learning/Cluster.js +++ b/src/class/learning/Cluster.js @@ -76,7 +76,7 @@ class Cluster { setTable() { const tableSource = DataTable.getSource(this.#table.id); - if (this.#table.fieldsInfo.length !== tableSource.fields.length) { + if (this.#table?.fieldsInfo?.length !== tableSource?.fields?.length) { Entry.toast.alert(Lang.Msgs.warn, Lang.AiLearning.train_param_error); throw Error(Lang.AiLearning.train_param_error); } diff --git a/src/class/learning/LearningBase.ts b/src/class/learning/LearningBase.ts index 906a3d87b1..16080204cd 100644 --- a/src/class/learning/LearningBase.ts +++ b/src/class/learning/LearningBase.ts @@ -55,7 +55,7 @@ class LearningBase { setTable() { const tableSource = DataTable.getSource(this.table.id); - if (this.table.fieldsInfo.length !== tableSource.fields.length) { + if (this.table?.fieldsInfo?.length !== tableSource?.fields?.length) { Entry.toast.alert(Lang.Msgs.warn, Lang.AiLearning.train_param_error); throw Error(Lang.AiLearning.train_param_error); } From ee2eaf28d608fec5e76eecfedaeaa56f5fb3e5dd Mon Sep 17 00:00:00 2001 From: lee Date: Thu, 24 Oct 2024 21:32:32 +0900 Subject: [PATCH 63/65] =?UTF-8?q?=EB=B0=A9=EC=96=B4=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/class/AILearning.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/class/AILearning.js b/src/class/AILearning.js index 85a8190ff6..fb200423d3 100644 --- a/src/class/AILearning.js +++ b/src/class/AILearning.js @@ -412,10 +412,11 @@ function createDataTable(classes, name) { const [{ samples }] = classes; const [sample = {}] = samples || []; let data = sample.data; + data.id = data.id || data._id; if (typeof data === 'string') { data = JSON.parse(data); } - if (data && data.id && !DataTable.getSource(data.id)) { + if (data && data?.id && !DataTable.getSource(data?.id)) { DataTable.addSource(data, false); } return data; From a9a0adcd133b2259033afb5b236f220296cd20a1 Mon Sep 17 00:00:00 2001 From: leunge Date: Thu, 24 Oct 2024 21:38:58 +0900 Subject: [PATCH 64/65] Update src/class/learning/NumberClassification.js Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/class/learning/NumberClassification.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/class/learning/NumberClassification.js b/src/class/learning/NumberClassification.js index bc38e8e3c6..42cb75f40b 100644 --- a/src/class/learning/NumberClassification.js +++ b/src/class/learning/NumberClassification.js @@ -33,7 +33,6 @@ class NumberClassification { #fields = []; #predictField = []; #loadModel; - constructor(params = {}) { this.#view = new LearningView({ name: params.name || '', status: 0 }); // 정지시 data 초기화. From 6345f658322c9e93e5ef5142cca6ea4b9e106158 Mon Sep 17 00:00:00 2001 From: lee Date: Tue, 29 Oct 2024 16:04:08 +0900 Subject: [PATCH 65/65] ver 4.0.13 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dd6399776c..e9e500c655 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@entrylabs/entry", "title": "EntryJS", "description": "JavaScript library for visual programming", - "version": "4.0.12", + "version": "4.0.13", "main": "dist/entry.min.js", "homepage": "https://playentry.org", "author": {