1 line
19 KiB
XML
1 line
19 KiB
XML
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="procedures_defnoreturn" id="[{5.7=L.:_KC5r~I(Q^]" x="-162" y="-376"><field name="NAME">显示我机</field><statement name="STACK"><block type="variables_global" id="|VT:Z6`t60X#L.d{P+FL"><value name="VAR"><block type="variables_get" id="BAp;|,8GCg6Xn/Ox?Sri"><field name="VAR">本机X坐标</field></block></value><next><block type="variables_set" id="1(b#b4^N8sHmANLg]IS3"><field name="VAR">本机X坐标</field><value name="VALUE"><block type="math_constrain" id="y-$uTM6`F)c3^Iccbe64"><value name="VALUE"><shadow type="math_number" id="S|q(h)Y*?26zh~.0K+9O"><field name="NUM">1000</field></shadow><block type="variables_get" id="lI7h;_f+@/W]g23-Fzvf"><field name="VAR">本机X坐标</field></block></value><value name="LOW"><shadow type="math_number" id="f6C}}{r12|`2foNL^FTB"><field name="NUM">0</field></shadow></value><value name="HIGH"><shadow type="math_number" id="$j1@wU6^F$[nH5W$8*-1"><field name="NUM">100</field></shadow><block type="math_arithmetic" id="8kVngZv_AO~8Q6b]onA/"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="ne_z$bE,bqTh)budi9^Q"><field name="NUM">1</field></shadow><block type="variables_get" id="-9r_HJYi4/k*^!-BkNRx"><field name="VAR">屏幕X最大值</field></block></value><value name="B"><shadow type="math_number" id="B,Qtow]}EaK(}$2=i_*z"><field name="NUM">1</field></shadow></value></block></value></block></value><next><block type="onboard_tft_display_shape_rect" id="dYZa]*wZ!(9I2rfR4I*E"><field name="shape">fill_rect</field><value name="x"><shadow type="math_number" id="|agiO0n_$1?R-R=-tTQ/"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="|AT2Eb/t,T/u|M*Ar,^l"><field name="NUM">220</field></shadow></value><value name="w"><shadow type="math_number" id="`yx/CYL8buQw#M=W7b[o"><field name="NUM">240</field></shadow></value><value name="h"><shadow type="math_number" id=":u^t,[~HXU-fg3TYxgW@"><field name="NUM">20</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="?j|eiLsh2*9_}VH@oZnN"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="Ipc)O;9b3|o+n(#MwS5M"><field name="COLOR">#000000</field></block></value><value name="boolean"><shadow type="logic_boolean" id="eWe4x5gXBs4NYmwy-Un|"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_display_shape_rect" id="T6XmC(lrWLh6SXKKnBc7"><field name="shape">fill_rect</field><value name="x"><shadow type="math_number" id="tZSWd7;~k;.b|7`A`T@U"><field name="NUM">20</field></shadow><block type="math_arithmetic" id="3}x2zMg]+]lv?(IU{,6J"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="Wfp=T*Y,x[pKEwiHNZ8@"><field name="NUM">1</field></shadow><block type="math_arithmetic" id=")oDcTnq^~im(Kvz_v4w1"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="DZ1:kcpmnlz_erQ@$k[8"><field name="NUM">1</field></shadow><block type="variables_get" id="oH5Dr`n@FxNyxE5H=j?P"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="4In21jPj8LG@s2i53nbL"><field name="NUM">1</field></shadow></value></block></value><value name="B"><shadow type="math_number" id="EvW@EL6+v+u|khqCH9M~"><field name="NUM">10</field></shadow></value></block></value><value name="y"><shadow type="math_number" id="8+@8ra3L}P$_nV]MNr_r"><field name="NUM">230</field></shadow></value><value name="w"><shadow type="math_number" id="#_dEIHxlMKx4SL6ixeYi"><field name="NUM">30</field></shadow></value><value name="h"><shadow type="math_number" id="bZug0,1f6O=w$#WG+]7,"><field name="NUM">10</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="E-Ik/8OK/}K[T`L/vk`1"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="xHb58;BCIa|kz=7D`CKZ"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="**])qMU02~lr/L9QNYrc"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_display_shape_rect" id="*.L$}JI,+8lij/|NJ{jT"><field name="shape">fill_rect</field><value name="x"><shadow type="math_number" id="5@7gRFP@r`|#sJ)oBgVz"><field name="NUM">20</field></shadow><block type="math_arithmetic" id=":e?!Q|]:-YWpa(0#q(fx"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="/H~GOg1nni]~Ga@TX]ZS"><field name="NUM">1</field></shadow><block type="variables_get" id="jsis`j3_|d+7*`7[JpsY"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="Jl*v`^yG.~fnaew9ZJ*,"><field name="NUM">10</field></shadow></value></block></value><value name="y"><shadow type="math_number" id="$sVl_h#7F1rkGMYGx$jY"><field name="NUM">220</field></shadow></value><value name="w"><shadow type="math_number" id="Wcd~!t#md}SX2!7E7y,["><field name="NUM">10</field></shadow></value><value name="h"><shadow type="math_number" id=")xACB*o~GKOto,|Ywl6N"><field name="NUM">10</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="]/lT)`oPb*2qiiA2QdxR"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="Cixnh!~/Hd1|xY|;lEEq"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="j*(-MAp]q1ke@^(a`)6w"><field name="BOOL">TRUE</field></shadow></value><next><block type="esp32_onboard_music_pitch_with_time" id="O1UvUKyN*X:CLtkTyK!g"><value name="pitch"><shadow type="pins_tone_notes" id="?FZ)YC4gf}oq}Hy6($IR"><field name="PIN">294</field></shadow></value><value name="time"><shadow type="math_number" id="S2.4cdkv8TBtYgF#u-/:"><field name="NUM">50</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type="variables_set" id="Q5bO43czn(fU^t!W8:=y" x="-683" y="-306"><field name="VAR">屏幕X最大值</field><value name="VALUE"><block type="math_number" id="4kWJ(A:|e}=OQumtBGh$"><field name="NUM">23</field></block></value><next><block type="variables_set" id="UdPaZqUsy^,a!.V.!04/"><field name="VAR">屏幕Y最大值</field><value name="VALUE"><block type="math_number" id="Uf|7c$.M^g1wo|j#wCl+"><field name="NUM">23</field></block></value><next><block type="variables_set" id=",r^IFMf}yF#U@90#Ql@Q"><field name="VAR">本机X坐标</field><value name="VALUE"><block type="math_number" id="$T#~t!0eP,0{!f~6w6NM"><field name="NUM">0</field></block></value><next><block type="variables_set" id="KH2gZs+#{K@7LN8i[`f^"><field name="VAR">子弹X坐标</field><value name="VALUE"><block type="math_number" id="!CBI?NDvzjKKTq?A@~i$"><field name="NUM">0</field></block></value><next><block type="procedures_callnoreturn" id="-Lu9GPOBHK0Ed617OX?G" inline="true"><mutation name="显示我机"></mutation><next><block type="controls_whileUntil" id="Bj8{^S=In,STEfvvue7W"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="a.{a3UUmS;t$#WCLDDl["><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="b3zl(=oDuF6l8T`2[=bb"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="PdW4I;zttN$^UE02DiJ!"><value name="btn"><shadow type="pins_button" id="2!j^#eI9@xN1@!:5PG2O"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="j+op=fEYmVz[,MyK:)T7"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="CnNhzN5Kv=gE#Y~Qu.Gk"><field name="VAR">本机X坐标</field></shadow></value><value name="B"><shadow type="math_number" id="O^}g5qmZ5HDU^$-_}v{l"><field name="NUM">1</field></shadow></value><next><block type="procedures_callnoreturn" id="8CP,-4`zX+5)bmDG`rw_" inline="true"><mutation name="显示我机"></mutation></block></next></block></statement><next><block type="controls_if" id="iIaY}#OjkM7_CNq4fLu="><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="=TB}17fO=PjC_l7$#+Bj"><value name="btn"><shadow type="pins_button" id="oa(557^V:]I[)t}T[wqe"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="Hls8v~EaG8)?|Z]CrtSD"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="c(q-F`rwvK.[EmnRqYmb"><field name="VAR">本机X坐标</field></shadow></value><value name="B"><shadow type="math_number" id="gHf[*b0(TkTvTY1_4Ovp"><field name="NUM">1</field></shadow></value><next><block type="procedures_callnoreturn" id="F{xp#pvtS}fneyI]39#S" inline="true"><mutation name="显示我机"></mutation></block></next></block></statement><next><block type="controls_if" id="6~STW4^t_KvR0yNSGw;."><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="}xxdT@B)(8F*_Gz_jl9H"><value name="btn"><shadow type="pins_button" id="Dk#ei#,chh#X33ZCeUZ("><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="procedures_callnoreturn" id="e,vAdpb+VSV|ai*9bOs("><mutation name="发射子弹"></mutation></block></statement></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block><block type="procedures_defnoreturn" id="xO6N_RV^/.4,!nh-A?_f" x="-120" y="-43"><field name="NAME">发射子弹</field><statement name="STACK"><block type="variables_global" id="*_CCGQtN95J(DH@74GK."><value name="VAR"><block type="variables_get" id="?Pt7RZN$JHmx-]PY*ax?"><field name="VAR">子弹X坐标</field></block></value><next><block type="variables_set" id="v[!}cvwMC~d=A,ys`rjp"><field name="VAR">子弹X坐标</field><value name="VALUE"><block type="variables_get" id="Sp[`WaC{)EC)hTis`sHp"><field name="VAR">本机X坐标</field></block></value><next><block type="esp32_onboard_music_pitch_with_time" id="k=CYNR*v=1l5]_4@_#d;"><value name="pitch"><shadow type="pins_tone_notes" id="fwEV8)i?+WG6w;-(DZ^E"><field name="PIN">262</field></shadow></value><value name="time"><shadow type="math_number" id="x34~zM#{CE.K*F925Vj6"><field name="NUM">50</field></shadow></value><next><block type="controls_forEach" id="MbqZ:=Q0Ru`0CJMyXbJ7"><value name="LIST"><shadow type="list_many_input" id="{]{.RSHD]_-!=T~Bo;hZ"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="BbW5_}_yN,ynNy}m*Xcb"><value name="FROM"><shadow type="math_number" id="]8eu|mj,GtROr`4;fQiD"><field name="NUM">2</field></shadow><block type="math_arithmetic" id=":$HscO,1a2C|6?5_k[F-"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="GjxVOD+z?=mz}Lkfayw5"><field name="NUM">1</field></shadow><block type="variables_get" id="9YyO/@3S{:HcT$Kh+suA"><field name="VAR">屏幕Y最大值</field></block></value><value name="B"><shadow type="math_number" id="5mScsZ`q)5+Vb#7qc;lb"><field name="NUM">2</field></shadow></value></block></value><value name="TO"><shadow type="math_number" id="Hq0jg@Ti/Kq;rKN7kqmj"><field name="NUM">-2</field></shadow></value><value name="STEP"><shadow type="math_number" id=".Snc1E5f:XzVBr:95Rv3"><field name="NUM">-1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="8T[{a[kuj=^UIDZZG~2/"><field name="VAR">子弹Y坐标</field></shadow></value><statement name="DO"><block type="onboard_tft_display_shape_rect" id="Rf#oic5F{*;YdCNAsmU="><field name="shape">fill_rect</field><value name="x"><shadow type="math_number" id="?ZXtw0v[i[Ej|MFQ((ea"><field name="NUM">20</field></shadow><block type="math_arithmetic" id="R)dBXU/ufBFRg8,:_tI$"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="1iSyHR=QUTiDB@PQdY1H"><field name="NUM">1</field></shadow><block type="variables_get" id="1p$fTURmat@NGqeF[Qr)"><field name="VAR">子弹X坐标</field></block></value><value name="B"><shadow type="math_number" id="DZ=^/vOh~l=7kq8n:tvH"><field name="NUM">10</field></shadow></value></block></value><value name="y"><shadow type="math_number" id="0L+#at;6Ml~w=Br[FOne"><field name="NUM">230</field></shadow><block type="math_arithmetic" id=",OD.ss_*c]~sO`*RU=vA"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="x9I=fw[VDlZFCHjy2fd="><field name="NUM">1</field></shadow><block type="variables_get" id="q~euVgp`XBgtgV]7z/kD"><field name="VAR">子弹Y坐标</field></block></value><value name="B"><shadow type="math_number" id="ESpb{sDQzBPMohOZ|8]#"><field name="NUM">10</field></shadow></value></block></value><value name="w"><shadow type="math_number" id="s:6rduqVI!Yi+y1`yoCq"><field name="NUM">10</field></shadow></value><value name="h"><shadow type="math_number" id="~PjURg,PBA44r.j0#SA}"><field name="NUM">10</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="oJ[HKEytOTqZ0mDm!y9;"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="R5(xtvRX0~D{35/lZu2!"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="p)0?`YV3sG+qDtTY71C="><field name="BOOL">TRUE</field></shadow></value><next><block type="onboard_tft_display_shape_rect" id=")I8b?L]ynK$e:Qp0tl$8"><field name="shape">fill_rect</field><value name="x"><shadow type="math_number" id="yH?I$=vJRS]wPrRfsUT@"><field name="NUM">20</field></shadow><block type="math_arithmetic" id=";1:hf86K@-h#t7URjUTM"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="3IZLs+v#L;#M:JCAWTy3"><field name="NUM">1</field></shadow><block type="variables_get" id=":Tm4rn:m76Je4xSA},q-"><field name="VAR">子弹X坐标</field></block></value><value name="B"><shadow type="math_number" id="_8`5fDS[wCy*9)u/kx1B"><field name="NUM">10</field></shadow></value></block></value><value name="y"><shadow type="math_number" id="0:XQlX3QSQ]X!^0=e@gk"><field name="NUM">230</field></shadow><block type="math_arithmetic" id="Yh`uuYwl|$~$n8e:x$XJ"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="P5Kzosa}OCS.$Oap0(rN"><field name="NUM">1</field></shadow><block type="variables_get" id="{)KMxL4]}Gx9r4~sD6!r"><field name="VAR">子弹Y坐标</field></block></value><value name="B"><shadow type="math_number" id="HpO1:5{d?-;x8M~DiGa5"><field name="NUM">10</field></shadow></value></block></value><value name="w"><shadow type="math_number" id="h$ji{0N9hSy|P}.q@m?v"><field name="NUM">10</field></shadow></value><value name="h"><shadow type="math_number" id="rmBCiw0M*dVs$Y)NfBHI"><field name="NUM">10</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="r/-fd+VhfizZ;UZyY-H@"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="b_xVsWP8FEW33;C~JWef"><field name="COLOR">#000000</field></block></value><value name="boolean"><shadow type="logic_boolean" id="ulE#ID3#uOO.)kY6C4wA"><field name="BOOL">FALSE</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></statement></block><block type="procedures_defnoreturn" id="Qb:92qGAVBH^JX$WYoe+" x="-37" y="74"><field name="NAME">显示我机2</field></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfbXVzaWMKaW1wb3J0IG1peGdvX3NhbnQKCgpkZWYg5pi+56S65oiR5py6KCk6CiAgICBnbG9iYWwg5pys5py6WOWdkOaghwogICAg5pys5py6WOWdkOaghyA9IG1pbihtYXgo5pys5py6WOWdkOaghywgMCksIOWxj+W5lVjmnIDlpKflgLwgLSAxKQogICAgb25ib2FyZF90ZnQuZmlsbF9yZWN0KDAsIDIyMCwgMjQwLCAyMCwgMHgwLHN5bmM9RmFsc2UpCiAgICBvbmJvYXJkX3RmdC5maWxsX3JlY3QoKCjmnKzmnLpY5Z2Q5qCHIC0gMSkgKiAxMCksIDIzMCwgMzAsIDEwLCAweGZmZmYsc3luYz1GYWxzZSkKICAgIG9uYm9hcmRfdGZ0LmZpbGxfcmVjdCgo5pys5py6WOWdkOaghyAqIDEwKSwgMjIwLCAxMCwgMTAsIDB4ZmZmZixzeW5jPVRydWUpCiAgICBvbmJvYXJkX211c2ljLnBpdGNoX3RpbWUoMjk0LCA1MCkKCmRlZiDlj5HlsITlrZDlvLkoKToKICAgIGdsb2JhbCDlrZDlvLlY5Z2Q5qCHCiAgICDlrZDlvLlY5Z2Q5qCHID0g5pys5py6WOWdkOaghwogICAgb25ib2FyZF9tdXNpYy5waXRjaF90aW1lKDI2MiwgNTApCiAgICBmb3Ig5a2Q5by5WeWdkOaghyBpbiByYW5nZSjlsY/luZVZ5pyA5aSn5YC8IC0gMiwgLTIsIC0xKToKICAgICAgICBvbmJvYXJkX3RmdC5maWxsX3JlY3QoKOWtkOW8uVjlnZDmoIcgKiAxMCksICjlrZDlvLlZ5Z2Q5qCHICogMTApLCAxMCwgMTAsIDB4ZmZmZixzeW5jPVRydWUpCiAgICAgICAgb25ib2FyZF90ZnQuZmlsbF9yZWN0KCjlrZDlvLlY5Z2Q5qCHICogMTApLCAo5a2Q5by5WeWdkOaghyAqIDEwKSwgMTAsIDEwLCAweDAsc3luYz1GYWxzZSkKCmRlZiDmmL7npLrmiJHmnLoyKCk6CgoKCuWxj+W5lVjmnIDlpKflgLwgPSAyMwrlsY/luZVZ5pyA5aSn5YC8ID0gMjMK5pys5py6WOWdkOaghyA9IDAK5a2Q5by5WOWdkOaghyA9IDAK5pi+56S65oiR5py6KCkKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX3NhbnQuQTFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICDmnKzmnLpY5Z2Q5qCHIC09IDEKICAgICAgICDmmL7npLrmiJHmnLooKQogICAgaWYgbWl4Z29fc2FudC5CMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIOacrOaculjlnZDmoIcgKz0gMQogICAgICAgIOaYvuekuuaIkeacuigpCiAgICBpZiBtaXhnb19zYW50LkIya2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg5Y+R5bCE5a2Q5by5KCkK</code>BfRTVfQTRfQTdfRTVfODBfQkMgLSAxKSwgMCkKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaG93KCkKICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3KSwgaW50KF9FNV9CMV84Rl9FNV9COV85NVlfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMpLCAxKQogICAgb25ib2FyZF9tYXRyaXguc2hvdygpCiAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyAtIDEpLCBpbnQoX0U1X0IxXzhGX0U1X0I5Xzk1WV9FNl85Q184MF9FNV9BNF9BN19FNV84MF9CQyksIDEpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93KCkKICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3ICsgMSksIGludChfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDKSwgMSkKICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQogICAgb25ib2FyZF9tYXRyaXgucGl4ZWwoaW50KF9FNl85Q19BQ19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcpLCBpbnQoX0U1X0IxXzhGX0U1X0I5Xzk1WV9FNl85Q184MF9FNV9BNF9BN19FNV84MF9CQyAtIDEpLCAxKQogICAgb25ib2FyZF9tYXRyaXguc2hvdygpCiAgICBvbmJvYXJkX211c2ljLnBpdGNoX3RpbWUoMjk0LCA1MCkKCmRlZiBfRTVfOEZfOTFfRTVfQjBfODRfRTVfQURfOTBfRTVfQkNfQjkoKToKICAgIGdsb2JhbCBfRTVfQURfOTBfRTVfQkNfQjlYX0U1XzlEXzkwX0U2X0EwXzg3CiAgICBfRTVfQURfOTBfRTVfQkNfQjlYX0U1XzlEXzkwX0U2X0EwXzg3ID0gX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NwogICAgb25ib2FyZF9tdXNpYy5waXRjaF90aW1lKDI2MiwgNTApCiAgICBmb3IgX0U1X0FEXzkwX0U1X0JDX0I5WV9FNV85RF85MF9FNl9BMF84NyBpbiByYW5nZShfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDIC0gMiwgLTIsIC0xKToKICAgICAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoX0U1X0FEXzkwX0U1X0JDX0I5WF9FNV85RF85MF9FNl9BMF84NyksIGludChfRTVfQURfOTBfRTVfQkNfQjlZX0U1XzlEXzkwX0U2X0EwXzg3KSwgMSkKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaG93KCkKICAgICAgICB0aW1lLnNsZWVwX21zKDUwKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTVfQURfOTBfRTVfQkNfQjlYX0U1XzlEXzkwX0U2X0EwXzg3KSwgaW50KF9FNV9BRF85MF9FNV9CQ19COVlfRTVfOURfOTBfRTZfQTBfODcpLCAwKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQoKCgpfRTVfQjFfOEZfRTVfQjlfOTVYX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDID0gMTEKX0U1X0IxXzhGX0U1X0I5Xzk1WV9FNl85Q184MF9FNV9BNF9BN19FNV84MF9CQyA9IDcKX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyA9IDEKX0U2Xzk1XzhDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyA9IDEKX0U1X0FEXzkwX0U1X0JDX0I5WF9FNV85RF85MF9FNl9BMF84NyA9IDEKX0U1X0JFXzk3X0U1Xzg4Xzg2ID0gMApfRTZfOThfQkVfRTdfQTRfQkFfRTZfODhfOTFfRTZfOUNfQkEoKQp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fbWluaS5BMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIF9FNl85Q19BQ19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcgLT0gMQogICAgICAgIF9FNl85OF9CRV9FN19BNF9CQV9FNl84OF85MV9FNl85Q19CQSgpCiAgICBpZiBtaXhnb19taW5pLkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyArPSAxCiAgICAgICAgX0U2Xzk4X0JFX0U3X0E0X0JBX0U2Xzg4XzkxX0U2XzlDX0JBKCkKICAgIGlmIG1peGdvX21pbmkuQjJrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBfRTVfOEZfOTFfRTVfQjBfODRfRTVfQURfOTBfRTVfQkNfQjkoKQo=</code> |