1 line
23 KiB
XML
1 line
23 KiB
XML
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="@v#]_QQYnq;qYn4*F@`|" x="-4271" y="-1452"><field name="VAR">电梯当前楼层</field><value name="VALUE"><block type="math_random" id=",w3G:B{s$qJt7FfJaxUD"><field name="TYPE">int</field><value name="FROM"><shadow type="math_number" id="jm4$c,iq]SR#za.lQZ7)"><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="rJvT`YGXCHnDGz;5yvnn"><field name="NUM">4</field></shadow></value></block></value><next><block type="variables_set" id="{M2QxWXM/ztA_@JM5^A]"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="kd^4E?cqiUu/z*l`sQ_U"><field name="NUM">0</field></block></value><next><block type="variables_set" id="RR]P8bXY9lu]#:CbVdg/"><field name="VAR">电梯状态显示</field><value name="VALUE"><block type="text" id="mKhoCX_I_ci*4Mz/(I_b"><field name="TEXT">静止</field></block></value><next><block type="controls_whileUntil" id="=y~[)PG~SdD{.5(_Yj+a"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="SYx3A#RVJ=@b3{Bo_2kU"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="procedures_callnoreturn" id="[Ixuh4W~b)ZL1ZB9P@B?"><mutation name="显示电梯状态"></mutation><next><block type="controls_if" id="K@fnC_9X:W5q*JEtF)@C"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="^nIO#Wg|J+g^kJ95Vy?T"><value name="btn"><shadow type="pins_button" id="4Z6Ro.s}Ty*#94RwvDp$"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="Ki@S=cUyTd`LK1RyS/n!"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="5N,tU`nx._@[JG;-{63U"><field name="NUM">1</field></block></value></block></statement><next><block type="controls_if" id="NBSX#gbx?08Yx#Z*:5fg"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="Ltfo)2KYR:4OTe91dU|~"><value name="btn"><shadow type="pins_button" id="!Q+DKO,c)aNWq8gHe1}["><field name="PIN">A2key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="@G_T*1atoJ[bL{cRchZ["><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="JFZ)DG)rY2fB}/k6P;mc"><field name="NUM">2</field></block></value></block></statement><next><block type="controls_if" id=";`@eTEujk2qZRvBfRns~"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="q9)#`nT/w)^k5Gy{(K$n"><value name="btn"><shadow type="pins_button" id="s:Vy1sAyQUIWG^JElS3M"><field name="PIN">A3key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="B`6~i7YIE*!-q^V(qk@B"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="zn7EIrJo@FF0=9sKaz9k"><field name="NUM">3</field></block></value></block></statement><next><block type="controls_if" id="5M?(?htmxGwK65kr|SwW"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="xX_kBP5Rz7,jWyW)DR=K"><value name="btn"><shadow type="pins_button" id="v1suSe,C?LSD4sZjp7GY"><field name="PIN">A4key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="eca]F6eAm}de[$yn*(/G"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="H_OsayuFxBQO#};wATni"><field name="NUM">4</field></block></value></block></statement><next><block type="controls_if" id="{kJ:ph5b+72h$7`SI^+x"><value name="IF0"><block type="logic_compare" id="Y#(U9-)]k_eG2Wn[c8Is"><field name="OP">NEQ</field><value name="A"><block type="variables_get" id="kTSOsUwGwPTS@eXt}}^H"><field name="VAR">用户目标楼层</field></block></value><value name="B"><block type="math_number" id="`XT15(nVDk~/+s,TuY79"><field name="NUM">0</field></block></value></block></value><statement name="DO0"><block type="controls_if" id="S)13Jz7PT-tu-2Y$6N)b"><mutation elseif="1" else="1"></mutation><value name="IF0"><block type="logic_compare" id="9oL_BbJ}`c2]0?zk?Hr:"><field name="OP">GT</field><value name="A"><block type="variables_get" id="htdT43nCx2{tXAQ.10fw"><field name="VAR">用户目标楼层</field></block></value><value name="B"><block type="variables_get" id="Cb~IN/aJ1a;kwA0BP0$z"><field name="VAR">电梯当前楼层</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="q`wKEMFu[zSkeBQ_eC2S"><field name="VAR">电梯状态显示</field><value name="VALUE"><block type="text" id="XHC0RFRn$O_+$vsc#n63"><field name="TEXT">上行</field></block></value><next><block type="math_selfcalcu" id="v^$/TRmi(^}6)I{y+CjM"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="7yAiCgv(/0#G_X)SqzOH"><field name="VAR">电梯当前楼层</field></shadow></value><value name="B"><shadow type="math_number" id="~O+;g-h1?1jgW]TwgwAX"><field name="NUM">1</field></shadow></value></block></next></block></statement><value name="IF1"><block type="logic_compare" id="T^kpNKEDa,hO;Z2;=~b1"><field name="OP">LT</field><value name="A"><block type="variables_get" id="I2u(vk(49yq5?,C0{*x."><field name="VAR">用户目标楼层</field></block></value><value name="B"><block type="variables_get" id="gLd/duLTmRdm88AUSLsN"><field name="VAR">电梯当前楼层</field></block></value></block></value><statement name="DO1"><block type="variables_set" id="?rzshQD[-!WAP25$[,d="><field name="VAR">电梯状态显示</field><value name="VALUE"><block type="text" id="Fk8#2?kfN4b|N=zvWQ$b"><field name="TEXT">下行</field></block></value><next><block type="math_selfcalcu" id="MLU*!XB893`^|:*c-AYh"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="f9DLMZjyb|=,]r`n@N$9"><field name="VAR">电梯当前楼层</field></shadow></value><value name="B"><shadow type="math_number" id="O]KuN)}aCZ~9com*cA2~"><field name="NUM">1</field></shadow></value></block></next></block></statement><statement name="ELSE"><block type="variables_set" id="Ux}JJk:y?)Ha}lmiU=;y"><field name="VAR">电梯状态显示</field><value name="VALUE"><block type="text" id="?T0E5JkU,.l:m(9.`B4!"><field name="TEXT">静止</field></block></value><next><block type="procedures_callnoreturn" id="lT,o2FvWcBNw-U|up=eC"><mutation name="开关门"></mutation><next><block type="variables_set" id="*ed#n#gGTqqIr?$+b{Aj"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id=".mFZyx=ls-.I`K|}Q/{P"><field name="NUM">0</field></block></value></block></next></block></next></block></statement><next><block type="controls_delay_new" id="@{[]u@W]^3zO5|L4-)vk"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="hq4qC*45WZ_RorEjM_aV"><field name="NUM">1</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block><block type="procedures_defnoreturn" id="KT7vVCpKq[6R8O@dQ!GQ" x="-3519" y="-1481"><field name="NAME">显示电梯状态</field><statement name="STACK"><block type="display_clear" id="INHr0y2OfBzgtEq4g]Nj"><value name="boolean"><shadow type="logic_boolean" id="J5ssKbcN;@[Pfol:A;_3"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_show_image_or_string_delay" id="OGT9@-#37${-K;?`-7wU"><field name="center">True</field><value name="data"><shadow type="text" id="XUB]36Tpa3jTq}wexS.3"><field name="TEXT">Mixly</field></shadow><block type="text_join" id="9EhdlZ/cR-alCfMAzeRE"><value name="A"><shadow type="text" id="xk1`/U7q~1htuvvL4iwp"><field name="TEXT">电梯状态:</field></shadow></value><value name="B"><shadow type="text" id="E2m=Hm?K~7q4j,f/~be!"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="Kmd_{ENGk`L.hP?3i^U_"><field name="VAR">电梯状态显示</field></block></value></block></value><value name="x"><shadow type="math_number" id="zDGeW#(Yg,7pO|L+#s8t"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="c)R8o[xYfMmz:Y-$lq;="><field name="NUM">20</field></shadow></value><value name="size"><shadow type="math_number" id="5p5`TXA|Anv^qJmWKpjo"><field name="NUM">2</field></shadow></value><value name="space"><shadow type="math_number" id="lRjfT(Mzf?=K5NF0e[`u"><field name="NUM">0</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="8]Y6GQg(9|}TjGaS|E61"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="NFI733OUN-xHOcw0q|)I"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="{YUhO}AbAux`RfRf:!|7"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_show_image_or_string_delay" id="e0_72R-t7)9o6keG+[-l"><field name="center">True</field><value name="data"><shadow type="text" id="D_m*kXqM1Y3Q4Fz=~?=G"><field name="TEXT">Mixly</field></shadow><block type="text_join" id="G#7EenMMld_UQ,]P*PI6"><value name="A"><shadow type="text" id="J/|.akn7on7;7@JZr2Pi"><field name="TEXT">电梯楼层:</field></shadow></value><value name="B"><shadow type="text" id="1S$6qeVDe6}LdalK+;($"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="0!t9)`|`Dg$6gaowL63|"><value name="VAR"><shadow type="variables_get" id="oxAv@@8PU;(zbI*hT`_^"><field name="VAR">x</field></shadow><block type="variables_get" id="22g5oK|wY$JW_VUQKh93"><field name="VAR">电梯当前楼层</field></block></value></block></value></block></value><value name="x"><shadow type="math_number" id="CwwXY~Oa6|cPdQ/]JQZ="><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="bXqbNc.mEGqJ$3{;~EV="><field name="NUM">60</field></shadow></value><value name="size"><shadow type="math_number" id="UZ|4Y[6c`ZVAg]6Uj@AS"><field name="NUM">2</field></shadow></value><value name="space"><shadow type="math_number" id="hQnkfXI)~n$XQD0gPay5"><field name="NUM">0</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="ZTOVbetApDqSJ~8,}Af["><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="wtTRPeh`.A!t``[bGW_?"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="{2L.S.eq}i*~-[itBAQ8"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_show_image_or_string_delay" id="H*DpH1~I)xh9]tv00+e8"><field name="center">True</field><value name="data"><shadow type="text" id=";kK~,e-fx}350:di8b@T"><field name="TEXT">Mixly</field></shadow><block type="text_join" id="ADP0,=}V9iOm3fYIosfF"><value name="A"><shadow type="text" id="3]?yplNYJb-d6+2y.(]Z"><field name="TEXT">目标楼层:</field></shadow></value><value name="B"><shadow type="text" id="S#rnvyn}JQ.ICWjsf8W6"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="!97]n6s+3v:5CG8vSh4u"><value name="VAR"><shadow type="variables_get" id="Xf)2W?=]v!j|pLUP-Qe`"><field name="VAR">x</field></shadow><block type="variables_get" id="Kr6p7Is8|OHeO:*+T_ae"><field name="VAR">用户目标楼层</field></block></value></block></value></block></value><value name="x"><shadow type="math_number" id="YGOm)@-H@n+yZ=~MuEs:"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="igd|I8;cq*5VR/$`6iri"><field name="NUM">100</field></shadow></value><value name="size"><shadow type="math_number" id="2#wC4fkjb}hb}1W-]n/["><field name="NUM">2</field></shadow></value><value name="space"><shadow type="math_number" id="bpN:@I99Rw`0--H7_ZLN"><field name="NUM">0</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="$WDtzoK]PpAPA|B$#Fk{"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="IGJ_yC*/]R`AS6|?n]qa"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="#oa*)GxTMX#M*ob(UA!s"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_show_image_xy" id="Z2iyW!eIXgYK}_ELeALp"><value name="data"><shadow type="pins_builtinimg" id="!~Ux#9Bt(gMqdpnAsl0X"><field name="PIN">object_picture.DOOR_CLOSE</field></shadow></value><value name="x"><shadow type="math_number" id="{LbRixwIZLhGQyV-{)AF"><field name="NUM">100</field></shadow></value><value name="y"><shadow type="math_number" id="L?kiBPy.|*yWeQ7H5c]H"><field name="NUM">160</field></shadow></value><value name="size"><shadow type="math_number" id="J($`40bg;i0B0:TO`i;t"><field name="NUM">1</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="Nkz;t~5l2qi8E]=o9yD2"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="[mk3jA/2V2fz!#iooreJ"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id=")s`[x)U2Za4~wmy+gH]v"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_if" id="HdNT+)SKS}OkzK4+I.l^"><value name="IF0"><block type="variables_get" id="`_8yrfF?QMa#J2A!N7H:"><field name="VAR">用户目标楼层</field></block></value><statement name="DO0"><block type="actuator_onboard_neopixel_rgb_all" id="sn]Hd,QdwUDCY6r2P}o`"><value name="RVALUE"><shadow type="math_number" id="cxX6-SiEmUBvmd|20UCe"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="B5O/BbLLC_3h9~JJe{:Y"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="ujy^Od+|)v3MY.nt7aAc"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_rgb" id="]ADjGyrOCfrQ|SplQ2mi"><value name="_LED_"><shadow type="math_number" id="{OCZp?r!af@649].NXTj"><field name="NUM">0</field></shadow><block type="math_arithmetic" id="7R+*/y=b*mAQC:se:;#U"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="G)GIxjd[]Lx=:d[*@BIo"><field name="NUM">1</field></shadow><block type="variables_get" id="3_cm^#D)t?iV{+,hy4rN"><field name="VAR">用户目标楼层</field></block></value><value name="B"><shadow type="math_number" id="-#b[uQdJ`kZu.[GkqSxk"><field name="NUM">1</field></shadow></value></block></value><value name="RVALUE"><shadow type="math_number" id="UPd1n{7icsvp8M3,~I}Y"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="E?M_4UxF=4xRLHi~oFkF"><field name="NUM">30</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="i1+;Md5C@OV9gDDtsy~)"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="VvLUn7aZhAP,+V^izoS4"></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type="procedures_defnoreturn" id="TWXxg]#WiFh)tUu*,9L*" x="-3413" y="-953"><field name="NAME">开关门</field><statement name="STACK"><block type="onboard_tft_show_image_xy" id="bd8pg2_2`C~2qJ5M}@Sv"><value name="data"><shadow type="pins_builtinimg" id="X8EpO}Gxr`:ATldaJBWs"><field name="PIN">object_picture.DOOR_OPENING</field></shadow></value><value name="x"><shadow type="math_number" id="HyH$SbWz]LUH,Z:};2Rp"><field name="NUM">100</field></shadow></value><value name="y"><shadow type="math_number" id="|}apiSR|{[EM400~C6h~"><field name="NUM">160</field></shadow></value><value name="size"><shadow type="math_number" id="x)EBQ-JTN+MHFG]$*#3R"><field name="NUM">1</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="B@sA(B)tI!+-!r@_W(cB"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="T34eX;*sFw].yQ?wWJv^"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="u.,_uAnuX4uO6oh^jM|B"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id=".82Ne?K)CZbfX4YzHdL$"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="y{Z:C_L@D0#N|f5SfjZ!"><field name="NUM">0.3</field></shadow></value><next><block type="onboard_tft_show_image_xy" id="fw]*A?]KxSeNdBuHdR`J"><value name="data"><shadow type="pins_builtinimg" id="MAznXpTs:ND}l;p@fT_}"><field name="PIN">object_picture.DOOR_OPEN</field></shadow></value><value name="x"><shadow type="math_number" id="Mjgs!i8[)*8hw`|ccH~b"><field name="NUM">100</field></shadow></value><value name="y"><shadow type="math_number" id="J,QLCDDTXKxEESJ(][}k"><field name="NUM">160</field></shadow></value><value name="size"><shadow type="math_number" id="BhZg#mmArFNwX$63@C4]"><field name="NUM">1</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="r}2!4u]O0_3eI;pMLk#D"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="NVS`N`5Ta=34u@sOBFQ7"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="Psl2aZYn`YsG,huXb#Gf"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="u1=k!gw+YtHsss=[iDw="><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="RNFvTWz0Yj`fTKd+=oRN"><field name="NUM">1</field></shadow></value><next><block type="do_while" id=":-(BEN{bB:h/cjMvraV2"><field name="type">true</field><value name="select_data"><block type="logic_operation" id="8/;/x3NrA@*nOc+}1ExT"><field name="OP">AND</field><value name="A"><block type="logic_compare" id="^;_byb~qP(J6L2r;=s9:"><field name="OP">LT</field><value name="A"><block type="sensor_mixgo_nova_pin_near" id="gV*7)UtulJ/j_?9yB3#y"><field name="direction">l</field></block></value><value name="B"><block type="math_number" id="S.oJywC~(;i_r:|M1Hf#"><field name="NUM">100</field></block></value></block></value><value name="B"><block type="logic_compare" id="=I*!l}]Tr$4f0r}q|8Kk"><field name="OP">LT</field><value name="A"><block type="sensor_mixgo_nova_pin_near" id=";SC(5e|Zj^bV*;3o)^a;"><field name="direction">r</field></block></value><value name="B"><block type="math_number" id="LBabkhTQW^RbmfP:Air#"><field name="NUM">100</field></block></value></block></value></block></value><next><block type="onboard_tft_show_image_xy" id="krUk]5}FVK;c1@?`9h[E"><value name="data"><shadow type="pins_builtinimg" id="xwBGgX?,i3i1}BIjl]9l"><field name="PIN">object_picture.DOOR_OPENING</field></shadow></value><value name="x"><shadow type="math_number" id="4YrykP6XG]C#VFePeF8Q"><field name="NUM">100</field></shadow></value><value name="y"><shadow type="math_number" id="R]4#y]Y9W/e0m/rUfS5q"><field name="NUM">160</field></shadow></value><value name="size"><shadow type="math_number" id="mT-V$}`F}q^(4(oa*?2v"><field name="NUM">1</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="qrJRP++v1JK,9[|!)hu:"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="/-QAI|F2D,`y6!TUpah2"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="L/.OIYDt+gD}gM0@-r$-"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="~]9ZIg?#awe}SyE61OR:"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="MYCR5szbln5tVg=vr/M["><field name="NUM">0.3</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IHJhbmRvbQppbXBvcnQgbWl4Z29fc2FudAppbXBvcnQgdGltZQpmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfdGZ0CmZyb20gb2JqZWN0X3BpY3R1cmUgaW1wb3J0IERPT1JfQ0xPU0UKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3JnYgpmcm9tIG9iamVjdF9waWN0dXJlIGltcG9ydCBET09SX09QRU5JTkcKZnJvbSBvYmplY3RfcGljdHVyZSBpbXBvcnQgRE9PUl9PUEVOCmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF9hbHNfbApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfYWxzX3IKCmRlZiDmmL7npLrnlLXmoq/nirbmgIEoKToKICAgIG9uYm9hcmRfdGZ0LmZpbGwoMCxzeW5jPUZhbHNlKQogICAgb25ib2FyZF90ZnQuc2hvd3MoJ+eUteair+eKtuaAge+8micgKyDnlLXmoq/nirbmgIHmmL7npLosIHg9MCwgeT0yMCwgc2l6ZT0yLCBzcGFjZT0wLCBjZW50ZXI9VHJ1ZSwgY29sb3I9MHhmZmZmLHN5bmM9RmFsc2UpCiAgICBvbmJvYXJkX3RmdC5zaG93cygn55S15qKv5qW85bGC77yaJyArIHN0cijnlLXmoq/lvZPliY3mpbzlsYIpLCB4PTAsIHk9NjAsIHNpemU9Miwgc3BhY2U9MCwgY2VudGVyPVRydWUsIGNvbG9yPTB4ZmZmZixzeW5jPUZhbHNlKQogICAgb25ib2FyZF90ZnQuc2hvd3MoJ+ebruagh+alvOWxgu+8micgKyBzdHIo55So5oi355uu5qCH5qW85bGCKSwgeD0wLCB5PTEwMCwgc2l6ZT0yLCBzcGFjZT0wLCBjZW50ZXI9VHJ1ZSwgY29sb3I9MHhmZmZmLHN5bmM9RmFsc2UpCiAgICBvbmJvYXJkX3RmdC5pbWFnZShET09SX0NMT1NFLCB4PTEwMCwgeT0xNjAsIHNpemU9MSwgY29sb3I9MHhmZmZmLHN5bmM9VHJ1ZSkKICAgIGlmIOeUqOaIt+ebruagh+alvOWxgjoKICAgICAgICBvbmJvYXJkX3JnYi5maWxsKCgwLCAwLCAwKSkKICAgICAgICBvbmJvYXJkX3JnYlso55So5oi355uu5qCH5qW85bGCIC0gMSldID0gKDAsIDMwLCAwKQogICAgICAgIG9uYm9hcmRfcmdiLndyaXRlKCkKCmRlZiDlvIDlhbPpl6goKToKICAgIG9uYm9hcmRfdGZ0LmltYWdlKERPT1JfT1BFTklORywgeD0xMDAsIHk9MTYwLCBzaXplPTEsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICB0aW1lLnNsZWVwKDAuMykKICAgIG9uYm9hcmRfdGZ0LmltYWdlKERPT1JfT1BFTiwgeD0xMDAsIHk9MTYwLCBzaXplPTEsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICB0aW1lLnNsZWVwKDEpCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIChvbmJvYXJkX2Fsc19sLnBzX25sKCkgPCAxMDAgYW5kIG9uYm9hcmRfYWxzX3IucHNfbmwoKSA8IDEwMCk6CiAgICAgICAgICAgIGJyZWFrCiAgICBvbmJvYXJkX3RmdC5pbWFnZShET09SX09QRU5JTkcsIHg9MTAwLCB5PTE2MCwgc2l6ZT0xLCBjb2xvcj0weGZmZmYsc3luYz1UcnVlKQogICAgdGltZS5zbGVlcCgwLjMpCgoK55S15qKv5b2T5YmN5qW85bGCID0gcmFuZG9tLnJhbmRpbnQoMSwgNCkK55So5oi355uu5qCH5qW85bGCID0gMArnlLXmoq/nirbmgIHmmL7npLogPSAn6Z2Z5q2iJwp3aGlsZSBUcnVlOgogICAg5pi+56S655S15qKv54q25oCBKCkKICAgIGlmIG1peGdvX3NhbnQuQTFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSAxCiAgICBpZiBtaXhnb19zYW50LkEya2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg55So5oi355uu5qCH5qW85bGCID0gMgogICAgaWYgbWl4Z29fc2FudC5BM2tleS53YXNfcHJlc3NlZCgpOgogICAgICAgIOeUqOaIt+ebruagh+alvOWxgiA9IDMKICAgIGlmIG1peGdvX3NhbnQuQTRrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSA0CiAgICBpZiDnlKjmiLfnm67moIfmpbzlsYIgIT0gMDoKICAgICAgICBpZiDnlKjmiLfnm67moIfmpbzlsYIgPiDnlLXmoq/lvZPliY3mpbzlsYI6CiAgICAgICAgICAgIOeUteair+eKtuaAgeaYvuekuiA9ICfkuIrooYwnCiAgICAgICAgICAgIOeUteair+W9k+WJjealvOWxgiArPSAxCiAgICAgICAgZWxpZiDnlKjmiLfnm67moIfmpbzlsYIgPCDnlLXmoq/lvZPliY3mpbzlsYI6CiAgICAgICAgICAgIOeUteair+eKtuaAgeaYvuekuiA9ICfkuIvooYwnCiAgICAgICAgICAgIOeUteair+W9k+WJjealvOWxgiAtPSAxCiAgICAgICAgZWxzZToKICAgICAgICAgICAg55S15qKv54q25oCB5pi+56S6ID0gJ+mdmeatoicKICAgICAgICAgICAg5byA5YWz6ZeoKCkKICAgICAgICAgICAg55So5oi355uu5qCH5qW85bGCID0gMAogICAgICAgIHRpbWUuc2xlZXAoMSkK</code>KQogICAgdGltZS5zbGVlcCgwLjMpCgoK55S15qKv5b2T5YmN5qW85bGCID0gcmFuZG9tLnJhbmRpbnQoMSwgNCkK55So5oi35omA5Zyo5qW85bGCID0gcmFuZG9tLnJhbmRpbnQoMSwgNCkK55So5oi355uu5qCH5qW85bGCID0gMArnlLXmoq/nirbmgIHmmL7npLogPSAn6Z2Z5q2iJwp3aGlsZSBUcnVlOgogICAg5pi+56S655S15qKv54q25oCBKCkKICAgIGlmIG1peGdvX3NhbnQuQTFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSAxCiAgICBpZiBtaXhnb19zYW50LkEya2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg55So5oi355uu5qCH5qW85bGCID0gMgogICAgaWYgbWl4Z29fc2FudC5BM2tleS53YXNfcHJlc3NlZCgpOgogICAgICAgIOeUqOaIt+ebruagh+alvOWxgiA9IDMKICAgIGlmIG1peGdvX3NhbnQuQTRrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSA0CiAgICBpZiDnlLXmoq/nirbmgIHmmL7npLogIT0gJ+mdmeatoic6CiAgICAgICAgaWYg55So5oi35omA5Zyo5qW85bGCID4g55S15qKv5b2T5YmN5qW85bGCOgogICAgICAgICAgICDnlLXmoq/nirbmgIHmmL7npLogPSAn5LiK6KGMJwogICAgICAgICAgICDnlLXmoq/lvZPliY3mpbzlsYIgKz0gMQogICAgICAgICAgICB0aW1lLnNsZWVwKDEpCiAgICAgICAgZWxpZiDnlKjmiLfmiYDlnKjmpbzlsYIgPCDnlLXmoq/lvZPliY3mpbzlsYI6CiAgICAgICAgICAgIOeUteair+eKtuaAgeaYvuekuiA9ICfkuIvooYwnCiAgICAgICAgICAgIOeUteair+W9k+WJjealvOWxgiAtPSAxCiAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKICAgICAgICBlbHNlOgogICAgICAgICAgICDnlLXmoq/nirbmgIHmmL7npLogPSAn6Z2Z5q2iJwogICAgICAgICAgICDlvIDlhbPpl6goKQogICAgICAgICAgICDnlKjmiLfmiYDlnKjmpbzlsYIgPSByYW5kb20ucmFuZGludCgxLCA0KQogICAgICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSAwCg==</code> |