1 line
24 KiB
XML
1 line
24 KiB
XML
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="procedures_defnoreturn" id="1Of)mM?Vh52CE_o^A},e" inline="true" collapsed="true" x="-21" y="-428"><field name="NAME">显示敌机</field><statement name="STACK"><block type="variables_global" id="$xb*!/)FFJiQCLB_K`E2"><value name="VAR"><block type="variables_get" id="dl]E(KZ6@W;|DqL1Z/xH"><field name="VAR">敌机X坐标</field></block></value><next><block type="variables_set" id="IzvUkU|67]Eo}JB*XDHx"><field name="VAR">敌机是否存在</field><value name="VALUE"><block type="logic_boolean" id="vwTUccoKPLAQk[{/tXZ`"><field name="BOOL">FALSE</field></block></value><next><block type="controls_forEach" id="2XOw]r+-+[:d,U@XqBfp"><value name="LIST"><shadow type="list_many_input" id="-90V}-*;D_yIU=qr|)oR"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="(esYPUo@z]Y~b-3LY2E?"><value name="FROM"><shadow type="math_number" id="DB?h,d!szWnTG1LmS}|Y"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="lhFR+QHs2CHfk8~5m!E."><field name="NUM">8</field></shadow><block type="variables_get" id="^|QnqW{NgtaB3;3c(_NB"><field name="VAR">屏幕X最大值</field></block></value><value name="STEP"><shadow type="math_number" id="7lbv!+1$)ky*aByVC0Fe"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="^/N~URadaJLtyq*QjPCI"><field name="VAR">x</field></shadow></value><statement name="DO"><block type="controls_if" id="=2hv11!SsN@r}qYg-#X["><value name="IF0"><block type="display_get_pixel" id="G~a?B#Y#W$(JXQX[6fjx"><value name="x"><shadow type="pins_exlcdh" id="-ynzF!s(XYP(Imn[8s(v"><field name="PIN">0</field></shadow><block type="variables_get" id="V/86IwPK+jlQm{=s}_X7"><field name="VAR">x</field></block></value><value name="y"><shadow type="pins_exlcdv" id="n*2UFHz?;VwNeYFvXp=r"><field name="PIN">0</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="hNWDw6!QLbc2(vZ?=iyO"><field name="VAR">敌机是否存在</field><value name="VALUE"><block type="logic_boolean" id="Av3SO(e[P5(yH|J:BXU1"><field name="BOOL">TRUE</field></block></value><next><block type="controls_flow_statements" id=";i{!1x/66vFAQ3zH4QMf"><field name="FLOW">BREAK</field></block></next></block></statement></block></statement><next><block type="controls_if" id="U!ra}|PbhB+2cX_bj].9"><value name="IF0"><block type="logic_negate" id="z6qaRHz2y$tKPt@Mi*(!"><value name="BOOL"><block type="variables_get" id="^d,LeLXx,JG9e*v_sIY{"><field name="VAR">敌机是否存在</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="@d?!^dy$~WEv6dR(uUhF"><field name="VAR">敌机X坐标</field><value name="VALUE"><block type="math_random" id="kq@Fd0y?OZzoFPUpjDQ`"><field name="TYPE">int</field><value name="FROM"><shadow type="math_number" id="yvM*@KrTL!;.rmDnDb5!"><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="4L2@U.f`Y/pl*d*rjfK6"><field name="NUM">6</field></shadow><block type="math_arithmetic" id="CyPf,f^WBdTWVHV]Kz7o"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="L]fH)Llj@T|;5+#C1@P7"><field name="NUM">1</field></shadow><block type="variables_get" id=";u$rhI+v?i#Md@yf)m!I"><field name="VAR">屏幕X最大值</field></block></value><value name="B"><shadow type="math_number" id="SAkccf1H6)`@{uODNvDY"><field name="NUM">1</field></shadow></value></block></value></block></value><next><block type="display_bright_point" id="j4AdsQ2wFB4y3:9*AkQ~"><value name="x"><shadow type="pins_exlcdh" id="69wthMHz#n)R}2W]O?0}"><field name="PIN">0</field></shadow><block type="variables_get" id="h3bi|pcdw1bLF8PU5$jy"><field name="VAR">敌机X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="YT,J$}gvo]R.fiZTZ^Z+"><field name="PIN">0</field></shadow></value><value name="STAT"><shadow type="display_onoff" id="a}^gpe8eiu6lWe#jJjH3"><field name="ONOFF">ON</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></statement></block><block type="procedures_defnoreturn" id="I*AIy;@!X@4xPj($+}T{" collapsed="true" x="-25" y="-373"><field name="NAME">发射子弹</field><statement name="STACK"><block type="variables_global" id="IY?F]s|Dl+D9O/=uE|j)"><value name="VAR"><block type="variables_get" id="L0}naBD0Or8m#[?5Our2"><field name="VAR">子弹X坐标</field></block></value><next><block type="variables_set" id="oETA]D}q0WH|LNBHLp,Y"><field name="VAR">子弹X坐标</field><value name="VALUE"><block type="variables_get" id="t^zBM:n+#VKa`X}*pKNx"><field name="VAR">本机X坐标</field></block></value><next><block type="esp32_onboard_music_pitch_with_time" id="N(9RE/p{-4Cy#Ri$IMhU"><value name="pitch"><shadow type="pins_tone_notes" id="(ofVx()v]3Twi/QNcfcG"><field name="PIN">262</field></shadow></value><value name="time"><shadow type="math_number" id="3kxgzI3HPgjWlq:h7vJ)"><field name="NUM">50</field></shadow></value><next><block type="controls_forEach" id="elSJe[0@xZtXMg,vU=.:"><value name="LIST"><shadow type="list_many_input" id="SQkm-66gBoS9iS5B|o2y"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="5OR[~J_mkkO|,b5Emv3W"><value name="FROM"><shadow type="math_number" id="iltM+GQN?s}w9g-5sI{S"><field name="NUM">2</field></shadow><block type="math_arithmetic" id="XIWi-EMc75?4*kATH_4M"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="C:x=DB.z$MO#,/Yy2XTc"><field name="NUM">1</field></shadow><block type="variables_get" id="EyZEV,*15I)r,kLMajdD"><field name="VAR">屏幕Y最大值</field></block></value><value name="B"><shadow type="math_number" id=",0fwn]v09H${IjC5=^x9"><field name="NUM">2</field></shadow></value></block></value><value name="TO"><shadow type="math_number" id="~0k9_Q#xj1fCTFcciCon"><field name="NUM">-2</field></shadow></value><value name="STEP"><shadow type="math_number" id="{}7FPa?TbYfrtb7N-R@B"><field name="NUM">-1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id=".}T##]2I([s_ufMRYttz"><field name="VAR">子弹Y坐标</field></shadow></value><statement name="DO"><block type="display_bright_point" id="JS-*iezZ){ENba)LFjS!"><value name="x"><shadow type="pins_exlcdh" id="dVvS^Hhx((MJYmrclw~-"><field name="PIN">0</field></shadow><block type="variables_get" id="UKDk-yTMg|k;REFp}Ud@"><field name="VAR">子弹X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="Q,*8,+nHCCQd3iaCdQ?8"><field name="PIN">3</field></shadow><block type="variables_get" id="@1mcgaO2bcQ^tU5!}agc"><field name="VAR">子弹Y坐标</field></block></value><value name="STAT"><shadow type="display_onoff" id="Cv=J0ONX2eHx!ZPj)w6X"><field name="ONOFF">ON</field></shadow></value><next><block type="controls_delay_new" id="h-l~oSUK$XR!Gp^;]mrH"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="hpY4@8~ZF?w];0Bm#:8A"><field name="NUM">50</field></shadow></value><next><block type="display_bright_point" id="jj1{}~uy-6gR^bKN$BF["><value name="x"><shadow type="pins_exlcdh" id="[N:YTS|NHE|I5_^9AUE["><field name="PIN">0</field></shadow><block type="variables_get" id="-Ue,arQXKgr!Wl)OV|K{"><field name="VAR">子弹X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="6G[Zu.ZKDa`2s_bv~h{t"><field name="PIN">3</field></shadow><block type="variables_get" id="N5_Acnxz|5H{$qfW]mb|"><field name="VAR">子弹Y坐标</field></block></value><value name="STAT"><shadow type="display_onoff" id="WA)7Ynplsb$atiCecDR_"><field name="ONOFF">OFF</field></shadow></value></block></next></block></next></block></statement></block></next></block></next></block></next></block></statement></block><block type="variables_set" id="D0]E-q:A]EnGV(lKU!WD" x="-683" y="-306"><field name="VAR">屏幕X最大值</field><value name="VALUE"><block type="math_number" id=":z0uY=J`F+:5vvZY/#w7"><field name="NUM">15</field></block></value><next><block type="variables_set" id="h1E?1sAU:GR`HDx;wR/J"><field name="VAR">屏幕Y最大值</field><value name="VALUE"><block type="math_number" id="4e5h7dDq-EgOQ,Kg;R{N"><field name="NUM">7</field></block></value><next><block type="variables_set" id="$0RYma0iP}OIuke[1#WK"><field name="VAR">本机X坐标</field><value name="VALUE"><block type="math_number" id="${}?,#?r@99HU9D*hm-l"><field name="NUM">1</field></block></value><next><block type="variables_set" id="bJZIz):hK2hBB,yPIfj)"><field name="VAR">敌机X坐标</field><value name="VALUE"><block type="math_number" id="melmxx.2HuSKc-;7MTP|"><field name="NUM">1</field></block></value><next><block type="variables_set" id="+WFv9j/l+*xLQ3:s/0z{"><field name="VAR">子弹X坐标</field><value name="VALUE"><block type="math_number" id="s#([/O:mah0`x*-8G?o1"><field name="NUM">1</field></block></value><next><block type="variables_set" id="5(b{dYUt/m{tH_LCOn{E"><field name="VAR">得分</field><value name="VALUE"><block type="math_number" id="HYz~cujexi=v.N.t,M]9"><field name="NUM">0</field></block></value><next><block type="procedures_callnoreturn" id="Fz2v|g_0*kEsA9W{_gEY" inline="true"><mutation name="显示我机"></mutation><next><block type="controls_whileUntil" id="OsR=OQ*s!5h7*tX?2E,h"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="3Tej5bJ0arPnL5h38Lzf"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="procedures_callnoreturn" id="S=`W#hgz(l.O7`uP]/rp"><mutation name="显示敌机"></mutation><next><block type="controls_if" id="2PpC|u_+P_td}G(ci7=N"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="BwH.:_6^Jw2qBo+,j/rz"><value name="btn"><shadow type="pins_button" id="9.6!*WgGKih9GOsn1Msx"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="skDm!GgYU*9WE{$H;vW2"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="Ntf9;A|NOBFXpAcBshn|"><field name="VAR">本机X坐标</field></shadow></value><value name="B"><shadow type="math_number" id="W1o`kYiwew0Y,qPnei*D"><field name="NUM">1</field></shadow></value><next><block type="procedures_callnoreturn" id="+PUfO^0RuABxBrnl7!;S" inline="true"><mutation name="显示我机"></mutation></block></next></block></statement><next><block type="controls_if" id="r{l?yw6`0P5am#k:qQ3:"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="JBx}d#ABlPEh*yjf?2JZ"><value name="btn"><shadow type="pins_button" id="$?#`{|Y]Vpl#*$oKW+C/"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="0QaozODKDYS(ps{sts:0"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="|9p.6LkE{dd(tu|t1T3E"><field name="VAR">本机X坐标</field></shadow></value><value name="B"><shadow type="math_number" id="4MG?R.KE6VUORepn=))X"><field name="NUM">1</field></shadow></value><next><block type="procedures_callnoreturn" id="4r^LY!9yE5_M$6hOt`xp" inline="true"><mutation name="显示我机"></mutation></block></next></block></statement><next><block type="controls_if" id="F(@ncdRLCR{=+7dpJ~Qg"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="YU0{6*n]3tFkyX+q|uL+"><value name="btn"><shadow type="pins_button" id="H73T9YC;{Ww8Tb(5L`?G"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="procedures_callnoreturn" id="3uU^fiMDuJ~:DwnCahKm"><mutation name="发射子弹"></mutation><next><block type="procedures_callnoreturn" id="?b@B2|LM@F=mBavp8@bl" inline="true"><mutation name="显示我机"></mutation></block></next></block></statement></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block><block type="procedures_defnoreturn" id="OU2Q~Xn8n#TF[bVmm*))" collapsed="true" x="-32" y="-273"><field name="NAME">显示我机</field><statement name="STACK"><block type="variables_global" id="@3T{*Z1jg,E|/;P5r7-i"><value name="VAR"><block type="variables_get" id="peBScC~H1dvqP}Jpoe?4"><field name="VAR">本机X坐标</field></block></value><next><block type="variables_set" id="!n6!sc2rgi~hULLrw^P}"><field name="VAR">本机X坐标</field><value name="VALUE"><block type="math_constrain" id="-bH~p9JIHNybUdKt2`DU"><value name="VALUE"><shadow type="math_number" id="*/aosa3/BTLb0H,iaw/Z"><field name="NUM">1000</field></shadow><block type="variables_get" id=";1iLK?=_!b;Y=okU,..O"><field name="VAR">本机X坐标</field></block></value><value name="LOW"><shadow type="math_number" id="wTI:Ow]I@v;fRqr6X!sr"><field name="NUM">1</field></shadow></value><value name="HIGH"><shadow type="math_number" id="_0!gQ[`;I88UYe{T~|oC"><field name="NUM">100</field></shadow><block type="math_arithmetic" id="{e:)2P:#318qs2!.E|/2"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="ol80d?LaB@W0o;cya3bu"><field name="NUM">1</field></shadow><block type="variables_get" id="vvL)[(cjSIR36LwXeZo]"><field name="VAR">屏幕X最大值</field></block></value><value name="B"><shadow type="math_number" id="zFWlVPG#U*kUu3JZ(}Bt"><field name="NUM">1</field></shadow></value></block></value></block></value><next><block type="controls_forEach" id="79;VR?2h0`2Tob2E/xFb"><value name="LIST"><shadow type="list_many_input" id="LJb^W845WJr^@qW,f5[#"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="VaAC{#E`/aTlNt1C~}Ys"><value name="FROM"><shadow type="math_number" id="Ay}Y^5)SC582VVFD9b{q"><field name="NUM">3</field></shadow><block type="math_arithmetic" id="cpTynMAl6Dbz;*Bp}J};"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="_F-F_/)2zfS_`9_uZ}-8"><field name="NUM">1</field></shadow><block type="variables_get" id="8Z-!T6#o2?-,;b?J_42j"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="iL1#{$({fBwf-(510Dt8"><field name="NUM">2</field></shadow></value></block></value><value name="TO"><shadow type="math_number" id=".`;=-z._s#Pb2*e/KifN"><field name="NUM">5</field></shadow><block type="math_arithmetic" id="8=a#e#7F7U5!D^F6cg~H"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="Y/7sx,r#Qfs{~geU`.BY"><field name="NUM">1</field></shadow><block type="variables_get" id=".*0]nAmrt!7S]]oygrs3"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="/?Yh)AJk2QdPmo7t}7.F"><field name="NUM">3</field></shadow></value></block></value><value name="STEP"><shadow type="math_number" id="mTo/9~Od$:TkcrJMR,x1"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="42s|G9/BPl-b9?3e6YQS"><field name="VAR">x</field></shadow></value><statement name="DO"><block type="display_bright_point" id="!ctq1[}@Kd=.ING@{fZB"><value name="x"><shadow type="pins_exlcdh" id="IY}bD}`9kHD3!=$R+y/C"><field name="PIN">0</field></shadow><block type="variables_get" id="y8,}^@xPIt0tCQNm;h3y"><field name="VAR">x</field></block></value><value name="y"><shadow type="pins_exlcdv" id="u}ZwD/`L$go*I}Hnq?Z0"><field name="PIN">3</field></shadow><block type="variables_get" id="HtSy+(1})~9^fdmkFDpQ"><field name="VAR">屏幕Y最大值</field></block></value><value name="STAT"><shadow type="display_onoff" id="p?Q0oO]bz+9rJW7__ee?"><field name="ONOFF">OFF</field></shadow></value><next><block type="display_bright_point" id="n399*LULE^?[Q4x46/14"><value name="x"><shadow type="pins_exlcdh" id=")3HEjwIP0PSuy|lFlL1}"><field name="PIN">0</field></shadow><block type="variables_get" id="YDQtH)xBS@U|P|{kmrpc"><field name="VAR">x</field></block></value><value name="y"><shadow type="pins_exlcdv" id="9H6V/!Pp3VR{vT~@AX3U"><field name="PIN">4</field></shadow><block type="math_arithmetic" id="`ptv8[x)G~cYq]b][Aa2"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="6)?ysBViRZ76ObD1b[iP"><field name="NUM">1</field></shadow><block type="variables_get" id="@Cq4#1|Wr-4!CB$@Jb+0"><field name="VAR">屏幕Y最大值</field></block></value><value name="B"><shadow type="math_number" id="biddn(S]e?X8XviPik4d"><field name="NUM">1</field></shadow></value></block></value><value name="STAT"><shadow type="display_onoff" id="x?=szgu,Ek;a?OY!:D=R"><field name="ONOFF">OFF</field></shadow></value></block></next></block></statement><next><block type="display_bright_point" id="hZ;=:+7sF*nNL])8}(p-"><value name="x"><shadow type="pins_exlcdh" id="kbxm1By2ZX2:fbHDO_MR"><field name="PIN">0</field></shadow><block type="variables_get" id="Z~Io~p=@@4?1|iw$v7J`"><field name="VAR">本机X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="l5:yUdQ_=|[6_yWy+;R#"><field name="PIN">4</field></shadow><block type="variables_get" id="ULmwraUBs2GtdLh8WwRK"><field name="VAR">屏幕Y最大值</field></block></value><value name="STAT"><shadow type="display_onoff" id="WG`e`z,EcN$QSiV]0y8a"><field name="ONOFF">ON</field></shadow></value><next><block type="display_bright_point" id="GLG:_h9Tb;9*cYR!@=-V"><value name="x"><shadow type="pins_exlcdh" id="[VKB?M-R^,[B=b[$AwXU"><field name="PIN">0</field></shadow><block type="math_arithmetic" id="kK716O/+zbAs/w;h2V.o"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="wVeu?56BI99#2{$X0+dC"><field name="NUM">1</field></shadow><block type="variables_get" id="D!ht##0N)bp*pQ6V/5^A"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="jKs2)8xcPRPQ4d(6fVoH"><field name="NUM">1</field></shadow></value></block></value><value name="y"><shadow type="pins_exlcdv" id="sLAkKguK)4Xdyk5-XMuB"><field name="PIN">4</field></shadow><block type="variables_get" id="!#-`OIp6Yczj?KM,g9{v"><field name="VAR">屏幕Y最大值</field></block></value><value name="STAT"><shadow type="display_onoff" id="pZ6p}*9f=$_FBNN*J`sh"><field name="ONOFF">ON</field></shadow></value><next><block type="display_bright_point" id="0o#4Opk,W~VtzG+Sak5q"><value name="x"><shadow type="pins_exlcdh" id="kTp.8T9|W:=oEAh{=`.s"><field name="PIN">0</field></shadow><block type="math_arithmetic" id="9eXT83}zeA({E4@H00K#"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="VZ.8SirXriZJ7fsE5`M*"><field name="NUM">1</field></shadow><block type="variables_get" id="re]U9.X07~fg.@lMW(G`"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="{~C2chE{{T}t=q[FSWCI"><field name="NUM">1</field></shadow></value></block></value><value name="y"><shadow type="pins_exlcdv" id="}h;*H|GfS8/t?inhBbh-"><field name="PIN">4</field></shadow><block type="variables_get" id="nl]|S)|wUPCGJa2q;lW:"><field name="VAR">屏幕Y最大值</field></block></value><value name="STAT"><shadow type="display_onoff" id="`UYuKkF1Ktl7]rCz8kt6"><field name="ONOFF">ON</field></shadow></value><next><block type="display_bright_point" id="2M{|UaH83|Q+ZX+f9bGR"><value name="x"><shadow type="pins_exlcdh" id="l0,|di]nI=to{]S1_sLl"><field name="PIN">0</field></shadow><block type="variables_get" id="zE}ck1nObg?,chl#~[6f"><field name="VAR">本机X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="u{DX;aqBNn6_[q*F^vO|"><field name="PIN">3</field></shadow><block type="math_arithmetic" id="QM)~,=O=~3/Mif;(^2r/"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id=".O0=l~qio:z{nlY/*H@6"><field name="NUM">1</field></shadow><block type="variables_get" id="#p802[Zgss4s0N9DAvxF"><field name="VAR">屏幕Y最大值</field></block></value><value name="B"><shadow type="math_number" id="pv7@-R4BTVPggp472Imf"><field name="NUM">1</field></shadow></value></block></value><value name="STAT"><shadow type="display_onoff" id="/Sa-bMikqN?1V/i28XNJ"><field name="ONOFF">ON</field></shadow></value><next><block type="esp32_onboard_music_pitch_with_time" id="b9[kXcfhqJyO#~hAhdsh"><value name="pitch"><shadow type="pins_tone_notes" id="3@:9os(#hAV@F|D1O=I)"><field name="PIN">294</field></shadow></value><value name="time"><shadow type="math_number" id="0U*~{Je8*[F.C/wwxmE#"><field name="NUM">50</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKaW1wb3J0IHJhbmRvbQpmcm9tIG1peGdvX2NlIGltcG9ydCBvbmJvYXJkX211c2ljCmltcG9ydCB0aW1lCmltcG9ydCBtaXhnb19jZQoKZGVmIF9FNl85OF9CRV9FN19BNF9CQV9FNl85NV84Q19FNl85Q19CQSgpOgogICAgZ2xvYmFsIF9FNl85NV84Q19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcKICAgIF9FNl85NV84Q19FNl85Q19CQV9FNl85OF9BRl9FNV85MF9BNl9FNV9BRF85OF9FNV85Q19BOCA9IEZhbHNlCiAgICBmb3IgeCBpbiByYW5nZSgwLCBfRTVfQjFfOEZfRTVfQjlfOTVYX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDLCAxKToKICAgICAgICBpZiBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoeCksIGludCgwKSk6CiAgICAgICAgICAgIF9FNl85NV84Q19FNl85Q19CQV9FNl85OF9BRl9FNV85MF9BNl9FNV9BRF85OF9FNV85Q19BOCA9IFRydWUKICAgICAgICAgICAgYnJlYWsKICAgIGlmIG5vdCBfRTZfOTVfOENfRTZfOUNfQkFfRTZfOThfQUZfRTVfOTBfQTZfRTVfQURfOThfRTVfOUNfQTg6CiAgICAgICAgX0U2Xzk1XzhDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyA9IHJhbmRvbS5yYW5kaW50KDEsIF9FNV9CMV84Rl9FNV9COV85NVhfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgLSAxKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTZfOTVfOENfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3KSwgaW50KDApLCAxKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQoKZGVmIF9FNV84Rl85MV9FNV9CMF84NF9FNV9BRF85MF9FNV9CQ19COSgpOgogICAgZ2xvYmFsIF9FNV9BRF85MF9FNV9CQ19COVhfRTVfOURfOTBfRTZfQTBfODcKICAgIF9FNV9BRF85MF9FNV9CQ19COVhfRTVfOURfOTBfRTZfQTBfODcgPSBfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3CiAgICBvbmJvYXJkX211c2ljLnBpdGNoX3RpbWUoMjYyLCA1MCkKICAgIGZvciBfRTVfQURfOTBfRTVfQkNfQjlZX0U1XzlEXzkwX0U2X0EwXzg3IGluIHJhbmdlKF9FNV9CMV84Rl9FNV9COV85NVlfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgLSAyLCAtMiwgLTEpOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTVfQURfOTBfRTVfQkNfQjlYX0U1XzlEXzkwX0U2X0EwXzg3KSwgaW50KF9FNV9BRF85MF9FNV9CQ19COVlfRTVfOURfOTBfRTZfQTBfODcpLCAxKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQogICAgICAgIHRpbWUuc2xlZXBfbXMoNTApCiAgICAgICAgb25ib2FyZF9tYXRyaXgucGl4ZWwoaW50KF9FNV9BRF85MF9FNV9CQ19COVhfRTVfOURfOTBfRTZfQTBfODcpLCBpbnQoX0U1X0FEXzkwX0U1X0JDX0I5WV9FNV85RF85MF9FNl9BMF84NyksIDApCiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvdygpCgpkZWYgX0U2Xzk4X0JFX0U3X0E0X0JBX0U2Xzg4XzkxX0U2XzlDX0JBKCk6CiAgICBnbG9iYWwgX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NwogICAgX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyA9IG1pbihtYXgoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NywgMSksIF9FNV9CMV84Rl9FNV9COV85NVhfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgLSAxKQogICAgZm9yIHggaW4gcmFuZ2UoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyAtIDIsIF9FNl85Q19BQ19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcgKyAzLCAxKToKICAgICAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoeCksIGludChfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDKSwgMCkKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaG93KCkKICAgICAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoeCksIGludChfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDIC0gMSksIDApCiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvdygpCiAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyksIGludChfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDKSwgMSkKICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQogICAgb25ib2FyZF9tYXRyaXgucGl4ZWwoaW50KF9FNl85Q19BQ19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcgLSAxKSwgaW50KF9FNV9CMV84Rl9FNV9COV85NVlfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMpLCAxKQogICAgb25ib2FyZF9tYXRyaXguc2hvdygpCiAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyArIDEpLCBpbnQoX0U1X0IxXzhGX0U1X0I5Xzk1WV9FNl85Q184MF9FNV9BNF9BN19FNV84MF9CQyksIDEpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93KCkKICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3KSwgaW50KF9FNV9CMV84Rl9FNV9COV85NVlfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgLSAxKSwgMSkKICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQogICAgb25ib2FyZF9tdXNpYy5waXRjaF90aW1lKDI5NCwgNTApCgoKCl9FNV9CMV84Rl9FNV9COV85NVhfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgPSAxNQpfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDID0gNwpfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3ID0gMQpfRTZfOTVfOENfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3ID0gMQpfRTVfQURfOTBfRTVfQkNfQjlYX0U1XzlEXzkwX0U2X0EwXzg3ID0gMQpfRTVfQkVfOTdfRTVfODhfODYgPSAwCl9FNl85OF9CRV9FN19BNF9CQV9FNl84OF85MV9FNl85Q19CQSgpCndoaWxlIFRydWU6CiAgICBfRTZfOThfQkVfRTdfQTRfQkFfRTZfOTVfOENfRTZfOUNfQkEoKQogICAgaWYgbWl4Z29fY2UuQTFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3IC09IDEKICAgICAgICBfRTZfOThfQkVfRTdfQTRfQkFfRTZfODhfOTFfRTZfOUNfQkEoKQogICAgaWYgbWl4Z29fY2UuQjFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3ICs9IDEKICAgICAgICBfRTZfOThfQkVfRTdfQTRfQkFfRTZfODhfOTFfRTZfOUNfQkEoKQogICAgaWYgbWl4Z29fY2UuQjJrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBfRTVfOEZfOTFfRTVfQjBfODRfRTVfQURfOTBfRTVfQkNfQjkoKQogICAgICAgIF9FNl85OF9CRV9FN19BNF9CQV9FNl84OF85MV9FNl85Q19CQSgpCg==</code> |