diff --git a/assets.ts b/assets.ts index 9a6908c6..04c139bb 100644 --- a/assets.ts +++ b/assets.ts @@ -26,7 +26,6 @@ namespace microcode { function jacdacImages(name: string | number) { if (name == Tid.TID_FILTER_KITA_KEY_1) return icondb.kita_key_1 if (name == Tid.TID_FILTER_KITA_KEY_2) return icondb.kita_key_2 - if (name == Tid.TID_SENSOR_MAGNET) return icondb.magnet if (name == Tid.TID_SENSOR_SLIDER) return icondb.kita_slider if (name == Tid.TID_SENSOR_ROTARY) return icondb.kita_rotary if (name == Tid.TID_FILTER_ROTARY_LEFT) return icondb.kita_rotary_left @@ -103,10 +102,7 @@ namespace microcode { // math if (typeof name == "number") { - if ( - microcode.isModifierConstant(name) || - microcode.isFilterConstant(name) - ) { + if (microcode.isConstant(name)) { return icondb.numberToImage(getParam(name)) } } @@ -126,6 +122,7 @@ namespace microcode { // variables + if (name == Tid.TID_SENSOR_MAGNET) return icondb.magnet if (name == Tid.TID_SENSOR_CUP_X_WRITTEN) return icondb.cupXwritten if (name == Tid.TID_SENSOR_CUP_Y_WRITTEN) return icondb.cupYwritten if (name == Tid.TID_SENSOR_CUP_Z_WRITTEN) return icondb.cupZwritten diff --git a/assets/js/binary-en.js b/assets/js/binary-en.js index f88108b3..866616fb 100644 --- a/assets/js/binary-en.js +++ b/assets/js/binary-en.js @@ -1,6 +1,6 @@ -// meta={"simUrl":"https://trg-microbit.userpxt.io/beta---simulator","cdnUrl":"https://cdn.makecode.com","version":"v2.5.47","target":"microbit","targetVersion":"8.1.3"} +// meta={"simUrl":"https://trg-microbit.userpxt.io/beta---simulator","cdnUrl":"https://cdn.makecode.com","version":"v2.5.47","target":"microbit","targetVersion":"8.1.6"} // boardDefinition={"visual":"microbit","gpioPinBlocks":[["P0"],["P1"],["P2"],["P3"],["P4","P5","P6","P7"],["P8","P9","P10","P11","P12"],["P16"]],"gpioPinMap":{"P0":"P0","P1":"P1","P2":"P2","P3":"P3","P4":"P4","P5":"P5","P6":"P6","P7":"P7","P8":"P8","P9":"P9","P10":"P10","P11":"P11","P12":"P12","P13":"P13","P14":"P14","P15":"P15","P16":"P16","P19":"P19","P20":"P20"},"spiPins":{"MOSI":"P15","MISO":"P14","SCK":"P13"},"i2cPins":{"SDA":"P20","SCL":"P19"},"analogInPins":["P0","P1","P2","P3","P10"],"groundPins":["GND"],"threeVoltPins":["+3v3"],"attachPowerOnRight":true,"onboardComponents":["accelerometer","buttonpair","ledmatrix","speaker","bluetooth","thermometer","compass","builtinspeaker","microphone","logotouch","flashlog","v2"],"pinStyles":{"P0":"croc","P1":"croc","P2":"croc","GND":"croc","+3v3":"croc"},"marginWhenBreadboarding":[0,0,80,0]} -// total=2737133 new=95.40% cached=0.00% other=4.60% +// total=2946612 new=78.35% cached=0.00% other=21.65% (function (ectx) { 'use strict'; const runtime = ectx.runtime; @@ -28,6 +28,172 @@ const __this = runtime; const pxtrt = pxsim.pxtrt; let yieldSteps = 1; ectx.setupYield(function() { yieldSteps = 100; }) +const _hex4902 = pxsim.BufferMethods.createBufferFromHex("1f00210023002500270029002c002e003100340037003a003e004100450049004e00520057005c00620068006e0075007b0083008b0093009c00a500af00b900c400d000dc00e900f70006011501260137014a015d01720188019f01b801d201ee010b022a024b026e029302ba02e40210033f037003a403dc03170455049704dd0427057505c80520067d06e0064907b8072d08a9082d09b9094d0aea0a900b400cfa0cc00d910e6f0f5a1053115b1272139a14d41520178018f519801b231dde1e") +const _hex5080 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000101111111111110110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110111111111111010000000000000000") +const _hex5101 = pxsim.BufferMethods.createBufferFromHex("000000ffffffff2121ff93c4ff8135fff609249ca378dc52003fad87f2ff8e2ec4a4839f5c406ce5cdc491463d000000") +const _hex13158 = pxsim.BufferMethods.createBufferFromHex("2000000000000000210000005e0000002200000e000e0000230028fe28fe280024004c92ff926400250002651248a64026006c92926ca000270000000e000000280000007c82000029000000827c00002a005438103854002b0010107c1010002c000000907000002d001010101010002e000000606000002f000060100806003000003c42423c00310000447e4000003200004462524c00330000424a4e320034003028247e20003500004e4a4a32003600003c4a4a30003700000262120e00380000344a4a34003900000c52523c003a0000006c6c00003b000000967600003c001028284444003d002828282828003e004444282810003f0000025909060040003c425a560800410078141214780042007e4a4a4a34004300003c424224004400007e42423c004500007e4a4a42004600007e0a0a02004700003c425234004800007e08087e00490000427e4200004a002040423e02004b00007e081462004c00007e404040004d007e0418047e004e00007e04087e004f003c4242423c005000007e12120c005100003c5262bc005200007e12126c00530000244a522400540002027e0202005500003e40403e005600001e70701e0057007e2018207e00580042241824420059000608700806005a000062524a46005b00007e424200005c000006081060005d000042427e00005e000804020408005f00808080808000600000000204000061000030484878006200007e4848300063000030484848006400003048487e006500003068585000660000107c12040067000018a4a478006800007e08087000690000487a4000006a000040847d00006b00007e102840006c0000427e4000006d007808300870006e000078080870006f00003048483000700000fc24241800710000182424fc0072000078100810007300005058682800740000083e48200075000038404078007600001860601800770038403040380078000048303048007900005ca0a07c007a000048685848007b000008364100007c000000fe0000007d000041360800007e00000804080400a000000000000000a10000007a000000a200003048fc4800a30090fc92928400a400542844285400a5002a2c782c2a00a6000000ee000000a7000094aaaa5200a800000200020000a9003e414955413eaa0000242a2e0000ab00102854284400ac00001010107000ad00001010101000ae003e415d45413eaf00000202020200b000000814140800b1008888be888800b2000024322c0000b30000222a140000b400000004020000b50000f840207800b6000c1e7e027e00b700000010000000b800000080400000b90000243e200000ba0000242a240000bb00442854281000bc00025f70f84000bd00021f90c8b000be0011557af84000bf000030484d2000c000601916186000c100601816196000c200601a151a6000c300601a151a6100c400601914196000c500601a151a6000c6007c0a7e4a4200c700001ea1611200c800007c55564400c900007c56554400ca00007c56554600cb00007c55544500cc0000457e440000cd0000447e450000ce0000467d460000cf0000457c450000d000087e4a423c00d100007e09127d00d200003845463800d300003846453800d400003846453a00d500003a45463900d600003845443900d700442810284400d80000fc724e3f00d900003c41423c00da00003c42413c00db00003c42413e00dc00003c41403d00dd00040872090400de00007e24241800df00007c025a2400e0000030494a7800e10000304a497800e20000304a497a00e3000032494a7900e40000304a487a00e50000304a4d7a00e600304878685000e7000018a4642400e8000030695a5000e90000306a595000ea0000306a595200eb0000306a585200ec0000497a400000ed0000487a410000ee00004a79420000ef00004a78420000f00000304a4b3d00f100007a090a7100f2000030494a3000f30000304a493000f40000304a493200f5000032494a3100f60000304a483200f700101054101000f800007068583800f900003841427800fa00003842417800fb00003842417a00fc00003842407a00fd0000b84241f800fe0000ff24241800ff00005ca1a07d000001601915196000010100304a4a7a000201611a16196000030100314a4a790004013c0a094abc00050100182464bc000601003846452800070100304a4948000801003846452a00090100304a494a000a010038444528000b010030484a48000c010038454629000d010030494a49000e01007c454639000f0100314a497e001001087e4a423c00110130484c7e04001201007d55554500130100326a5a52001401007d56564500150100316a5a51001601007c55544400170100306a5850001801003f65a521001901001874ac28001a01007c555645001b010030695a51001c010038465536001d0100304a49f2001e010039465635001f0100314a4af100200100384455340021010018a4a578002201001ea1691a0023010018a6a578002401007812117a0025017e080a7102002601047e147e04002701047e0c08700028010002457e450029010002497a41002a0100457d4500002b01004a7a4200002c0100014a7a49002d0100014a7a41002e0100217fa100002f0100247da00000300100447d440000310100487840000032017e0022423e0033013d0040847d0034012040463d0600350100800af90200360100bf440a3100370100bf4814200038010078102848003901007c404241003a0100467d4000003b01003fa06020003c0100a17f2000003d01007c414241003e0100457e4100003f01007e40484000400100427e4008004101107e48404000420100527e4800004301007c0a117c00440100780a097000450100bf42043f00460100bc440438004701007c09127d00480100790a09700049010a06780870004a01003f02847f004b01003c048478004c013945454539004d0100324a4a32004e013946464639004f0100314a4a310050013a4544463900510132494832010052013c427e4a420053013048306850005401007c163548005501007812091000560100bf49093600570100bc480408005801007d1635480059010079120910005a010048565524005b0100505a6928005c010048565526005d0100505a692a005e010012a56912005f010028ac741400600100485556250061010050596a290062010101bf410100630100049f641000640104057e050400650100083d4a2100660102127e120200670100183e5820006801003a414239006901003a414279006a01003d41413d006b01003a42427a006c010039424239006d010039424279006e01003a45453a006f01003a45457a0070013a41403a010071013a41407a01007201001f60a01f007301001c60a03c00740178221122780075013842314238007601081261120800770100b84241fa00780104097009040079010064564d44007a0100486a5948007b010064544d44007c010048685a48007d010064554e45007e010048695a49007f0100087c0204008f01003452523c00920100887e090200a0013c42423c0806a101003048483008af01003e403e0806b001003840781008b501006a5a4a4e00b601005878585800d101003845463900d2010030494a3100e601003845563500e7010030494af100fa0100742a750000fb0100304c4a7d00fc0178147e554400fd0130487a695000fe010078744e3d00ff0100706a59380018020012a569120019020028ac7414001a020101bf4101001b0200049f641000bb0200000c0a0000bc0200000a060000bd020000060a0000c602000201020000c702000102010000c902000202020000d802000102020100d902000002000000da02000205020000db02000040800000dc02000201020100dd02020100020100740300000201000075030000804000007a030000c08000007e03000096760000840300000300000085030200030002008603037c12127c008703000010000000880303007e4a4200890303007e087e008a030300427e42008c03033c42423c008e0303000e700e008f03035c62625c00900302003b400200910378141214780092037e4a4a4a34009303007e0202020094036058465860009503007e4a4a420096030062524a46009703007e08087e0098033c4a4a4a3c00990300427e4200009a03007e081462009b036018061860009c037e0418047e009d03007e04087e009e0300424a4a42009f033c4242423c00a003007e02027e00a103007e12120c00a30300665a424200a40302027e020200a503060870080600a60318247e241800a703422418244200a8030e107e100e00a9035c6202625c00aa0300457c450000ab03040970090400ac030030484a7900ad030030685a5100ae0378100a09f000af03003a41200000b0033a4043403a00b103003048487800b20300fe25251a00b3030c30c0300c00b403344a4a4a3000b503003068585000b603021aa6a24200b7033c080404f800b803003c4a4a3c00b903003840200000ba03007820504800bb03641212227c00bc03fc2020103c00bd03182040201800be03112d2ba94100bf03003048483000c003087808780800c103f82424241800c2031824a4a44800c303304848582800c403000838482800c503384040403800c6031c20f8241800c703c4281028c400c8031c20fc201c00c903304820483000ca03000238422000cb03384240423800cc0330484a493000cd03384042413800ce03304822493000d0033c52525c2000d10310344a3c0800d203067804020400d303120a7c020400d4030d7009040800d5031824ff241800d603384828483800d70348302221d800da031c2221a14200db031824a4a44200dc037e1212020200dd0300fc24240400de033e2010087c00df030c0ac9281800e003700c621c7000e10301092516f800e2039ea0bea07e00e30398a0b8a07800e4030c1214107e00e503001028207800e603be9088887000e70348544e443800e803245252524c00e903285454544800ea0364524c526400eb03086458640800ec03385454542200ed03306848682400ee03184a7e4a1800ef031848ff0a0800f003483020205800f10378a4a4a49800f203304848485000f303006080847d00f4033c4a4a4a3c00f5030030585848000004007c555644000104007c55544500020401013f8579000304007c0605040004043c4a4a422400050400244a522400060400427e420000070400457c45000008042040423e020009047c027e4830000a047e087e4830000b0402027e0a72000c04007c102a45000d047c2112087c000e040c5152523d000f043f20e0203f00100478141214780011047e4a4a4a300012047e4a4a4a34001304007e020202001404c07c427ec0001504007e4a4a4200160476087e087600170424424a4a34001804007e08047e001904007d120a7d001a04007e081462001b04403c02027e001c047e0418047e001d04007e08087e001e043c4242423c001f047e0202027e002004007e12120c002104003c42422400220402027e02020023040e5050503e00240418247e241800250442241824420026043f2020bf600027040e1010107e0028047e407e407e0029043f203fa07f002a04027e484830002b047e4848307e002c04007e484830002d0424424a4a3c002e047e183c423c002f04006c12127e0030043048487840003104003c4a4a3100320400786850200033040078080808003404c0704878c000350430686850000036044830783048003704004058683000380478402010780039047942221279003a040078203048003b044030080878003c047810201078003d047810101078003e043048484830003f047808080878004004fc24242418004104304848485000420408087808080043041ca0a0a07c0044041824ff241800450400483030480046043c2020bc60004704182020207800480478407840780049043c203ca07c004a040878505020004b047850502078004c040078505020004d044858683000004e047830304830004f0450282878000050040030696a500051040032686a50005204023f0a887000530400780a09080054040030685848005504005058682800560400487a4000005704004a784200005804004080847d0059047008785020005a047810785020005b04047e141060005c040078223148005d047841221078005e0418a1a2a279005f043c20e0203c006204027f4a4830006304087e5850200070040e107e100e00710418207820180072043c4a4a4a3c0073043068586830007404001e70180c0075040018603010009004007e020203009104007808080c009204087e0a0a0200930420782808080096043b043f043be0970424183c1824c09a04003f040a31c09b04003c101824c0ae04060870080600af040c10e0100c00b004161870181600b1042c30e0302c00b20421120c1221c0b3040024181824c0ba047e0808087000bb04007e08087000d804003452523c00d904002868583000e20400457d450000e304004a7a420000e8043c4a4a4a3c00e904003058583000ee04003d41413d00ef04003a42427a00d005681020285000d105484848784000d205004830600000d305080808780800d405680808087800d505000008780000d605080818680800d705087808087800d805784050487800d905000008180000da0504040404fc00db05484848483800dc050e4848281800dd05087848487800de05582010487000df05000004fc0000e005004040487800e105000878483800e205487840281800e305041c0404fc00e405485848483800e50504f820140800e605485060685000e705f40424241c00e805080808087000e905785058403800ea05487808087800f005087800087800f105081800087800f205081800081800f305000010080000f405100800100800021e7c5455542800031e007e484930000a1e007c454438000b1e003049487e001e1e007c151404001f1e001079140800401e7e0419047e00411e780832087000561e007c15140800571e00fc25241800601e004854552400611e0050586a28006a1e04047d0404006b1e00083d482000801e7c2112207c00811e384132403800821e7c2012217c00831e384032413800841e7c2110217c00851e384230423800f21e040972080400f31e00b84142f800a3207e0a7a120a00a420a8fcaa828400a720087e2a1c0800ab200098a4a6bf02ac20183c5a5a4200af20627f224438009021103854101000912108047e0408009221101054381000932110207e201000942110381010381095212844fe442800") +const _hex6758 = pxsim.BufferMethods.createBufferFromHex("20000000000000000000000000000000000000000000000000002100000000000006fc0000000000000000000000000000000000220000001c00000000001c0000000000000000000000000000002300a000f807a000f807a00000000000000000000000000000002400000018022404460c8803000000000000000000000000000025003802c4017800200390040803000000000000000000000000260080037804a4041803800340040000000000000000000000002700000000001c00000000000000000000000000000000000000280000000000f8010606010800000000000000000000000000002900000001080606f801000000000000000000000000000000002a00040014000e001400040000000000000000000000000000002b0040004000f8034000400000000000000000000000000000002c000000000000090006000000000000000000000000000000002d000000800080008000000000000000000000000000000000002e000000000000060000000000000000000000000000000000002f00000c800360001c000300000000000000000000000000000030000000f80304040404f80300000000000000000000000000003100000004040404fc07000400040000000000000000000000003200000008060405c4043804000000000000000000000000000033000000080244044404b803000000000000000000000000000034000000800170010801fc070001000000000000000000000000350000023c0424042404c403000000000000000000000000000036000000f0034804440488030000000000000000000000000000370000000400c40734000c00000000000000000000000000000038000000b80344044404b803000000000000000000000000000039000000780284048802f00100000000000000000000000000003a000000000030060000000000000000000000000000000000003b000000000018090006000000000000000000000000000000003c004000a000a000a000100100000000000000000000000000003d002001200120012001200100000000000000000000000000003e0000001001a000a000a00040000000000000000000000000003f000000080084066400180000000000000000000000000000004000f0030c04c20822092409f80900000000000000000000000041000007f8008400f8000007000000000000000000000000000042000000fc0744044404b803000000000000000000000000000043000000f001080204040404080200000000000000000000000044000000fc0704040802f001000000000000000000000000000045000000fc07440444044404000000000000000000000000000046000000fc07440044004400000000000000000000000000000047000000f00108024404c803000000000000000000000000000048000000fc0740004000fc070000000000000000000000000000490000000404fc070404040400000000000000000000000000004a000000000200040004fc0300000000000000000000000000004b000000fc074000f0000c0304040000000000000000000000004c000000fc0700040004000400000000000000000000000000004d000000fc0738007000fc0700000000000000000000000000004e000000fc073800c003fc0700000000000000000000000000004f000000f80304040404f803000000000000000000000000000050000000fc07840084004400780000000000000000000000000051000000fc0102020206fc09000000000000000000000000000052000000fc074400c4013806000000000000000000000000000053000000180224044404880300000000000000000000000000005400000004000400fc070400040000000000000000000000000055000000fc0300040004fc03000000000000000000000000000056000c00f0030004f0030c00000000000000000000000000000057007c008007e001f0010007fc0000000000000000000000000058000404b8034000b80304040000000000000000000000000000590004003800c00730000c0000000000000000000000000000005a0004040407e4041c04040400000000000000000000000000005b0000000000ff0f0108010800000000000000000000000000005c0003001c0060008003000c00000000000000000000000000005d00000001080108ff0f000000000000000000000000000000005e004000380004003800400000000000000000000000000000005f00000800080008000800080000000000000000000000000000600000000000020004000000000000000000000000000000000061000000200390049004e007000000000000000000000000000062000000fc0710041004e003000000000000000000000000000063000000c001200210043004000200000000000000000000000064000000e00310041004fc07000000000000000000000000000065000000e00390049004e0040000000000000000000000000000660000001000f80714001400000000000000000000000000000067000000b806440944093c09040600000000000000000000000068000000fc0710001000e0070000000000000000000000000000690000000000f4070000000000000000000000000000000000006a00000800080008fd07000000000000000000000000000000006b000000fe078000e001100610040000000000000000000000006c0000000000fc030004000400000000000000000000000000006d00f00710001000e0071000e0070000000000000000000000006e000000f00710001000e00700000000000000000000000000006f000000e00310041004e003000000000000000000000000000070000000fc0f04010401f800000000000000000000000000000071000000f80004010401fc0f000000000000000000000000000072000000f00720001000100000000000000000000000000000007300000060029004900420030000000000000000000000000000740000001000fc0310041004000000000000000000000000000075000000f00300040004f007000000000000000000000000000076003000c0030004c003300000000000000000000000000000007700f0000007e003c0010007f000000000000000000000000000780010046003800060031004000000000000000000000000000079000c0870088007f0000c0000000000000000000000000000007a000000000410079004700410040000000000000000000000007b0000004000be070108010800000000000000000000000000007c0000000000ff0f0000000000000000000000000000000000007d00000001080108be07400000000000000000000000000000007e00800040004000800080004000000000000000000000000000a000000000000000000000000000000000000000000000000000a1000000d80f0000000000000000000000000000000000000000a2000000e0011002f80710021001000000000000000000000000a30000004006f805440444040804000000000000000000000000a4000000f001100110011001e801000000000000000000000000a50044017801c007780144010000000000000000000000000000a6000000df0f0000000000000000000000000000000000000000a7000000000000004004b808240924094407c000000000000000a800000000000400000004000000000000000000000000000000a900e00010010802e40414051405140404021801e00000000000aa0012002a002a003c0000000000000000000000000000000000ab00800040012002800040012002000000000000000000000000ac0040004000400040004000c003000000000000000000000000ad00000080008000800000000000000000000000000000000000ae001c0022005900490022001c00000000000000000000000000af00000000000400040004000400000000000000000000000000b000080014001400080000000000000000000000000000000000b10000002004200420042004fc05200420042004200400000000b200020031002900260000000000000000000000000000000000b300100023002900160000000000000000000000000000000000b400000000000000040002000100000000000000000000000000b5000000f80f000200020001f801000200000000000000000000b60000000000000020007800fc00fc0ffc070000000000000000b70000000000000000004000e000400000000000000000000000b800000000000000000a00040000000000000000000000000000b900000002003e00000000000000000000000000000000000000ba001c002200220022001c000000000000000000000000000000bb002002400180002002c0010000000000000000000000000000bc0000000400fc0000068001600018038402c007000200000000bd00000004007c040003c0003000080024062005c00400000000be0040008400940068060001c000300208038402c00700020000bf000000000780086c0800040000000000000000000000000000c0000008800771010a0170018007000800000000000000000000c1000008800770010a0171018007000800000000000000000000c2000004c003b9008500b900c003000400000000000000000000c3000006c201b9008500ba00c101000600000000000000000000c40000040007f1008c008c00f100000700040000000000000000c500000c800372010d0172018003000c00000000000000000000c60000040003c000b0008c00fc07440444044404040400000000c70000007c0082000101010b0105820080000000000000000000c8000000f80f89088a0888080808000000000000000000000000c9000000f80f88088a0889080808000000000000000000000000ca000000fc074504450446040604000000000000000000000000cb000000fc074504440444040504000000000000000000000000cc000100fa0f0000000000000000000000000000000000000000cd000000fa0f0100000000000000000000000000000000000000ce000100fd070100000000000000000000000000000000000000cf000100fc070000010000000000000000000000000000000000d00000004000fc074404440404040802f0010000000000000000d1000000fc0709003100c2010102fd0700000000000000000000d2000000e00310040b08080808081004e0030000000000000000d3000000e0031004080808080b081004e0030000000000000000d4000000f00108020504050405040802f0010000000000000000d5000000f00109020504060406040902f0010000000000000000d6000000f00108020504040405040802f0010000000000000000d700000000000402080190006000600090000801040200000000d8000000f00508038404440424041802f4010000000000000000d9000000f8030104020804080004f80300000000000000000000da000000f8030004040802080104f80300000000000000000000db000000fc010102010401040102fc0100000000000000000000dc000000fc010102000400040102fc0100000000000000000000dd00080018006000860f61001800080000000000000000000000de000000fc071001100110011001e00000000000000000000000df000000fc070400020072068c04000300000000000000000000e00000002003910492049402e007000000000000000000000000e10000002003900494049202e107000000000000000000000000e20000002003940492049202e407000000000000000000000000e30000002403920492049402e207000000000000000000000000e40000002003940490049402e007000000000000000000000000e5000000200394049a049402e007000000000000000000000000e60000002003900490049004e003a00490049004e00400000000e700000070008800040b04058800000000000000000000000000e8000000c003a30294049004e004000000000000000000000000e9000000c003a00294049304e004000000000000000000000000ea000000c003a40292049404e004000000000000000000000000eb000000c003a40290049404e004000000000000000000000000ec000300f4070000000000000000000000000000000000000000ed000000f4070300000000000000000000000000000000000000ee000400f2070400000000000000000000000000000000000000ef000400f0070400000000000000000000000000000000000000f0000000c0032a0424043c04e203000000000000000000000000f1000000f007260012001400e207000000000000000000000000f2000000c0012102120414042002c00100000000000000000000f3000000c0012002140412042102c00100000000000000000000f4000000c0012402120412042402c00100000000000000000000f5000000c4012202120414042202c00100000000000000000000f6000000c0012402100414042002c00100000000000000000000f700000000004000400040004c06480440004000400000000000f8000000c00520021005d0042002d00100000000000000000000f9000000f003030404040002f007000000000000000000000000fa000000f003000404040302f007000000000000000000000000fb000000f403040402040402f407000000000000000000000000fc000000f003040400040402f007000000000000000000000000fd000800700082090107f0000800000000000000000000000000fe000000ff0f0801040104018800700000000000000000000000ff000c087108800780017900040000000000000000000000000000010004c003b9008500b900c003000400000000000000000000010100002003940494049402e40700000000000000000000000002010008800771010a0171018007000800000000000000000000030100002203940494049402e207000000000000000000000000100100004000fc074404440404040802f001000000000000000011010000c003200428042804fe0708000000000000000000000012010000fc07450445044504040400000000000000000000000013010000c003a40294049404e0040000000000000000000000001a010000f80f89088a08890808080000000000000000000000001b010000c003a20294049204e004000000000000000000000000280102000100fd07010001000000000000000000000000000000290104000200f4070400020000000000000000000000000000002a010100fd0701000000000000000000000000000000000000002b010400f407040000000000000000000000000000000000000043010000f80f1000640082030104f80f0000000000000000000044010000f007200014001300e10700000000000000000000000047010000fc0709003200c2010102fc070000000000000000000048010000f007220014001200e1070000000000000000000000004c010000f00108020504050405040802f00100000000000000004d010000c0012402140414042402c001000000000000000000004e010000e003100409080a0809081004e00300000000000000004f010000c2012402140414042202c0010000000000000000000052010000f0010802040404040404fc074404440444040404000053010000c003200410042002c001a00290049004a004e004000068010000fc010102010402040102fd010000000000000000000069010000f403020404040402f2070000000000000000000000006a010000fc010102010401040102fc01000000000000000000006b010000f003040404040402f0070000000000000000000000006c010000fc010102020402040102fc01000000000000000000006d010000f203040404040402f2070000000000000000000000009201000800082007f80024000400000000000000000000000000a0010000f00108020404040404040c02f3010000000000000000a1010000c0012002100410043002cc0100000000000000000000af010000fc010002000400040002fc0104000300000000000000b0010000f003000400040002f0070c0000000000000000000000cd010008800771010a0171018007000800000000000000000000ce0100002003920494049202e107000000000000000000000000cf010100fd070100000000000000000000000000000000000000d0010200f4070200000000000000000000000000000000000000d1010000e003100409080a0809081004e0030000000000000000d2010000c0012202140414042202c00100000000000000000000d3010000fc010102020402040102fc0100000000000000000000d4010000f103020404040202f107000000000000000000000000d5010000f8030204010801080204f80300000000000000000000d6010000f003050401040502f007000000000000000000000000d7010000f8030204010801080304f80300000000000000000000d8010000f003040401040402f007000000000000000000000000d9010000f8030204000801080204f80300000000000000000000da010000f003050401040502f007000000000000000000000000db010000f8030304010801080204f80300000000000000000000dc010000f003040401040402f007000000000000000000000000f8010000f80f1100630084030004f80f00000000000000000000f9010000f007210016001400e00700000000000000000000000051020000c003200410041004f00700040000000000000000000061020000f004080904090409fc07000000000000000000000000bb02000018001400000000000000000000000000000000000000c702000002000400180038000400020000000000000000000000c902000000000000040004000400040004000000000000000000ca02000000001000080004000200000000000000000000000000cb02000002000400040008001000000000000000000000000000d902000000006000600000000000000000000000000000000000ea02000000007e00400040004000000000000000000000000000eb02000000007e0008000800080000000000000000000000000000030000040008000800100020000000000000000000000000000103000000002000100008000400000000000000000000000000040304000400040004000000000000000000000000000000000007030000000000000600060000000000000000000000000000000c0300000400080030007000080004000000000000000000000091030004c003b8008400b800c00300040000000000000000000092030000fc07440444044404a404b8030000000000000000000093030000fc07040004000400040000000000000000000000000094030006c005380404043804c00500060000000000000000000095030000fc0744044404440404040000000000000000000000009603000004040407c40424041c0404040000000000000000000097030000fc074000400040004000fc070000000000000000000098030000f00108024404440444040802f001000000000000000099030000fc0700000000000000000000000000000000000000009a030000fc0740002000d0000c030404000000000000000000009b030004c003380004003800c0030004000000000000000000009c030000fc070800700080010003f0000800fc070000000000009d030000fc0708003000c0010002fc07000000000000000000009e030000040444044404440444040404000000000000000000009f030000f00108020404040404040802f0010000000000000000a0030000fc070400040004000400fc0700000000000000000000a1030000fc078400840084004400780000000000000000000000a303000004040c07b40444040404040400000000000000000000a403040004000400fc0704000400040000000000000000000000a50304000c003000c00730000c00040000000000000000000000a6030000e00010010802fc07080208021001e000000000000000a70304041803e000a00018030404000000000000000000000000a80300003c0040008000fc07800040003c000000000000000000a9030000f00508060404040004040806f0050000000000000000b1030000c003200410042002e003100400000000000000000000b2030000fe0f0101110211022e02c00100000000000000000000b30308001800e000000fc0003800000000000000000000000000b4030000cc03320232042204c403000000000000000000000000b5030000600390049004b0040002000000000000000000000000b6030000e10019010502030a010c000000000000000000000000b7030000f803100008000800f00f000000000000000000000000b8030000f801440242044402f801000000000000000000000000b9030000f0030004000000000000000000000000000000000000ba030000f0078000c00020031004000000000000000000000000bb030204820364003800c0030004000000000000000000000000bc030000f80f000200020001f801000200000000000000000000bd031000600080030006c0013000000000000000000000000000be030100cf0031011102110a010c000000000000000000000000bf030000e003100410042004c003000000000000000000000000c00300001000f00710001000f003100400000000000000000000c1030000e00f1001080208021001e00000000000000000000000c2030000f0000801080a100c0000000000000000000000000000c3030000e003100410043004d003100000000000000000000000c403000010001000f00310041000000000000000000000000000c5030000f003000400040004f003000000000000000000000000c6030000e00010010802fe0f08021001e0000000000000000000c70308083006c001600118060808000000000000000000000000c8030000f80100010002fe0f00020001f8000000000000000000c9030000e003100400048003000400043004c00300000000000001040000fc07450444044404050400000000000000000000000010040004c003b8008400b800c00300040000000000000000000011040000fc07440444044404440480030000000000000000000012040000fc07440444044404a404b8030000000000000000000013040000fc0704000400040004000000000000000000000000001404000ec0033c02020202020202fe03000e000000000000000015040000fc074404440444040404000000000000000000000000160404040406980160004000fc07400060009801040604040000170400000802440444044404b80480030000000000000000000018040000fc0700028001400030000800fc07000000000000000019040000fc0701028201420031000800fc0700000000000000001a040000fc0740004000b00008030404000000000000000000001b0400040002f0010c0004000400fc07000000000000000000001c040000fc070800700080010003f0000800fc070000000000001d040000fc074000400040004000fc07000000000000000000001e040000f00108020404040404040802f00100000000000000001f040000fc070400040004000400fc070000000000000000000020040000fc07840084008400440078000000000000000000000021040000f00108020404040404040802000000000000000000002204040004000400fc0704000400040000000000000000000000230404001804e0040003e000180004000000000000000000000024040000e00010010802fc07080208021001e000000000000000250404041803e000a0001803040400000000000000000000000026040000fe030002000200020002fe03000e0000000000000000270400003c004000400040004000fc070000000000000000000028040000fc07000400040004fc07000400040004fc070000000029040000fe03000200020002fe03000200020002fe03000e00002a04040004000400fc07400440044004400480030000000000002b040000fc07400440044004400480030000fc070000000000002c040000fc0740044004400440048003000000000000000000002d04000008024404440444044802f001000000000000000000002e040000fc0740004000f00108020404040404040802f00100002f04000038044403c40044004400fc0700000000000000000000300400002003900490049002e00700000000000000000000000031040000f0014802240424042404c4030000000000000000000032040000f007900490049004600300000000000000000000000033040000f00710001000100000000000000000000000000000003404000ee003180208020802f803000e0000000000000000000035040000c003a00290049004e00400000000000000000000000036041004300640018000f007800040013006100400000000000037042000100290049004e004000300000000000000000000000038040000f0070002c0012000f00700000000000000000000000039040000f0070202c4012400f2070000000000000000000000003a040000f0078000c000200310040000000000000000000000003b0400040006f00110001000f0070000000000000000000000003c040000f0076000800180036000f007000000000000000000003d040000f007800080008000f0070000000000000000000000003e040000c0012002100410042002c001000000000000000000003f040000f007100010001000f00700000000000000000000000040040000fc0f080104010401840078000000000000000000000041040000c00120021004100420020000000000000000000000004204000010001000f00710001000000000000000000000000000430404083808c00480037800040000000000000000000000000044040000f80004010401ff0f0401040184007800000000000000450410043002c00140013006100400000000000000000000000046040000f803000200020002f803000e0000000000000000000047040000f000000100010001f00700000000000000000000000048040000f007000400040004f00700040004f00700000000000049040000f803000200020002f80300020002f803000e000000004a04000010001000f007800480040003000000000000000000004b040000f00780048004800400030000f00700000000000000004c040000f00780048004800400030000000000000000000000004d04200290049004a002c00100000000000000000000000000004e040000f00780008000c003200410042004c0030000000000004f040000e004100310011001f00700000000000000000000000051040000c003a40290049404e0040000000000000000000000000011000000000400040004000400040004003c00000000000000011100000000040004003c000000040004007c000000000000000211000000003c002000200020002000200020000000000000000311000000003c002400240024002400240024000000000000000411000000003c002400240000003c00240024000000000000000511000000003400340034003400340034003c000000000000000611000000003c00240024002400240024003c000000000000000711000000003c00280028002800280028003c000000000000000811000000003c0028003c0000003c0028003c0000000000000009110000200020001000080006000800100020002000000000000a110000400020001c002000400020001c0020004000000000000b110000000018002400240024002400240018000000000000000c11000040002400240014000c001400240024004000000000000d110000440024001c002400400024001c0024004400000000000e11000040004800480028001c002800480048004000000000000f11000010001400140014001400140014003c000000000000001011000000003c0034003400340034003400340000000000000011110000240024003c002400240024003c00240024000000000012110000040034004c004c004e004c004c0034000400000000001311000000003c00200020002000040004003c000000000000001411000000003c002000200000003c00200020000000000000001511000000003c002000200000003c00240024000000000000001611000000003c002000200000003c0028003c000000000000001711000000003c00240024000000040004003c00000000000000181100000000340034003c0000003c0020002000000000000000191100000000340034003c000000340034003c000000000000001a1100000000340034003c00000014002e0014000000000000001b11000000001c005c007c007c007c005c001c000000000000001c11000000003c0024003c0000003c0028003c000000000000001d11000000001c00540074007400740054001c000000000000001e11000000003c0028003c000000040004003c000000000000001f11000000003c0028003c0000003c00200020000000000000002011000000003c0028003c0000003c00240024000000000000002111000000003c0028003c00000030000c0030002000000000002211000000003c003c0020001c00200004003c000000000000002311000000003c003c0020001c0020003c0024002400000000002411000000003c003c0020001c0020003c003c000000000000002511000000003c003c0020001c0020001c0020000000000000002611000000003c003c0020001c0020001c0024000000000000002711000000003c0028003c00000034000c0034000000000000002811000000003c0028003c00000034000e0034002000000000002911000000003c0028003c0000003c00340034000000000000002a11000000003c0028003c0000003c0024003c002000000000002b11000000001c00580078007800780058001c000000000000002c11000000001e0054004c0060004c0054001e000000000000002d110000200020001c0020002000040004003c000000000000002e110000200010000c00300000003c00200020000000000000002f110000200030000c00300000003c002400240000000000000030110000200020001c0020000000340034003c0000000000000031110000200030000c00300000003c0024003c0000000000000032110000200030000c00300000003c0028003c000000000000003311000020001c0020003c0028003c0000003c0000000000000034110000000020001c0020001c0030001c00200000000000000035110000200010000c003000000018002400180000000000000036110000200020001c002000200024001c00240020000000000037110000200010000e001000200014000e00140020000000000038110000200020001c0020002000040014003c0000000000000039110000200020001c00200000003c00340034000000000000003a110000400030001c00600000003c0024003c000000000000003b110000200010000c003000000014002e0014000000000000003c110000200020001000080006000800100010000000000000003d110000400020001c005000400020001c0030002000000000003e110000000010001000080006000800100020002000000000003f110000000020001c006000000030001c00200040000000000040110000000020003000280024002600280030002000000000004111000000001800240018000000040004003c0000000000000042110000000018002400180000003c002400240000000000000043110000000018002400180000003c0024003c0000000000000044110000000018002400180000003c0028003c00000000000000451100000000180024001800000030000c001000200000000000461100000000180024001800000038002c0030000000000000004711000000001800240018000000180024001800000000000000481100000000180024001800000034000c003400000000000000491100000000180024001800000034000e0034002000000000004a110000000018002400180000003c00340034000000000000004b110000000018002400180000003c0024003c000000000000004c11000000001000280028002c002800280010000000000000004d110000200034000c00340000001800240018000000000000004e11000040002400240014000c001400240024000000000000004f110000440024001c002400000064001c0024002400000000005011000000002400240014000c0014002400240040000000000051110000240024001c002400400014001c00240044000000000052110000200034000e0034000000140014003c0000000000000053110000200028001c002800000014002e0014000000000000005411000040004800480028001c002800280048000000000000005511000000004800280028001c002800480048004000000000005611000000003c0024003c0000003c0028003c0000000000000057110000140014005c007400740074005c00140014000000000058110000000014002e001400000014002e00140000000000000059110000000034004c004c004c004c004c0034000000000000005a1100000000040004003c0000003c00240024000000000000005b11000000003c0020000000200030000c0030002000000000005c11000000003c0020002000000024001c0024000000000000005d11000000003c0020002000000034004e0034000000000000005e11000000003c00240024000000340034003c000000000000005f110000000000000000000000000000000000000000000000006011000000000000000000000000000000000000000000000000611100000000000000000000000000000000fe0010000000000062110000000000000000000000000000fc001000fe00000000006311000000000000000000000000000000007e0024000000000064110000000000000000000000000000fe002400fe0000000000651100000000000000000000000000001000fe00000000000000661100000000000000000000000008007e0000007e00000000006711000000000000000000000000000028007c0000000000000068110000000000000000000000002800fc000000fe000000000069110000400040004000400060004000400040004000000000006a11400040004000400040004000400000007e001000000000006b1140004000400040004000400000007c0010007e00000000006c11000040004000400060004000400000007e000000000000006d114000400040006000400040004000600040004000400000006e1100004000400040004000c0004000400040004000000000006f11400040004000c00040004000400060007f000000000000007011400040004000c0004000400060007e0000007f000000000071110000400040004000c0004000400000007e000000000000007211400040004000c000400040004000c000400040004000000073110000400040004000400040004000400040004000400000007411400040004000400040004000400000007e000000000000007511000000000000000000000000000000007e000000000000007611000040004000400040006000400040005e00480000000000771100004000400040004000c000400040005e004800000000007811000040004000400040006000400040005e005400000000007911400040006000400040006000400040005e005400000000007a110000400040004000400060004000400048005e00400000007b1100004000400040004000c0004000400048005e00400000007c110000400040004000400040004000400048005e00400000007d110000400040004000400060004000400054005e00400000007e1100004000400040004000c0004000400054005e00400000007f11000040004000400060004000400008007e000000000000008011800080008000c000800080000800fe000000fe00000000008111800080008000c000800080001400fe000000fe000000000082110000c000c000c000c000e000c000c000c000c0000000000083110000c000c000c000c000e001c000c000c000c000000000008411400040004000400040004000400000007e00280000000000851100004000400040004000400000007e0024007e00000000008611400040006000400040006000400014007e000000000000008711c000c000c000e000c000c000c000e000c000c000c00000008811400040006000400040006000400000007e000000000000008911400040004000c0004000400040000000fe001000000000008a11400040004000c000400040000000fc001000fe00000000008b11c000c000c000c000c000c000c000c000fe008000000000008c11400040004000c000400040001400fe000000fe00000000008d110000a000a000a000a000a001a000a000a000a000000000008e1140004000c00040004000c00040000000fe001000000000008f1140004000c00040004000c00040000800fe00000000000000901140004000c00040004000c0000000fc000000fe0000000000911140004000c00040004000c00040001400fe00000000000000921140004000c0004000c00040001400fe000000fe00000000009311a000a000a000a000a000a001a000a000a000a000a0000000941140004000c00040004000c00040000000fe0000000000000095110000a000a000a000a000a001a000a000a000a0000000000096110000a000a000a000a000a000a000a000a000a000a000000097114000c000c000c000c000c000c0008000be0080000000000098110000000000000000000000000000f8007e00100000000000991100000000000000000000000000003c00fe002400000000009a110000400040004000400060004000400040005e00400000009b1100004000400040004000c0004000400040005e00400000009c110000400040004000400040004000400040005e00400000009d11000000000000000000000000000000005e000000000000009e110000000000000000000040000000000000000000000000009f11000000000000000040000000000008007e00000000000000a01100008000800080008000a001800080008000800000000000a111000000000000000040000000000000007e00000000000000a211000000000000400000000000000040000000000000000000a311000040004000400040004000400040005e00480000000000a41100004000400040004000c000400040005e00540000000000a51100000000000000000000000024003e00fc00240000000000a611400040004000400040004000400000007e00280000000000a71140004000400040004000400000007e0024007e0000000000a81100000000000100010001000100010001000f000000000000a9110000000000010001000f000000010001000f000000000000aa110000000000010001000f0000000c00030004000800000000ab1100000000000e000800080008000800080008000800000000ac1100000000000f000800080008000d0003000d000000000000ad1100000000000e0008000800000004000f0006000000000000ae1100000000000f000900090009000900090009000000000000af1100000000000d000d000d000d000d000d000f000000000000b01100000000000d000d000f000000010001000f000000000000b11100000000000d000d000f0000000f0009000f000000000000b21100000000000d000d000f0000000f000a000f000000000000b31100000000000d000d000f0000000800070008000800000000b41100000000000d000d000f0000000f000d000d000000000000b51100000000000d000d000f0000000f0009000f000900000000b61100000000000d000d000f0000000a000b000a000000000000b71100000000000f00090009000900090009000f000000000000b81100000000000f000a000a000a000a000a000f000000000000b91100000000000f000a000f0000000c0003000c000800000000ba11000000000008000800040003000400080008000000000000bb11000000080004000300040008000400030004000800000000bc11000000000006000900090009000900090006000000000000bd11000000000009000900050003000300050009000900000000be1100000000000a000a000600070006000a000a000000000000bf1100000000000500050005000500050005000f000000000000c01100000000000f000d000d000d000d000d000d000000000000c111000000000009000f000900090009000f0009000000000000c211000000000002000a000e000f000e000a0002000000000000c3110000000000010001000f0000000d000d000f000000000000c411000000010001000f00040003000c0001000f000000000000c51100000000000f00080008000800010001000f000000000000c61100000000000f000800080000000f00090009000000000000c71100000000000f000800000008000c0003000c000800000000c81100000000000f000800080000000c000b000c000000000000c91100000000000f000800080000000f000d000d000000000000ca1100000000000f00090009000000010001000f000000000000cb1100000000000f000900090000000d000d000f000000000000cc110000000f000b000b00000001000f000c0003000c00000000cd1100000000000d000d000f0000000f00080008000000000000ce1100000000000d000d000f0000000f00090009000000000000cf1100000000000f0001000e000900010004000b000500000000d01100000000000d000d000f0000000d000d000f000000000000d1110000000f000b0001000e0009000f00000001000f00000000d2110000000f000b0001000e0009000f00040003000c00000000d3110000000d000d000e0007000a000f000c0003000c00000000d4110000000d000d000e000f000a000f0004000b000500000000d511000000008006800680070000800b000b800b000000000000d6110000000f000b0009000c0003000c00040003000c00000000d71100000000000d000d000f0000000c000b000c000000000000d81100000000000d000d000f000000050005000f000000000000d91100000000000d000d000f00000005000b0005000000000000da1100000000000f0009000f000000010001000f000000000000db1100000000000f0009000f0000000d000d000f000000000000dc1100000000000f0009000f0000000f000a000f000000000000dd1100000000000f0009000f0000000c0003000c000800000000de110000000f0009000f000c0003000c00040003000c00000000df1100000000000f0009000f0000000e000b000c000000000000e01100000000000f0009000f0000000a0007000a000800000000e11100000000000f0009000f0000000a000b000a000000000000e2110000000000070005000d000d000d00050007000000000000e31100000000000f000a000f0000000d000d000f000000000000e41100000000000f000a000f0000000f0009000f000900000000e51100000000000f000a000e0000000a000b000a000000000000e6110000000000070006000e000e000e00060007000000000000e71100000008000400030004000800010001000f000000000000e81100000008000c0003000c0000000f00090009000000000000e911000000080008000700080000000d000d000f000000000000ea1100000008000c0003000c0000000f000a000f000000000000eb110000000000080008000c000b000a000c0008000800000000ec1100000000000600090006000000010001000f000000000000ed11000000060009000600000001000f00000001000f00000000ee11000000000006000900060000000600090006000000000000ef1100000000000600090006000000050005000f000000000000f011000000000004000a000a000b000a000a0004000000000000f111000000000006000900060000000c0003000c000400000000f211000000000006000900060000000e000b000c000000000000f31100000009000f0009000f0000000f000a000f000000000000f4110000800280028003800a800a800a80038002000200000000f51100000000000a000b000a0000000e00080008000000000000f61100000000000a000b000a0000000d000d000f000000000000f71100000000000a000b000a0000000f0009000f000000000000f81100000000000a000b000a0000000e000a000f000000000000f911000000000005000b000b000b000b000b0005000000000000fa110000000000010001000f0000000f00080008000000000000fb110000000000010001000f0000000f000a000f000000000000fc110000000000010001000f0000000a0007000a000800000000fd110000000000010001000f000000050005000f000000000000fe110000000000010001000f0000000a000b000a000000000000ff1100000000000f000800080000000f000800080000000000003e1e0000f80f1000e00004030206e1011000f80f0000000000003f1e0000f007200010001000e407230011001000e00700000000a01e0001c0003c0023083c00c000000100000000000000000000a11e0000c80024012409a400f801000000000000000000000000a21e00080006e00119013201c001000e00000000000000000000a31e00002003900492049402e007000000000000000000000000a41e0008800772010a0170018307000800000000000000000000a51e00002003940494049402e007060000000000000000000000a61e0008830770010a0172018007000800000000000000000000a71e00002303900494049402e407000000000000000000000000a81e0000000c880364023402c103060c00000000000000000000a91e00002003a80494049502ee07000000000000000000000000aa1e0000000c0903e5021602e6020903000c0000000000000000ab1e00002003910495049502e107000000000000000000000000ac1e000280017900470879008001000200000000000000000000ad1e000090014a02490a4a01f203000000000000000000000000ae1e0000000884076804cb040807000800000000000000000000af1e0000240398049a049902e407000000000000000000000000b01e0000000cc303350264028203000c00000000000000000000b11e0000240399049a049802e407000000000000000000000000b21e0000000cc20334022502c4020203000c0000000000000000b31e00004406280933093005cc0f000000000000000000000000b41e0008000e800172010c0175018401000e0008000000000000b51e00002403990499049902e507000000000000000000000000b61e00040003f0008d08f0000003000400000000000000000000b71e000091014a024a0a4a01f103000000000000000000000000b81e0000ff011101110911010001000000000000000000000000b91e0000f0002801240924013801000000000000000000000000ba1e0000f80f880889088a088808000000000000000000000000bb1e0000c001a00296049404e004000000000000000000000000bc1e0000fd074504460446040504000000000000000000000000bd1e0000c403a20292049404e204000000000000000000000000be1e0000f80f8a088a088a080a08010000000000000000000000bf1e0000c003a40294049004e604000000000000000000000000c01e0000fb0f88088a088a080808000000000000000000000000c11e0000c303a802a4049404e004000000000000000000000000c21e0000f00f1401140114011101160000000000000000000000c31e0000c003a40294049104e604000000000000000000000000c41e0000f80f89088b088b088908000800000000000000000000c51e0000c203a902a5049104e104000000000000000000000000c61e0000fe032302230a23020002000000000000000000000000c71e0000e0015202490a4a027002000000000000000000000000c81e0000f90f0200000000000000000000000000000000000000c91e0000f6070400000000000000000000000000000000000000ca1e0000ff090000000000000000000000000000000000000000cb1e0000fd090000000000000000000000000000000000000000cc1e00007c00820001010109010182007c000000000000000000cd1e000070008800040904018800700000000000000000000000ce1e0000e0031004080809080a081004e0030000000000000000cf1e0000c0012002120414042002c00100000000000000000000d01e0000e00310040a080a0808081304e0030000000000000000d11e0000c0012402140424042802c20100000000000000000000d21e0000e003130408080a080a081004e0030000000000000000d31e0000c3012802240414042402c00100000000000000000000d41e0000e00310040a080a0808081304e0030000000000000000d51e0000c0012402140424042102c60100000000000000000000d61e0000e003140412080b0813081404e0030000000000000000d71e0000c0012902250415042102c00100000000000000000000d81e0000f80004010302030a03020401f8000000000000000000d91e0000e0001201090a0a021201e00000000000000000000000da1e0000e0031004080808080b081804e6030000000000000000db1e0000c0012002140412043102cc0100000000000000000000dc1e0000e00310040b08080808081804e6030000000000000000dd1e0000c0012102120414043002cc0100000000000000000000de1e0000e0031004080809080a081804e6030000000000000000df1e0000c0012002160414043002cc0100000000000000000000e01e0000f00109020504060406040c02f2010000000000000000e11e0000c4012202120414043002cc0100000000000000000000e21e0000f00108020404040c04040c02f3010000000000000000e31e000070008800040904018c00730000000000000000000000e41e00007f008000000100090001ff0000000000000000000000e51e0000fc00000100098000fc01000000000000000000000000e61e0000f8070008050802080004f80300000000000000000000e71e0000f003000406040402f007000000000000000000000000e81e0000f8030004040802080104f80308000600000000000000e91e0000f003000404040202f0070c0000000000000000000000ea1e0000f8030104020804080004f80308000600000000000000eb1e0000f003020404040002f0070c0000000000000000000000ec1e0000f8070008050802080004f80308000600000000000000ed1e0000f003000406040402f0070c0000000000000000000000ee1e0000fc010102010402040102fd0104000300000000000000ef1e0000f403020404040402f0070c0000000000000000000000f01e0000fc0100020004000c0004fc0304000300000000000000f11e0000fc00000100098000fc01030000000000000000000000f21e080018006100860f60001800080000000000000000000000f31e0800700081090207f0000800000000000000000000000000f41e010003000c00f0090c000300010000000000000000000000f51e00000c0870088007e0001c04000000000000000000000000f61e080010006500860f60001800080000000000000000000000f71e1800e000030f820170000800000000000000000000000000f81e04000d003100c20731000d00040000000000000000000000f91e04001d08e0040103e1001c0000000000000000000000000002200000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000102000000000000000004000400040000000000000000000000011200000800080008000000000000000000000000000000000001220000080008000800080008000000000000000000000000000132000008000800080008000800000000000000000000000000014208000800080008000800080008000800080008000000000001520000040004000400040004000400040004000400040000000162000000000000000000000ff0ffe07000000000000000000001820000000000000000000000000000000000000000006000d00192016000c0000000000000000000000000000000000000000001a200000000a00060000000000000000000000000000000000001c20000000000000000000000000000006000d00000006000d001d2016000c00000016000c0000000000000000000000000000001e200000000a00060000000e0000000000000000000000000000202000000000000020002000fc0f200020000000000000000000212000000000000010011001fe0f100110010000000000000000222000000000000000004000e00040000000000000000000000025200000000060004000000000000000000060004000000000002620000060004000000000006000400000000000600040000000272000000000000000004000e0004000000000000000000000003020780084088406f80160009803440480038003400440048003322000001c000000000000000000000000000000000000000000332000001c00040010000c000000000000000000000000000000352000000000000000000100010002000000000000000000000039208000400120020000000000000000000000000000000000003a202002400180000000000000000000000000000000000000003b200000000064040803900064066804900108024404000000003c200000fc06000000000000fc060000000000000000000000004220000080020001c0079402be0208009402c007000180020000472000000800840664001800000008008406640018000000000048200000080084066400180000000000fc06000000000000000049200000fc060000000008000400c40638000000000000000000512000000000000094021403de07080394020000000000000000742000001c0012003f0010000000000000000000000000000000a920f8034007f800f0004007f803000000000000000000000000ab200000e00518061806fc030800000000000000000000000000ac20c000d001a802a404a4040802000000000000000000000000dd20e0001803040404040208020802080208040404041803e000de20fe0f0208020802080208020802080208020802080208fe0f002100003000480024063c018000600010038c04440440000000032108001400140008000000f001080204040404040408020000052100003000480044060401c0002000980344044004800300000921000008001400140008000000fc07440044004400040000000a2100000000000070068809840844084407b8000400000000000f210000000000000004f8034c0028002804c00300000000000013210001fc03420422041c02000000000000000000000000000016210000f8071000600080010002fc0700003001480148013001212100000400fc0704000000f007900490040000f00700040004222104007c00040000007c00180000007c000000000000000000262100000000f004080504060400040004060805f00400000000272100000000e40114020c04000400040c041402e401000000002b210000000000080006e60119011901e60100060008000000002e214000f0014802440444044404440448027002400000000000352100000000cc055006200040008000e40018010806000000003b210000fc07440044000007f8008c00f0010406bc03e0001c0790214000e0005001500140004000400040004000400040000000912100000000000018000400fe0f04001800000000000000000092210000400040004000400040004000400050015001e0004000932100000000000000030004fe0f00040003000000000000000094214000e0005001500140004000400050015001e00040000000952100000000000018030404fe0f040418030000000000000000962100000000780018002800480080000001000200040000000097210000000000040002000180004800280018007800000000009821000000000400080010002000400280030003c00300000000992100000000c003000380024002200010000800040000000000b821020002007a001a002a004a00820002010202020402000000b921c80f08020807880a480a080208024a022a021c0208023e02c42108020807880a480a0802080208024a022a021c0208020000c521000018000400fe0f0400180000030004fe0f000400030000c62108021c022a024a02080208020802480a880a080708020000cb21100110011801140110011001100110051003100110010000cc21100110011003100510011001100114011801100110010000d0214000a00010011c0714051001100110011001100110010000d221000010011001100110011001100114051c071001a0004000d4214000a00010011c071001100110011c071001a00040000000e6214000a000100108021c07100110011001100110011001f001e7210000000020003000ec0f02080208ec0f3000200000000000e821f0011001100110011001100110011c0708021001a0004000e9210000000080008001fe0602080208fe068001800000000000f521000000030004fe0f0004000318000400fe0f0400180000000022000004001800e000200320042003e000180004000000000002220000000000008003480424042404c40378000000000000000322000000000000440444044404440444044404fc070000000005220000e00010030803840444044404240418021801e00000000622000000000006800570040c040c04700480050006000000000722000000000c003400c40104060406c40134000c000000000008220000e000500148024802480248024802480248020000000009220000e0005001500148024802fc07480248024802480200000a22000000000000c003a00290049004900410000000000000000b220000000048024802480248024802480248025001e00000000f22000000000000fc0f0400040004000400fc0f00000000000011220000000000000c061405a4044404040404040000000000001222400040004000400040004000000000000000000000000000132200008400840084008400f40784008400840084000000000015220008000400020001800040002000100008000400020000001a2200028001000e0003e00018000600010001000100010001001d22e000100110011001a0004000a000100110011001000000001e22e000100110011001a00040004000a000100110011001e0001f2200000000fc070004000400040004000400040004000400002022000000040006000580044004200410040804000400000000232200000000000000000000fc070000000000000000000000002522000000000003c000200418038400600018000000000000002622000000000003d00020045803c400200118000000000000002722000000040003c00030000c003000c00000030004000000002822000004001800600080010006800160001800040000000000292200000000f007080004000400040004000800f007000000002a2200000000fc01000200040004000400040002fc01000000002b2200000000000000080008fc070200020000000000000000002c22000000080008fc070200020000080008fc070200020000002d2200080008fc0702000008fc07020002080008fc07020002002e220000000000000000e008fc07a200e200000000000000000034220000000000030002000018001000000000030002000000003522000000001800100000000003000200001800100000000000362200000000000000000000180310020000000000000000000037220000000018031002000000000000000018031002000000003d22e0001001100110018000800060002000100110011001e000432200002001100110011001100120012001200110010000000045220000a002900290029002a002a002a002a00290020000000048220000200190009000900010012001200120019000000000004c22380044054405440520052005180508054405440544053800522200000000a000ac00a800a000a000a006a002a0000000000060220000a000a000a000a007e000bc00a000a000a000000000006122000048024802480248024802480248024802480200000000622200005001500150015007f0015c01500150015001000000006422000020042004300450044804880484048404040500000000652200000000040584048404880448045004300420042004000066220000100a100a300a280a280a440a440a840a820a00000000672200000000820a840a440a440a280a280a300a100a100a00006a2240004000a00010014802a802a404100108020802040400006b2200000404080208021001a404a80248021001a000400040006e2200004000c000c000200fe0011c02080208040408000000006f2200000000040808041002100ef0012c01c000c0004000000072220000000010081004300228024804440844088204820200007322000000008208820444024402480428083008100410020000762200005008500858049804a804a40224034401420142010000772200004201420144012403a402a8049804580450085008000082220000e000100108020802080208020802080208020000000083220000000008020802080208020802080208021001e000000084220000e0001001080108068803480238020c02080200000000852200000000080208068803480238020c0210021001e0000000862200003004480484048404840484048404840484040000000087220000000084048404840484048404840484044804300400008a2200003004480484048404840c8406840484048404000000008b2200000000840484048404840c84068404840448043004000095220000e000180348024404f4054404440448021001e000000096220000e00010014802440444044404440448021001e000000097220000e00010010802a40444044404a40408021001e000000098220000e00010010802840444044404240408021001e000000099220000e00010010802040444040404040408021001e0000000a0220000fc0704041405a40444044404a40414050404fc070000a52200000004000400040004fc07000400040004000400000000bf22000000040006000580044004200410040804fc0700000000da2200004809480948094c055405540652065202620262020000db2200000000520252025202540654054c054809480948090000ef22000060004000000000006000400000000000600040000000052300000000080608018800480068008800080108060000000006230000000014061401d40034003400d4001401140600000000072300000000000000006108920492040c030000000000000000122308000400040002000200020002000200040004000800000018230c06120912091209fc0710011001fc071209120912090c06292300000000000000000000000000004000b0010c06020800002a23000002080c06b00140000000000000000000000000000000b023000000000000000000000008fe0701000000000000000000b123000000000000000000000100fe0700080000000000000000be2300000000000000000000ff0f000000000000000000000000bf2300000000000000000000ff0f000000000000000000000000c02300000000f00008010402ff0f040204020801f00000000000c1230000000070008c010401ff0f040104018800700000000000c22300000000e00018030802ff0f080208021001e00000000000c32300000003c00230020802ff0f08023002c002000300000000c423000000000003c00230020802ff0f08023002c00200030000c52300080008000bc00a300a080aff0f080a300ac00a000b0008c62300000000600010001000ff0f200040004000200000000000c72300000000600010001000ff0f200040004000200000000000c82300000000c00020002000ff0f400080008000400000000000c923000000000000000000000000ff0f00000000000000000000ca23000000000000000000000000ff0f00000000000000000000cb23000000000000000000000000ff0f00000000000000000000cc23000000000000000000000000ff0f00000000000000000000ce238001400240042004700e400240023e02020182017e000000da23000000008000800280068006fe0680028000800000000000db2340004000f001500150015001500150015001f0014000400023240000000c00080008000c00000000000000000000000000000030000000000000000000000000000000000000000000000000013000000000000000000000200040008000000000000000000002300000000000000000600090009000600000000000000000000330000000000003c000300000000003e00010000000000000000430f00108060408020b8204f201200820081c0404040803f0000530000000018000600018011401100290037004100000000000063000000000000f10041002a0014000a00090000c010000000007300000f00108020404020802080208020804040802f0010000083000000000000000000000000000004000b0010c06020800000930000002080c06b001400000000000000000000000000000000a30000000000000000000000000f0000c03620c9801060e00000b300000060e9801620c0c03f0000000000000000000000000000c3000000000000000000000000000000000fe010200020002000d30000800080008f00f000000000000000000000000000000000e300000000000000000000000000000fe010201fe01060006000f30000c000cf00f1008f00f0000000000000000000000000000103000000000000000000000000000000000fe0f060c02080000113000000208060cfe0f00000000000000000000000000000000123000000000240024002400e407240024002400000000000000133000009e079e079e079e079e079e079e079e079e079e070000143000000000000000000000000000000000fc070404020800001530000002080404fc070000000000000000000000000000000016300000000000000000000000000000ff0f0108fd0b030c010817300108030cfd0b0108ff0f0000000000000000000000000000183000000000000000000000000000000000fc03fe07050a020419300204050afa05fc03000000000000000000000000000000001a3000000000000000000000000000000000fe0f0208fe0f02081b300208fe0f0208fe0f000000000000000000000000000000001c304000400020002000200040008000800080004000400000001d300000000000000000000000000000000012001400240000001e300000240014001200000000000000000000000000000000001f300000800400050009000000000000000000000000000000002030e000c0009401d402d404f40614069404d404940380006000213000000000000000000000fe0700000000000000000000000022300000000000000000fc0300000000fe0700000000000000002330000000000000fc0300000000fc0100000000fe0700000000243000000004080408021001a000c000b0000c01000600000000253000000000000098035602220420045402980100000000000026300000200020002000200020002c00200020002000200020002730100010001001100110011401100110011001100010000000283010041004900490049004940490049004900410041004000029300000000008042804480288020e01880268021804000400002a30000c000800000000000000000000000000000000000000002b300700020000000000000000000000000000000000000000002c300700020000000000000000000000000000000000000000002d30000c000800000000000000000000000000000000000000002e306000400000000000000000000000000000000000000000002f30b0012001000000000000000000000000000000000000000030302000400080008000400020002000400080008000400020003130000000001c00630080010002000c000000000000000000003230000000001c00630080010002000c00000000000000000000333000000000000c0003c00030000c0002000000000000000000343000000000000c0003c00030000c00c200000060000000000035300000000002000c00100060008001000600080000000000003630e0011802040454045208d20b52085208540404041802e0013730020c0c03f0001801060e0000060c1803e0001c03020c0000383020002000200020002000fc0f20002000200020002000000039300000100010001000fe0710001000fe0710001000100000003a30000020082006fc0120002000fc0720002000fe0f200020003b300000000000004000c60828053005300210020000000000003c300000fc0704060405840444042404240414040c04fc0700003d3000001800040004000800040008003000c0000001000600003e30aa0a02080000d208d000d209d208d0000a0800000208aa0a3f30000000000000fe0f0208f209b2090208fe0f000000000000413000000000100210059004f8075001d008900480030000000042300000040388044804fc032c06a80168082804440280010000433000000000f001000200040003000010006000800300000000443000000000f8010002000400020001000008001800e001000045300000000040008000500850085008500480030000000000004630000000001000200012041404140414022401e000000000004730000000000008400448025001d00650080008000800000000483000000000000420022201a40164012402140400040004000049300000000020062009f807a000a008800890042003200000004a300000100310059004fc0350005004480440029803200000004b30000010041003f0001e0410041002e00108001800600000004c30000010041003f0001e0410041002e00108001a00e00006004d30000000002807a808280828083c096809a8092400000000004e300000000028072808280828083e096809a0092600000006004f30000000000000c000a000100108020c040408000000000000503000000000c000a000100108020c046408000030000000000051300000fe030205000010001004100c1002fe0110001000000052300000fe010207000000001004100c1002fc011200100006005330000000008003080408040804080408040804000400000000543000000000800308040804080408040804000404040000060055300000000010079004100810089c08b008d00888000000000056300000000010079004100810089c08b008d0089600000006005730000000000000fc07000800080008000800040004000200005830000000000000fc07000800080008100804041c040002000059300000000008000800c80828053e03c80108000800080000005a30000008000800c80828052803fe0108000a0008000a0000005b30200020002000fc0320042004900490047c041004100000005c30200020002000fc032004200410051005fc041204100006005d300000400040002400a40374042c08240824082000000000005e300000400040002400a40374042c08240828082000080000005f3000000000100690017c00140000032004200420040004000060300000100690017800140010030804200420042c0400000c006130000008000801f8008e0848084808480888048403000000006230000008000801f8008e0848084808480880048403010002006330000000004000400040042004200420024002c0010000000064300000200010001000100408040804080208021001e000000065300000200010001000100408040804080210021601e0000600663000000400080008000400e40114020c02040404040400000067300400080008000400e40114020c020404340404003000000068300000000082034e043004200410040804080400040000000069300000000004079c0860084008200810081008040800000c006a3000000801880168001e0608090409e00708020804100000006b300000f0070c0b8000000000030804080408040804080400006c30000080037c04e0041003c8003e02080508051002e00300046d30080210018800fe07280020001002080508051005e00300026e300000e001100208020401f4000c04040408021801e00000006f300000fc07020100001002100510051005fc0310021002000070300000fc0f020200001006100910091009f80712021004060071300000f80f040200001006100910091009f80714020a040400723000000800c80728041808040800080006fc01400080000000733000000800c80328041808040800080006fc0140008a000200743000000800c80328041808040800080006f80144008a0004007530000000020001800002042204c404180300004000800100027630000000020001800002042204c404180300005c0080010c027730000000020001800004046604840418030000c80014030802783000008000400020001000080010002000400080000001000279300001800040002000100020004000880010010002180400007a300000000180006000100010002000400098002401180600047b300000f807060100002002240524052405fc032402240200027c300000f00f0c030000200628092809f80928062802040400007d300000f00f0c030000200628092809f80928062e02090406007e30000000002806280928092809fc07280228022804000000007f300000000380044402c40174004c0840048003e0000001000080300000c80128023e06c80908080c080008040808071000000081300000800344043804d002880378080e0808041002e001000082300000900090009007fc08920890080008400480030000000083300000800090007000c003480c280120012001c0000000000084300000400024003800d001120e8a0888008800880070000000853000000000f00390004000400d2002f0032002c00100000000863000000000fc034000200110090806fe0308021001e0000000873000000000000600090009f809200620022004000400000000883000000006000900090009fc09100610021002100400040000893000000000f0019004840844084408480880048003000000008a30000000000000fe0012080804040404040803f000000000008b300000800144004406240934092c0e240844048003000000008c30100210019000fe07200010000800080088037004000400028d300000000180004400240834082c08240444048003000000008e300000000020022001f80f4000200420042002c001000000008f30100210019000fc0f200020001004100410042002c001000090300000800340042403a40074061c091009100a2004c003000091300008200414025403b402bc0cd404940254026002000c0000923000008800480038062e09a808c80b480848082008200000009330000000068001600058004400800300040004000200010000943000001000200012041404140414022001e40000000c0000009530000000004008400cc00338082008c0071000600080010000963000000000f007100a000040004008400cf00340004000000099300600000006000000000000000000000000000000000000009a300200050002000000000000000000000000000000000000009b300c00000006000000000000000000000000000000000000009c3004000a0004000000000000000000000000000000000000009d300000000000000000080010022001400180000000000000009e300000000000000000080010022001cc0100010c00000000009f300000000800060001c00470084e084a048803100000000000a030000000000000a000a000a000a000a0000000000000000000a130000000001004100c1002d0011000d0003000100000000000a23000000400040404020403f4000400240014000c0004000000a330000000000001000180008000c00f20003000100000000000a430000040004000200020001000f00708000400020000000000a53000000000e00020002008300420042002e001200000000000a630000000007800080008040e0408020801c800380000000000a73000000004200420042004e007200420042004000400000000a83000000802080208020802f803080208020802080200020000a93000000000000420022001a0086008f80f2000200020000000aa300000000210011001900050043004fc071000100010000000ab300000100410041002d0013c00100410041006f00100000000ac300000100410041002d0013c00100410041606f00106000000ad30000000002001200110011c01f003900c9000880080000000ae3000002001200110011c01f001900e90008600880002000000af30000040002004100c08040e02080188006800180000000000b030000040002004100c08040e020801880048003a0000000300b13000008000600010081c0810041003f0001000100010000000b23000008000600010081c0810041003f0001000140010000600b330000000000802080208020802080208020802f80700000000b430000000000804080408040804080408040a04fa0f02000000b530000010001000fc001004100410041003fc00100010000000b630000010001000fc00100410041002fc011000140002000000b730000020002008440808041004000200010001c00020000000b830000010002004420404020802000180004400300026000000b930000000080804080408020801880048013802080400080000ba30000000080804080408020801c80038010606080802000000bb300000200020002000fe03100410049004c804280418000000bc30200020002000fe03100410049004c8042a04180003000000bd300000040018002004000200020001c00030000c0000000000be30000008003000400800040004000380007a00080002000000bf30000040002008100448044e02880188016802180000000000c030000040002008100848044e028802880148033a0104000300c130000040004400440844044406fc0144004400420040000000c23040004800480848044802f801480044005400400018000000c330000000002000c0080008300440020001c000300000000000c430000008003000000400041c0210010001c000340008000000c530000018006000000800081804200200018001660010000600c630000020002000240424042402e40124002400240020000000c730000020002000240424042402e40124002400200025000100c8300000000000000000fc0f4000400040008000800000000000c9300000000000000000fc0f400040004000980080000c000000ca30000010001000100410021001fe0010001000100010000000cb30000000020802080208020802080208020802080200020000cc30000000000008480848048802080188017802080400000000cd30000000010801080188008800ce0728009800880000010001ce30000000000004000400020001800040003800040000000000cf30000000040003e00018000000000008007000800100060000d030000000040003c00038000000000008003000c60008070200d130000000040003e00018000000000008003000c4010a060400d230000000000000fc0320042004200410041004080400060000d33000000000fc03200420042004100410041604000606000000d43000000000fc032004200420042004100414040a0004000000d530000000000800080408080804080208028801680018000000d6300000000008000804080c08040802080188007e0008000200d73000000800080008080804080408020801c8003c000a000400d830000080004000200010000800100020004000800000010002d930000180004000200010002000400088001001000218040000da30000080014000200010001000200040008800140108060000db30000000011001d00010041004fc0710001000d00010010001dc3000021003d00010081008fc0f10001000dc00180302020000dd3000021003d00010081008fc0f10001000d4000a0304020000de300000080008004800880008018802880c6800180008000000df30000000000001240224022402440248024804080400000000e0300000000400040007f0040c0400020002c0020003000c0000e13000000004100210022001a0004000b0000c01000200000000e23000000000440044004400fc03440444044404440440040000e33000000000800040007000c003400c40012001e00020000000e430000020002000240078009007100890005000300008000000e5300000000000042004200420042004e0072004000400000000e63000000002080208020802080208020803f802000200020000e73000000000100490049004900490049004f007000000000000e830000000004804480448044804480448044804f80f00000000e930000000002000240024082404240424022401a40060000000ea30000000000000fc000000000800040002fc01000000000000eb30000000040003fc0000000000fc0700020002000180000000ec30000000000000fc0700040002000200010001800040000000ed3000000000f807080208020802080208020802f80700000000ee3000000000f00010001008100410021001f000100000000000ef30000000007800080008080804080408020801e80018000000f0300000000110011001f00110011001fc0f1001100100010000f13000000804080408040804e807080448042804180408040000f230000000004400440844084404440444024401e4001c000000f330000000000404040408021002000100018000600010000000f430000078000800080408040e0208020801ca00380003000000f53000000000200820042003f800200820082008e00700000000f6300000000080004000380828042003e0002000200020000000f73000007800080008080804080408020801ea00180002000000f830000110011001f001100110011001fc0f1001140102010000f93000000804080408040804e807080448042a041a040a040000fa3000004800480848084804480448024801fa00080002000000fb3000000000000000004000e000400000000000000000000000fc30000040004000400040004000400040004000400040000000fd30000000000000000010002000400080010002000000000000fe30000000000000100020004000980100020c00000000000000ff3000000000040004000400040004000400fc0f0000000000000531000000001800160010001008100810081007f0000000000006310000000810085e0490049002100190027004100800000000073100000000fc07040004000400040004000400fc070000000008310000fc03040404040404040404040404040404040000000009310000000810081e041003f000100810081004f003000000000a310000100010041007d0043804160490041003100c100800000b3100000000040004000400240034082c0824082007e00000000c31000000041c041202900170001e0410041004f003000000000d3100002000d0000c01020220045000880006030204000000000e3100000400040034002c0824082408240ce4030400040000000f3100040006fc010400040004000400040004000400040000001031000000000001fc018000800080008000fe0700000000000011310000000000004000a00010010802060402080000000000001231000000000400040004000400fc0704000400040004000000133100000004fc0480048004fe07800480048004fc04000400001431000000002001900088004800c40f22001000080000000000153100080006e4012400240024002400240024003c0000000000163100000000fc07040414042404c40484040404fc0f00000000173100000000040004000400fc0f0400040104010401fc00000018310000080008008800f8008e008808880c8803080008000000193100000006800340023802060200024002c0010003000400001a31000000000200040008001000e007100008000400020000001b310000000088038802480448047804080408020802080200001c310000000088034802480448047e04080408020802080200001d31000020002000fc03200420042004a0057c042004200020001e3100004408740444024401e4005c004400440cc403440000001f31000010000800080004003800400080000001000200040000203100000000400c60045806c4054204200498040003000c00002131000000040404140224024401840064011c0204040000000022310000000044007400440044004400440074084c0fc000000023310000000040007800440040004000400040084007c00000002431000000041004100210019000fe031004100410041004100025310000000000040007c00430040c040004000400040004000026310000000800040003fe0000000000fe03000400040004000427310000400040004000400040004000400040004000000000002831000000040402080190006000600098000603000400000000293100000000fc07000400040004000400040004fc0f000000002a3100040404040284017c002404240424042406e401040000002b310000040404040403fc0004000400fc0304040404040400042c3100000006f801080008000a000e00080008000800080000002d3100000400e407240024002400fc0f24002400e407040000002e3100000800c8034804480448047a04080408040804080408002f310000040004002400f4072c002c0424042006e00100000000313100000000100010001000100010001000f00300000000000032310000100010001000f0030000100010001000f0030000000033310000000010001000f00300000003f0000001000200000000343100000000f801000100010001000100010001000000000000353100000000f0030002000210021001f0001001100200000000363100000000f00100010000a00160027002a001000000000000373100000000f001100110011001100110011001000000000000383100000000f001100110010000f00110011001000000000000393100000000c8034802480248024802480278020000000000003a3100000000d00150017001000110001000f0010000000000003b3100000000d001500170010000f00110011001f001000000003c3100000000d001500170010000f00120012001f001000000003d3100000000d0015001700100018000700080000001000000003e3100000000d001500170010000f001500150011001000000003f3100000000d001500170000001f0011001f001100100000000403100000000d001500170010000900158029001000000000000413100000000f00110011001100110011001f001000000000000423100000000f80120012001200120012001f801000000000000433100000000f0014001f0010000f0014001f001000000000000443100000000f0014001f0010001800070008000000100000000453100000000000180004000380040008000000100000000000046310000000280017000800100028001f0000001000200000000473100000000e00010010802080208021001e000000000000000483100000000080188004800380048008800080100000000000049310000000188007800880000018800780088000001000000004a31000000001001100190007c009000100110010000000000004b3100000000480048004800480048004800f8010000000000004c3100000000f0015001500150015001500150010000000000004d31000000011001f001100110011001f00110010001000000004e310000000010009001500258025002900110000000000000004f3100000000000000000000fc0f40004000000000000000000050310000000000000000fe072000fe0f0000000000000000000051310000000000000000fe0f900090000000000000000000000052310000000000000000fe0f9000fe0f000000000000000000005331000000000000200020002000fe0700000000000000000000543100000000000020002000fe070000fe0f00000000000000005531000000000000900090009000fe0f00000000000000000000563100000000000090009000fe0f0000fe0f0000000000000000573100000001000100010001f00100010001000100010000000058310000000100010001e001000100010000fc0f4000400000005931000000010001e001000100010000fc0f4000fc0f000000005a310000000100010001f001000100010000fe0f0000000000005b31000100010001f801000100010001f80100010001000000005c3100002000200020002000e0072000200020002000000000005d310000400040004000c0074000400040010001fc0f000000005e31000040004000c007400040010001fc0f0000fe0f000000005f310000400040004000c0074000400040000000fe0f000000006031200020002000e007200020002000e007200020002000000061310000400040004000400040004000400040004000400000006231000080008000800080008000800080000000fe0f00000000633100000000000000000000fe0f0000000000000000000000006431000000000000000000000000000000000000000000000000653100000000f801000100010000f80100010001000100000000663100000000f001000100010000f00110011001000100000000673100000000f801000100010001800078008000000100000000683100000000f801000100000001c0013801e00100010000000069310000d0015001700100011000f001800070008001000000006a3100000000d001500170010000f001100110010001000000006b310000d00150012000f0012001f001800070008001000000006c3100000000d001500170000001c0013001c0010000000000006d3100000000d0015001700100009001500250029001000000006e3100000000f0011001f0010000f00120012001f001000000006f3100000000f0011001f0010001800070008000000100000000703100000000f0011001f001800040017001800100000000000071310000000000007c004403c40444037c000000000000000000723100000000f00140014001f00100001000f001000000000000733100000000f0014001f0010000f0011001100100000000000074310000f0012001f00180007000800110011000f0010000000075310000f0012001f001800070008000f0011001000100000000763100000000f0014001f0010000900170009000100100000000773100000000f0014001f0010000f0015001500100000000000078310000000000007c004803c80448037c0000000000000000007931000000007c0048003c0380043c0348007c000000000000007a31000000020001f0000001100210001000f0030000000000007b31000000018000780080000001f801000100010000000000007c31000000018000700080000001f001100110010000000000007d31000000018000700080000001f0014001f0010000000000007e31000000020001f000000110021001f00010011002000000007f310000000000000002800378022002c0030002000000000000803100000000e00010011001e000e00010011001e00000000000813100000000c00020011002180210022001c000000000000000823100000000e00018012001e000800178008000000100000000833100000000e00018012001e000800178012001c00100000000843100000000000044007c03c40444037c00440000000000000085310000000090015802900100009001580290010000000000008631000000000000c801280228022802c8010000000000000000873100010001f00100010001f00100010000fe0f900090000000883100000001f0010001f00100010000fe0f9000fe0f000000008931000000010001e0010001e00100010000fe0f0000000000008a3100002000e00720002000e0072000a0028002fe0f000000008b3100002000e00f2000e00f20008002fe0f0000fe0f000000008c31000040004000c00740004000c00740000000fc0f000000008d3100000000000000000000c0000000000000000000000000008e31000000000000000060000000fe0f000000000000000000009031000000000000000000000000fc07000000000000000000009131000000000000fc070002000200020001800080006000000092310000400040004000400040004000400040004000400040009331000000040804080408040804080408040804080408040004943100000004440444044404440444044404440404040004000095310000fc0f0404c4053c0404040404fc0484040404fc0f0000963100000004000400040004fe0720042004200420040004000097310000f801880088008800fe0f8800880088008800f8010000983104000400040004000400fc0f24004400440084000400000099310000fc01a400a400a400fc0fa400a400a400fc01000000009a3100000406040984084408240814080c0804080008000700009b310000f40f1400140394007c0094009400140b1408f40f00009c31000004000400040804080408fc07040004000400040004009d3104084408440444044403fc004401440244044408440800009e3100021002fe0310014000fc0720081008fe090808f80800069f310008000400040003c0003c00e00000010002000400080000a031000000001800160010001006100910091007f00000000000a131000004000404040a040afc0704008400840084007c000000a231000000000001fc0080008004800a400afe07000000000000a33100000000600098000603220c700088010602020d00090006a4310000200020002000fe031004100410045004700418000000a5310000200020002000fe031004100410045006300d08020000a631000004008400440124021c0c040404020402040184000000a731000004008401440234040c08040484054402440284050000a8310004040408021001a0004000e00050014c02420440040000a9310000040004000804100a200ae00710041000080004000000aa310000400040004000400040004000c0006000500020000000ab3100000004040408021001a0004000a0021803060502050002ac310000fc070400040004000400fc07040004000400fc070000ad310000040c0403fc0004000400fc0f0400fc03040404040000ae3100024405740544024405c4007c0044004404c40304000000af31000000004004600650054c05c404200c1006000500020000b03100000000e20f260028003000e00f30002c002200e00f0000b1310000f4071400940074011c021402140194001400f4070000b231000008000804080408040804f80708040804080408040800b331000000000000000600090009fe0700020002000000000000b43100000001c001000900090007000000000000000000000000b53100000009c005000300090007000000000000000000000000b63100004000c001400940094007400000000000000000000000b731000000088007800080008000800000000000000000000000b831000000000802080388028802480228021802080200020000b93100000000f803000200020002000200020002000200020000ba31000020002000200020002000fc0320002000200020002000bb31000000078008000200058008000000000000000000000000f03100000000800080084008300428042002a001600000000000f131000000002004480448021002000100018000600000000000f231000000000004100410021001900070011002000400000000f3310000000000000000f00f8000800000010001000000000000f4310000000000085004900490021001f0021004000000000000f5310000000000040003f000000000003000c001000600000000f631000000000000f80340044004200420042004000000000000f73100000000000010001004100410021001d000300000000000f831000000000001800040002000400080000001000200040000f931000020022001a0042004f8072000a0002003000200000000fa310000000000040004800770040804000480020003000c0000fb3100000000400050045008500450025001c000000000000000fc31000000000000f0010008000800080006f001000000000000fd310000000000080006f0010000f00f00040004000300000000fe310000000000000000f00f0008000400040002000180000000ff3100000000f00f100410041004100410041004f00f00000000004e000040004000400040004000400040004000400040004000014e000004000400040804080408fc0704000400040004000000034e0000400040004000fc072008200820082008200810060000074e00080408040484037c00240024082408240ce40304000000084e00000808080468048804080388037e040804080408080004094e0000000444044404440444044404440444040404000400000a4e00000004000400040004fe072004200420042004000400000b4e04000400040004000400fc0f2400440044008400040000000c4e000804040402fc010400040004000400fc0f0400040000000d4e04018400840044002400fc0f0400240044008400040100000e4e0000000140017c01480148014809480948084804c8030000104e00008200f20082008200fe00920892089208920682010000114e0000440844084408fc0f440844084408c40ffc0800080008134e000020002400a402fc04a604a404a40aa409a40020000000144e000000080008fc0f24092409240924092409fc0f00080008164e10001000fe0710041004fe05100510051005fe0510041000184e00040004fc072404240424042204e2072204200400040000194e0000f40f1400140394007c0094009408140b1408f40f00001a4e00001804e0040004fe0700040004fe070004e004180400001b4e0008000ac0093e084008400a0009c0083e08c008000b000a1c4e0000040c640254014e084508f40f440044014402040400001d4e20043005ec052205180500043005ac0562051005080500001f4e4000540454065405d4047c04540454055403540440080000214e00000400f40f1400d4071402fc031402d40b1408f4070400224e4000540454065405d4047c04540452055203520c40080000244e0400f40f14001403fc0094021401fc0094081409f4070000254e000ce803240024003c00240024003c0024002c002c002000264e00042804c9050e04f80708040804f8070e04ca0528040004274e000040004c08dc0f4404fe044401440254054409440800002a4e40002000100008000400e60f0400080010002000400000002b4e00000200040004000800e00f1000080004000200000000002d4e0000f801880088008800fe0f8800880088008800f8010000304e00012801280128012801fe0f280128012801280100010000324e0000c0035c0254025402fe0f5402540254025c02c0030000344e0000fc030000fe0f0000d80f46045404d40754044404c40f384e0008280448024801ff00080308010800f807000800080006394e40084006fc01440054005400640864084408fc07400040003a4e000010081204140290017e001000d0091009100cf00300003b4e00088808880888088a08fa0f8c08880888088808000800003d4e00000400f40f94001408f4070400f40f94001408f40704003e4e48002a026e0258024902ea0f480248021e022a0248000000434e0008040484037c0004000400040474084c084008c0070000454e00008008600810040e020a018800f8000803000400040008484e000040002004100608058604420420049804000500060008494e000804081c04600282020e018002600218040408000800004b4e0000000808040802080509098e084c0828081808080800084c4e00020002fc028402840286028402a40aa40a9c08800700004d4e0000600010000c000a00f80f4801480148014801480108004e4e000080008c00bc0884088408fc078400c200f2008a0080004f4e000000082404240224062c092409a408a208620822080008504e000440047c03440144084408f40f44004400420142020004524e000000090009fc051405140114011401f201120114010001534e000000010001fc011401140114011403f203120514090009544e000090009408540434031c001400320f5200920090000000564e08024c014c01ec030c00fc0f0c000c00ea014a022a024801574e00004c094c05fc054c03fc0f4c034a03fa054a0948090000584e08092c05ac04ec020c01fc0f0c01ea022a052a0588080000594e00000403840444042404140414040c0404040004000300005d4e00081008100690017e00100010001000f0070008000800065e4e000030000804270a2509a4086408240824080408040600005f4e000040002000fc0720081008fe0b100810090809f8040000604e0000000004021402140124012401840884080408fc070000614e0000000890089008d804b404b20290028801880040000000664e00004000480048004800fe0f4800480048047204c4030000704e0004a408a404940494028401f400840284049c0484080000714e1000940f9204fe04920492070000fe070008000800080006734e04012c012409aa0f62012c010000fe0700080008000800067e4e0002f402b402be0fb402f40010042e0ba808680828080806804e0000e407bc02bf02be02fe07be0abe0abc0abc0ae00b0006824e0000c40f4c00fa05f207d600d60f0000fe07000800080006864e000000000400040804080408e407140014000c0004000000884e000020002400240024083408f40734002c00a40064002000894e50005001580156095609f40754015c015401f001400040008b4e00008400bc02bc0abc0afe07bc02bc02bc02fc03840000008c4e0000000408040804080408040804080408040804080400048e4e000040004400440844084408fc07440044004400440040008f4e000020002400e40124012409240924092409240720000000914e0000200024042407a404640424042404a4042405240e2008924e000004080408c4093c09240924092409240fe40804080408944e0004040444044407fc04440444044404c407040400040000954e800888088806fe018800880088008800fe0f8800880080009a4e00002404c4040404fc0704040404fc070404c405240400049b4e40087c0840097e094809480900093e0948094809440920089c4e0008e40924092409fc0f24092409fc0f24092409e40904089e4e0008e409240924093c0f040804083c0f24092409e4090408a14e00000800f807080808080e08080808080808080808080000a44e440824041404540284020601840254021404240444080000a54e0000040924052405b404ac02670224011403c404440c0408a64e0801880968040802f8010a080a08f80f0800680088010000a74e000ce4032400340034002600240034002400240020000000a84e04008400bc00ac08ac08ae08ae0eac01ac01bc0084000400a94e00000400f40f94049404f707940494049404f40f04000000ab4e04028402f402d40ad40ad607d403d403d402f40204020002ac4e00040404f402940894089607940094009402f402040c0000ad4e0000c40144007c016c096e096e076c016c017c00c4010000ae4e00008409bc08ac07ac01ae01ac01ac07ac08bc0884050000b24e0000400048055803780b4a09cc0748016805480548054000b34e0000c4027c036c036c036e076c0bec0aec0a7c0ac40a0000ba4e0008000400040003c0003c00e00000010002000400080000bf4e20001000fe0f0000040384044404240414040c0404030000c04e40002000f80f0600200020002000fe0f2000200020000000c14e40002000f80f060000040804080408040804080408040000c54e60001000f80f060000083c04c4020401c4023c0404080000c64e40002000f80f060000000000fe0f00003000400080000000c74e40002000f80f0600100c1003fe0010001000f00f00080006ca4e00002000a00090008800a400a200a4088806900120004000cb4e200020081004c8030400020002000400c80f100020002000cd4e00002000fe0f0000040ffc00040004083c08200ce0030000ce4e0008000cc0033e004008800c0002c001fe00000300040008cf4e40002000f80f060000048007780406040004c00500060008d14e000020001000d00708098408860848085008100620000000d34e000040002000f0072808240826092809f008100820060000d44e40002000f80f0600400044084408f40754004c0044000000d54e40002000f8070600200420042004fe072004200420040000d64e40002000f80f06004000fc0720081008fe0910080809f808d74e20001000fc0f020008086804880288037e02080408040808d84e40002000f80f060010005000900910081008fe0710000000d94e40002000f80f0600f00f00040004fe0700040004f00f0000e34e40002000f80f06002200200020007e00a003120414081406e44e0000100010004800480144025302440e4805c80050001000e54e00000004fe03000200090c0910040002e0011e02000c0000ea4e40002000f80f060000083c04c0040e03800270040c080008ec4e00002000fc0f0200f00f06000800020002080208fe0f0000ee4e40002000f80f0600000cfc036408a40524062405e4080408f04e00002000fe0f0000fc0302020000fc0f04000402fc010000f24e20003000fc0f0200f80188008800fe0f88008800f8010000f64e40002000fc0f0200b0008e008800fe0f8800880088000000f74e40002000f80f0600100cc803040002000400c80f10002000fb4e60001000f80f0600400844084408fc0f4408420842080000fd4e40006000f80f060060085806c40140084408980720000000ff4e40006000fc0f0200080c0803f8004a084a084808c8070800014f20001008d00f080808080408f20f840888089008200820080a4f20001000f80f0600900c9402fc01940094009400fc0110000d4f40002000f80f060040044406f4054c044404c407040400040e4f20001000fc0f0200280c6804a8033e022803e804280c00040f4f20001000fc0f0300100c100290017f009001120214041008104f40002000f80f0600100c10043e02d0019206540854081006114f40002000f80f0600100690015000fe0f5000900010030004174f000020081006c8012801080b06080807c801100220042008184f40006000f80f0600100c90037e001000d00f160810060000194f40002000f80f0600400838040003fe0000034004380800081a4f00002000a00890088806a405a204a40488049006a00820001d4f20001000f80f06002008240ee40924082408240b240420081e4f10010801280144010401f20f0401440128010801100100001f4f40002000fc0f0000a800a800a800fe0fa800a80488030000204f40002000f80f06002000a400fc02a604a40aa409a4002000244f40002000f80f0600500848044e03e80048084808c8070000264f40002000f80f06002000d0070809860888085008100620002a4f40002000fe0f0000140cd0033e0090081009100cf00300002f4f40002000fc0f0200f80f88048c048a0488048804f8070000304f40002000f80706001000900f9004fe049004900490071000344f40002000f80f060020012c012001fe0f2001280124010001364f20001000fc0f03001000480154025302540dc80050001000384f40002000fc0f0200f80328012801fe0f28012801f80300003a4f40002000f80f06001000d40754025402d40b0408fc0700003c4f40002000fe0f0000fc0700023c080006c0013e03000c00003d4f00002000fc0f0200e8071e00f80f0000fc0f0404fc0f0000434f40002000fe0f0000fc0f44044404fc0744044404fc0f0000464f40002000f80f06000008fc092409240924092409fc090008474f40002000fc0f0200580048084808ca074800480058000000484f40002000fc0f02004800e80358004e00e80f48004802c8014d4f20002000fc0702000804680488050a040806e805080400004e4f40002000fe0f0000fc0b240a240a240a7c00a207220820064f4f60001000fc0f0200880888088a08fc0f8c08880888080000504f20001000fc0f02000803e8085e084808c80f480848080808514f20001000fc0f02008800e80f5e04490448044804c80f0800534f40002000fc0f02000801c8002802fe0f3802c80008010802544f40003000fc0f0200800f80048004fe0488048804880f0800554f40002000fe0f0000e40324012401e40904080408fc070400594f2004a004b002a80aa408e20fa400a802b0029004a00400005b4f40002000fc0f0200e808a806fe01a800fe0fa804b80300005c4f20001000f80f0600300008000e00f80f2801280128010801604f40002000fc0f02001003ce000808f80f0800c80018030000634f40002000fe0f0000fc0724012401fc0f24012409fc070000694f00002000fe0f0006fe01c201ea0f3a00aa034200fe07000e6c4f40003000fe0f01002403a400ff07240934092c0922050000734f20002000fc0f0200200924092409bf0f2409240924090000754f60001000fc0f020088088904fa0388008800fa0f890088007f4f40003000fe0f0000f40a940a9404fe0794089408f4080000834f40003000ff0f00003e0ca2032200a20f2200a2073e080000844f00006000f80f0600200934092c09a40f2409340944090000864f88088804680408020801fe0f8801c8026804880488080000884f20001000fc0f02002809a4049404560554024c01c40000008b4f40002000fc0f0300600c9e02f2010000fc090008fe0700008d4f40002000fc0f0000a800a806a800bc08a808e807a800a0009b4f20001000fc0f0300880cfe02880088008800fe02880488089d4f20002000fc0f02008808c80f28043a04c800480368042008a04f40002000fc0f02008808a8048802fe018802b80498080008a14f40002000fe0f0000e40f2404fc072404fc072404e40f0000a34f20001000fc0f0200c00f5e045204520452045e04c00f0000a54f40002000fc0f0200a808a404a603bc00b40fcc08cc082004a64f20002000fc0f0200f00910041002de0114041404f4050008a74f00006000fe0ff804e4030400fc0e0000f8090008fe070000a84f40002000f80f0600500c34031c001400320f520090000000ae4f00004000f80f0400d003ac02a802e80ba80ba806e8038000af4f00006000f80f0400100954055403d40154035c0550091009b54f20001000fc0f02006008ae08ae05ae06ae06ae05ee080008b64f20001000fc070300c0075e045204720452045204de070000bf4f00002000fe0f0000fc08ac06ac06fc05ac04ac08fc080008c24f40002000fe0f0000940c9402ec00a40f92008a02e20c0009c34f40002000fc0f0000bc0724042404e40f240924093c090008c44f40002000fe0f00002409fc0fa4002004fe022005ac080806ca4f40002000fc0f0200480a28099e058806f806cc0598081008cf4f20002000fc0f0200f00f160050015e0150091009f60f0000d04f00006000f80f0600a401fc0fa4000000f8090008fe070000d74f20001000fe0fc000cc0fa20899089808a208c40fc8000000d84f00002000fc0f0200280124012409aa0f62016a010a010000dd4f60001000ff0f00009e0c92029201f20f920192029e048008de4f00001008d007d802d40ad4071200d4031808d00710001000e04f40002000fc0f0200880968040803fe018802680488080000e14f40002000fc0f0200a80ea80aaa0aaa0aa80aa80aa80e0800e34f20006000fc0f00005c0954055403d401540354055c090009e94f00002000fe0f0000f40f1401fc001403fc001408f4070000ed4f00006000f8070600900428052404a6042806900520042000ee4f40002000fe0f0000fc031008480ab60a64093c05a4042402ef4f00002000fe0f0000fc070400f40f86002408f40f24000000f14f20001000fc0f02000009fe05560556015605fe0500090000f34f20001000fc0f020028092805fe030000fe0f280128010000f54f40002000f80f06005009540fd408fe085403540554094008fa4f000040003000fe0f0000fc03a602e507ac0af40b24084404065040002000f80f0600f00f94011402fc0f94011408f4070000095010081007e800b80ebc0eba0abc0ab80ab00af00e300000000b5040002000fe0f0000fc0f0404d405740554058404fc0f00000d5020001000f80706002000ac0fa404a604a404ac04a40724000f5040002000fe0f0000fc03000848093605a40334054c094009115080004000fe0f0000fc0f54007c0000007c085408fc070000125000002000fe0f0000bc04a40794020002fc080008fe070000145020003000fe0f0000fe070a00ea0e8a08ea0f8a08ee0e0000185000006000f80f0600e00f2c00a003be02a00b2808e4070000195000006000fc0fe0010008940854055405d40354055c0910091a5020001000fe0f0000b407b402ac02ae0b2c08f407340000001f5020001000fc0716001400de075405540554055e05d4070400215040002000fe0f0000fe076a056a056a056a057e05c0070000245020001000fe0f0000f40f0404fc055e055c055c05fc050400265080004000fc0f00005401d40770095c09500dd40f54094002295020001000fe0f0000fc0fbc02bc02be02bc0afc0f140000002a5040002000ff0f0000fe08920791008000920f9208fe0800042b5040002000fc0f0200d00f4801d40f5201d40f4801d00f1000365040003000fc0f02000009fe05aa05aa01aa01aa05fe0500093a5000001000fe0f0000dc0b5c085c065e015c045c04dc0510083c5010001000fe070000fc075c055c055e055c05fc07040400003e5000006000fc0f0200f8030000f4091404dc031408f40b0008435000002000fe0f0200f8070408bc0dbc0dbc0abc0bbc088408475000002000fe0f0000fc0fa4021c0ac00854055407dc080000495040002000f80f0600f007b405be05b40fb405bc05f00500054e5040004000fc0f0000fc00d40fd408fc09d402d406fc0880084f5040002000fe03000efc0194075401d6075401d4075c01c0075a5040003000fc0f0200c80f7e04c00f3008ee048807780800005c5000002000f80f0600c000fc00ec08ee0fec007c00c4000000655040003000ff0f0000fe0702042809aa09ff0baa09be090808745040002000fe0f0000fc0d5401fc0d0000f8010008fc070000755020001000fc0f0200f80ba806a806ae02ac06ac06fc0b0408765040004000fc0f0000fc0fd400d402fc03d402d408fc070000775000002000fc0f0200e80fb402f40f1200d4030408e80708007d5040002000fc0f0201880cca00b806ae00a80ab809e00880077f5000003000fc0f0200980cbe06b805be04b805aa079a080000805020002000fe0f00007c0c54025401fe075408540b7c0b0004855040002000fc0f00007801780578017c0978097c0f780100018d5020002000f80f060050085406d40156015409540754000000915040002000fc0f0200080976050c01b00f2c017e0524090000985010000802b802f4020202f20f0402b802a802080210000000995040002000fe0f0000f4071400f60fb402f40fb602f40f0400a25040002000fe0f1c004c03bc0a7e099c079c0054014c060004a85000002000fe0f2000e6070000d40f7e0554055c05d40f1200ac5040002000fe0f0000cc00f80fa80aae0af80fa80aac0a2008b25000004000fc0f0004a803fe098807c000f40c0a03f8040808b35020001000fe0f0000bc02bc06bc02fe0abc0afc0fbc030003b55020001000f80f06001008fc0bfc0afe02fc06fc06fc0b1008b75020001000fc0702004805fe02fc01fc02fc01fc04c4030000bb5040002000fe0f00003c0a740b740b2e056c0d640abc088008be5040002000fc0ff80110020409fc07ac06ac02ac0afc0b0000c55020001000fe0f0000f40ade0adc0afc0fdc0ade0af40a0408cd5000002000fc0f0a006c09fc076a054a0c1003fe08f0070000cf5000002000fc0f0200b8056e05ee02bc092c07a80138020004d15040002000fe0f00009c0ffc03dc05dc05dc07fa08aa0f2800d55020001000fe0f00006a0978056e03e8016e0378056a050009da5010001000fc0f02001004f402bc08b60fbc00f40214042000e75000001000fe0f0100fc0f6d0566057c056c05e70f3c000000f55000004000fc0f0000fe0fd60fd60ffe0fd60fd60ffe0f8208f95040002000fe0f0000fa0bea07fe07ea03fe07ea07fa0b0008fb5000006000fc0f0002fc0fa404bc0700005801cc0f68014800005140002000fc0f0300280bab0f6a033e09aa072b05aa092009025100006000fe0f0004fc03ec0ffe05ec01fe03ec05fc094000045130000800ff0f0004fa025a015a0d5b095a0b5e09fa010a0c0b5120002000fc03130ef8010e04db07ca07ce07da07e8076800125100002000fe0f00007a0f4a01de0f4a015a0f6a01480f0000185180006000fc0f8300a80daa0aaa0fff0aaa0faa0abe0d88091f5140003000fe0f0100cc0bff0bec0bee03ec0bfe0bcc0b0000215140002000fe07800ffe07ea03be0f6a05ea077e05c00700002a5120001000fc0f0300a20a3e09be07be05be05fe0722056008325100002000fc070200580f5a050006d400fe075805d60700003f510008000c0002fc01000000000000fc0700080008000800064051040804040403fc00040004000400fc07040804080408040641510008400820043002ec0122002000e80728083008400800064351000020082404a403640024002400e40724082408240820064451000000087c044402c40144004400c40744087c080008000645510000080848086804d8034a004a00d807580868088808080646518000040998048002fe0100000000fe07400890088c0800054751000000087c044004d2034c004800d6074208f808000800064851400850084e04c80348007e004800c80748084808400600004951200822042c02e00120003f002000e00728082408220820064b5100080408f408940694019e00940094079408f408040804064d5100003008f808940496029401f4009c0794089008f00800065051000000087e080006fe009200920092069208fe0800080004515100000008f8088a048c03880088008c078a08f808000800045251000000087c085404d20352004000d40754087c0800060000545100003008f0089c0496029401fc079408900a900af00a00085651000024089408d404a403a5008600ac07cc089409240924045a51000038080a08ec04a803ae00a800a80fec080a08380600005c510008f804440400027c01560055007c0680087c080006000062510000f40c94039e00f4070002f40894079e00940ff408000665510000000800040402840174003c00c000000300040008000867510000f00f10001201d2003e005000900010091008f00f000068512008100908092c092209e20f220924090809100920080000695100000000f40f1400d4011400fc0f1400d4011408f40700006b5100080006c00134000400040004007c0080030004000800006c510000200410040c06820560042004000482040c07100c20086d51100810041003900010001e001000900010011006100800006e51200010001c00f200900890089008930c840318002000000070511004900492049404900490049004980496049004100400007151800888088804fe028802880088008802fe0288048808800873510000400448044a044a024801f80048014f02490248044004745184089808a00480028600980080008002b0028804840800007551000000090009fc051405140114011403f2031205140900097651000004090405fe055405540154015403fe03040504050005775100090005fe05560356035601560156035603fe050005000978510009fc0524052403fe0324012401fe0324032405fc090009795100008808c806ba058c04080e8800c804bc078a04480608087b51000020013809ba04fc0338003800fc0fba003801280100007c51400858055a055c03f80f58015801f80f5e03f805480800007d5100008000fc0fd505d605fc05d405d605d505fc0f80000000805100028c0afc0abc07fe06f002f602fc06bc07fc0a880a000285510000f80f080008038800c8003e00480088090808f80f000086510000fc0f4400440044007c004400440044084408fc07000088510000fc0f040014022401c400c4003401040a0408fc0700008a514000fc0f44004400fc0f44004400fc0f44004408fc0740008c510000400cfc034408fc07400cfc0344084408fc07400000008d5100000401f40f54015401fc01540154095409f40704010000925100000600f2075e055e055e055e055e055e05f207060000009551800880088c0be40aec06ec03ec06ec0a8c0a9c0b00080004975100081c080404e4032400240024002400e40704081c080006995100000c010401640154015401540954095404c4030c0000009b51000004029402f40294029402d40f9402940284020c0200009c5180008c004408c40734040c0477028400440124022c040004a0518008ac04a403a400a4070408440944094408e40b4c080004a45100006c08f4092c052c03ec013c072c09240be4090c080004a551000506097a055a035a03da01da015a035a037a050e090009a85100000e00820ffa0ada0ada0fda0ada0afa0a820f0e000000ac5100002001900088044c045605240554094c09440880008000af510000040698010000040174014401440944097c0cc0030000b05100000407c40010061001f0080008fe074000a00118020004b25100040606d8010000f80188008800fe0f88008800f8010000b3510000040688019008000448024801fe00c803780440080000b55102040603c80000087e044202c2014200c20742087e080006b6510204040388002000b00fac04a204a004ac04b00720000000b751020402028c01200098008400920f93009404840488071000bb5102040c038000040464035c094708f40f4400440144060000c051000004049803800010005c095609f4075c015401f0014000c451040c840314085c095c0bdc0d7e055c075c097c0934090000c65102041c03c0001000fc0faa04a804aa04fe07a804a8040804c95102040c0390000404f40294089408960f9400f40204040000cc51000084071800400a540a3409b4069e04b406b40514080008cd5100020c03c0000404fc04ac02ac01fe0fac01ac02fc040404cf51040e1801000cf8030800a807a802080d7e028805ea080006d15100000206cc0100047c051c055c03de015c053c055c055000db510402840148000005fc05cc01fc05fe07fc01cc03fc030405dd510404c40300005e093405f2032a0c00074c04cc0f5c094409e051000800080006fc010400040004000400fc07000800080006e151000000080007fc000400640084000400fc07000800080006e4510000000efe01020452049202920172060200fe0700080006e651c0083004ce06880378040005fc0804080408fc0b00090000eb51000800083c04a403ac00ae00a400a40724082c09e0080004ed51100810083e048003d400d400d400fc00d207520852080006ef5100003c0f30053e053005fc01000cfc030400fc0700080004f0510000000cfc030408f40af40ff40af40a2400fc0700080006f15100087c09b804be04b807fc0d0004fc030400fc0700080007f351000890089204ba03fe01ba01b801fc01ba07880894081006f6510000f80700040405880450043004480486050004f8070000f8510000e00f200420043c04040404043c0420042004e00f0000f9510000fc0f040404047c0440047c0404040404fc0f00000000fa510000800f3c0420042004fe072004200420043c04800f0000fb51000040004807480448044804fe0748044804480f40000000fd510000f8070204920492064206fa074a04a6050204f80f0000ff511000f007f40710045e05d00550055e051004f40ff00f10000052000004080404040284017c00040004080408040cfc0300000152000000000402040184004400440424080408040cfc03000003528008c40834040402c4013c00040804080408040cfc03000006520000200810080c042203e000200822082608c80710002000075200002000fe0310029409040484037c0004080408fc0700000852040408023001c000380106020000f80500080008fe0700000a52400044004400fc0f440044000000fc0900080008fe07000011520008440cfc0344004400fc0f44000000fc090008fe0700001252100810043e02d0039604540810060000fc090008fe07000017520000c40824089c041403d40034000000fc010008fe0700001852080828044a02cc01380208040000fc0100080008fe070000195200000008fc080406f4010404fc090000f8090008fe0700001a520000fe0f0202b201fa090208fe070000fc090008fe0700001b5200001000c80724082609c80810060000fc090008fe0700001d5208018800ee0f98004809000484037c0004080408fc0700002052400cfe034208fe07fc0f4200fe0f0000fc090008fe07000024528000ac00a000fe0fa000ac000000f80100080008fe070000255200083c06e401a408a408bc070000f80100080008fc07000028522000f007ac08a808e8090809f8040000f8010008fc0700002952120292015200fe0f520091010000fc0100080008fe0700002a524000fe0f4200fe0f4200fe0f4200fe0f0000f8090008fe072b520008bc08a406a401a408bc0700000000f80100080008fc072e521400940f9204fe049204920710000000fc090008fe07000030520408b404ac04a407a4049404a4040000fc010008fe0f000036522000ac07aa00a800fe0fa800a804a8030000fc090008fe073752e00f1c00d4075400f40f5400dc070000f8010008fc07000038522001aa08ea08ac04b802ae01a808b808ac06ea01aa0020013952500454035408c8074c00520152060000fc090008fe0f00003a52000474061401fe0f1401f4020000fc0100080008fe0700003b5200002409b404af0264021403c4040000fc090008fe0f00003d522000900c8806a405a6048806b0080000f8090008fe070000425244085404540336003400ac0f24000000fc090008ff07000043520004e804aa02ac01f80fae00b8070000fc090008fe07000047520008fe052a052a012a01fe0d0000fc0100080008fe0700004a520000f60f50015e095009f6070000fc0100080008fe0700004d520000e80faa02ac0aa80ae8070800e8030e08e807080000004e520000520452034c00e40f4a026a040000fc090008fe07000051521000580884051204d3040407c8020002fc080008fe07000054520001be04ea02aa0daa03aa08be070000fc090008fe07000056522400ac0fac04a604a404bc04ac070000fc090008fe0f00005b520000fc0f0c03e4031409fc070000f8010008fc07000000005d520000c000d80a560ad4077400cc060000f8090008fe07000063521008f004bc06f201b402e40c0000fc0100080008fe070000645200002408ac079602ac02a40f24000000fc010008fe0f00006552a0022a0a2a09ea0f2a01be02a0060000fc090008fe0700006752c0073e00aa07aa04fa04aa04ae070000fc000008ff070000695288086c046c020c01fc0f0c016a0228040000fc090008fe076a5200057c053c053e05bc03fc010401740506057405040300006f520200de0f5605d60756055605de0f0000fc090008fe07000070520000ac04fc02ac01fc0faa02fa060000f8010008fe07000072528c00bc0fb405b405f605b407b4078c070000fc010008fe0775521000100ed003f805f405e405e8070000f8010008fc0700007f520008760570057403fa0f7803700376050000f8090008fe0783524804fc07fc07fe07fc07fc07fc07fc070004f8010008fc078752000ef8011804d8067e036c0f6c020804f0010008fc0f0000885280007c08f409b409b405f80354015c09f6095c0954070000895200009c09ca0bc909b007ce0542050e04f8010008fe0700008d520808e804ac02ea004b08a206e4040000fc010008fe07000091523800480cf4038c029602bc02cc0f2000fc010008fe0700009b52000010081004100290017e00100010081008100cf00300009d52000414026401e4001c09000488037e0008080808f80700009e52000088096804080288017e080808080cf8030000e00100009f5204020402fc010409040910041003fe081008100cf0030000a05208080806fe0108080808f8070000fc0f04040404fc0f0000a1524008500948092c053603a401240934094c09440740000000a3522808a808a408a204a0039e00900888088208840708000000a85200002404e4032402a402240300081007fe001008f0070000a9520004fe0392049202fe0b00041003f0081f081008f0070000aa52000844095c09660524035c014401340924095c0744000000ab5200004807c8047e02480240071000100ffe001008f0070000b152000efc01140cf4035408d40704001007fc001008f0070000b2520000a408a4049407ac04a4043000100efe011008f0070000b3520008b408940496049403d400940894089608940734000000b4520008b8088a048a048802eb01880888088c088a0738000000b9522808a804a8020c01a802080850041003fe081008f0070000bf520000140854097e051405c00334011e0904093c0740002000c1520000b4048404b4078404b40c04041003fe081008f0070000c3520000340214095e079401340900041003fe081008f0070000c7520008020afa0aaa06aa02fa02aa02ae0aaa0afa0600000000c9521008f8049603f4009c07f008180a98097e08080af8090004cb520008ee092a04aa032a08ee0b00001007fe001008f0070000d2520000e402be02f40fbe02e40804041003fe081008f0070000d55200007c097c09fc077a0d0804180290017e081008f0070000d85280008207ff05aa04aa04ff05820c0802ff010804f8030000d95200002a03aa08ea073600e00948072e01340934092c074401dd52000cfe039208fe0780016a093807ae0138096e09aa070001de5212089208a804ae04a002a201a408a808a608280772000000df5200024401fc057e037c037c017c057e05fc037c0144020000e2520000ac09ac09ee05ac058003f80118090e09780680006000e4520008f409d605f407d605f405000c1003fe081008f0070000e75200002001ec0fb807e807a807a80e0006fc011008f0070000f2520001fe0dfe01fe01fe0dfe01080b98087e000801f80c0000f35204087d056d01ff04ec02fc02000688017f040804f8030000f552000cfc03cc0ffc01ec03fc0bcc0f000cfe031008f0070000f8520001fa0fbb078007bb07ba07000c0803ff000804f8030000fa524000600010004e0048008801080108080808080cf8030000fe52400060001003ce022802080148098809080a0808f8070000ff524000200618018e0078080806880178080808080cf803000000530000600010044c024a024802480908090808080cf8030000055320001000c8072e0928092809e8090808080af809000400000653400060041002ce0168089804880378090809080cf8030000085300007000e8030602e5028402f4020402c40b0408fc070000155300000000fc07200820082008200820082008200800060000165340002000f80f060002000000fe072008200810080808000617530000100410021002fe0f00000000fe07200810080808080719532006bc013c02fc03bc04bc040004fc05100610060806880520530000fe0f0208020afa094a084a084a08ca0b4a084208020823530000fc0f0408f40954095409f40b54095409f409040800002a530000fe0702042a052a05fa050204fa05aa04aa048a0400002f530000fe0f1208860b2208fa0baa0aaa0afa0baa0aaa0a000039530000fc0f0404c4043c04040404047c0484048404640400003a530000fc0f040414052405a4044404a40494040405040400003b530000fe0f020422052a05aa047a04aa042a052a05220500003e530000fc0f040cf40b5409d409d40bd409d40bf409840b04083f530000fc0f0408540ad40f740d740d540d540d540f5408000840530000fe030204c2055e05d6051604d6055e05c205020400004153000020002000200020002000fe0f20002000200020002000435340004800480044004400fc0f4400440044004200400000004753480848084806fc014400420044004000fe0f40004000400048530000500050004e0048004800f80f480048004800480040004a53000122012e0120012001fe0f200120012e012201000100004e530000100108017c010201900f3e01480148014401240100004f5300001000fe0f1000c009080488037e080808f8070000e0015153000000027c035403d4027e025402540f54027c0200020000525340014401340124010401c60f240114012401440144010000535300000002f802a802a802ae0fac02ac02ac02fc0204020000545300001000fe0f10008006a4019c070600a406a4019c0f0000555300000002f802aa02ac02f80fa802ac02aa02f8020002000056530000100954099409b4051403de011405140514097409100157530400f40f1400b40294029e0f9402d402940a1408f4070400585300000002fa02ac02a802fe0fa802a802ac02fa02000200005a530800ff07080002017e01560356017f095609d7077f0100015c530000000000000000fe0f2000200040004000800000000000605300000000c00f400440047e04480448044804c80f08000000615320002000200020002000fe0f280028012801280220010000625300080004f003900090009e00940094009400f4010400000064530000f00f1004500550059e04d404340534051404f40f000066532004a404a404be07a404a404a0040000fe0f20004000800067530000fe0792049e079204f2040000fe0730004000800000006b5300000408040804080408fc0f0408840884087c080008000070530002f8032402240222010000fc0f040004020402fc030000715320083004f8031400d607540854085c0a500ad0091008100473530000fe0f5204520452077e0c0000fc0f04000402fc010000745300004807c8047e02480248070000fc0f04000402fc03000075530001fc0924050203fa000000fc0f040074020402fc01000077530001a800aa00ee07b808ae0aa80aa8096c08aa06a800200178532804a8072604fc07a404a4020000fc0f04000402fc0300007b5300009800c40fb2049004260f4000fc0f04000402fc0100007f530000f8090407f2010004fe0356023e00fc0f0600fe03000082530000000cfc0304000400040004000400040004000400000084530000000cfc030400f4071408140814091409f408040804068553000cfc0304001400140014081408f40714001400140000008653000cfe030208220822042203fa0022082208220ce203020089530000000cfc0304081407f4009400940894089407140000008b53000efe010204420442044204fa07420442054205420400008c530000000efc01040824042402a4017400a4012c02240424089553fc070200fa090a04ea030a04fa090200f2090208fa07000098530000000cfc030408fc0aac0aac0afc0fac0aac0afc0a04089a5300000006fc0114007c057c05fc07fc017c017c01040100009f530000000ffe007202aa0aaa08ae07aa00aa02fa0202040000a253000ffc0004022401f40fa4000400f40f54055405f4070000a553000cfe0302089609f2071a0182090a06d201120672080000a6530000000efc010408fc0afc07fc06fc06fc0afc0a0c080008a853000cfc030408ec0aac08ac066c04a4002408f40724000000ad53f8070400f403fc027c07740584072404fc03240114020004ae530006fe010204fa015a03fa01020cfa034a00ca0f4a000000b253000efe010200ea0fea01ea05e207ea05ea05ea090a0f0200b353000ef8010e04f807b806ba06fc0f0800e80c2c03ea052808bb534000480c48064805c8047e04480448054806480840000000bf53000080008004fe06aa05aa04aa04aa04aa04fe0680048000c1532001a808a80aec0aba0aa80aaa0aee0aa80aa80820010000c25320012801a8086c0aba0aa80a28096a04ac04a00020010000c35300000001b000a409760ba50a140a26097604a00430014001c8530000000804081c04640484020401840264041c0404080008c953000804083c04440494021401940244043c04040400080000ca530004040684017c082404c40404031c039002700410040000cb53000408040803c8087e04a80428032803a804680408080004cc53140834044402e4011c0a00087c048403c4023c0400080000cd530000000cfc032408e408240524022406a405640804080000ce530002f80100010001fe0f00001408e4040403c4043c040408d153000410021c0b9008f0085e0550065005d608500810080000d4530002a0012008fe0f2400a00b04087c068401e4021c0c0008d6530404fc07940494049402fc0f0000680888050803e8041808d753000074081c04dc0454055c025c025205da041a0430080000d8530008a40894088409bc0686048604bc068409940824080008d953500658015408f20f5400540304087c048403c4023c0c0000db530000ac08a006fe01a400000efc01720c92039202720c0004e0530000e8087608560f560f460f560f5e0f560f7808c8080000e1530000a800d807bf07da07fa0790000c0cf40284017c060004e2530800aa04ec07f807fc07e80fe800fc07ec05ea0788098008e35300000000fc0f040404040404040404040404fc0f00000000e45300000800880f88048804fe04880488048804880f08000000e553000060001000cc072a0228022802e80b0808080cf8030000e65300008008bc04a404a403e400a400a408a408bc0880070000e8530000fc030401fc090008040684017c040408040cfc030000e9530000fc0304010401fc010000fc0f040004020402fc010000ea53000000087c044402440144004400440144027c0400080000eb530000fc0304010401fc010000fc0300010001fe0f00000000ec5380004400440f240914090c094409440944093c0f00000000ed530000fc030401fc01000cc0033c0000007c008003000c0000ee530000fc030401fc010000040004080408fc07040004000000ef5300000400f403140114011401f40104080408fc0704000000f05300002000a00f980496049104900490049404980f20002000f25300087808480548064802c8057e0448084808480878080008f353000188008800e80f5c044a04480448044804c80f08000000f6530000fc0304010401fc0120002000fe0f2000200020000000f753000040005c01d4015401540954095409540d5c0340000000f85300001400d4075402540254025402d40314080408fc0f0000f9530000fc030401fc05000c1c046402840144023c0404080000fc530000fc030401fc0100000401840044083408040cfc030000fd530000fc030401fc090004fc0304000400fc0700080006000001540000fc030401fc010000440044084408fc0f44004400400003540000fc030401fc01000010040e0ba808a808680828080806045448004800240fa604ab0492049204aa04a604220f4000400006540000fc030401fc01000860045807c6046004100700080000085420002000900f8808a408a208a208a4088808900f20002000095400002400a40fa404a404bf04a404a404a404a40f240000000a5400008007bc00a400a400e40fa400a400a404bc04800300000b540000fc0304010401fc010000d00010091008fe07100010000c540000fc0f0400d407540254025402d40314080408fc0700000d540000180188008c00d307630452044a0446044004c00f00000e540000000efc011400940f94049404920492049204920f10000f5400000408f40894069406fe059404940894089408f408040810540000fc030401fc01000420042004fe07200420042004000011540000f80f0800e8032c012a012801e80908080808f807000013540000fc030401fc01000004000400fc0f0400240044000000155400000000bc0fa408a408a408a408a408a408bc0f0000000017540000fc030401fc01000074014401440964095c0cc00300001b5408020801aa00ea0fba04ae04aa04aa04aa04be0f080000001d5480004400440f4c0554052605240554054c05440f440080001e5420022401a40f640924093c09240924096409a40f240120021f540000fc030401fc010000b0008800a608a40c8803b000200020540000fc0304010401fc0900042003fe002003260428080000265420002400a40f94049404bc04840494049404a40f2400200027540000fc030401fc010000fc07440844087c0844084408fc062854fc030401fc010000e80108010801fe0708090809e80b080829540000fc030401fc01000860045802c60140084608980720002b5410000800280f28092c092a092a09ac096809280f080010002c540000fc030401fc0100080006fc0124002200e20f220020002d54fc0304010401fc0100080804e8032a002a00e807080808062e540000fc030401fc0900043006ec012200e80f2808300820062f540000c00f3800a80fa804ae04a804a804a804b804800f000031540000fc030401fc0900086804a8053e022805e804080800003354000000097c0940055c05d403540154035405dc05000900083454000040095c0954055407d4015403540554055c094009000035540000fc030401fc01000878080004fe04000288013000000038540000fc030401fc09000484037c08840424073c05e004000839540000fc030401fc0960081e040803f80008030804780800003b540000fc030401fc0120009c096a041803f8080804f80300003c540000fc030401fc010008f40f4c000000fc070008000800073e5420002200aa0faa04be04aa04aa04aa04ba04a20f2000000040540000fc030401fc0100043a022201a2086208fe07220020004254000000009e0792049204f2049204920492049e07000000004654000880089e0492029201f20f9201920292029e0480080004485400008008bc0aa40aa40aa40fa40aa40aa40abc0a800800004a5400002800a70fa504a404a404bf04a404a404a40f2400000050540000fc030401fc010000f00f1003f0005e009009f007000055540000fc030401fc010000fc0704043405c404a40414050004585400000008fe0532043203b200320232023204fe05000800005b540000fc030401fc011000c807240822092409c808100610005c540000fc030401fc0100007c014401460164096408dc07000062540000fc030401fc090004fe031200d207920892085e06000066540000fc030401fc001003ee0220090806fe010808f807000068540000000efe010200aa07aa02ba02aa0b2a080208fe07000073540000fc030401fc01000448024801fe0f480148024804000075540000fc030401fc010000f40314011401f4090408fc0704007b540000fc030401fc010000fc0324012401ff0f24012401fc037c540000fc030401fc010000b4088408fc078200b2008a0000007d5400001000d00758025802d4031200d40f58004802d001100086540000fc030401fc013000f80396049404f4050405fc0400028b540000fc030401fc01100008000e00f80f28012801280100008c54000294015400fc0752000000fc07040204020402fc0700008f540000fc030401fc040002d4011408f40f840040012006000490540000fc030401fc016000fc0f0200d00010091008fe071000925400081c081404d4035c0040005c005400d4071c080008000695540000fc030401fc010000900f90049004fe049004900f100096540000fc070401fc0c0002fe09080cf003fc0f0404fc0f000099540000fc030401fc09000490037e081004f2079608540810049a540000fc030401fc01500048022e02b50434054c0944004000a6540000fc030401fc010008ec04ac02fe01ac02ac04bc090008a7540000fc030401fc014008bc0494036000f8090008fe070000a854200011008a0fa004ac04a30492048e049204a20f2e000000aa540000fc070402fc030008ac072000fe0f2000a803240c0000ac540000fc030401fc0100082808a8040a03cc05080468084008af540000fc030401fc011001880f5609650974095c09840f8000b1540000fc010401fc010000f807a802ac02aa02a802f8070000b2540000fc030401fc0900084e044c02f8014c024e044a080000b3540000fc030401fc0100082405b4046f022402940544080000b854000cf8030800a807a802a80a080bfe080807ca082c080006bd540000fc030401f800fe0f02042205fa04a2050204fe0f0000c054000204017401540fd4045504d60454015402740504050008c1540000c00f40045e04d2071200d20f52045e044004c00f0000c4540000fc030401fc0100088804fe0288008800fe02880c8008c6540000fc030401fc0100082809a404960454024c01c4000000c7540000fc030401fc01000824092409be0f2409240920090000c8540000fc030401fc016000300fa804a604a804300f60004000c9541000d40754025e025402d409100cfe021003920454080007cd540000fc030401fc010000f80f0800e8032e01e8090808f807ce540000fc030401fc0100082408ce0404030405ce0424080408d1540000fc030401fc0540040404fc070404fc070404e4040000d7540000fc030401fc0100007c010201900f3e01480144012400df540000fc030401fc010004fc0582041002ce080808f8070000e15400000008ff0bad06ad06ad02ad02ad06ad06ff0b00080000e554000044007c076c056c056c056c077c004408fc0f44000000e6540000fc030401fc010008fc0f9200100cfe03900556080006e8540000fc030401fc010000f60f50015e0150095009f6070000e954fc030401fc0100007c0954095409fc0f540954097c090000ea540000fc030401f80c0202fe099208fe07fc0f0200fe030000ed5480089e08920892049e03c0009c039404d404dc0880080000ee540000fe018200fe0080016a012a09bf0f6a012e012a010901f25400001200b20fbf048a04a0049e0489048904b90709000800fa54fc030401fc010000e80fa802a802fe0fa802aa0aec070000fc540000fc018400fc000000bc08ac08ae0eac01ac01bc00040001550000fc070403fc030000a80ea80aaa0aaa0aa80aa80e080006550000fc030401fc09400828099e068804fc06cc055808400807550000000ffe00220eea0aaa0a6a0aaa0aaa0a2a0d2201000009550000fc030401fc01000828092e05ea0328052e092809000010550006fc0104005c075c055c05fe055c055c057c071400000014550000fc030401fc010000aa07ba04ae04aa04ba04a207200020550000fc030401fc01000894049602d4099408960c340300002455fc030401fc010008f80494029601f4019c029404f404800827550000fc030401fc010004fc0754023c00f80f0400fc0300002c550000fc030401fc01000cf80328083e076c006c074c0800042e55080008007c0f5e055c055c057e055c055c055c0f440000002f550000fc030401fc010000fc0faa04a804fe07a804a804000031550000fc030401fc010000fe076a056a056a056a05fe07000037550000fc030401fc010008f407ec00e602650a640af407240038550000fc030401fc0800062800a404b209340af400240608083e550000fc030401fc010008d40a140afc0f140ad20a500a100843550000fe018200fe000800ee0fa802af02aa0aaa0aea0f000044550000fc030401fc0120049402540a2c09c407640094030004465500000000f40f14007c071605340554055c071400f40f00004a550000fc030401f800fe0f3200cc01e4031401e408fc0704004f550000fe0f2a00aa07be028002be02aa032a082a08fe0700005355c2003a00aa07aa04aa04ba049004ce04b40434074c0084005f550006fc01aa07aa02aa02ba0320047e028801e8021804000061550000fc030401fc0100002801fe0f0000fe0f2801280100006455fc030401fc0100007c02d402d4027e02540f54027c02000065550000fc030401fc01100048074405f205540544054807500066550000fc030401fc01000cfe030808600889090a0ee80900006a550000fc030401fc018008fe074000f80f8c048a04f80f000070550000fc030401f8098e0952087e0552025e01d2015e0000007855fc030401fc01000cac032c062c01fe0f2c012c02bc0f08007c550000fc030401fc0100006c07a400a60fb400a404a403000080550000fc070402fc030000a40fb40956095409a40e8c0000008255fc030401fc010000fc00d40fd408fc09d402d407fc09000083550000fc030401fc00e00f1400b4029e07d4021408f4070000845500014401540f560b540bfc0b540b540bd60bd40f4401000087550000fc030401fc0c64029e0ff40194026008f808fe07000089550000fc030401fc016000f80f060050095405d4035c0550098a550000fc030401fc0cf0030807a802080d7e0288056a08000694550000fc030401fc0c0002fc093408f40ab40fb40abc0a00009855fc030401fc010000bc0fb000b00ffe00b00fb000bc0f00009a550000fc0184007c08f0055805360394033c055005f00900019c55000104017c0fdc0b5c0b5e0b5c0b5c0bdc0b7c0f040100019d550000fc030401fc010000be06aa04aa05aa08aa08be070000a7550000fc030401fc010808f40bb40ab60ab40ad40b1c080000aa5500008408bc08ac0fbc088408fe098402bc04ac0abc0a8408ab550000fc030401fc0900083e053403c0033c0504097c090000ac5528002c009c0ffc00dc07dc05dc05dc05fc079a08a80f2000ae5500000004fe055a055a05fe0f50055e055a05fa050e040000b2550000fe030201fe01180ce702900050068e000808f8070000b3550000fc030401fc010008d40bac0aae0aac0ad40b14080000b555fe018200fe000000f00f92049704f20790049704f2070200b655000018000a077c055805de05580558057c050a0718000000b755fc030401fc010008d40b54085406560154045408d40b0008bb550000fc030401fc011800d80fb402f20f94011808c8071000c5550000fc030401fc0100087c055c055e035e03dc057c050009ce550000fc030401fc01000cfe00aa06aa00fe04aa01820f0000d3550000fc030401fc01000852057603860f9603520530050008da550000fc030401fc090004fc00d40ed600d405dc08c0070000dc550000fc030401fc01400034077e07d407dc07d407d4070000e155fc030401fc010004c802540aa20710005202740ae4070800e3550000dc0fd407d40fdc0f84015402d40b0408fc0700000000e455fc010401fc010004e0076c067806ee0768066806ec0f2008e6550000fc030401fc01000c5401f4095e071401940530080000e8550000fc030401fc00000e44009003cc02a80ba80ae8070002ef550000fc030401f8003e0162026a045a055a0442017e030002fd550000fc030401fc042402fe0f540174091006ce010806380800560000fc030401fc010000f40f1402f60554055c071408f40701560000fe018200fe0ef8018404f407140087047c03850674020656fc030401fc010008f40ad40ad606f403d406d60af40a000009560000820ebe02ee0aae0aaf06ae0cee0aae0abe0a820e00000e560000f8030801f00504057c05fc037c037c05fc057c070403175600000c00460fd60bf40bf60bf40bf40bf60bc50f9c0000001b560000fc030401fc08f8070401f40f26028401f40fa40004031f560000fc030401fc00800f7e055005880ffc070400fc03000031560000fc0184007c080007fc0eb401dc05fc07d401dc0f000032560000fc030401fc037c02ae0f7c02fe079200fe0f0000000034560000fc030401fc011004d803ee02f407f002ee02d407100036560000fc030401f800040dfe015401fe0dfc032400e20f220039560000fe038201fe01000cfa015609530f5601fa01320c00003b560000fc030401fc0100007c0fdc0b5e0b5c0bdc0b7c0f04013f56fc018400fc0000085e0556015205fe095a0152055e00000e41560000fc030401fc00200d5401dc07040bdc0b54097401000d62560000fc030401f8097c080c0564037601240344057c0900006856000040025c0f5409d4097c0f60004c0ff40974095c0f400269560408c40bfc0afc0b4408fc0f4408fc0bec0afc0b040800006a560000fc030401fc09c005bc05f403940ff40fbc03e005000874560000fc018400fc041004f407f402f602f402d406f407100887560000fc030409fc07e40b3f08e40f240de403ff0f2400a0038e560000fc030401fc0140083c06bc06be03bc0fbc03e4040000a35600008807ee05ae056e0758006e076e05ae056e0588070000b456000ee001bc04f407f407ec0fb801d4097406fc0560080000b7560000fc030401fc05000cfc0fec09fe01f407ec05fc090000bc560000fc030401fc010000f40ff205fa0c3201b908b5078000c25600000802fe07fe07fe07fe06f800fe06fe07fe0708050001c9560000fe0182007c01f706a5020703fd0f5705f50757050000ca560005b403fc0bfc07fc059e05fc01fc03fc05dc0794070000da560000fe0f02040205820442043a04c20402050204fe0f0000db560000fc0f0404c4053c04040404047c0484040404fc0f0000de560000fe0f0204f204920492049204f20402040204fe0f0000e0560000fe0f020422052205a2047a04a20422050204fe0f0000e2560000fe0702049204520452053205fa0512040204fe070000e3560000fe0702040a046a040a050a05fa040a040204fe070000e456fe0f0204520492049204fa059206920652060204fe0f0000ed560000fe0702042a05ea042a04ea052a052a050204fe070000f0560000fe0f0204a2056204fa056204a20422050204fe0f0000f1560000fc0f04044405240557059404740514050404fc0f0000f2560000fe0f02049204fa0592049204fa0592040204fe0f0000f3560000fe0f02065a074205ca04c20432050a050204fe0f0000f4560000fe0f0204aa04aa04fa05aa04aa048a050204fe0f0000fa560000fe0f02041204d20552057a055205d2050204fe0f0000fd560000fe0f02042a052a05fa052a056a052a050204fe0f0000fe560000ff0f010429052d0515059505ad0625060104ff0f000003570000fc070404f405f404fc04fc05f404f404f4050404fc070657fe070206de0656065605560556045e06c2060204fe07000008570000fe0702043e04fe053a06ba067a063a050204fe0700000b570000fe070204ea05aa054a047a058a056e060204fe0700000d570000fe070204fe057e057e05fe057e057a050204fe0700000f570000fe0702046a04ea05fa06ea06fa066a040204fe07000012570000fe0f020cea0d6a0b7a0b6a0b6a0bea0b020cfe0f000013570000fe0f0208c20bfa0bea0bea0bea0bfa0b0208fe0f000016570000fe070204fe07f607f607f6077e06e2070204fe0700001857fe0f0204fe04fe05fe04fe04fe06fe07fe040204fe0f00001f5700042004200420042004fe072004200420042004000400002357400844084c092c093409a40f340934094c0944084008000027570000000cfc03040844084408f40f44084408440804080000285708018800c80f38008e0888088808e80f88088808880800002d5700082409240924092409bf0f240924092409240920080000305700021002fe0110014000fc0720082008fe0910081009f804335700041002fe031001000cfe0300000000fc0700000000fe0f3a5700021002fe03100100012209f2042a02e609220ce00300003e5700041002fe03100a000484037c08840424073c05e0040008405710021002fe0110010008f00f00080008fe0f200820082008425700021002ff0190040006fe01320cd2021203920272040208475700021002fe01100130000c022a012809a808080cf80300004a5710021002fe011009000c0802f8014a0848084808c80708004e5700021002fe011001400834080a06e80108024804380800004f5700021002fe011001440144002400fc0f04002400c40080005057200890088e08b0088008fe0fa00890088e08900820080000515700021002fe011001000ce8032a002a00e807080808060000575700021001fe019000800808044803fe00c8014802780440085a5700083e08000900097e09460f2a0912092a092609400800005b5700021002fe01100100042406a40564042404a405240e00085d5700021002fe0110010008fe0902040202fa0102040204fe095e5710021002fe0310010002fc0284028602a60aa4089c0700005f5700021002fe0110018009080478048a038c02780408080804605700047e0502053e050205a00730050e051005200540040000615700021002fe031009000cf803c8097e064806c8095808000064571002fe0110010000fc0324012401ff0f24012401fc030000665780001001fe0090000004fe049204920492049204fe0400046a5700001002fe0310010200ba008200fe0f8200b2008a0000006f5700041002fe031002400944082408fc0b2408440884080000775700021002fe0310010400f4031401f4090408fc0704000000825700004002540af40b540a540afc0f540af20b520a40000000835700021002fe01100100042804c8050a040807e8040804000084578808880a680a180a4c0a480f780aac0aac0a880a480800008b5700004004ca043e040a057e050a0700051e0540057e04000492574008680948096c090a09080f68094c0948092809400800009b5700041004fe0310020008a0049e02c20f8201be02a004a008a25700021002fe011001000efc01940f540454045204d20f1000a35700021002fe0310090408f40b540a540a540a540af40b0408a65700000008fe0aaa0a2a0a2a0f6a0aaa0aaa0ade0a800a8008ab5724049405fe0514050005d40734051e0504057c0480044000ae5700041002fc0310028000a802b803ac0aa80a980aa806a800c25700021002fe0310090009fc07ac06ac05fc08ac08ac08fc00c35700041002fe031001400828092e05e8032c052c0920090000cb5700021002fe01100100087c0954095409fc0f540954097c09ce5700001002fe01000cf8032800280ac8097e0488076e080806d45700021002fe0110010000e80fa802a802fe0fa802aa0aea07df5700001002fe0110014000a802e80a08047e0288056a080c06e05700021002fe0110010002fc02b402b60fb402b402fc020002f75700009402d4029e0ff40210084806fe0108010800f807000cf95700011002fe0100012400a407b404a604a404bc04ac072400fa57000048014805fc047805780778057805fc04480548010000fc5700021001fe0110010000b407b402ae0b36083408f40f3400005800000801ff000006ff01050e75044504f5074504770700000258000038080a0aec0aa80aae0fa80aa80aec0a0a0a38080000055800047e055605760556055e0700054a0532053a0546044000065810021001fe0180003000fc0faa04a804fe07a804a804000015580008fe0a0a0a760a000a7c0f3e0a3c0abc0afc0a040800002158100010047e0500055e053a071a057a053a055e0550040000245810041004fe03100a8008be06aa04aa0faa0aaa0abe0a80082a5800001004fe031003040ffe09540b540b5409fe0d040900002f58000098099c097c055c030e015c015c077c095c0958050000305800021001fe011000fc0f0404fc067c077c05fc057c0440003158000054017401de0774010000fe0f6208b2043203ee0c0004345800020802fe0108004009fe056a036a056a036a097e070000355800021001fe011001d4005400de07740550055805d60710003a5800010801fe008009be04aa04ea033e002a00ea0fbe0100014158000840097e0b6a0b2a0a3e0f2a0aaa0a6a0b7e0b400900004a5800041002fe03100100017c085607d500fc075408540b7c0b4c5808010801ff0108014000df015505d50795015509df0f0000515800006808cc0a780a4c0a280f800a7c0a540a540afc080000545800021002fe011001440024072605540554052605240744005758da08020a8a0aa80a2c0aac0eaa0afa0a2c0aac0aa8080800585800020801ff0108010006fc011c065d05fa055c057c0714005a5800021002fe0190050605aa027a0a8a093a06ca00260700005e580000840ab40ab409f40ab40ab60ef40ab409b40a840a0000695800011001fe0110053804f607d407d404d407f404840700046b5800041002fe0310010008fc0bbc0abe02bc0afc0b040a000075580000000cfe07ea04fe056a056b077e05ea05ea05fa0400007e5844087c097c0bfe0b7c0a000f880a680a1e0af8080009c008835800020802ff0188080808fa055e035b015e0ffa0908040000855800087e0b6a0bfe0b6a0b7e0f100a920afa0a160a720800008a580000ac08ac0aee0bbc0a880fe80a3c0a480af8080009c008935800014405fc047e057c057c057c077c057e04fc0444050001975800021002fe0100017c00d70fd40afc0ad40ad70afc0f0000995800001003fe0190000400ec07e407fe06e4066c05e40700009c5800007e048a067606000656073c05b405f4051605640480009e5800001003ff0180003c00e60f74057c056405e70f3c000000a858000420047e053a057a053e077a053e053a057e0520040000a9581004fe0310037002da0adc0ff803000afe048803780c0000ae580000fe08020a7e0a000af60f3b0a7e0a7e0ade0a7e080808b35800021002fe0110010408d407dc07de03d403d407d40b1008c15840007e046a056a056a056e0734053c05760534053c050004c75800001001fe0100017c04cc07fc07fe07fc07cc077c040404ca5800001002fe010003f40ad40ef409de05f402d406f4080008d358000cfe03ca01fe06fe06be07c2071207fa06f206b4040001d55800001002fe0110004405bc06bc03be0bbc07bc01e4060004d858000470057e057e057e057e072e057e057e057e0570040000de5800001002fe0100005c02ac0e3c096e093c02ec06fc080000e25800001004fc030008fc070400f40e6408040ef40aa40a0000e45800001002fe0100057c04ec0dfe0bc601fc07ec05fc090401eb5820002004200420042004fe07200420042004200420000000ee58000218020001fe0f000020082008fe0f2008200820080000ef5880089e079000fe0f0000200820082008fe0f200820082008f0580000040cd40354015401de01540154015401d40304000000f2580008c4085408540654015e005400540754085408c4040000f3580008c40854085404d403de00d400d40754085408c4080004f6580000c408540a5408540f54085e08540f5408540ac4080000f95800003404bc057c057c057e057c057c07fc05dc0514040000fa5800006408340bb40af40e3e08f40eb40ab40a340b64080000fd589400dc06fc06fc06fc06fe00fc04fc02fc0adc0fd4028000045980086008de040803e80218040008fe0b2008400880080000075940005000480fac0ab60aa40fb40aac0acc0ac40f400040000959040a440a34098405a4069e04c406fc0684099408240800000d5900000808080a7609de075c055c055c055c0b7c09040800080f590008040a7c097c05fc077c057c057c077c097c09040800081559000040002008100848044e048a020801880068001800000016594000600850048e028801680010002000fe0f8000000100021a5900005008480944093405a60494064c024401c000400000001c5984004400f40f040044086604b403140394047404140800001f592000f0032c09e8090808f8070000a808960454024c01c00020590809a80476055402cc011000cc032a01e8090808f80700002259c4007c0a6c0a6e0bfc0b6c056c0576036c017c00c400000025590008fc04d402fc0fd402fc0010084809d606b4048c03800027591008100410021001d0003e00500090011002100410080000295940084408440444024403fc004401440244044408400800002a591008100410041003d0023e045008900110021004100800002b5940084804480448024801fe004801480248044804400800002d59000040084408440444044403fc00440344044204420840082e5900008008f80888048803fe00880188068804f808800800002f5980004808c808a8049803ce008808880898082807480088003159600870044e044802c8017e00c80148024804480440080000345940044808520454044402c0017e0040024002400440080000375900000408ec04ac04ac02fe01ac03ac04ac0abc0a84090000385900002800a800a802b803ac02a80aa80ab80aa806a80028003959000080088808a80888048803fe0088038804a804880880083a590000a800a800a80098068c008a089808980fa800a800a8003e5908098808680408040803fc00080388046808880808090000445948002800e807b802ac02ea07a80aa80ab80ae80b48080000475900003400b407b402b402ac02ae032c083408f4073400200048592804a80ca8029808ac08aa07a8009802a802a80c2800000049590000a000ac026c022c02bc02ae0fac022c026c02ac02a0004b5940004400e40f54054c05c6074c0554056405e40f440040004e59140454044c055c055605750754055c054c055405140400004f59900054085c057c055c03de015c035c057c055c095c08900051590000540954097e0954054003420322051e0942093e0900005459200124091405ac0324012601750124018c0f140124012001555924095409440924051c05060306017c05040514052409000856592009240910097e09000548034403260524091c09040900005759200024011405fc0774057605740574057c05140d240920005a5900098409ac056405b403aa016203520342054a0500090000605900000405fc05ee05ee05dc03dc03ee05ee05fc0504050000625928012a01aa00ae0fea0abb0aaa0aba0aa60aa60f2a002a006559000000097c090c056405760324034c0504057c0900090000675900097c0904056c056c052c037e012c032c038405fc050009685900002e0920097e0500052403920116039105fd05150910096a59000054013401fc03f407f601f405f405f403fc01940114016e5900001a009a0ffe0afe0afb0ffa0afa0afe0afa0f4a0000007359000010081009d00830091e0512021002900570041008100874598808f8040e03c8013808000c3404c403c4023c040008000076590808f80c0e03880370080407fc0004043c082408e007000078590000f8080e058803780c000044004400fc0f44004400400079590008f80c0e03880178060000fc071008fe090808f80800067d590008e80c1e0388037804000044084408f40f4c0044004000825900000808f8080e05e8031000fc0f040404040404fc0f000083590008f8080e05880378040000c407440844084408fc080006845980088408bc0aa40ba40aa604a404a407a408a408840800008659000018038000fe0f0000900870091e061003f0041008100887590808f8040e038801780000044404440444044404fc0f000088590008f80c0e03e802180470014401440964095c0cc003000092590008f80c0e03e803180cf00348004a004a004800f800000093590808f8048e02c801380200086804a8053e02a8056804080896590004fc040703c4023c00000c2202a2017e00a1012102200499590000e8089e06c801380200083c048004fe0200028c0130009e591008f0040e03880378000808e00f5c084408fc0f40080000a559000044085406c40764066c0244026205f2044a0440080000a8590800f8090e05880370040000080ff8004e084808c8070800ae590008f80c0f03f808000cfe031200d207920892085e080006b3590000d0083e051003f8040000d4030a08f80f0800d8010802b9590008f8080e0588037800000c48024801fe0f480148024804bb5914095c095c0b5c0bdc057e055c055c075c057c0914090000c6590008f8090c06f8050000fc0744045405540c440cfc074004c9590000e8081f07c8013806c00124002400fe0f2400e4030000ca590808f8080e07e80110067800440fc400fe0f4400c4070000cb590000e80d1e03880178020000b00fae04a004ac0430074000d0590000f8090e06e8031008fc0f240924092409fc0f00080000d1590000f80c0e03880378040000900f9004fe049004900f0000d3590000e8081e05c803380020089c089008fe0f900890080008d459a808ac08ac0b9c0acc06fc048c029a05aa04aa08a8080000da590008f8040e03f0080c098004fe030000fe0740089c088406dc59a008ac08ad0aae0bac06bc04ac06ae05ad04ac08a4080000e5591008f0041e03900378040001a8077e092809380928052400e8590008f80c8e0370040400ec0cac02fe01ac02ac04bc090008eb590000f40c8f02e4011800fe0f920492049e079204f2040004ec590008f8040f03e8011000fe070204f2049e079204f2040204fb590000f80c0f03e8011002fe0f0205e204ba050204fe0f0000ff590000a208940ad40bc006a60494048c069405a408ac080000015a000ef8010804d8057802d8030808fe040803ca042a080006035a0008f8080e07f804000024092409be0f2409240920090000045ac808c808ae0a980bd806fe0498069c05aa04ea08c8080000075a0008f8040e03c80138065000340f1c001400320f52008000185a0008f8040e03f8060000fc0f54045604d4015403bc0480041b5a0000f00d1e03f800040870095c07e40164037c05c00900091c5a0000f80c8e0378080206fe019208fe07fc0f0200fe0300001f5a0808f8080e05e8031800c00fbc02b402b40ab40afc0f0000255a0008f80c0e03f802000a9408fc0f1204fe02900556080006295a0008f8080e05c8033808f80894049603f40f9c08f0080004315a0808f8080c05880370080c095407d401540354055c090009345a0000f80c0e03f800f20f0400a001fa07a2000208fe070000365a8008c208fe0ada0bfe06a206c806b4059404ac08a4080000465a48086a090a0b600b1c054c055c052e052c075c0944090000495a0000f80c0e03f80000084c0c34034600f4071408f40900045a5a0000e8049e02c8013000be076a056a054e059a0729002800665a0000e8089c06c80130068403bc00fc0fbc00bc04a0030000745a40005e094209320b8e0500055e05420732094e0900010000765a0804f8048f0378020000f4035401f60754015401f4010000775a0000f0088f077c0c80057c006c096e0f6c017c00c40100007f5a0000f00c0e03fc040800a20fda00de026a0b6a0aea0f2200925a0004f8040e03f80200008406be01ec07ac01be02840400009a5a0008f8088e0778000007fe00ca0fae0aaa0aaa0aee0f00009b5ac808be0488037008040e5c01f405dc06d206da0552080000b35a0000f0091c06f001000cfc015409560355015405fc0d0000bd5a0000f0088f057c02000cfe00aa0eaa00fe04aa01820f0000c15ac808be048803780200005405b4027609b407d40054034004c25a0000f80c0e03f802000abc08ac07fe04a006ac05bc080000c95ae8081c05ca033002880cfc0304089506f601940694080000cc5ac8093e058803780800085c05f80f5801f80f5c03f8054808e15a0000f8080e05e8031800e00f1c02f60554051c02f40f0000e35a0000f0088f057c020008fa01a209be03aa0baa09a2070000e95a0000f80c0e03f0042402fe0fde0f6401700c8e0378040008095b0000f8080e07f00404007c0fdc0b5e0b5c0bdc0b7c0f04010c5b0000f8048f037c020000960ffe03d605d607fd00950f2400505b000040004400440044084408e40754004c004c0044004000545b800084088408f40f4c0044000000fc070008000800080006555b4001420132012e092209a2076a012e016801480138010000575b00008c00840094089408d607b400b400940084008c000000585b00018800c80f38000c0128092809a8076801280108010000595b80008408e4075c0044000001f0080008fe0f0000700080015c5b000042084208f20f4a00260830046f048803c802380408085d5b000090005401540154097e095407d4015c015401120110015f5b000000001004900792049207ba0496079204900700040000635b900254025402b40a940abc079403b2025202520290020000645b80008408f4074c00000ffc00040efc050406fc080203000c665b000038010a012c0128092a09ac07680128010e0138010000695b84088408f40f4c0000082805b8046a022c038804480800006b5b84004408f40f4c00c4049402ec00a40f9400d20404050000755b0000fc0b7407f000fc0ffc0108002409aa0f62012a010000785b0000e0023c02bc02bc0ab00ab606a003bc023c02e00200007d5b0200fa02be02bf02ba0ae00ab00eb703f602b60236020000815b00005800480048084808ca07480048004800480058000000835b000018000800e80788088a088e0848082808080818060000855b00000c0124012401a400e60794089408940884089c060000875b00009c00840094089408f60794009400940084009c000000885b00002c00a4002403240026082408f40f240024002c000000895b00002c082405e405340526022403a4026404240c2c0400008b5b00085c0c44044403c400f60fc4004401440244045c0800048c5b00009c08840894049403950096009407940884089c0880048f5b00002c042403e4083408e607640424042405240624080800975b00009c04840294029408960f94009400940284029c040000985b00001c000400f4075405560554055405740504071c000000995b00000600f20f92049204fb07920492049204f20f060000009a5b00081c0c840334023404f60fb408b408b40884081c0800009b5b80008c0844043403a4014600e407240824092409ec0400009c5b00001c040404f4075405550556055405f40704041c0400009d5b00000c08b408b408b408f70fb408b40ab40ab40a1c0800009e5b000018094809080928050a03ec01080308050805180900009f5b00000c095c095c055c03fe015c035c055c055c091c090000a05b00082c0c2402e40134042602ec072c09a408a4082c040000a15b00000c00e40354015401f607540154015401e4030c000000a25b80022c012401a40fb40956095409b409940f84010c018000a35b00001c080408d40f540d560d540d540dd40f04081c080000a45b00000c08840a940af40ad60f540a740a740ac40a8c080000a65b00000c00f40f540954095609740f54095409d4091c080000aa5b0000cc08c408b404a403a600f600a407a408a4088c080006ab5b00001c00040774055405560554055405740504071c000000ae5b00001c00040774055405d60554055405740504071c000000b05b00008c008402d4029402960f9402d402940284028c000000b35b00001c01440f540b540bf60b540b540b540b440f1c010001b45b00000c090409740b740df60574057407740904090c090000b55b00000c08ec072c00a402b602a402a40a3409e40f0c000000b65b00005c0544055c03bc0a5e099c079c005c0144021c040004b95b00002c022401940f4409260924094409940f24010c020000bd5b00000c08dc0b5c087c045e035c047c085c08dc0b1c080006be5b00000c090405f40554054e014c01cc054c0544050c090000bf5b80004c00e40714000400d6075405740554055405d4070000c25b00004c034408f40f5400460b140874049403d40434080008c45b00008c00c407d405b405b605b407d400d408c40f8c000000c55b00080c08e40bb406b406f603b402b406b406e40b0c080000c65b00000c01a4078404e4044e07a40494044404140f64000000c75b40085404d4035400d40756080408740b540bd40854080004cc5b00000c008407fc05dc05de07dc05dc05fc0584070c000000d25b00008c04bc02bc01fc04be08bc0afc08bc09bc028c040000d35b0000840ff400f402f402f603f402f402f406f40484070000db5b00080c08c40bd40bf407d603d403f407d40bc40b0c080000dd5b00002c010401fc03c4097e087c0b7c057c057c0bcc090008de5b00000c0ae40af40af406f603f402f406f40ae40a0c0a0000df5b00004c096405b401f409860f9401a403d40334059c080000e15b00008c008405fc05fc03fc03fe01fc05fc07fc018c028000e25b00096c074401f40f0400f609f40bf405f407f408ac090000e55b00015c095c09bc0a9c0b7e074406bc047c057c010c010000e65b00001408d407fc07fc03fe03fc03fc07fc07dc0714080000e75b00000c01c4035403d40b6a0bec0f64034403d4030c030000e85b8004b402b40ab40bf402b60eb402f40ab40bb40a84020000e95b00014c01640ff40b540b760f540b540bf40b540f44010001eb5b00000401f404f402f400e602c401f400f405f40484030000ec5b00080c08c40bd407d407d603c403d407d40bc40f0c080000ee5b00008c084408d403f40ad60ed402f402d40b44088c080000f55b00005408f407d401f40ad4070600f407740b740b740e0004f65b00041608d607de07d603c703ee03ee03fe07ee072e080000f85b00000800280068008801080808080808ff07080008000800f95b0008240c440284017c020002d00010091008ff0710000000fa5ba000a800a800a806a804bc00a808a808e807a800a800a000fb5b0000000144015403540354015409540954077c0100010001fc5b000000013c015403540554015409540954075c0140010001fe5b0008280c48028e01680608045000d0011008fe0f10000000ff5b4004440554035401f4055e0154095409d407540144010000015c0000a404a404bf07a404a4040000d0091008fe0710000000025c000002017e01560556017f0956095609d6077e0102010000045c8004fe04aa02ab09aa08fe0f0800e8040804ff0308000000065c000008019000fe0f00008402b402b6089408cc0f84000000075c80089e079000fe0f0000d800c406ae049608cc0f84008000085c00028402bc02bc06bc06fe02bc0abc0afc07bc0284020002095c000ffe000a02aa08aa0faa00860210089008fe07100000000a5c00000402f4039607bc079403bc0bd40bd60ff403040200000b5c000020033403fc02bc061c02fc0abc0abc07bc02e00200020d5c140458056e05d0076e0554051400d0091008fe07100000000e5c9002960270028406fc06fe02fc0afc0afc07fe02840200020f5c00000001e000100000080008fe0700000000100060008003115c40082008180800080004fe04000200028801900020000000145c000020021001cc000a080808f80f08004800c80018010802165ca008b0088c0880048003de008003840484049808a0080000185c0000200810090c0900090009be0f000904090c09100920081a5c00000000e40f2800a007bc02a002a002a0032808e40700001d5c00009804ba0cbc0bb808be04b804b804bc06aa0498080000245c0008100810041002d0013e009007120814081408100600002c5c0008e8071e00f8070808080ae80904080608e80b08080004315c080478035808dc075800b8090004f0031e00d0071c081806345c0000e80f1e00f807000c9c0fb80f900c8c0fa80ca80f080c385c0008000cfc032400240024002400240024003c0000000000395c00001008940494049403fc00940094009400fc01100000003a5c00080006fe012200220022006200a20122023e04000800003b5c0000000cfc0314089406f40194009400940714081c0800063c5c0000000efe011200d20392049204920452045e04000300003d5c000280017e001202520492049204320852089e00000300003e5c0000000cfe031200d202d202d207b20ab20ab2099e0500003f5c0000000efe01120452039208d20f9200920152025e040004405c0000000efc015400540754055405540754085c08c0070000415c0000e00f1e00d20f920892041200d207120992085e080004425c00000006fe010a00aa04aa07aa04aa04aa04aa06ae0c8000455c0000800f7c00540f54095409f40954095409540f5c000000465c0000f00f0e00ea0f0a084a0a4a0aea0b4a0a0a08ee0f0000485c0000000ffe000a0eea088a088a08ea0f8a08ea080e0e0000495c0000000cfc031400d40f9408d40b940a940ad40b9c0800004a5c0000e0071c00d40754055405d407540554055405dc0700004b5c0000000cfc031408d40ad40ad40fd40ad40ad40a5c0a00084d5c0000800f7c00140bd406d4025401d407540954095c0900044e5c0000000efe01120cb2029200d20f9200d202d2029e0480084f5c0000000efe010a083a05fa032a012a01fa0f3a012e010001515c0000000cfc031400940fd403f4039403940bb40f1c000000555c0000000efe010a08aa07ea04aa04aa01ea02aa05ae0580085e5c000efc011400f40ff405f405f407f405f405d4091c0f0000605c0000000cfc031404540f540ff40f540fd40f540f5c010001615c0000000efe010a08ea0b4a0dea054a054a07da05ce09c009645c0000000cfc031400f407f407f407f407f407f407fc000000655c00008006fe01ca073a002a0afa06fa07fa05fa07fe0500046c5c0000000efe0116087e0bf60bee07e607fe07fe08e60700006f5c00000800e80108010801fe07080908090809e80908080004715c0000f00f000400040004fe070004000400040004f00f0000795c0000f803fe030002f803000018062e09a8086808280808067f5c0000f003fe010002f0030000740148014809480cc8030000815c000000088e098808680858074f0448024801c8004e000000825c00000c002807280928092e09280928092809e8090c040000905c0000f807fe030002f80b0008e80828053e062805e8080808915c40004c002801280158015e015801280d280348014c004000945c0000080044074a0438048a070a044a043204040708000000965c0000f003fe03f0030000fc0f0408340bc4083409040a0000975c0000ec0f2800a802a8022e012801e802680a2808ec0f00009a5c0000000cfc031800d8061e01980158061800f8070c0800069b5c000000077c044404540756044404540f54084c08c0070000a15c0000fc0f0400ac0724022402e40324022402ac0b0408fc07a95c20022e01a800e807a804ae04a804a804a804a804ae072000ad5c0000fc03fe030002fc0310004800440253024405c8001000b15c100008007c0702040804ce07180428044a044a0f28000000b35c400040007c0f54045404d407540452047204500f40000000b85c000ce0032c00a802a802a802ae0fa802a802a802ac022002e15c0000f003fe030002f805000cb8048803fe018802a8048808e65c00002400340704043c04860704047c040404940f24000000e85c0000f003fe030002f8030208fe0f1000fe069005560c0000ea5c0000f8030002fe030002f807c000a60f9208b008c60f8800ed5cf8030002fe030002f8030000ee0fa002be02a00aec070000f05c0000f807ff070004fc07000024055705da0f560552051004f65c0000000efc045c055c075e055c055c055c015c0940070000fb5c0000f803fe03f803000028058c05ca0288022e0568040000035d0000f003fe03f00300005403c400fe07c400540144020000075d00097c051801580958095c0f58015801580518057c0900000e5df8070002fe030002f8030000b403ac02ae0b3408f4072000145d40002c00e80f580558055e05f8075805580558055c050004165d000cfe030c08ac0aac0aae0aec0eac0aac0aac0aae0a0808175d00000000f60f140054067606d607740674061408f6070000295d00000c0cec03a809e80f0e000808e807a802a80aec0700002d5d08016b015a01ca074a014b01020cfa034a00c60f470000004a5d0000f003fc03f0030c00ec060c01fc0f0c016c02aa0400044b5dfc030002fe030002f005fe03ca0faa0aae0aaa0aee0f00004c5d2000ec0f28052805e80f0e00c80c2802a8012806ac086000505d0000e60f1c00dc095c09fe0f5c0d5c0d8c08fc0706080006695d1000960ff400f400f407f405f605f405f407f408960f10008b5d00000000f007fe03f009fc045c0d5e035c0b5c0940070000ba5d20009300aa02aa04b2070700fe05ae05ae01ae05ff050008cd5d20097c0b78057805780b0e00f804d803f803dc06d006f002dd5d0008000cfc03000000000000f807000000000000fc0f0000de5d000070080006fe0120000000fe07000070000000fe0f0000e15d00084408c8070004f808040b70088c09200ad808040b0008e25d00000005fb05a803aa03fd0fa801aa03ae05fd0500050000e35d00000009fe05a805aa03fc0fa801a803ac05fa0500090000e55d00040404040404040404fc07040404040404040400040000e65d0000080c0803c8087c084a084808c80f4808480848080808e75d04020402fc030401000104007c0444084408440cc4030000e85d00000000fe0f920492049204920492049204f20502040000e95d04020402fc0104090004fc03040074000400fc0f00080006eb5d00058404740484040404fc07040584047404840404050000ee5d8008a804aa03ae08a809f809a80fae09aa09a80980080000f15d00000000e4072408240824082408240824087c0800070001f25d00000400f407440844084408440844084408fc0800060002f45d00000000fc07440844087c08440844084408fc0800060000f75d000020012801e807be0aa80aa80abe0ae80ba80820050001fb5d00002001aa00ec06b80aae0ab80a280b6e08a80420010000fe5d0000f8030800080008000800fe0f080008020802f8030000015e00000400e40324002400fc0f240024022402e20302000000025e00000800e80328002800fe0f280028022802e80308000000035e000088018800e8075c004a00e80f480048044804c8070800055e0000fc080006fe010000f80308000800fe0f08000802f801065e0000f8010800fe0f0800f00dfe0322000200fe0f00080007085e0000f8080006fe010000f40314001400fc0f14001402f4010c5e000028012a01aa07ec00b400a40fac00aa04aa0720000000105e0000fc00ff0f0400fc010008ff0720046800a60321042004155e0000f8030800fe0f0800f803f00f88048e048804f80f0000165e0000f8030800fe0f0800f803800f40047e044804c80f0800185e00000c00c40754004c004e00e60f44005404c4070c0000001a5e6000ae07ae01ae01ae01ae0fae01ae05ae052e03600000001c5ef8030800fe0f0800f80300087c064401440044037c0c00001d5e0000e400a407bc00a400e60fa400b404ac04a40764000000255e0000f80fac04aa04b8070000f8030800fe0f0800f8030000265e00006400a407ae00a400ee0fee0fa400a4042e07640004002b5e0000f80fae04a904b8070200f2031200fe0f1200f20300002d5e0006fc010400140774015401d607540174051405140714002e5e0000d400d4067e015401540f00017e0102055e03620000002f5e0000e40024073e013401fe0f340134053e052406e4000000305e0000f8080006fc014000bc07bc00fc0fbc003c0760000000335e0000f800fe0f0800f8010008fe075604d600560356054009365e0000f400b407ae00be00f40fb400be04a404ae0754001400385e000018000a077c0158015801de0758017a050a07180000003d5e0000f8010800fe0f0800f0019e0fc20aca0ac20ade0f0000455ef8010800fe0f0800f801000fbc0aac0fac0aac0abc0f04004c5e0000fc010400ff0f0401f805ef029501f5009507af040002545e0000fc00ff0ffc011004af04bf05af02bf02af05bf040004555e00024401fc077e017c01fc077c017e05fc057c0344010001615e0000f8010800fe0ff80040003c0f940abc0fb20a5a0f4000625ef8010800fe0f0800f8010004f406f406f607fc06f4061004635e00007a0038077e013801ba0f10014e0534055c06c40000006b5e28003c0efc03fe03fc03e80fc003d403e40bde0b040e0000725e40004400440044004400fc0f440044004400440040000000735e80008400b40084008400fc0f84008400b400840080000000745e000030010801e60125012401fc0f24012401240124010000765e800888088906fa018800880088008800fe0f890088008000785e90009402b402d40294029e0f9402d402b402940290000000795e0000fc02ac02ae0fac02fc021000ac00e20fa400880030007b5e00003006ac0562043005100e040004080408040cfc0300007c5e08043006ce034102380b00040803ff0008080808f80700007d5e0000fc072005bc05f005ee06fe071004ec050004fc0f00007e5e0000ae08b904a403800a9e08e0058e06f806b408a00c00007f5e0000000cf8030800080008000e0008000800080008000800815e000cfc0304002400240024082608e4072400240024002400835e0000000ef80108040806c8052c0408048804080508060808845e0000000cfc03040844084508f60f44084408440804080000865e000cfc030408440844044503e60054014406440444080000875e000cfc030400f40f440845040600f40784084408240824068a5e0006fc01040424022401a500f60f6400a4012402240600008f5e000cfc03040094009408d608d407b400b402940184000000905e000cfc0304080404f403340136012c012c01e40104000000935e000cfc0304009402f4029e029e02d40f9402940294020000945e000efc010404740484051504e60404068405740404040000955e000cfc0304000408f40f94049600f40c9401940694080406975e000cfc030400040f04090409f60924092409240f24000000995e0000000cfc030400e40f24092609f40f24092409e40f00009a5e0006fc010404ac04ac04ae02fe01ac01ac02ac04fc0424049c5e000cfc0384004400f40f0400a60024092408f40f240000009e5e000cfc03040824062401f4042604ec072c09a408a40804069f5e000efc01040434022409e605b606a406a405b40424080000a65e0006fc01040494049404f405d602d402f405940414040000a75e000cfc030408440934094409f60f44093409240944080000ab5e000cf8030800e803e803e803ec07e803e803e80328020000ad5e000cfc03040854077406d4050608540af40b540a540a0000b55e000cfc0304005400f407d602d407d40ad40af40b54085404b65e000efc01040424072400f40ea600a40ef4002402240c0000b75e0006fe010204aa02aa0baa08fb07aa02aa06fa0522090000b85e000efc010400f40ff403f403f60ff403f40bf40ba40f0400c15e000cfc030408fc07ac06ac02fe0b0400f40b0408f4070000c35e000cfc0304084c05fc034e014401dc076c09640914050000c95e000cfc03040874057403f40f7601f40f7403f40554080000ca5e000cfc030408f40fb408b406f60c0400fc0f0c00fc070000d35e000cfc030400f40bbc0bbc0ff6030400fc0f0c04fc030000d65e0004fe03820096088e066607bf0662056e0546029e008200df5e0007fc000402f403b403b407b603f6070406fc01ac04fc03e05e000cfc030c00e40fbc02a60bee0f4408f4052403e40c0000e25e000cfc0344002c0bac0a7e0444036c05f407b40914000000e35e0006fe010208ea05fa05fb05fb01fa01fa03ea03ea052204f35e0000800f7c00040b7c0ffe0f2404740d7409740374050000f65e0408b404ac0364040005f40904090409fc09240922092009f75e84083407ac054408000a240a240afc0b240a220a200a0000fa5e0208720c2e03e2040805aa09aa09ff0baa09aa09be090809ff5e000010001000fe0f1004100410041004fe0f100010000000005f400844084406fc014400440044004400fc0f440044004000015f900890089004cc038b00880088008a00ea0f8c0088009000025f000000091e05aa032a012a012a012a01aa0f2e0120010001035f040924092405b4032c01260124012c01bc0f240144010401045f400954095405540354017c0154015401540f5401540140010a5f00097a0938053e0378017a0110012c01b60f34014c0104010f5f080848044804c8074804480408027e0088030a040a080806135f00000000f2009200920092009208920892089e0780000000155f0000c400a408a408a408bc07000000000000fc0f00000000175f00008808e808a806fc01a800a800fc0fa800a804b8030000185f0001e408a408a408bc0700000007f80404048004000700081b5ff20892081e074000fc0720081008ff0910080809f80800061f5f00000004c804aa02ac02a801f80fa800ac04aa04b8030000205f0000f20892089e0700004008fe0f4004d004480146064008255f0401e408a408bc08a0071003cc080808f80f0800c8000803265f0000f20892089e07000048046806da054c042807080c0000275f0000f20892089e07000efe01020efe050206fe080103000c2f5f00000202aa03a202ae02a302a202ae0aa20aee0a02060000315f0004b402540254085c08c0070000f40a540a5408dc070000355f0001e400a408a4081c074000fe075604d600560356054009375f0000e408a408bc070000c8094e09f80748054c05d8051008395f0000f20892089e070000f0035603f00f58035403f00300023a5f0000f408940894071c00c8095409f40754055407dc0700083e5f0000e408a408bc070000fc02b002f60fb002b802f4020000485f000079044904cf030200fd02af02f80faf02ad02ff0200024c5f0000f20892089e070000fa0fd202fe0fd2041203fa0f10004e5f28009e02d403a003ec03fe03fc0be00bfe0b580f34026000525f0000fc080004fe03000044044404440444044404fc0f0000535f000022042c05200520053e05200520052805e60f00000000555f4004540554055402540ad407540154025403fc04c0044004625f2004220efe0122002200fe07220008044404220211019000645f0000400cfe0352004208fe0f40000808c404220210010000655f000ce4032408bc0abc0aae0a6c093c05a404a40224020000665f00000006f20116085a055305b204be021202120110010000695f4c045c024401ea0fc2005a030008880444022202120100006a5f0008f0071000de0fd40194073408000a500a480a240900046b5f000ffc005407fc02d40a5409fc070000980c4402240100006c5f80014800ff0f2800c000ff0f2800880c48042603920000006d5f0408f404b405be04b404b406f4040000580c480226039000705f1002f402fc02f402f60ffc02f4021008580444022201a000715f2004fc027c097c0f7c017c05fc010008d004280424039000775f88004800e40f1200000c0802f8014a0848084808c8070800795fc8004400f20f09004008de04420542024206fe05600818087b5f0000c800e40f02002000fc01100c0403fc080408fc0700007c5f90004800e40f0204f80bc80848097e064806e809780800007f5f90004800e40f0200e808a806fe01a800fe0fa804b8030000805f88004c00e20f1a00800888088908fa0f8808880888080000815f88004800e40f12000008e40f0408fc0f4408440804080000845f90004800e60f10008408a408a408940fac08a408a0080000855f90004800e40f0200a800a806a800bc08a808e807a800a000885f90004800e60f11000008fe0f5208d20152067e05000900008a5f80004400f40f0000fc0f0404f4051405f4050404fc0f00008b5f48002400f20f0200a802ac02ac02fe0fac02ac02bc0208028c5fc8002400f20f0900200b2409fa06a804a406b20520084008905f88004800e40f0200a0069000a808e60fa800b002a0040000915f88004400f30f00003a0942091209ea0f82093e0946090000925f88004400f30f0900200ca4032404ff0f2409240924090000935f88004800e40f1200000cd6031804f00f9808960890080000975f90004800e60f120040017e056a016a096a09ea0f7e014001985f88004800e40f020028092805fe030000fe0f280128010000995f50004800e40f0200200ebc032004fe0fa808a808a80800009e5f88004800e40f0200200c9c030204e00f1c09120920090000a15f00004400f20f1800ac072604fc070400f80f0400fc030000a95f28002400f2070a000805be04fe05bc02bc02bc05bc040404aa5f20002400f30f0000fe070a00ea0f6a057e056a05e9070800ae5f40002300f8070600e8076f00e80324097a04c5033c0c0000b35f48004400f20f0000f40e9400f40e9e08f4099408f402000cb45f80004600f00f0c005005de0750054808f4048a0778080000b55f00004e00e00f3c00b005be03300d3c0470048e03f802080cb75f88004400f30f00027a006a02fa04ef057a046a027a000203b95f00006600f00f1400fc0fb602f40f2008f6048803780c0000bd5f0000c700f00fa603e809ef07680326097c06880378040008c35f00000003e0000000f0070408080810080006600080030000c55f0000800560040002f20784084808200810080806e4000001c65f78000000fe0f1000040684094408240814080c0804070000cc5f0000000f3400540754085408540b540854085c03400c0000cd5f0008540f5400440624089c09040a440844083c0300040000d75f08042807280028072808be082809280828062800080f0000d85f040404033c0024072408a608240924082406240004070000d95f38000000fe0f080000000800f80709040a04080408040804dc5f000cfc03040084070400d4071608140814084406c4000407e05f0000000c78024800480efc08480b48084808780200040004e75f78000000fe0f1000000c1003fe001000d00f160810061000eb5f38000000fe0f0000500840044803fe004801480278044008f15f78000000fe0f1000380808040803fe00c807080838080006f55f0000080c2803280024072a082a09220864042801080e1004fb5f78000000fe0f1000000cfc0324002400e20f220022000000fd5f00045007480026071c08c40a340a8c08840444003c030004ff5f100c88028c00520630081209120a920864080803100c0008006070000000fe0f0000940144002400fc0f040064008401000101608808880e48004807280858090e09380a48088802880c00000e602008300e080006060408fc09540a540a54085403040c000012600000440c5c03260034074c08000b4c08740664005c0e8008146070000000fe0f10000408e40f0408fc0f4408440844080000156078000000fe0f10000000f80f88048e048a048804f80f0000166000001000fe0f08004000e80338002e00e80f28002802e8011c6038000000ff0f00001800480044027302640dc800500010001d600000000f7c00540754087c09540b540854047c0100060000206000080806e800ac06aa08aa0aa80aaa0aac08e802080c0000216078000000fe0f10002000b00fac04a204a8049007200000002560000010088806ac00ab04aa09aa0aae08a804f800000e0008266078000000ff0f0000900082009200fe0f8200b2008a000000276078000000ff0f080030088e088808fe0f88088808080800002860900c8802460064071c0800097c0a8408940494005c0600002a6078000000fe0f0800420926092a09920f2a092609400900002f6040003000fe0f100040084806c8057e0448054806480800003b600004000378004a074c08480948094c094a08780300040000436070000000fc0f10008000a806a800bc08a808a807a8008800466078000000fe0f1800000bec08540b5408140ef409040800004b600400240c940244003c070609840afc0804083403440c00084d6078000000ff0f080022082c06e0013f00e00728082608000650600000440824073c00640760081e090a0902083e0340042004526020001800ff0f04000004fd052505250525052505fd0501045560840894066e0025073c08440900097c09440844037c040000626070000000fe0f1000c80728009e080806e8030804c8090000646078000000fe0f1000f80f0808f80f0e08f80f0808f80f000865600202fe0352025202fe0f0200c000f20704082808c0060000686078000000ff0f10000000fe0f5208d20152067e050009000069600000000efc00d406d408b409bc09b40a8408fc02000400006c6070000000fe0f00003000840fa404fc04a404a404a20720006d600000a000a402640a3e08a40f24003e0264006403a00400016f600008000efe00aa06aa08ab09ab0aaa08aa04fe0000060000706020003000fe0f10004000300fa804a604a404a80f1000200073600000000cfe02aa00aa06aa086a09aa0aaa089e00400d000175600000020cfa02aa00aa0cff09aa0aaa08aa04fa00020e0000766040084a075a0042077e084209420a7e0842085a034a0440007c6020003000fe0f1000c00708044a05cc0428050804e80f000084603c000000fe0f08000000f207540150015e015005f6070000856078000000fe0f10000008fc0492039000920fe4080808100489600000900c94025400b406fc09140a32085a095a03500400008d6078000000fe07080000017e016a01ea076a016a017e010000946070000000fc0f3000b000f003ac02e803a80aa806e80388029f6038000000ff0708002800aa07ba04ae04aa04ba04a2070000a0601000080f7e0000077c0818095e09240954084c03440c0000a3600008e004bc02b400b405fe09b40ab408b404bc00e00e0008a66038000000fe0f080000087806ce014800cc0f4a0879080006a8601008080efc0002064808260a840af408040824034c0c0000a96038000000fe0f00001000ce0f10044605e0040804e60f0000aa600409740554015401fc055409540bfc0954095401740d0409ac602006a000bc00fc00bc02bc04bc05bc04fc02bc00a0062004af6078000000fe0f0800f20f04005003da00320b0208fe070000b26040085406d40254003e060009000b7e0954045401540e4008b46038000000fe0f0800400134010401860f3401240144010000b6600000fe0f2a002a033e0680083e082a012a0b2a08fe070000b86078000000fe0f10000802ac029c0abc0f9c02aa022a020000bc601000ff0f08000000f802a802a802ae0fac02ac02fc020002c5603c000000fe0f0800fc0fbc02bc02be02bc0abc0afc0f0000ca6040003000fe0f10000404f4029408960f94009402f4020404cb6078000000ff0f1800c4083404a4034600f4071408f4090004d160800cf402d400d406f4088409860a7c08c5043601040dc400d56040003000ff0f08000009be04ea03aa04aa03aa08be070000d8603c000000fe0f0800fe070200d60072015a050204fe030000dc6038000000ff0708001000d4075e05540554055e05d4070000df6078000000fe0f08002000fc0faa04a804fe07a804a8040004e06000008406bc00bc02bc04fe05bc04bc04fc04bc0084060000e160840cbc02ac00ec048409840aec0aac08ac08bc0284040000e66000003000fe0f0800800f7c00040f0509f6092409240f0400e7603c000000fe0f08000009fe05560556015605fe0500090000e86078000000fe0f08005008580abc0a5a0518059c0228025000e9602008240ef2000a068008f40a840afc0894049400940e0000eb6008000c0cfc015a015f05f609560d5e095a05fa01080c0800ed6000003000fe0f100064025e02e40f0000fc072200e20f2200ef6078000000fe0f08000008dc095a045e035a08da0b0e080800f0603c000000fe0704001000cc07e601ec01fc05ec05ec072400f16038000000fe0f08000000de0fc0066e05d0064404da0f0000f3600000c80e2800fe062808000afc09540954095403fc070004f66078000000fe0f08008008fc0ad40ad60fd40ad40afc0a0000f960840894045400f6055409540b540b54095605d401140c0000016100004c0e2c00fc062a088209480a60081e042000480e880008611000080ce801e805ec09ea080a0a6c080c01e40508080800096178000000fe0f3800f00fb802f40f1200d6031808c80710000f610008080cfa015e015a055b095a0b5a0b5e09fa010a040000156140003000fe0f10008600aa03ae0aa00aae0aaa068e0000001a610008e0063c00bc06bc08bc09fc0abc0abc083c01e00d00001b610000940a540a1c0ad40b9c05b405120b5a091408300800001f6180087e060200ea06aa08aa0a420a1f09e3041b010a05c200236178000000fe0f10004c085404dc0354015c0954095c0740002461200078000000fe0f80095404540456035400d40514081000276100001000fe0f080000087c065401fe075608540b7c0b00043f6180077c0004075c003c02bc047c053c04bc04bc020400000348610404b402ed00a6069408040ab40aee08a5049400840600004b610808f805770474007605f009ee0a540954051201880c00084c6140003000fe0f0000140874075600540f5400560f540414004e6178000000fe0f1800000afc075c075e035c0bfc0b040a0000556140014401fc007c017e047c077c017e00fc027c0144010001586140003000fe0f0800700b6c0bda0a2405560554029402000062613c000000ff070400f004de04fe05de02fe02de05fe040004636178000000fe0f08000008fe07fa06fe02fa02fa06ee070808676100001c06fc00fe02fc04e005fc04fc04de02fc001c060000686178000000fe0f1000fc0754027c0920064401fc0f440840066e61000ef801080cd801d809de09fc0bfc09fc05ec01280c00007061c0083c066c023c00fc0c7c0a000a68080805fc01080c00087661000cfc036c0dec0a7c0b6c076e077c07ec0b6c0afc084008776180006000fc0f3808fc07440a5505fe0f54055405f40944087e610000620efa00a80672080209180ac608340444009c06000082610000620a7e0b3e0b3e05be05be053e073e09be08220800088b610008fa0e3800fe0618087a09180a470854043c00c40600008e6138000000ff0f04003c00e50f6e057c056c05e70f3c000000906140003000fe0f0800200bea068801be008803da0f8a020000916184046402080080003c037c073c06bc047c01bc02e4070000946178000000fe0f0800000cfc015a01580dfe0158095801080da46120001000fe0f1800f00bdc06f406f602f402dc06f4071008a8618808fa06ba00be06fa08800a880a560864085c0284040000b26100002c08e4057c01fc077a0bfc0d7c097c05e4012c040008b66120001800fe0708001006f400fc07f605f406fc00f4061004be6178000000fe0f1804f0005806b808c80a3e09c8042e018004c2617800fc0f10002004f407f407f607f407f407f607f4072404c76100009208aa066e005a05e408fe0a9a08ba085a02ae0c2009c86140003000fe0f1000f803f6075c01b2067e01e2074e010000c961000efc01240cf4020400fe05fc09fc08fc02f406f4080000ca6120003000fe0f18007c090c056403760324054c057c090000d06178000000fe0f1000e40ad406f405de01f402d406f4080000d26100003000fe0f0800f006fe0f94017008fa0f9c07f4090008e66140003000fe0f0800520f7a01ca0f5e015a0f6a016a0f0000f261000033047c0306005405f708d60a10089e08e402bc040409f66178000000fe0f1000f802fc0f98027c08dc036405ec0b0008f76178000000fe0f10005c04ac0e3c0a6e033c04ac065c0a0000f8610004fc065e00de065e08de0a8c0a2c08f4052200a20e0008fc6120003000fe0f90013c07fc079c07c007bc07bc07bc070000ff6100007409dc0dde095c0d70042402ac0c6609440084060c000062c8081c0e9a005002c404be05600408052e04b80154072000086210001008100410041e02f0021203920454085008080600000f62000014042402c4013c01040210083e04d00392045408100610620000000cf80328002802e8090e0478028a03ea04080808071162100112099208fe0f9200920490043e02d00392045408100612620000880ce8038800e80388080808fe0408038a056c08080616620804e805280528052805e8010808fe0408038a046a08080618620000c00f40047e044804c00f1000100cfe021007d60814061a62000cf80308008809e80fa800080afe080807ca092a08000626620000f402b002f60fb002f60202081004fe022007960810062a6200002001a80fbc07a807a807200cfc0520022405a808000630620000fe035a03fe0f5403ea030e082004fe021007d60810063262c00f3800980bfe0dfc06ec05c4071004fe021007d408280633624600ea0772056e05e2077e057e0500047f0288076a08000634620802fc0afc0bfe02fc0bfc0ae8007e0c8803ca0428080006366200080006fc01940094009400920092009200f20100000000376200080006f801480048004a004c0048004800f8000000000038620008040cf403940094009400940094009400f401040000003b6200000202fa09aa04aa04aa03ea00aa03aa04ba04820800003f620000000efc0114085406d60154015409540954075c00000040620008fc0794009400f208000cfc0324002400e20f2200000041620000e00f1c00d40f5401d60f5401d40f54015409dc07000047620000000efc019400540ad60f1400940454025c0ac00f00004b62000080009400940894089408fc07920092009200920080004d620002080608010801c80028081808fe0708000800080000004e62000088008808fe0f48000000fe07000800080008000800065162000088008808fe0f480048000000fe0f10002000c0008000526288008808fe0f4800480c0003fe0000003e00c003000c0000536288008808fe0f48004800000004080408fc07040004000000546288008808fe0f4800400c0403fc0004003c082408e0070000556288088808fe0f480048080007f804060440048007000c0000586288008808fe0f4800000044004400fc0742082208220820065b6288008808fe0f48004800000404040404fc07040404040404636208018808fe0788000000fc0f0404040404040404fc070000676280008808ff0f4800000c4803ff0088000800f80700080006696280008808fe0f4800000cf80308000a000c000800080000006b6288008808fe0f8800480000044404440444044404fc0f00006c6288008808ff078800000aa20972042a03e608220ee00100006d6288008808ff07880040080208420efe094208420efe0900086e6208018808fe0f8800200850044e03c00042084e08f00760006f6298009808fe0f58000008f80f00080008ff0f200820082008706288008808fe0f880040081004d0033e009007160810081006716288008808fe0f48000007fc00c40404053c0390047008000073628800880cfe038808000efc016404a4052402a40564080008766280008808fe0f4800000848044803fe004803480448080000796288008808fe0f88000000fe0f20040000fe072008180810067c620001880cfc038808000cfc030400f40714081409f40800047e6288008808fe0f4800000810043e02d0031205d408140810067f62000010041003f400040aa40af407ac020c02e40020031004806288008808fe0f480000086804a8053e022805e80428080000846288008808fe0f4800000878080004fe0400028c01500000008a6280008808fe0748000000fc07440844087c0844084408fc08916280008808fe070000fc0702020200fc0f04000404fc030000926288008808ff0f4800000022082a08ea0f3600a60062000000936280008808fe0f4800000efc010400fc0f0200fe00020f0008956288008808fe0748000008de0442054202de05500808080000966288008808fe0f48004800000122014c010001fe0f800080009762000088008808fe074800000ce8032e002800e80708080006986288008808fe074800000efe01220022002200e20f220022009a6280008808fe0f480040080404a4037c00e4072408240820049b6200008808fe074800000fff00f8070009f8080e0af80900049c6288008808fe0f4800000c88037e08a8052802e805280808089e6208098808fe0f8800000cfc0344004400c40144027c0c0008a06288008808fe0f48000000fc0f0408140be408b409040a0008a16280008808fe0f48000000d807840882084408080830062000a26288008808fe0f480040001000c80727082509c80810061000a46288008808fe074800000cf80348004a004a004800f8000000a56288088808fe0f48000000fe0f2200f20c32033205ee040008ab620801880cfe038808000ef801c8057e064805c80458080000ac6280008808fe0f48000000b00fac04a204a004a404980f2000b16290009008fc0750000000b007ae08a808e8090809f8080006b56288008808fe0f48000000fc0f240422003e0ce20722082006b96288008808fe0f8800400408024801fe0fc800480348040000bc6280008808fe0788000000fc01a400a400fc0fa400a400fc01bd6288008808fe070800e00f90049004fe0790049004f00f0000c26200009008fc074000e80ca802fe01a800fe0fa800b8070000c46288008808fe0f88000800800888088a08fa0f880888080808c56288008808fe0f48000008fc092409240924092409fc090008c66288008808fe078800000cfc032200a200e20f220122020000c76280008808fe0748000000fe032202aa0a220a2206fe032002c96280008808fe0f480000042804c8050a040807e80408040000cb6200008808fe074800000ffe00c8070009fe0a080af8090004cc6208018808fe07880002002c012001fe0f20012c0122010000cd6208018808fe0788000000f80f88048e048a048804f80f0000d06288008808fc0748000008bc04a402a401a408a408bc070000d26288004808ff0f48000000fe0f9204920492049204f2040204d36288008808fe0f480008018000e40f5c0444044404c40f0000d46288008808fe0f4800000c88037e08a8052a02aa056a080808d66280008808fe07880020009000ce074808e80b4808e80b0808d76200008808fe0f00003803e602300b1005f0031e08f0070000d86280008808fe0f40001000c8032e012801e8090808f8070000d96280008808fe0748000000bc072004fe0720042004bc0f0000da6200011809fe07980000089804d40392009000d40f9800a000db6280008808ff0748000000a20f9a048604a204a2049e070000dc620000940c9402fc019200030028012a01fe0f2a012a010001dd6288008808fe074800400114015401fc0f5401540104010000df6280008808fe0f48000004fe030001bc0c0002c0013e01000ee06280004808fe076000fe0c88037004fc090408fc0b000a8009e16288008808fe0f4800000ef801080488076e0408050805080ee26280008808ff0f8800000e90017e0c1004f207940854081004e36280009008fc0790000004e802b80aac08e80f880088020804e56280008808fe074800000cfe0392009200fe0f92009208fe07e66280008808fe07880000049204960490049804960410040000e76208018808fe0f88008000180048084808ca0f480058000000e86280008808fe07880000021c09d0047e055002d40554081008e96288008808fe0f48000002a4029c02d40f9c02a40224020000ec6280004808fe0f48000000920f9208fe0892089208910f1000ed6280008808fe0f480000045004d0071004fc011006140c0000ef6280008808ff0f48000009d208220afa0b2608d20812090000f16280008808fe0f480000088804fe0288008800fe0288048008f362a000a8026a026c0b780bee07280328036e02a802a0000000f46200018808fe078800200818092409e20f2409080930080000f76200011009fc07900000002801a803fc0aa80ab80aa8062400fc6200010809fe07c80000088904fa0388008800fc0f8b008000fe6288008808fe0748000000980f8404a204a204a40488073000ff620801c801f801fc05fa05fa03fa01fc01f801f80188010801016390009008fc0750000000a802a802bc08a808e807a8002000026380008808fe0f4800000824092409be0f2409240920090000076388004808fe0f48000000de076405640564056205e207180009630801080dfe03080840085c08c40577064403c4045c0800000e6300011009fc07d0000000a802b803ac0aa80ab80aa806a000116380008808fe0f480000098804fe030000fe0740089c088406166380004808fe0f400004005404540b4609d408540804060000196388024a022c02b80aaa0aec07a80288023e024a02480200001a6300001402d403fe03940b8007b4039e0384033c03400320021f6300010809fe07c8000008a8088806fe018803a80488080000206300008808fe0748000008a404a603bc00b40fcc08ac088004216388018808fe07480000042e0520053e0520052805e60f0000236380008808fe0f4800100058095609f4075c015401f0014000246300008808fe074800000844044c03360024005c0f44004400256300008808ff0700009602d202b2029a02d20f920296020002286380008808fe07480040092c052b03e8032a032e05280900082a630000880cff0300089206fe019208fe07fc0f0200fe0300002b6380008808fe07480020081c096009fe0f20091c09200940002f638000880cff038808000efe01c20f5204d2055201520e00083a6300008808ff0f4800020c3e03e20400082209fe09220922093d6380008808fe0740001008f80894049602f4019c079408f008426348004808fe0f28002000aa07be04aa04aa04ba04a2072200456380008808fc074800e00fa402b402f40fac02ac0ae4070000466380008808ff070000fe0f02045204fa0552040204fe0f0000496380008808fe0f4800000cbc032404e40fa408a408bc0800084c630000880cfe030008bc06a401bc080007f8010008fe0700004d6388008808fe0f480000017e016a016a01ea0f6a017e0100014e6308010809fe0788000000e20fac02a002bc02a00aec0f00004f6388004808fe0f48000004be04aa04aa07aa04aa04be040004506388008808fe0748000000ee0faa02aa02aa0aaa0aee0f0000556308018808fe0788000000e80fa802a802fe0fa802ac0aec075c638800480cfe030008bc04ac05ac06fe04ac06ac05bc0800045e6380008808fe0f4800000894049602d4019408960c340300005f6380008808fe0748000008e0092e042a02aa012a042e08e00b616380008808fe0f8800200498052404a20524040807d00400006263880cfe0340081008f80494029601f4019c029404f4048008636300010809fe0788000006fc04840696048406bc0880070000676380004808ff07480000006a02be02ab0faa02ea02aa020000686388008808fe07480010004c0752057a0552054405480750006e6340004808fe0f48000007fe003207b204f204b204be070000726300011009fc0f90000402d40770095c0d500d540ed4084003766300008808fe0708004009f4095409fc0f5409f2095001000077638000880cff0348080208aa06aa04aa04ff0faa0afa0a22087a6300011009fc0710004004280118094c0f58012801480d40007b6380008808fe0f48004007080024072a082209640828030804806300008808fe070000fc0f1400f40f0000140eea01080638088263c0004406ff01000cfe030200820f8204fb049204920f0200836380004408ff0704006000b507b500f50fb500bf04e0030000886380008808fe07c80060086808a404aa07a204ba066a05000889638808fe0748000002f802a802a802ae0fac02ac02fc0204028c6300001c02cd02ff02fc0afe07fc02fc02ff028d029c0200008f6300010809fe0718008c02aa02e803a802a80a8808f8070000906388008808fe0f48000000d00f4805060544045c05c40f0000926388008808fe0f4800400008012801d60efc07280128010000966300008808fe0788000000e40f1400c6087405a403e4042408986380008808fe070000fe0f0a00ea0e8a08ea0f8a08ee0e0000996300010809fe0788000002ac0aa40aea07a202aa02ea0380009b6380009008fc0700002805be0728050000fc0f4000c0000000a06380008808fe0f88000004f4029408960794009402f4020404a16380008808fe074800000494028401d40f8201b2028a040000a26300010809fe07c0000c04a4029401c40f9401a402ac040000a56380008808fe0748000008a40aac0ba604a406b405a408a000a76300018808fe0f48000c08a4089408860f9408a4080c080000a86348004808fe0f40003000fc0faa04a804fe07a804a8040004a96380009008fc0750000000e803b802ac02ea07a80ab80ae80baa6388004808fe0f48000000d4075e05540554055e05d4070000b06300009408fc07b2003806e601fc0310089208fe0792008000b26308010809fe0708000001be03ea05aa04aa02aa08be070000b76300008808fe074800020ef8014e070000fe0f0200fe030000b86300011809fe0798000002f00352035403f00f5c035203f003ba6300008808fe0748004000580abc0a5a0918053c0458029000c96380008808fc074800000974051c035c0f7c03140534091000cd6380004808fe0f280000085c097c05dc035e017c055c055c08cf6340004404ff0324000000f40f94049704f40794049704f40fd06300010809fe078800000cbe02aa04aa0faa0aaa0abe0a8008d26300004404ff0344000000ea0faa040a04fe070904e90f0000d66388008808fe0748000004ec076c056c056c056c05ec0f2002da630401840cff07c4000006df0355095505550355095f070000db6380008808fe07880008087809360594033c03500570090008e1630000900efc01000cfc033408b40af40ab40fb40abc0a0008e36300008808fe0740001c0fb000b00ffe00b00fb000bc0f0000e96380008808fe0f48000000fe07680540057e056805e4071400ea6340008808fe0740001201fe0f42001a0c0003fe000003380ced6300010809fe0788000000fe06ea04aa05aa08aa08be070000ee6320004808fe0748000002fa02ba02ba02fa0fba02ba02fa02f46380008808fe0f880002045602f209d606d204d90755084008fa6388008808fe074800c0008c0ea404ac04ec07a204b204aa0efd630000880cff0340081e08c00b5e0840075608d40b04080004006480008808fe0740001000b804760434057c09b40ab0008000016400004808fe070000f20f42005807aa02da02020bfe070000026440008808fe0f48000008aa0a980bde049806aa05aa088000056400008808fe0740001a08fc053804ba073808ee090a0800060d6488008808fe0f48000008ec05ec03ec01ec01ec05ec0900080f6480005008fc07900000007803780378017e0978097c07780113648000880cfe034808000cd50356087c09540f570954090000146480008808fe0748000000a6095a095209d60f5a0d560fd20f166400000809fe0788000002540ac40aa60a9e0f8c0a840a00001c648808fe0748000008bc08b409a006fe04a006b409bc0800081e6480008408ff072400800f5a005a075b055a075a00c20f00002a64c0004808fe0748000007fc0074067505f6057405740714002c640000100efc01800cf8037e09f8070000de0d42029e0520082d6400008808fe07480040006e0756055c0564054e0744000400366440004808fc0f2000900f68007807740572057405680710003a640001040dff0784000c08ff05ab03aa01ff05ab03aa0e820044640000880cfc0328088004bc06bc01bc05bc06bc06a4090000466480008808fe0740001c05540d5c0bd4095c0554055c090000476480008808fe0748000006ac04a404ea07a204aa04aa0e00004a6400004808fe0f3802c80138013000fe0fa804fe07ac040004546400008808fe07800088020402b402ee0ec4020402b4028000586480008808fe070800e00f14005c07f6055c071408f4070000676400004808fe0f48004c00e80768056e05e80768056c0500006964000cfc030400b403b40bb60b8407b403b403740374035402786480004808fe0f4800000974097607f40174037605740904097964000144037c03fc037e0bfc0bfc0f7e02fc027c034403000183640002fc03fc03fe0bfc0bbc07d803d6035203760354028002876400008807fe00f00f5e00fc077000f4073a06c5013c060004906490009008fc0790001808fc0bd806de06d802fe0f98020002916480009008fc0700009803fc0bd80bdc07d803fc031803000092648808fe0748001000f40fbe02b40afe0f1008ee068803780c956400009008fc070000fc0d5801fc050000f80f2400e40f24009e644808fe0758000008f40af40af40af60ff40af40af40a1008a4644000440cff070000f20fbf02da0f10083804c7037c0c0000a56400000809fc070800a00bbc0ae40e400b2805fc07a8090000a96480008404ff0344000004fa015609530f5601fa01320c0000ab6400019008fc075000000dfc012a01e80d2801e80d2801e80dac6400008808fe0748000203d60f1e033600ae03ad07280b000aad6480008808fe075800d4005407bc05bc079405ba05d2079000ae648000840eff016004e007bf06b506f50f75047503ff056004b06400008808fe07a0004e09f605560540014e05f60556054009b26440004808fe0f4800020978056e03e8016e0378056a090008b56400008808fe07880000045c05de05400f5c054e055c050000bc6400004807fe00000efc012c01dc07ac037f02a40315040003bf6400008808fe070800e80cb402f4041200f20cb402e4040808c16440004808fe070000b40c64030400fa075405fc0754050004c26400008808fe0708009c07cc059c05bc079c05cc0598070000c56400008808fe0740007c04cc07fc07fe07fc07cc077c040004c76400004808fe072000be02fa02be02ba0fbe02fa02be020000ca644004fc04fc07fe07fc0ef80f9007ee06a206e606a8040801cb6480004808fe07480000009a07fc05d805de07d805fe058a07cd640000900cfc031008c005bc05f403940ff403bc05e0090000ce6414003c02be03b803ce0bbc0b840fa803b60394032c034402d26400018808fe078800080ec4019207da05f203b409c40f0000d46480008808fe0f4800180ef801ae0cbc0fcc0fbc0fc80f0000da6480004808fe0f0004f8031800d805fe037c0f6c016c060004e06400008808fe070800600cd403e402be02bc02bc02ec0f0400e6640000080dfe0308092c099401d409be0fb401f4011c0d0000ec6400008808fc0700005e0dd403540c00032c04f40f3c096408f4648000880efe01000cfc034408f40bf40bf603f40bd40b0000fa640000880cfe03c0087607ca0cee070a006e06aa0aae0a0000fe6400018808fe070800c2087e0ade075e075e07fe0bc20a000800655400cc025e024c03e00be60bd407c20348035e02cc0254000f650000980cfe030008e8076602f40f0000de07d40bf40a000012658808fe0748000c08de0b5e085c064c015e045e08ac0b2000146500008808fe070000fe07f6047e03f007ee03f608fe070000186500008808fe074804f803ec0ffc09c601fc07ec05fc0900001c6540002404ff0320008b0f7e01fa027b06fa017a04fb0720001d6500009008fc075000c403fc02fc0f3c00fc03fc03e40720022465000000004808fe0ffe0bf407fe0ef40fae04fa07a80400002f65080828046804a80428033e022803a804680428040808000036650000fc0300010001fe0f000030046e048803e8021804080839650000e401240224017c05600c3004ce020801e802180408083b6504010401fc010409640910046e02880388027804080800003e6500080806f8012a08c8072000100cee0288037804080800003f650404f4030402fc03240264083004ee020803e8041808000845650800c80f48047e04c80f60083c04ca02880378040808000048650808a8048a028c0328044000300cce0288037804080800004c650000920f9204fe049204820f2000140cea028803780408084f654000f8015601f4055405f40360091e04e502c4033c0404085165080268090809fe0fc8000a0960087e048903e802180c0000566500045402d401fe04d404d40340007e06880168021806000457650008fc0554055401fc056000380ccc0288037804080800005865500258095408f2074400640b3008ee040803e804180800085965000254025409de0ff401580936087c048b03c802380c08085b650000d0051804d4041603880830046e0288017802080c00005d650000f60fd001fe0fd001f60f00083e04c903e804180800005e650000ee0fe0017e02a009ee0f40087e048803e80418080000626500000802fa03aa02aa02fe0f0000300cee0288037804080863650000ea0faf02aa02af0aca0720001a0c7502c4033c04040866650802f80ad80adc0ed803780a6008fe040803f804080800006c654400f4035601d409160cf40330086e068801e802180c00087065a008aa0a9807fe0498078a0820083e04c90388027804080872650000f40ff403f6027409f4070000e00c3e032803e80c0008746540005c083c08be0ebc08dc0fd80ab60ab40a4c084408000075650000fa0f0e03fb020e09fa0710003f0cc4037c060408000077650004bf02ab01ff05ab05bf0398083f04c20372020e0c0204786508097c0b7c0bfe057c057c0b60093004ee03780408080000836500005d097e05ff0754035e016800e60356055c056405400487650000080808081804680488020a018802680418040808080889652204120cd20356015a014b014a0156015601d207120012008b656400640f640154015c0fd60154015c0f64016409640760008c65080868048e037c020008d40ff4071000fe031004160e00008e652408240fa4001c025409560f54012c052400a40f240000009065a408ac08ac04ac059e06c0028002be06ac05ac08ac08a008916500002404fc0300082806ca01380200084408fc0f4408000897650002100224012401480108010001fe0f000180008000000099650c00a003fe0fa000ac000002240148010001fe0f000100019c65000458035408f20f5400040320006c010001fe0f800000009f654000c8037c05f804f8057c05000428008000ff0780000000a4650000000efc012400240024002400e20f2200220020000000a5650000000cfc032400a40024012401e40f2402220224022000a76500002008280ca4035601580158015a0f6401640128010000a965040274024e02e40f4401000cfc0324002200e20f22000000ac650000fc02ac02fe0fac02fc0efc0324002400e20f22000000ad65fe0f000494055004ff055004040cf80324002400e20f2200af650809fc0558015805fc01000cf80324002400e40f24000000b0650004a804a402e60fa402a8080004fc032400e20f22000000b7650000fe07e806be05bc07fe079c0af8072400e20f22000000b965080808080804880378004e0848084808480cc80308000000bc650000080efa012a08e8070000100248024604880810001000bd650000080ef8012e08e8070000ee074a08e80b2808e8090004c1650008540854045c02d4015601540954095c09540754000000c56500080806f8012e08c8071800c70f240054018c024c0c0000cb650000080cfa032c08c007100cac032a04e80f280968092808cc650000080efa012c08c8071800a604a404f407a404a4040404cf650008080ef8012e0ce80300088f08b506e401a402a4040008d7650808080efe01280ce8031808fe0574057401f40514090008e0652008240824042402a4017c00e40724082408240820080006e2650000fc0f540454037c070000740e4401fc0f440844084006e56500000000fc0f440444044404440444044404fc0f00000000e66500080008fc09240924092409240924092409fc0900080008e7650000fc0f00000000fc0f44044404440444044404fc0f0000e86500000000ce07540554055405540552055205d20708000000e965000000013e012a012a01ea0f2a012a012a013e0100010000ec65000060001000ce07aa02a802e80b08080808080cf8030000ed650008080efe010800f8070008fc09240924092409fc090004f165000040015e0156015601d6075601560156015e0140010000f6650000fc0724022402fc030000680088090808fe0708000000f7650000fc072402fc030008f80708000a000c00080008000000fa650000fc032402fc03000044044404fc074404440444040000026600040007be04aa04aa022a00aa0faa00aa04be0480030000066600000004be07aa04aa022a00aa03aa04aa04be0480040002076600008009bc096c05ac036c016c012c01ac0f3c01000100010c660000c00f7e056a056a056a056a056a056a057e05c00700000e660000fc0324012401fc090004fc03240124092409fc0700000f6600004000fc0fd40ab40ab40a9c0ab40ab20a520f50000000136600010009fc04d402d401d40cd402d409d408fc0880070000146610001400d4075e0554055405540554055e05d407140010001966000000017e0d6a0b6a0b6a096a056a076a077e05000900001f6600008008be0aaa0aaa0aaa0aaa0faa0aaa0abe0a0008000020660000fc072402fc030008f8088806fe0188028804f8088008256600012203aa00ea0fba0aaf0aaa0aba0aea0faa002201000027660000fc072402fc07000c48024801fe0f48014802480c000028660000fc0724022402fc0310000e00f80f28012801280108002d660000fc032402fc030000a20f9a048604a204a2049e0700002f6600088008fc06d404d404d408d40fd40ad40afc0a800a0008316600008004be04aa05aa04aa04aa04aa06aa04be048004000035660000fc072402fc030008fe071200d207920892085e0800063c660001f0040e04ea07aa06aa06aa06aa06fa074e04800500003e6600048004be052a04aa072a042a04aa072a04be058004000442660000fc072402fc030000a402a402be08a408e407a40020004366000000093e09aa052a03ea012a012a07aa093e0900090004496640005400dc0fdc0ad40ac40ad40ad40ad40ad40f440000004b6600001200d60f52055e05520552055e055205d60f120000004c660000fc072402fc030000f80f0800e8032e01e8090808f80752660000fc072402fc01f00f8a057e040a047e048a04fa0f000053660000fc072402fc030008a804ae039800b80fcc08ac08800455660004e004bc06bc07bc06bc06bc0ebc06bc06e004e00400045a660000fc072402fc0b1008f8049602f4019c0f9408f008000464660000fc072402fc032000aa07be04ae04aa04ba04a207020066660000fe031201fe010000f6034b02da0a4a0a4a06fa0342026866000ce0033c017c097c0f7c097c057c037c057c0b200b00006966fc072402fc0b1008f80494039600f4009c0f9408f00800046e6620002400ec0766057c05640564057c056605ec07240020006f6600042004ae07ae02ae0abe0eae02ae06ae06ae072008000870660000fc072402fc030001fe0fc800000cf8032400e20f220074660000fc072402fc030000dc0fdc02de02dc0adc0adc07100076660000c00740057e05ea072a00ea076a057e054005c00700007a6640005000360fbc0ab40a800abc0aa40aa40aa40f3c0000007e660000fc074402fc030000e802a808ac07a800a802e8020804826600003e00b30fba0ab20ab20a800abe0a920ab20f1100000087660000fc074402fc030000fc0fa4021c0ac0085407dc094008916600004001fc00fc0ffc0afc0afc0afc0adc0afc0f5000000096660000fc072402fc0900044a02f209d606d204d9075508400897660000fc072402f8030400d4075c05560554055c05d4071400a2660000fc03ff0f24012401f8019e0baa06aa0eaa02be0e0000a86620083e08ae0fae0dae0dce0dce0daa0dfe0dca0f6a082000ab6600003e00b60fbf0ab60abe0a9c0a8a0a8a0aba0f09000800ae6644014401fc0ffe0afc0afc0afc0afe0afc0afc0f44010002b4660002a002bc09bc05fc02bc0ebc00fc06bc04bc09a0020000c666000cfc030400bc0fbc0abc0a840abc0abc0abc0f14000000c9660000fc072402fc0b0c09ec07ac010e01ac0fec09ac0d0005d9660000fc072402f8034e03da077e065a06fe06da064e070000dc660000fc032402fc038001aa076a075e07e0075a075e070004dd660000fc072402fc030008bc05fc0ebc0ebc04fc04bc058000f06600000000fc0f4404440444044404440444040404fc0f0000f2660000f80f88048804fe0788048804fe0788048804f80f0000f46600000408fc09ac05ac06ac06fc05ac08ac08fc0804080000f86648007c00fc0ffc0afc0afe0afc0afc0afc0afc0f68000000f96602007e00d60fd60aff0ad60ad60aff0ad60ad60f7e000200fc660008e009bc09bc09fc07bc05bc05fc05bc0bbc09e0080008fd6600007c00d50fd60ad40afc0ad40ad60ad50afc0f00000000fe6600000000fc0f7d0566057c05640566056d05e40f3c000000ff6600002c009c075e054c054c0540055c054e059c072c002800006700004004fe07ea05ea05ea0f6a08ea05ea02fe06c00540080367000010007800d80ffc0afa0adc0afc0ad80f680010000000086700080006fc01240124012401240924092409fc07000000000967800088004800f80fac02aa02a802a80aa80ae807080000000b670000000cfe039200920efe01000cfe0392089208fe0700000d67000cfe0392089208fe070000fe0f6200b20d3203fe0c000814670000e9088a06f8018e00e9080006fe0192009208fe07000017670004fc075404560254037c0c0006fc0124012409fc0700001b67000014045c0556055405c0075e054e056e056e057e0400001d670000fc032c032e0f2c03fc090004fc0324012409fc0700001f6700000809fe0558015805fe01000cfe0392009208fe07000026670008fe079200fe0f10004c05fe037c0b7c077e017c064004286710041002100190005000fe0f5000900010011002100400002a674008480448024801c800fe0fc800480148024804400800002b670804480448024801c800fe0fc800480148024804080400002c6708020801880048023802ff0f3802480288000801080200002d67000288014800ff0f48000000fe07000800080008000800062f67000010041002100190005000fe0f500092001401140210043167400450044e024801c800fe0fc800480148024804400400003467000088014800fe0f2800c8000000fe0f30002000c000800035678008a00490048e028201c20f820182019e02a004a004a0083a67000088034800fe0f4800000efc0104000400fc07000800063d67000088034800fe0f4800000064005c084408440cc403000040670000a004a402a402940a9808c80f98009402a202a004800442678000a004a402940a8c08c60f84008400bc02a004900000004367000088014800fe0f2800c0081c0464028401c4023c0404084667000088034800fe0f4800080040004400fc0f440044004400486788014800fe0f2800c0081c0464048402340384047c0400084967000088014800ff0f280008008008980444022202110180004e672401140154014c0944095e07c4014c0154011401240100004f6748002800a80f98089808be0888089808a808a80f280048005067000088034800ff0f280040020801c8082808ff07080000005167000088034800ff0f480088002000c8090808ff0708000000566788014800fe0f2800c8080004e802880378040e04080808005c67000088014800fe0f4800080420042004fe072004200420045f6700000408f40494029401fe0f940194029404f404040800006067000088014800fe0f2800480400040404fc0704040404040461671000a804a802ac029608d4079400ac02a402a00c2000000065674004440454024401c400fe0fc40044015c024c0440040000686708038800ff0f4800000aa20972042a03e608220ee00100006d67000088014800ff0f4800000ce8032a002a00e807080808066f6788014800fe0f28008c00440024002400fc0f04003400c400706788088806480028001802fe0c1800280c4800880688080800716700000404fc04ac02ac01fe0fac01ac02ac02fc04040400007e6788014800ff074800800438048607600401048e05300600007f6708038800fe0f8800000cfc036408a4052406a40564080000816788034800fe0f4800000c84037c08840534022c05e0080008846788014800fe0f480000009c016a010809c809080cf8030000896788034800fe0f48008800000844084408fc0f440844084408906788034800ff0f48008800000cfc0322002200e20f22002000956788034800fe0f68008008380488037e00e8070808380800069767000088014800ff0f2800280280014800ff0f6800880300019a6788034800ff0f4800a00810046e048803c8023804080800009c6700008004be04aa02aa01aa01fe0faa01aa02be04800400009d6788014800ff0f480088082004a80428053e022805e80408089e6780014800ff0748000007fe00000480037e00800300040000a06788034800fe0f4800000124011c010601840f3c0120011001a26788034800fe0f48000000fc0f0408140be408b409040a0008a36700000401b400940454047e09540a540a940ab40004010000aa6788034800ff0f40001000c807240823092409c80810061000ab6780014800fe0f2800400ffc000406f4010402fc07000c0000af6788014800fe0f48004000100f9004fe049004900490071000b6670000a40894048e028401dc0f8001bc02a402a404bc040004b76780014800fe0f4800000efe01080cf003fc0f0404fc0f0000c46780014800fe0f28000000f40f140094017c0094091408f407cf6708018800fe0f48000000f80f88048e048a048804f80f0000d067000084048404be02ac01ec07ac00ac01be02840484040000d16708018800fe0f48000000fe0f880488048804fe0f08000000d26704096509110512030403c40f1f0324032405240914090000d3678804aa04aa028002a401b40f8e018402fc02c004c004b004d46700095009540534037c03dc0f74031c031405340910090000d86788014800fe0f280028018000f40f4c0444044404c40f0400dc6708038800fe0f48000000fc0f2409240924092409e4090408e06708038800fe0f48000000580048084a08cc0f480058000000e567000048082808a80f580d5c0d480d580da80f280848080000ec6700000408f404b4029401fe0f9401b4029404f40404080000ef6788034800fe0f48000000f4031401f4090408fc0704000000f167000088034800ff0fc800080900088a08fa0f8c0888080808f36780034800fe0f0000fc090205fa020000fc0f0400fc030000f467a004be04a002bf02a401800f9f01a402a402a404a2049004fb67000024081408d40fac0aae0aa40aac0ad40f140824080000ff6788014800fe0f48000000e80328002a00fc0f28002802e801036888014800ff0f4800000ffc00140ef40152085208d20700000468000450045c025001d200d40fd00050015802540250040004056800038800fe0f0004fe034208fe074000fe074200fe0f4000076888014800fe0f480088042002a4092408e40f2400a4012006086888014800fe0f28004008100450047e04c8032a05aa08a0060b6890035000ff0f500004067c014708e40f44004403040400000f6888014800fe0f480040041204960490049804960410040000116800038800fe0f48000006e4011c034000d0091008fe071000136888034800fe0f4000100808092409e20f2409080930080000166888014800fe0f6800fa0f8a057e040a047e048a04fa0f0000176804097409540554057c03d40f54017c035405540574090409216888014800ff0f4800080860041804d8020e01c802280448082a6888034800fe0f6800800410044e03c800fe0fc80148024004376808018800fe0f480000014a014a01f80f48014e0108010000386888014800ff0f480088082004680598044e022803a8048808396888034800ff0f48000000fe0f5208d208520152067e0500093c68c4012400ff0f04004c00e40f67045b045a046604e20740003d68100454025401de0f540154091004fe021003d204140800063e6840086409140504053c03060f44013c030405140524090008426888034800fe0f4800000824092409be0f2409240920090000436880034800fe0f40000c098004fe030000fe0740089c080405456888034800fe0f0800200ef801960754085c0ad00910080004466888034800fe0f28004000fc0f0408540af40b540a540a00084868000094099405b4055403560f5401740394059405140900084c6800000009780558055803de0f5c015c035c057c0504090000506808038800fe0f0000fc0f0400d4035402d4030408fc0700005168900998055e057e031601860f56015a035a05b005800900005368c4012400ff0f24000004fd052505250525052505fd0501005c6888034800ff0f4800ca084208c405710656024005dc044208636888034800ff0f480002042c0520053f0520052805e60f0000656888014800fe0f28008008540434031c001400320f52008000666888014800fe0f480000017c010201900f3e014801460124006868a00494049002be028001a80fa601960294028c04840400006968c4012400ff071400000efc0104042504f507240424040000766880014800fe070800e20f52015a01fa0f56015209f20700007f6888014800fe07480000017e016a016a01ea076a017e01000181684c096009120558034203320f0e01420342053e050c093009856810019000fc0f9000a004d803ac02a802e80ba80ae8078002866800038800fe0f48000009280dfe030000fc0f0400fc030000936808038800fe0f4800000054014401c60f7401440144010000976888034800fe0f0000fc08ac06ac06fc05ac08ac08fc0800009d6800002000fc0f0200f8030000a806ae00940fb400ac02a404a26884014400fe0f24000400f107560150015e015005f6070000a668000012098a045f0446056a0248024a01df0046000a001000a76888014800fe0728002000aa07be04aa04aa04ba04a2070000a86840082a091a057e051903aa0f00011e03400540057f090009ad6880034800fe0f4800400a58091e05ca0698069e09a8080008af6888014800fe0f48000004ea04ac02f80fa800ae04b8030000b06800038800ff0f4800800ce8038800e80ffe040807ea082004b36880014800fe0f4800000cb4032c00a70f2400b40f20040000b568000034080c04de034c01540140024c00de070c0814082406b66888034800ff0f4800000ffe000a02aa02ea074a094e090004c06808018800fe0f4000100508052404a2040c06900550040000c46844095405d405cc03cc01ee0fcc01cc03cc03cc0554055409c96884034400ff0f240040009e07aa00aa00eb0faa00be048003cb6888014800fe0f680040090805fe0558015801fe01080d0000cd6890035000fe0f50000000fc0f54095400d4077c0900050000d26888014800fe0f480000006c023c02ae0fac023c026c02a000d56884014400ff0f64004c0644015404d707540044014c020000d8680000f40c1402fe0f1401f40860041402fe0f1402f40c0000da6880034800fe0f0004fe039208fe07000cfe039208fe070000df6888014800ff0f48000004fc04ac02ac01fe0fac01ac02fc04e068000818090a057c055803de0f580358037e050a0518090000e36808038800fe0f4800800814065400fe0f540054057c051008ee680000a4049402d40f8c028c043e048c02d40f9401a4028004f16880034800fe0f4800400a3409d406de049406b40914080000f5680000c4012400ff0f24000003df00f507ff07d5005f034002fa6888014800fe0740001c00fc07f4075605540564050c070000056988034800fe0f08002000b407ac02ae0b2c08e407200000000d69c8002800ff070800e00f0404fc055c055e055c05fc0504040e6988014800fe0f00003000fc0faa04a804fe07a804a8040000126980014800fe0f0800200dfe03280880091c04e40374060c081c6990035000fe0f1000f00938093405f20334033805f80910082d6900009000ff0f0000fe0f1200ee010000f80faf02e80f0000306980034800fe0f0000fc035402fc0f0000fe0f0200fe0300003f6980015000fc070000a800f80f780578057c05f80f780080004a6910039000fc0f90000008fc07d401d405d403d409fc070000536980014800fe03000cfe034200aa04fa07aa044204fe03000c546980014800fe0f00002c097e090c07a0031e0542093e0900005a69000054084c065e035404c00f54094c095e094c08d40800085e6900038800fe0f40001c085404dc0354015c0954095c0740006369c0012400ff0f140080037f00e50f550557055505f50f07006d6908096a056c0578036e01e80f68017e036c056a0508090000756988034800ff0f0800e209a208ee08fa0b42089209720a0000776980014800fe0f48000000bc0fa80a800abe0aa40aa40f14007c6980014800fe0f28008808aa0a9807de049806aa05aa0800007d690000a404a4048002fc01d607d401fc018002ac04a2040000826900038800fe0f0000fc0754027c092004c4037c0f44084404846900038800ff0f40001e08c0095e0440034e06d40b04080004866980014800fe0f0800f007b802f40f1600d6030408e8070800946900038800ff0f0000fc0756027c070000fc0f0400fc030000956988034800fe0f28000c01940f440926094409940f2c0300009b6980014800fe0f28008008ec05bc03ae0fac036c05240500009c6988014800fe0f080040085c06dc0156095409540954070000a869c4012400ff0f200082004a002600f70fa202aa02aa020000ae690004e204ec04ae02a200a00fb200a802a602a804a2040000b46900038800fe0fc8000000bc0fa20a900aa40f9c0a840abc0fcb690000c8032800ff0f0000fc0fbe02bc02fc03be0afc071002cd69c8002800ff0728000806e8017c077b057c05740574070000d06980014800fe0f08007c0054085607fc00d40754097c0b0008d86908038800fe0f8800000456055400fc0f5402560554050000fd6988034800fe0f48007a00da0fff0ada0aff0ada0afa0f0000026ac004ec04da02c002bc00d607d600fc028802f604e00400000a6a240814097f09140550054a033601410334057f0914092409116a88074800ff0f4801840126090c0db80f0e017e0510090000136a80014800fe0f680000087c0b7c0bfc057e057c077c097c09196a88034800ff0f48001c056c017c096c0f7c016c057c0500051e6a00039000fe0f0000fc070409f40ad40b5409b40a840b00001f6a80015000fe0f50000002f402fc02f60ff402f402f4021002216a80014800fe0f6800000974057603f4017403760574050409236a84014400ff0f4400000d2b03aa083e076a022b05a20c0000296a3803b800fc07b80028008000ec07b807a807a807a80700002a6a88014800ff0f48000808fa095f055a05fa015f055a05fa09316a88034800fe0f00005e093a0b8e0d1c0542057a0b42095e09396a00038800ff0fc800e008b40abe0cf40600049000fe0f1000446a0000c800fe0f0800fa03aa02aa02fe0f78048e03780c00084b6a90035000fe0f1000320fb200f207fe05f207d100b00f2000586a88014800fe0f2800800f5a015a074a05de065a00ca0f0000596ac0012800fe072000da04ba05ba04b504be07da05100400005f6a88034800ff0f4000e60cb803b40adf08a407b80ab408a004616a80014800fe0f48000804b8056c03ee0abc09ac07ac0138026b6a88014800ff0f48001208f2057f057a05fa017f057205f209716a80034800ff0f0004fc034404ac076c070400a408f4072000806a00038800ff0fc8007808cc0bfc0bfe0bfc0bcc0bfc0b0000906a88014800ff0f2800880f7c002707ee05f605e405f4070400946a88034800ff0f40001a07fc05d805de07d805fe0588070000a26a80014800fe0f0800d80cb802f4041600c40ca802e8040008a96a0001c801fe0768007805cc01fc05fe07cc01fc0584050000ac6a00039000fe0f00001406d406f603740b7607540354040000c36a80014800fe070000fe070204fe05fe05fe05fe05fe051204fb6a80034800fe0f08007e092e0bfe0d00055e052e0b5e090000046b80014800fe0f0000fe07ee04e603f00fe603ee0cfe0700000a6b08038800fe0f88013001d40f360f800f360f540f74090000206b400830080c040a0288017800880108024804380808080000216b000004068401080860081e040a03e8000803480438040008226b14042402c4013c03040830040e03e8000803280418080000236b0004fc0314001400f2070200300c0e03e800080138060808276b0000fc0f0405a404d404040d600c1e07f8000803780c0808326b8800c40fa20490049204e407b00c0e03f8000803380400083a6b00000809fc055801fc050001300c0e03e8000803380c08003d6b5008580b5408f207540d000830040e03e8000803380408083e6b0004aa02aa08af07aa00a20230080e06e8010803380c0808476b0001fe07aa04aa05aa08be0700001c0eca010802380c0000496b2404ad02fe07fc03ae01fd04380c0703e4000c03040400004c6b8000bc07ac05bc078408bc07b0080e06f8010803780c0000506b0000fe038204da05aa04da05000c1003ee000803280c1800536b2001ec0fac07b807a807e00c60041c03f0011002f00c0000616b0001ba0fbb078007bb079a0730000f0ee40104037c0c0000626b00040004f007000400040004fe0720042004200420040000636b00040404e407040404040404fc0744044404440444040004646b0008f00f00080008fe0720040000fe072008200810081006656b2008200bbc08a00820082004fe0724022402a401a4002000666b00001008d4071404d40794041004fe001007140814081006676b0008f0070004fe072002080a6808a8053e022805e8040808696ba000a0057c08600820052005fe042402a4012400a40020016a6b2408a408a40e94089408bc08840f940a940aa40aa40a00086f6b1000d0071c04d0059005de059e05b4051404f407f0071000726b080ce80328006c0be80768022e097c04ac03bc04a8082806736b100ed0015004dc02d00fd0005e09f40c5403740554091004746b000cfc0304085408740f1408840f540af40a340ad4080000776b000cfc0304086c08fc0e6c08040f6c0afc0a6c0aa4080000786b00087c075404d6073c0540003c07bc00fc0fbc00a8070000796b000084004408240454049c021401940074001400040000007b6b0000c40864049c061401f4000400fc0744082408340824067c6bc00022089e041203f200000044004400fe0f420042004000836b0000c2083e04920372000008f8088806fe018806f8088008896bc00022089e04920372001000ce07a902e80b0808f80700008a6b800062081e069201720410044e03c800fe0f4801480240048b6b8000e2089e04920372000008a804ff046803650555094004966b4000620c5e0292017000e40f0404fc056e056c05fc050404986b800062085e06920172080209a8052f0718055d0b150ba008b46b0000fc0f1405e404140d400cde0842074206fe0960081808b56b00000002fc0f5202520211094008de0542025e05a0081808b76b000cfe03550955093d074000e0085e074206fe0560080000ba6b000052065401cc0f53010008de04420542027e05e0041808bc6b00006c0c6c03ee00ec0704026008de0442035e03c0040008bf6b0007ff00f50ea500f502a7040004af02a1022f01e8020004c06b00007c095209400754053c0d40087e094206fe0960080000c16b0000fc04d204c007d4043c024008fe054202fe0560080000c56b00005401340bd60a1407c4021008ce054202de0550080000cb6b00002000e0093c052403a4017c0924092407fc0120010000cd6b00002000f0032e02a202aa02aa0a220a220efe0320020000ce6b00004800c40773024a02ca037a0a4a0a4a0efa0342024000cf6bc000c802e803a60294039403d403940a940af407c402c000d26b20012201ea076a056a05ff076a056a0d6a0dea0722050001d36b1000f807b605940cf4070000b40f2c00a60f2400b4072008d46b00000000fe0f200420040000fe0740082008100810070000d56b000040017e0148012801800f3e0148014801440124010000d96b0000400a7e0be407640554035e00e407640a640950094004db6b00002801280128012401fc072409a4089208920890088006e16b24012401fc072409a2081008c00b7e0a480a480ac8090804eb6b0000c404fc05ec05ec03ee07ec0bec0aec0a7c0ac40a0000ef6b24012401fc0792088208280a640a1009ce09100acc0a00040f6c00000008fc072404220422047e00a2032204210822082006116c00000008fc07a404a404a404e404a401a406bc0880080006136c0800f8010a0208020008fe0f92089204f20192069e080004146c20001800460055005400540054005400d403140404080004176c00085809460554025402d405d4045400d403140c040800041b6c10001809840523032a092a09aa07aa002a01ea030a0c0006226c0800a804b605be057c077c05bc05bc051c00fc03040c0006236c1000180944052301aa0f2a012a016a0d2a00ea0702080006276c1000c802c402de02dc0fdc02dc02dc021c00fc0704080006286c08005009580b560b5c055c075c095c091c00fc07040800062e6c1008880ab6045c035c025c045c071c08fc010c06040800062f6c8800a803f603fc06fc07fc01fc03bc031c00fc0304040003346c000010041002900170080008fe072000c000200118020804376c000020042402a40168080008fe072000e000100108020804386c0000400440024801ca080a08fa0f42008401400230041004416c1000220842060401200020002000fe0f2000200020000000426c08042802480248090808fe0748008a004a012a0208040000476c20002406ac010000fc070404040404040404040404040000496c0000200822044c0300080c08740484020403c4043c080008556c1000120ea2010200f80700040004fe0700040004f80f0000576c2000220c4c020001440044004400fc0f44004400440000005a6c000022084406080120002401f401ac08a408a408a40720005b6c2000240c2403080140004400fc0f44000400fc07000800065d6c000010082206a4010008d008380516051003f004100410085e6c500454045403d4081408fc0f9400940154025404500400005f6c1000120c24038800000404040404fc070404040404040000606c00001208220604014000fc072008fe0910080809f8080006616c00002008420c4c0300002401e40924092409240924072000646c1000220c460304002009b2046a022a01e608220ce00300006a6c1000220cac030001440844084408fc0f4408440844080000706c0000120c220284091004100290037e04d008100310041008766c00001008220ea2010808180468028a018c02680418040808796c1000120ca2030200f80702048c057004ce050004f80f00007a6c00001204a2030408400848044803fe00c8014802780440087d6c1000220c4403100048004600540054005400d407040804047e6c0804310e820130040802a701600021042304cc0310000000826c0000120864060401000cfc0324002400e20f220022000000836c0000120622018404200c2402a4017c00a201220222042008856c0000120c6402080920082406e4012400e40f240824082006886c1000120c22038208380488034800fe070808080838080006896c2000220c4c0300090c04e403240024002400e40f0c0800068c6c2000220c4c030000e80108010801fe0708090809e80b0008906c2000220c44030401100490035000fe0f5000900110060002926c10002206a401000820045004ce0444036402e4055c040008966c1000220ca2030200f80188008800fe0f88008800f8010000996c1000120ca2030400600818080004fe040002c801100060009b6c10002206ac010000e80328002800fe0f28002802e80308009f6c2000220ca40324001001ce0128010809c80b0808f8070000a16c1008120ea40100085004ce05420242025e05d00810080000a26c00001204220384080006fe0122002200e20122023e040008a56c0000220e4401000cfe0302082206fa0122082208e2070000a66c0000220c2402a4011000d007080986088808500810062000a76c00001208220684013000e807240822092c09d00810060000aa6c000010082206a401000cf80348004a004a004800f8000000ab6c2000220c4402000948044803c800fe0fc8014802480c0004ad6c1000220c440314081006d0011000fe0f1000d20314041004ae6c00002408440608010008fc0f240924092409fc0f00080000b36c1008220624010400f40314011401f40904080408fc070400b86c0000240ca4030800e008a806fe01a800fe0fa804b8030000b96c1000220c26030200f80f88048804fe0788048804f80f0000bb6c000010042202a4012000b00fac04a204a004a804b0070000bc6c000012042202a4012000a2079a048604a204a2049e070000bd6c00002004240644011000900f9004fe049004900490071000be6c1000220442030400800f80048004fe048804880488070800bf6c00002204220204012000900f8e04800480048e0490072000c16c000010081206a40100083e06e2012200e20722083e080006c46c1004220684011000fe0710041004fe051005fe0510040000c96c0004800cfc02d4015408d60fd4005401d402fc04800c0004ca6c1000220644010000f80f88048c048a0488048804f80f0000cc6c0000100c22030408e00d0004f207840870080808e4060000d36c0000120c22030400f00892081e07c0033e048004000f0000d56c1000220ca4030000480c4806c8057e044805480648080000d76c0000120ca4030000fc0f0405fc0404047c048404fc0f0000db6c000010082206a4010008240424022c05a408a20862080008de6c2000220c4c030001580048084808ce074800480058000000e16c00002408240688012000f007ac08a808e8080808f8080006e26c10001107a2000002fc096404a4043f032403e4040c040000e36c000010082206020108086808880b0e08080fe80808080008e56c000012082206a401000cfe0392071209920892085e080006e86c1000110c2202820108088a088908fa0f8c08880888080000ea6c000010041206a4010000fe0f9204920492049204fe0f0000f06c40014405d40474095c08560f540074055404d40840010000f36c1000720e020142044802ca090a08fa0f8200400330040004f56c1000940c8c04bc02ac092c08ac0f2c012c03bc0484040004f86c0000100822064401000cf00390009e0094009400f4010000fb6c0000140ca40300000c016401540154095409540cd4030000fc6c000020086607280000061c01f0085e0550065405d4081008fd6c0000240ca4030000a402ac029402d40f9402ac02a4022002fe6c2000220cac0300014408a408a408940fac08a408a0080000016d00002408440448030000480f48097e0948094809480f08000b6d1000220ca203020048014e014801f80f48014e0148010000126d1000120ca4030000f40f1404fc0414047c049404f40f0000176d0000120c2403040950084e06c8017e00c80f4808480840061b6d00001208a20704009000c80fb608a408dc08c40f800000001e6d0000240844070000fc0f0400d4035402d40b0408fc070000256d00001a0ca2030000ac02ac02ac02fe0fac02ac02bc020802296d2000240c44030008f808a804a804fc04a807a80a780900042a6d1008220ea20188088804fe02880088008800fe0288048808326d0000120c140344082006fe012000fe0f30004000fe0f00003b6d000012042202a4010000920f9204fe0492049204910710003c6d1000120c22030408200924092409bf0f24092409240900003d6d000062040402a4012000b00fa804a604a604880f100020003e6d10082207a400000efc010400e40f140072009203520c0000416d0000120c22028409200ca4033c00a60f2400340f64084406446d0000320c8403140050005c095609f4075c015401f0014000456d1000220ea4010008a808a8047e04a8035a065809540c0000466d200494049002be0180082808a80f2601160394044c040404476d0000120ca40300012808a404a603bc00b40fc408a00400004a6d1000320ca2030209780888088808fe0788048805f80700084b6d0000220c4c030008fc06e401fc0c0000f8090008fe0700004e6d2008220c4c030008440844073c00260034004c0f440044004f6d2000620e4201080c4a02ea0118020000fc010008fe0f0000516d0000140c640300011400f4029402d40f94029c021c020000536d0000220c440300019801c80f28087e048801880658080000596d00001208220702008808fe0f0000fc072200e20f220000005c6d000009041103d2008008fe048a0289008900f90289048808606d0000120c240304002001ea07ac00a40fac00aa04a8072000666d2000240c4c030000e80fa802a802fe0fa802aa0aea0f0800696d00001204220284012000ac07a804be04a804a804a80720006a6d10002206a4010000fc0f54045504d6015403bc04800800006e6d1000220ca4030000280124092c09a40f62016a012a010000746d00000904110381002400930f480444044904920724004000776d2000240c2c02a0009007cc02a802e80ba80aa806e8038802786d0000090c92030200e0082e04ae05ae02ae06ae05ae040008826d2000240e4401040510048802a408e60fa800880090062000856d2008240c4c0300087c0954095409d40f540954097c090008886d2008440648010000ec0fa002a002bc02a00aa00aec0f0000896d10001106a30101001009de041004ff0212019200520000008c6d1000120ea4010400f00f56015601fa0f56015209f20700008e6d0000120c26030008a2053e07c008e40bfe0bfe0b220a020a956d10082206a4010008e804ae02a801f80fa800ae04b8030000996d200c4c024009040cf40354095405540754015407740900099b6d000022084206040140045402d4017e055401540f540100009d6d0000220cac038008340894049603d4089408960cb40300009f6d2000660e40010e08e00704043c092609f40b240924090004a16d0000220c42030000de0f52005203f200520b5e08c00f0000a36d00001204a20304009008f8049602f4019c019402f4048008a46d1000220ca4030008a806a8029608d40f9400ac00a0060000a66d1408a4070000f20f060050025402f403540a0408fc070000a76d00001008b2070200fa0f0200f8034a02fa030208fe070000a86d1008260f0000f20892088e072000fe072004e80126022004a96d10001206a40100082c08a00f1208ce0f020922091e090000ae6d20082c0f0004fc039403d40fdc030000fc090008fe070000af6d2000240fac00000efc01040854095409740f540954094408b26d1008260ea0008400f40f0400c408360564062405e4080408b56d10001206a4010000fa0712048206fa07a6040204f80f0000bc6d00002408440608010004e802a808ac07a800a802e8020804bf6d000022084c0700010404d402540bac08c4074400a4011406c06d2000240c440300093804b8032804ee0f2809280928080008c46d1000220ca2030800de0f40094c09d20f42094809d60f0000c56d0000310f420008038800ff0f0000fc072200e20f22000000c66d2000220c8403a0006c00ec0fec02e402ec0aea0720000000c76d1000120ca40300080405fe05540554015405fe0504090008cb6d0000240f4c0000069001fe0f500000079000fe0f90001003cc6d2000220c44030800e00f2c00a003be02a00b2808e4070000d16d0000220f2400a0032008ff0fa4003c0cc403e4041c080000d26d0000120ca403000054095c0bdc057e055c077c0934090009d86d2000220f2400b0008c02aa02e803a80aa80a0808f8070000da6d080691015204000ffe00150895049502d5019502ad048004e16d1000220ca40300082809a4041002ce0110022004ac090008e46d100c920322080807fa002c08c00710004c028604b8081000e86d0000220c4c030000a802a40aa40aea07a202aa02ea038000ea6d1000220ea4010400d00f5801d40f5201d40f5801d00f1000eb6d1000120ca4030400500954094209ca0f220932092a090000ee6d0000320c8203a4003000fc0faa04a804fe07a804a8040004f16d0000220c4c030008a40494029401c40f9401a402ac0c0008f36d2000220c4c0300008402f40ad40ad606d403f40284020000f56d000009079200000eff01a800af072000af07a800ff070000f76d1000220ea4010004be07aa04aa022a00aa03aa049e044002f96d200822060c016000f403ac02a602e407ac0af40b24084404fa6d00001008210ea6032409e7051c075507250b220b14098000fb6d1008260e20010404540334089c0f14003203520052070000056e1008120e84011000fc0fbc02bc02be02bc0afc0f14001000086e0000220c2c0280092408a407ac029602ac02a40f24002000096e0000120ca2030400d0081c041005fe0414025401540000000a6e00001107a200000efe010403e000fe07a8000000fe0f00000b6e1000220c44030808a0083c0520043e002805a804a8080000106e1008260f00007c024602f60f4401000cfc032200e20f2200116e2000240c2c030000fc03b402b402f407b40abc0ae00b0008146e1000220684011004f80554055605f4055c055405f0050004156e120ca20302004a084a06f8014b060100fc090008fe070000176e00001004a20304005000580abc0a5a0518053c02580250001b6e0000220e4401000cf8032807a802280dfe020805ec080c061d6e0000220c24030008e807b802f40f1200d40b0408e8070800206ea404a60496028001be01ee07ae00ae01ae02ae02ae04a204216e1000120e2401000cfc031408f405d602d406f40594080000236e00001206120184041004d407ac06ae06ac06d40714040000246e110ca20300002a05aa04af07ea002a0480037f00f8070000296e1008220ea4010004be07aa04aa07aa04aa07be04800700042c6e0000240c24030008fc055401fc0d0004f8010008fc0700002d6e2000220c240380003e08ea07ea00fe026a036a0afe0700002f6e1008160ea001840054007e0754095409fe09540894068000346e00002208420704018006be04aa06aa05aa08be0880070000386e100c2203ac080006fa012a0cc00310082e09e807280108013a6e0808930f0000ff074902ff0b000818047f020001de0000003e6e0000120ca2030000fa02ba02ba02fa07ba02ba02fa020002436e0000240cac0300089404fe03940000025402fc0f54025402446e0800890751000003ff000500f50f570555055505f70f00004a6e000010049603000874051c055c03de015c053c04dc049000566e1008a2070200c80748027e02c801000cfe039208fe070000586e0000a20f26000403d000fe0f0000fe0f92049204fe0f00005b6e1000110c260280008207ff08aa0baa08aa0bff0a820a00005f6e00002208220684010008fc0ad40ad60fd40ad40afc0a0008676e1000220c44030008fa0aaa0aaa06fa02aa0aae0afa0600006f6e0000440844070800800afc05d403d40dd403d409fc0780007e6e10001106a60100002a03a202ae02a302ae0aa20aea060a007f6e2008240f480000097c0b5408540f5408540f54087c0f0009806e0000120ca4030000d40f5e02f40354025e0b5408d4070000836e000020082e0620013c08f40974047e0374007404fc092008856e1008a6070000fe0efa010200fe0250087f04c8074a098004896e22084c070000fc07540254017c0860064401fc0f44084006906e1000120fa600000efe010204fa02aa08aa0faa00fa020004966e48016201020108017c015e075c017e015e015c01440100009c6e2008240448030000bc0fa20a900aa40f9c0a840abc0f00009d6e1008160f80001402fc0fbe02bc02fc03be0abc0afc0f1402a26e1000120ea2012808ab0fa80f8808ac0faf08a90f28080000a76e0000120ca6030408b004aa02be00aa07be00aa02ba028004aa6e0000100c26038008240abc0ae406a403aa06820aea0a000aab6e20084404480300087c0f4409540f5409440f7c09000f0008af6e1008a2070200ca0ef8018e00e900000cfe039208fe070000b66e1000120ca203000024019407440526054405940724030000ba6e2000240c44030400740b540adc070000740b540adc070000c16e1008960f0000fe0f1200ee0508064400f20f540044070800c46e1000920742000a07e40072067a0579057a05720504070800c56e0000220e4401000cf8038805e80b880cfe040807ea080006cb6e0000100c22020209e80c0a0bcc08480ee8080c0fca0e0808d16e0000240ca40304006000fc0fe402fc02ec0afc0f20000000d36e0000120c2403000094029402d402960fd402b40294028000d46e10041106d2010000ca0fa204a2040a04a104a904e5070000d56e0008fe079200fe0f0001ea043800ae0f28006a05aa048000da6e0000620c0c03200014024c0fec0886086c014c0614052008dd6e1000120ca4030400f403bc02b402f607b40abc0af40b1008de6e1008120ea2010200e807bc00b800fc0fb800bc07e8000000e16e0000220c44030400d40f5402f6015403f6015408d40f0000e46e00001207a600040ef007180134035f045a054a002a030000e56e0000220cac030008bc0fbe08800fb0088c0faa08a80f0808e66e00001206a4010404b40484029c01c60f9c018402b4042004e86e20002206ac0100080c05f40554055601d40354035c0d0008e96e0000b20706003407c4003c031000fe0fa804fa07a8040004f46e0000120824070400f40f14025605f6055c071408f4070000fe6e10049203220008017c015c07d604d4045c013c038c048404ff6e0000220c6e030000c40f5e015402f40f54015e0ac4070000016f1008220e04012008f8055401560df4015c0d5001f0060008026f2000220c4c030008f405d401fc09d40ffc01d405f4050009066f0000620c04032400940454034c0a5e0f4c025405540480000f6f0000090fb1000006ff01950fd502f50fd5025508d70f0000136f1000220eac010000f40fc400d403d602d402c408f40f0400146f10001206a4010008e407b406b402f603b402b406f40b0000206f2004a2072c000009740574057603f4017603740574050409226f2008260c40030408f40ad60ad406f403d606d40af40a040a296f10002203ac080006fa092a0cf80fb0032e04e80f280968092b6f0000110ca2030200f004de04fe05de02fe02de05fe040004316f2204a603840030065401fe0f7400100fce000803380c0000326f1008a2070200f00892081e074000fe0f5604d6055601420e336f0000220c240384001002f402fc02f60ff402f402f4021002386f2008a6070000fc02ac02fe0ffc020008fc072400e40f22003e6f0000310c860320082a052b02ea08fe0f6a022b05aa042008476f000024048c032008740776027400fc0f7e027404240f04004d6f0000320684011004fe0259020000fe0fa804fe07ac040804516f0000640e08012000a40bb40aec06e000220bec05b80b2409546f0000120c260300089c059e01ec09a40f5c010405bc09000a586f0000220c26028000d407bc059405bc079205ba05da0750005b6f1000120784002000ee075e057a057e055a057e05ea0708005c6f10001206a4010000ec075e054c0560056c055e05ec0728005e6f1004b60320088c0f1408f4079c00080fd604b404cc0f40005f6f2008220eac010008fc06d400d206c000d405d40afc070000626f100c1603c4001008f40bb406be02fc03bc02be06f40b1408646f00001408b4070000fc0f1c005c05c0075c051c00fc0f0000666f0000320c8403a808200cf4015c09560f5c01f401240c00006d6f20002207a4000002fa03ea03fe03ea07fe03ea03fa0300026e6f2408ac070000f802bc0fb802f800000cfe039208fe070000846f1004120384002004d204ba06b604b004be06d80464044000886f00002e0ca0030400dc0fb602d40f2000fe0c8803780c00008e6f220846070800000af40abe08b40ec40010088804460200009c6f2008440f0400f40f9405d403fc067c03d40b1408fc070000a16f0000240c44030808e005bc057403140f7403bc05e0050008a46f0000120682012000be02fa02be02ba07be02fa02be022000a76f2000220c440300087e08ea0fff0eea0aff0eea0f7e084008b36f00001004260600017c080c05640376012c0344057c090000c06f1008230e8000be04aa03eb01be073804e70284037c040000c36f1000110fa2000006fe01b604ff07f604ff03f602fe02a004d26f320486031000dc091004ff02d001fa07ee010a02fa040000d56f20001206a40100085e05ea019a0d1a007a0dea019e050009df6f110ca20302003a04ea03f20146015b017e01ea0714000000e46f0000120ca4030000dc07fc05fc07fe02fc0efc0fdc021000eb6f1108210700017f04d507f704dd078004ae07a504a4070404ee6f00001206a4012000fe0f63057803ee017e0578052a090000fe6f0000810741000003fe0cfa015e05eb075b075301f703000411701000240f24008005bc04fc0ebc0cbc0efc02bc04bc0980021f701104a60300000200130cba033a03f80f3a01bb07ba03ba0f2c70100ca203840036065401fe072601f2046e056a01fa0500044c700000220844060403740ed40f360f840f760f540f740f0000517000002206ac010004ea03ea07fa05e201ea03fa05ea05000463701000260f400017024d03a0039c03b60bfa0b5c07120240006b70000860081804000280017e008001000240043808000800006d7000000208420432040202c2013e00c20002036202120400046f70400870040002fe011002040004080408fc0704000400000070700402840174000e08e40424020401f40004016402240c0000757000080009aa082a042a02aa012a022a042a05be080008000076707004000efe0100011805000420042004fe07200420042004787000004008480a280924041602d4011c022404a009200840087c7078080006fe011001000630008e0088080809080cf80300007d7000080c09d20400040803d600020308040c05d208000800007e70000098088808680408020a01ec0008030804c804180800007f7038080006fe0100030800f00700040004fe0700040004f80f897070080006fe0100023808020cf203920092009200f20100008a707000000cfe030002180830040e02e80108032804180800008e70000040082809a40420041803c60118022004a4052408400892704000300efe010001180a400838040004fe02000298012000957038080006fe0110020008e8072a002a00e807080808060000ab7038080006fe010003080048046806da054804280708040000ac7070080004fc0320020000fc0f2409240924092409e4090408ad70000cec032808a809a8042e06a801280228042809ac082008ae7070080004fc0330060000f8072e092809e80b080af8090004b37018080006fe0100021800e00f14009c017c0094091408f407b8707008000efe010002280430000e00f80f2801280128010800b9700000000ce002a000a006be00a402a404a400e40204040000ba700001880c8a02ca00b806ac00aa02a808b80ae00880070000bc7038080006fe010801100474035e08f40f4400440344040000c17078080006fe01080310003c07a4002408f40f2400a2032004c27078080006fe01000118010004960490049804960410040000c870200912070e03ca006a0c1a0000047c0900010005fe050008cf700008000cfc0154015405540156055401540b5c0940070000d87038080006fe01100280088804fe0288008800fe02880c0008d9702008100efe0100035800480fae04b404a404b4044c0f4000db7040083006fe0110060004f8088808fe078804f80600080000df707808000efe011000fe0f02042205fa04a2050204fe0f0000e470f008000cfc03000410050001a803fc0aa80ab80aa8062400e670200418040003ff0008030008f9040902ef010904f9050008e77078080006fe01000290088404a603bc00b40fc408a4088004eb7000088a08620a140900042a035a042e049a088a0a78080000ed700000240424037f001406800064003f0704007c0280064008f9700000220822063e0036053601b700760276043e00220202040971000010081404f40154095c035c015c035c095c09140700000a713c04000efe01080300005e015601d60f560156015e01000015712008100efe0110028008f8049602f4019c02f40480080000197138040006ff0108032000ac07a404a604a404bc04a40720001a710000240a140bbe040c04a40330020c047e050c051408200421712808280dfe012501fc0d2401fc052409fc0124052008000026711008100cf8015e01580d5801fc015a0d58015801080d0008307178080006fe0100023800d00f4805060544045c05c40f000036718808a8066e026e0014050c01800068061e0068028a0e80083c71400838040002fe011008a404f403a600a40ff408a40800044c7178080006fe0100029008fc0ad40ad60fd40ad40afc0800004e710409fc045d045e015c0dfc000400760c0501fc01040c0000557100000008fe04b200ce02ba0c0000fe04120912039e0f00085971f008000cfc032008f40a940afc0a940efc0a940af40a00005e7100001809560554015c0df40100001c0dea08c80238050809647138040006fe01000110048404be02ac01ec07be018402000467710008fc0d94009400ec0c1400cc01440554095401cc0d0008697138080006fc0110020008fc0bac0aac02ac06ac06fc0b00086e710000300e3400f40174057e01740574057801f401120c00007d710000100efe01100efc03ac046c00ea07aa046a02fa0f000084713c080006ff010802000cfe00aa06ab08aa0aaa00fe0600048a7104047c073f00bc00be06fc0000026704aa008902440c00008f710000080afa0ada02da0afe03da0afa0ad902f90a080a000094711800200cfe0310042401940f440926094409940f24010000997100040006fe009200ee06ba0000007e06920492009e0240049f710408bc0cbc01fe01bc0c180088057e080800f80400098000ac7100019c087c045e015c0ddc0010000805be0cc800b8040809b17100004c095c05ce015c0d2c010801980c7e080800f8058008c37138080006fe0108093004ae00740e0c00c80e3e00680e8a00c87118040007fe0028015204ba05ba04b504b607fa0518042800ce713c080006ff010800220cfa015609530f5601fa0522040000d27118082006fe0110020c08ac09ec07ee018c0fec09ac090005d57100002409a404e4010e00ec0d2c01ee050408f40024059008df7100006e002407e705e805e405e205e805ee05280774000000e571f0080004fc032008c009bc05f403940ff403bc05e0090000e67118080006fe0110061000a8053e01c40f200194052c050000067270080006fc0110028000bc05fc00bc0efc00bc05bc058000107230080006fe01380ef8071800d80ffe0ffc0ffc0b1c0e00081b721800000efc010000fc0ffc047c03f0077c03fc0cfc0f00002a7200080006fc0104000400fc0f0400020002007e008203000c2c72000cfc030400fc0f0200fe01f80224053c052409bc0800082d728000a402ac02a40aa40aec07a402a202b202ea03800000003172000014085404d403540b540b5405540d540b12083008000035720004fa07ea05ea05fa05ee05ae08ba02a908ed0fb90000003672100810080c04620480020001800272040404180810080000377200002400140052005500d80f480059045604920324002000387220002800e407660956095809d0095a095609a409280c2000397214005408d40ab20a68096805ac04900292029401140000003a7200005404d407d406d206d80f0800da0f5200d405540210003d720000040954059404240284017e00840124029404540504083e7200001400f40f14005402fc0f14005403540b1c08f40f140046729c0e9001fe0f0000b407ac04a407be07a407ac04a4070000477200080006fe019000900090009e009000900f1000100000004872000cfe0390009e00900f0004fe03320cd2051203f20402084c720008fe0790009e0f00017c015401d4017e01d40754017c014d720008fe0790009e0f1000b40994051e03f4013405100900005972000000046404540244024401c4084408fc0f4400440040005b720000a00090008e0088008800fe0f880088008800880080005f7200000001080168014c014a01e80f48014c01480150010001607230018e008800fe0f88000000fc071008fe090808f8080006617230010e010801fe0f8800880820082008fe0f200820082008627200004c014401340124012501f60f2401240124010c0100006772b0008e008800fe0f480040081c04ea020803c802380408086972b0008e008800fe0f80001008ce0c3802e8091804f8030000727230010e010801fe0f880020089c089008fe0f900890081008757200003402b402b402b402ac02ae0fac02b402340264020000797230010e01ff0f840010009202920292029f08f207920000007a7290008e00fc0f0000fa0f8a057e040a047e048a04fa0f00007d72000014025403dc037c035e075c0374035403140334020000807200000007fe03aa02ba028a02da078a02ba02ba021e020000817240002a029a02be029902a90f80029e02c002c0027f020002a07260021c01fe0f88000006d40ed6077c0254075606540b400aa77210010c01fe0f8800a007bc0efe0e9c0ddc059e06bc09b40dac721008100410021001d0003e005000920112021404100c0000af72120994084808f60702000000fc070408440844087c080006b67200011c018000ff0f0000100e90017f0090011202140c0004b972200116099808e6070000100ffe001000d00f160810060000c072800c9e039000ff0f000810041003ff009001120614080000c272100196084808f6070000440444044404fc07440444044404c472100192084c08f2070000380c80037e0080012002180c0000c872000092094c08f2070000fe0c0202fa0102040204fe090008d072100136098808f607000efc01040efc050206fe080203000cd772100196095808e6071000cc032a012801e8090808f8070000d972200214099808e4070000fc0f240924092409fc0f00080000de72100114098808f607020058084808ce0f4800480058000000e072200122099c08e6070000fe0f5208d20452035205be058008e172100034099808e6070000680888040a030c05a80408080000ec72000012098c08f2070200f8048804fe0788048805f8070008ed72200116099808e6070000a80c8802fe018802b80498080000ee72000012098c08f607700efe01e0031400fc0f1400f4030000f072100196094808f607000058095609f4075c015401f0014000f172000012098c08f2070000ee07000210081007fe009003160cf872000194094808f60700007c095409fc0f540954097c090008fc72000192094c08f2070000fc0f54045604d4015402bc0580080e7310008a094c08f2070000d4075e05540554055e05d40700001673100112098c08f2070000fe076a056a056a056a05fe0700001773000092094c08f2070000b407b402ae032c08e407200000001b730000240b9808e40f000ea409a40f74092c0f2409200f00081c73100196084808f6070000fc0fbc02be02bc0abc0afc0f10002973000112098c08f2070001be08aa0aaa0faa0aaa0abe0a00082a7310019a084c08f20780005400d4077e0554055c05d40712002b730800cd042604f8030200f20f9704f20792049704f20f02002c73080099054604fb030000ff07b502bf02b502b50aff0f00002e730000f40ff4009e0fb400f40f00041003fe009003160c00003473000034098808f4070000fc0f0000540dd4035c055409000036730000c9042604fb03e00f17057c0514053c055705f40700003e73000084095808e4074000fc0fec02fc02e40afc0f200000003f73000016099808e6070000f40ab40fbe04b401b4067405100944731209cc08f2070000580f5a0558070000100ffe009003140c457311098e08f307f80faf041807e2011200fe0f1200f20300004e7350093e0518057f051003b4013a031f03da0376051205100968730000940b4808f0074c00f4057c05f4077c0df40cfc0700007273000096095808e6070000f409fe0bf405fc05fe0b940904087573000032098c08f207e40fda0bd000be0fd209900efe0c000078730000fe07fa05fe05f405ea0f060c1003fe009003160c00007b73d00f2800be0ffe07ec0fdc07000c100efe011003140c00008473080828084808a80618058e0448042805280608040808000087738002b40204029402ec02a60e9402c4021402940284020000897300084408440844084408fc0f440844094409440a000800008b7300044404440444044404fc074404440444044404000400009173000024042402fc0324020008fc0704000400fc0700080006967304022402fc032402000970040e02880168009803000c00049b7300062402fc032401000004017401440144097c0cc0030000a97304042402fc03240a00092404e4032400e40f240824082006ab7304022402fc032401040930046e0488038802780408080008af7300042402fc0324028000c4002400fc0f0400640084000000b07304042402fc0324020008fe040202fa0102077e0800080006b27300022402fc0124010000300048025402460dc80850001000b77304022402fc0324020400800f8004fe0488048804880f0800bb7300042402fc032400000cf803c8097e064806c80918080000c27300042404fc0324020000f4031401f4090408fc0704000000ca7300002404fc0304024008fe074200fe07fc0f4200fe0f4000cd7304022402fc0324011001480824059204c404480210010000e07304042402fc03240200005c064801fe0f4801480240040000ed7300004404fc0744040002f0080004fe030008fc0f44080408f27300002404fc0320020c008c02f4029402d40f940294020002fe7324042402fc03240a0008fc0554035401540f5409fc090004037400022402fc0324010c0368020808fe0788000a036a040004057404022402fc0124010000fc0f54045604d4015403bc048004067400042402fc03240200097c085409d40ffc0f540954097c09097400042402fc0324020008b4072c00a60f2400b40724080000107400042402fc0324020008f40914041002de0110041408f40b227400042402fc0324028000d402d409bc08c407640094030004267400022402fc0124010000b407b402ac032e08f40f340000002a7400042402fc03240200080805fe0558015801fe0508050008337400002402fc0120038800fe0f48000003c800fe0f48008803347400005a005a015e017a015a0158017a055e035a015a0090003c7400084404fc0744060000e806a800ac0fa800a801e80308044b7400002404fc0324020000f407bc05b605b40fbc05f00500055b7400022402fc0120010404f60494029001f00094029602f4045c7400002404fc030408f007b802f40f1600d6030408c80710005e7400042402fc03240200003c00b00fb007fe00b00fb000bc0f5f740000940e54087c045406940a40095409bc045401540600006a7404022402fc012401000cfe00aa06aa00fe06aa01820f0000707400042402fc03240200087c045402d401fe075608540b7c0b837400022404fc0324020400740f6403d60564034409740f0000877400002404fc03000cfa032a08c00716072a04e80f280968098b7400002402fc0124000002f402f402f60ff402f402f40210029e7400022402fc0320010a0468057e03e8016e0568056e090000a77480007c08740bb40bb40bfc0b000f540b760f540b54090000b07400022402fc0124050004fe04be07ba01be02ba027e051005ca7400042404fc072002080cfc0ffe07ec07ec07e80be80b0008dc7400080006fc0104000406fc05020482073e08c203000c0000e2740000740dfc01fc0f7401000efc010406fc050402fa0f0000e37404004d0de603000dfc07fc0b0208fe075801e70f54010000e4740004fc05fe0ff409ec01f00dfc03040efc050406fa0b000ce67400000404040ee4091c08d40414051400f407040804080406ee7400005808480ee4077207680762076a01720f640848084804ef740000fc070405b404e4041001020cfe0b9200f20f02080006f6740000880cfa038800fe0f8a000008fc0f9400f40f04080404f77400004208540cc00b6809640b56014c01540f640860040000047500007c097c055c076c053c00800f7c089400f40f040800061875000008000800fe0f8804880488048804fe0f0800080000001a7500000401040ffe095409540b5409540bfe0b0409040900001c750000920f9204fe0492070000fe0f880488048804fe0f08001f750000200890088e0888088808fe0f880888088808880800082275000ce4032409b40abc0aae0aac0fbc0ab40aa40a240800002375000ce4032408bc0aa40aa40aa60fb40aac0aa40a20082000257500002b022402ff0124010008be06ea01be04aa04be03000028750000000cfc03240124012401fc0f240124092409fc07000029750000000cfe0392009200fe0792089208920a920afe0900042b7500000800e80fa802a802a802fc0fa802ac0aec070800000030750000fc0f440444044404fc074404440444044404fc0f000031750000f80f880488048804fe078804880488048804f80f0000327500000000fc01940094009400fc0f940094009400fc01000033750000fc03240124012401ff0f2401240124012401fc030000357500000000fc0324012401ff07240924092409fc09000800063775000000097c0954055403fc015409540954097c0900070000387540002000f807ae02a802e803a802e80b0808080cf80300003a750000fe072202fe032202fe03000008080808f807080008003b750000f40f0404f40554055405fc0554055405f4050404f40f45750000f801fe0fae0f78002209f2043a02e609220ce00300004c7500000001be08aa046a023e002a006a0faa00be00000100004f7500008008fc0fd408d408fc08d403d404d406fc0880080000517578080006fc0100061000fc0f44044404fc0744044404fc0f54750000fc072402fc032402fc038000a800fe0fa000ac008000597500003c00a40fa20a920aa20a800fbc0a840a440f3c0000005c7500004400d40fd40afc0ad60fd40ac40aa40aa40f2400000062750000a000ae02ee02ae02ee07ae02ae02ee02ae028000000065750000fc07fc032402fc039000880fd608a408dc08c40f400066750000fc07fc032402fc03000828092809be0f2809280900086a7590009400dc07b4059405bc079405b205da05da07900040006b7548007c04fc07fc07fc07fe07fc07fc07fc07fc074804000070750000000abc0aec07ac06bc02ac02ac06ec07bc0a000a000074750000fc072402fc077406ac03f4035e0d540d5409540700017675000038000a0fec0ba80bae0ba80fa80bec0b0a0f380000007875fc072402fc032402fc032000b403b402ae0b3408f40720007f754000e6075905d4075805ff0fe00476037907b40852084006867500007405540f5c0cc0070400fc0ff40efc0ff40efc0f44088a750000f009fe08fe0ffe0ffe0fae0ffe0ffe0ffe08f00900008e750004e4070404f4034c020408f4049402fe0f9402f40c00008f750004c403f4034c020008a4073c00a60f2c003c0f64084404917500096e095405d4035201080da2032a04ea0f360962092008977538098004fc030400240024082708a40f6400640024000000997530090005f80308004804280aac09a809a808a808280400009a751809800cfc030408c40834042602a40164020404040800009f7598088006fc0104008400f407950496049404940494048400a47598048002fc010400f4039404f60494049404f40404020000ab758808b00efc0104084408b40596069406f405c40844080000ae758c084006fe0162002200f2072b082b092a09f20812062200af753801800cfc03040cf40314009602d4031400f40704080404b2759800800efc01040ef4015404d60574025405940434080000b975b8088006fc014400240a940a56091405a404240244010000bc751809800cfc0304002405b404d608d40ab40a940004010000be759808a00efc0104088404b404a602e401a402a404a4080004c57598088006fc010400d40f54005603f40054035408d40f0000c77598048006fc010404d40714041604f4079404940494040000ca7598048006fc010404240514055605d4075405140524052404d27588089006fc010400a402b402a602e40fa402b402a4020400d57598088006fc010400fc0fac04ae04ac01ac067c0504090000d87538098004fc030408d409540b56095409540dd40914080000db759808800efc010400ec0fbc02be02ec0fbc02ac0aec0f0400de7598048006fc010400540754053605f4051405540554075400e2751801800cfc0304065401f40f46010400f40b0408f4070000ea759800800cfc030408e40554055603d4037405c40504090000f075b8088006fc010408940944042602b6012402440454090408f4751801800cfc0324089404f40396020400f40f14041404f40ff97500001801800cfc030408fc05ac03fe01ac01ac0ffc0104010b769800800efc05e403f40076057607f405f400f407040c00001f763801800cfc030408f40f9409b60fb409940ff409040f000824769800800efc010400bc0fac0aa60a8c0fbc0a8c0abc0f000026761801800cfc0334086c0b460df405640d6c0b7c090408000029760c01800c7c038407d405b405b605d405dc05bc06940014002a763801800cfc030400f406f40df60df40bf409f40af40a04022b768808900efc010406940174032600f6075405f4075405000438760801900cfc030400540fb400f6058605bc05ac08bc0704003e765c00c00f3e00fa073600ce041302ea07ea05fa066200020742760c01800cfe0302084a04ea01bb0aaa0eba02ea0b4a0840004c761801800cfc0384007c05ec042e06ec046c057c05c405000052769800800efc01040cf401f405fe085c0a1400d406140800005e769800800efc017406b401fc0fb401760ae407b403f409000861769800400efc0104087405f403760804077404f40f5409540962769800800efc01bc00fc0fbc0bfe07fc07fc07fc05bc08a40063769c00400efc011404f405fc055e05f603ac02e40fb40224026e761801800cfc03f40f6c029c09a603ec0fec0fec0bec0f04007a768000500954096405dc0344014001c80754097009480540007b76000040042a0492055a07560550055c0792052a04480400007c7620002400b40bb40aec060400700b1c05f0079809a80000007d7600000000f80f480448044e04480448044804f80f000000007e7600000200f20f920492049e04920492049204f20f020000008276000000017c015401540756095409540954097c090001000084760000f80f4c044a04f80700001c00ea080809080cf8030000867600002000fe076405640540055e0564056405e60710000000877600000008fc0ad40ad40ad40ad60fd40ad40afc0a800800008b7600008002bc02bc03ec02ae0eac02ac02ac03bc028002000293760000f8074e02f8030000500f4c0948097e094809480f4800ae760000000cf8034808c80848097e0648064809c80818080008b1761804940493049a04f60f0004fc0bf40c1f039404740c0000bf760004fc0704040404fc0704040404fc0704040404fc070004c37620002408a40f9408940fbc08840f94089408a40f24080000c576000000003c08240f240f7e092409240f24093c0f00080000c67600001008880f9409720f1009920f96096409080f10080000c87600000208720f0e096a0f7a09020f1e099209900f70080000ca7600098808c90fbe08880f8808880f9c08ab08c90f88080009cf7600009808980f94095e0f7409560f5409b409b40f14080000d0764808280fa808be08a80fa8088008be0f88089008900f2008d17600003c08800f8008be0f80089c0f8a08a808a80f08080000d27620003008d00fb809b80fb609b40fb809b009d00f20080000d47600002408940f8e09540f4409340f44095409940e84080000d67600008008a80fac09a80ff809a80fae09aa09a80f80080000d77600004208240fa009880f46093c0f34094409540f4c080000d8760000a008a00e7c09640f7409260f2409a409fc0f20082000db76000060041c075405540724054e0734056605940644040000dc76000008086a0f0209580f4609240f1c092409440edc080000df760000fc08540e54093c0f40093e0f2a092a097e0f00080000e1768802aa08aa0eaa0aaa0fff0aaa0faa0baa0abe0c08090000e37600007e04da07fe04da07da048007ce04c804c80748040000e476900070081c0f3409960ffc09ae0f52095209760e98088400e7760000c00f3800980fd80bde0ffc0bfc0ffc0bec0f08080000ea76000008046a07020550073e057e077e053e05be0650040000ee7600000000fe0f920492049204920492049204fe0f00000000ef760000fc075402fc030000040004080408fc07040004000000f1760000fc079401fc010000440044084408fc07440044004400f27604000400fc07740574057605740574057405f40714000000f4760400f40f04040404fc055c055e055c055c05fc0504040000f876000088014800ff0f48000000fe0f920492049204fe0f0000f976fc075402fc030000e80108010801fe0708090809e8090804fc760000fc079401fc01600c1802c401400044085807e0002000fe760000000cfc031400d40fd40afc0ad20ad20ad20f100000000177000050004800c40fc00aee0ae00ad00ad40ac40f08000800097700000006fe010a00fa0f5a055e055a055a055a05fe0f00000b77000194005c00fc0fbc0abc0abc0abc0abc0afa0f100000000c770004fc048003be01ae00ae00ae07ae00ae02be028004000019770000fc0754025402fc030000b00fac04a204a804b00f20001f77000a040afc0bbc06bc06be02be02bc06bc06fc0b040a000a20770000fc039401fc010008fe0f92089208f20192069e08000428770000fc075402fc01200c280224063409a4086208240800002f770000fc075402fc032008bc072000fe0f2000a8012406000036770000fc0f5402fc030000fc0f0408540af40b540a540a000037770000a000a800ee07a807bc07aa07a807ee07a800a00000003a770000fc075402fc0b08088006fe010000fe074008980988043c770000fc0754025402fc030000fe0f5208d2015206be0980083e7700043e02b20132013e00f20f32003e06b20132021e0400004077000194005c00fe077c057c057c057c057e05fc071400000041770000fc075402fc03100058095609f40f5c015401f00140005b770000fc075402fc030000dc0f5c035e035c0b5c0bdc07140061770000fc075402fc034008f4095409fc0f5409f20950010000637700002800e40fbf0aae0ab60ab00ab60aaa0aea0f1600100066770000fc035402fc030000340534059e0734053405540500006c770000fc075402fc0300005407c400ec07c40052014a06000079770000fc035402fc0380005400d4077e0554055c05d40712008477fe072a01fe010000f40f94049604f40794049604f407040085770000fc075402fc071003fc0f9600b0080006fe01000738088e770000fc035402fc03000074077405f605740574057407400092770000fc075402fc01900f5400f6015404f4035608d4070400a57700007c003807fe07bc07fa079007ae07b5073c0744004400a7770000fc075402fc033008fc055a01580dfa01580d5800000eaa770000fc075402fc032000fa053e0730053e07d40764040000ac770000fc075402fc0380095405d4031c00d203da0f52020000ad770000fc075402fc01600cf4016c09660f6c01f401440c0000b377fc075402fc030008f40b740b740bf60f740b740bf40b1008bb770000fc075402fc01200cf8031608b40f940fbc0fd00fd000d7774008e407fc06fc06fc073c007a0f7c0ffc0e7c0f640f0008db770000200224022c01ac087408f4072c002c01a40060002000e27750085808470445024403fc00440144024404440840080000e377000948093c092a052903e801280326052409280908090000e577100848084706fc0144060000fc0f040404040404fc0f0000e977000052084c06f80148060000fc0f240924092409e4090408eb7758084706fc0144020008540c34031c001400320f52009000ed77000050084c06f80148020008f40a940a9408940af40a0408ee7758044703fc0044034000540ab40b9406bc04b206d205d208f377000104018400e40f5c044404440444044404c40f04000000fe770000c200fa0f2602e20b0008fe0722004200fe0700080007ff778400f40f2c042404e4070000fc0f0400070004000400040000788400fc072402e4030008a60c76023601ee08260ce003000001788400f4072c042404e40700007401440144097c0cc003000002788400fc0724022402e4036008180480047e020001980020000c788400fc0f2404c4071000fc0310090404fc030408fc0700000d784200fa0716021202e20318080707f400840124021c04000014784200fa0716021202f0030208fe0722002200fe072200000015788401f4072c022402e403000074010e01840f3c012001100116784200fa0716021202f203000052017e025302520dd20012001a78c400f40f2c042404e40700007e0e0201fa0f0208fe08000630788400f40f2c04e4070000b4008400fc0f8400b4008000000032788200fa0726042204f20338079c089808f8080808f809000434788400f40f2c04e403000cf803c80848097e064807c8081808387800008400f40f2c04c003fc0fe4081408f40b1408f40900003e788400f4072c042404c4073c0044034408f40744004203400440788400f40f2c04e4070000bc0720042004fe0720043c04800f45788400f40f2c042404e407000028092809be0f280928092008557800004200fa071602f2030008fa040a02ee010a04fa0500045d7800000401f40f4c04840ff0071c0050015e011009f40f00006b7800008400f4072c04e4070000b40f2c00a60f2400b40f20046c788400fc0f2404e4070000fc08ac0aac06fc05ac08ac08fc086e788400f40f2c04c4071000f80f5601f40f5c015409f00700007c788400fc0f2404c00bfe079200fe070000fe079200fe0f000089788200fa072602e2030008fe070200d207fa020209fe0700008c788200fa0726022202e20300006a022a09ea0f2a01be02a0048d788200fa0726022202e20300015f0355035509d50f5f0100018e788400f40f2c04e4070000640114012401c60f34012401440191788400f4072c022402e4037c00d4017e015401d4077c01000197788400f4072c04e007c400340ca4034600f4071408f409000498784200fa071602f2010004fc0ca402ff00a400ff02a404fc009f788400f40f4c04c00708007c0d4803fc0f68037c0548090000a7780000ca04ea02fe0fea0a800afc0ad40ad60ad40efc000000a97800008400fc072402e40b0008fc07ac02ac02ac06fc0f0008b0788400fc0f2404e00788000e09fc0f0808fc0f0a08c8090000b1780401d40f2c04c40bf0070800a80f08077e0288056a080006b3788400fc072402e4030008ac0768002e0da8032804ac092000b4788400f40f2c04e4070000a80bd80adc0ad80aa80b28080000ba788400f40f4c04c4074c00e40f5c095609f40f540954094c09bc7800008200fe072202c0077e03aa04aa00fe06aa01820f0000be78c200fa072602e2010004fe038a08ea07aa01ea02ae040000c1788401fc0f2404e4030c08680f8e08e80e4808a80fce08280ec5784400f4074c04c407000074085c06dc017609540954070000ca7800005202d2077a056e056a076a02ea076a057a0542074000d078500550053c03540f160b7c0b080b660b520bbe0f98018001d57800004400f40f2c04e003c80ffc0fce08cc0fec08c80f0008da788401f40f2c042404c407fc02dc06dc0efe0adc0ffc020403e878000efc010404b404b40eb40b960a840ab40ab40ab40e9400f4784400f40f2c04c40720009a09da0fd608d60c9a0a20080000f7784200fa071602f20380087607cc015f00cc01f50754010000fa7800008200fe071202e0034a08ef04ea02fa00ef02ea02000c017900004200fa071602e201080cff00ac06fd00ac062c0000070e798400fc072402c40b14084c045e07d00f4c095e0954091008197900000401fc03e40b0e085407d40140080c07ec0f2c0964003a79000020042402a40124082408e40f24002400a401240220043c79000088018a00ee0f580088010000fe0700080008000800063e79000008018800ce0fb800080920082008fe0f2008200820084179000088004a00ec0f580088000000fc0f040074028c010000427900018800ca0f780088002000fc072008fe091008f8080006487908018800ce0f780088090004fc0324002200e20f22002000497908018800ee0f580088080008f00f0008fe0f200820080008507988008800ee0f580008018000f80f4e0448044804c80f0000557988008800ce0f7c000808e00c0002f207c40830086c068000567908018800ca0fb8000008fc0f2409240924092409fc0f00085d7988014800ee0f580080083c042403e4002400e40f3c0800065e7988018800ee0f5c008000f80328012801fe0f2801f80100005f79000080049604b402b400be07b400b402b402960480040000607980004900eb0758008200ea032a012a01ea090208fe070000657908018800ce0f7800080040014a014a01f80f4a014a010801687904097405d405d401fc09d409d407fc01d405d405740d04096d791000100198086e044c0174094809460f5801640354038c0c777908018800ca0fb80000045402d4017e035409540f44010000787908018a00ea0f98000000dc0f5401f400540b5408dc0f00007a7908018800ea0f580040080809fe0558015801fe050809000080790000040afc0b8c03fc0bdc0bde0ffc038c07fc07040a00008179000014094c055e014c094409500f4c015e050c0534092000847988008800ce0f7c00080042042a022a09ea072a01be02a004857984004400e60f5c000401f001aa01f807ac01aa01f80100008d7980008800ec0f1800c00f7c00c407f402d4035408fc0700008f7988004800ee0758008200fa0f6a056a05ea076a057a05c207a67900002405b3058005eb01fe01da078001be0382033e050005a77900018a00ea0f900004007c0fdc0b5e0b5c0bdc0b7c0f0401aa79c4002400f50f2d004002ff02ad02ff0faa02ad02ff020002ae7988014a00ea0f98000008fe0bff0aea0aff0aea0afe0b0008b17900018a00ea0f9000c40ffc05fc07fe06fc02fc0fdc020000b9790000840fbc00ac04ac04fc07ac04ac02ac0aba0882070000ba790000800ffc00d402d402fc03d402d402d408fc08800f0000bb790400040f740164056407d605540554034409740904070400bd791000080fe801c4019405b207ba05b2078409e80f08000000be79200424022401a4006400fc0f6200a2002201220220040000bf79000090085408540434037c00340034075208520890048000c07988084c082c049c038c00bc008a0a9a092a094a0748000000c179000292015200fe0f520052040007f8040604c004000f0008c37900005008540854043403bc00940034075208540850060000c679000018039800fc0f9400000144004400fc0f440044004000c97900002804ba04ba02ba01ba01fe0fba01ba02f90228040000cb79000092035200fe0f52000008380480037e00800330040808cd7994035200fe0f52000200f80188008800fe0f88008800f801d179000094035200fe0f5200100142014c010001fe0f00010001d279000094015200fe0f12008008380480047e020001d8000000d57912039200fe0f52000000fe0f20040000fe07200810080806d87912039200fe0f520080096004fa07820860081e08e0060000df7914039400fc0f540094090008fc0f24092409fc0f00080000e479000014039400fc0f90008400b4008400fc0f8400b4008400e6792001ac086c04ac03bc03ae0f6c012c036c04ac0820010000e779000014039400fc0f92000008f8088806fe018806f8088008e97994035400fc0f5200920810044e024801fe00480348044008eb7992035200fe0f52009202000690017000fe0f500096011006ef79000094035400fc0f520000087c064401440044017c0e0008f07992035200fe0f520092021002cf010408fc0f0400ec010402f87914039400fc0f92001a00480f480948097e094809480f0800fb79000094015400fc0f52000209a804ac0456057402cc014000fd7914039400fe0f530000099e09500870055f065002d0015e00007a10039200fe0f12000001ea07ac00bc00a40fac00aa04a803057a12039200fe0f42000808f40492039000920fe408080810040b7a000018039800fc0f00013c08a40aa40aa40fa40abc0a00080d7a92015200fe0f52000000f207540150015e015005f60700000e7a000094035200fe0f0200380cca034800cc0f4e087a0800061a7a000094015400fc0f52001000fe0fa804fc07aa04a8040000207a18039800f80f9400000cfc030400d407f402d40b0408fc07237a1000f8055605f4055c05f4062007a400fc0fa400220700002e7a0000ca012a00ff030008fe0aae0afe0fae0afd0a00080000317a14039200fe0f92000002e80fa402a402ea03a20aba0ae207327a14039200fe0f52001200c00f1200c20f5a054205da0f0000337a24022401fc0fa200000658005605560b54095c01f0050008377a94035400fc0f520000097e099605d606be06560556085e003b7a8a014a00fe0f49000000ca07aa0481042d04a104ed0700003c7a14039400fc0f520040055c05b4027609b406d4005c0340043d7a14039200fe07920010007407ac07ae07b407b607960754003f7a8a034a00fe0f4900800f5e00560f560557075e00c20f0200427a14039200fe0f520080067c00ac0cac09fe0aac02ac06fc08467a12039200fe0f52008008bc0c2c052c05ee062c02bc0280004c7a100cf801560df4015c0df0020406a401fc0fa400220700024d7a98015800fc0754001004fc05fc05fe01fc01fc05fc0510044e7a0004ce02d401d40fb4018008fc07ac06ac02ac06fc070008577a12039200fe0f9100000e7e005609560bff0b5605d60f7e01697a12039200fe0f9200000cf401f205fa0bf209f901f50da0086b7a94035400fc0f12003408f409fe07f405fc05fe07b4090408747a000038080806c80108000e00080048008801080638080008767a0000ac08a40894049c02c4018600bc00a40724082c080006777a0000ac08a40894048403e600840894089408a4072c000000797a00000c0004039402ac02a402a60abc0ab40af406140200007a7a00000c08a408a4089408870f94089408a408a4080c0800007f7a00083405b4052c052c03260b2c09ec073401340124010000817a0000ac08a40894048c048e03e6008c03cc04940884080000837a0000ac08a4079404940206084406d40154085408d4070000847a0000940054004c002c00e60fa402ac02ac02b402340000008d7a00006c04e407540214024600c4015409540964096c070000917a000094009406b404ac04ac04e607ac04ac04940694000000927a00001408b40af40aa40aa60fac0aac0ab40ab40a04080000937a0000ac0ca40294006c064408460b7c0874084c034c040008967a0000a400d40eb40aac0aa60af40aa40ab40ab40e94000000977a00001400d4072c06640676056405ec062c04d40714000000987a00004a045a035a0fd60b730b530b5e0b5a0bfa0f4a0040009c7a00002407d405b405a405a405f60fa405ac05f405140700009d7a0000140f0c017c055c05d6035c035c057c090c09140f00009f7a0000140ff400b40aac0aa60aa40ebc0ab40af408140c0000a57a0000a604a202f601a6020708f2051604d6031604f6050004a97a0000140ff40134012c07e60764077c077407f40914070000ae7a000af407f406f40eec0ae6070600bc03b40ab40af4060000bf7a0000f40fbc047c030c08c60af40ea40fec0fac0f8c080000cb7a000008040804680488050e040806c8052804080408040000d67a00087e090009000b7e090009c6092a09320d2a0946094008d97a00000802ea028a0368010000800ffe0488048804880f0800dc7a00001400f403bc02b402f607b40abc0ab40af40b14080004de7a10081408d409540554035601540154075409d40910040000df7a00001408f40bb40ab406b602b402b406b40af40b14081004e07a00000a04fa055a055a055b0f5a055e055e05fa050a040000e37a2804c9048a03600208082c09ab068804aa07ac0828080000e57a00001408f40afc0af40af60ff40afc0af40af40a14080000ed7a2804c9050a040803c8001e06aa04aa05aa06aa08be070000ef7a0804fc020803e8020c00b00fb007fe00b00fb000bc0f0000f67a0008d40edc01d607dc041400c0095c075601540fdc090004f97a200030000e00f90f0800200010000e080808f80f08000800ff7a080124012e0124012001e80f26012e012401240104010000067b00000800e6072c0924092009e80926092c09e409040400000b7b48004408560554055403f001560156015401f40344000000117b8808a404a604ac02a403e000a60194029404940484080000147b0800a802a602ac02a402e407940a560a5409540904050000197b00002804a604ac04ac04a404f007a604a604ac04a40404041b7b00001800c60f5c054005f807460544054c05c40704000000207b1000580846085c09400a7808460c450b5c08440804080000247b0800880056065c053c051005160554055405340704000000267b10018800e60f0c0044005001480246084c08e40744004400287b280226022601ac026002f80f2602e4022c012402240200002c7b00000004d60554055403f4075401560554057405040304003c7b5008480846064c01e4044004d807460a6c09cc09c4084004467b58024603ee03e403ec03fc07e603e403ec03e40344020000497b40015601560554055001780956095609dc075c01440140004b7b0000080ce6036c09e00f0800460ce4034c084408c40700004f7b08018800e60f0c0044084c046804c6034c066c0964084406507b00000000f60f1408b40ab00af40bb60abc0abc0a14080000517b000028022802e6032c0a0004e80326002401ec0704080404527b00000800f60f1c005c0750055805560554071408f4070400547b88004600460f6c0964095809560966094c094c0f44008400567b00001004d605560454025001f80f56015402d404140400005b7b0800e8090604ec030c00c40750005600f60f54005404d4035d7b8c00a200b302ae0aaa0ae807ba02a302a602e60382000000607b48044404e6030c02c4022000b802a60aac0a2408e4070000777bc8010800e60f0c0054088404a002f601a400ac03e4048408797b84048c04ab04aa03fa06ae06ac06ab02aa0eaa028a0280007e7b000058084608260b24085008580b5608240c2c0b44084408807b0800c80f1600d407500558055c05d6071c00f40f040000008d7b28012409f60f0400f00f1808d60b5608d40b5408d40b00088f7b82008a02bb02aa0aaa0ae807a802ab02aa02e60382008200957b0000100a160afc07b406b002b602b606fc07140a140a0000977b0800080ae60afc06f403f002f802f602f40ffc0204020000a17b000070001600d40f540b540b500b560b540b940f34000000a97b080074095609d404f406d806d404f602d401d40074000400ab7b2000700e7601740c7400f807760076067400740f24000000ad7b10001400f20fbb02b20af2071000d3031a081208d2071200b17b000058064601fc0f54010400f40756055c055c05f4070000c07b00000408f40fb608b406e00c0800e60f14001404f4030000c47b0800e8057605f40f7405f4050400f60714081409f4080006c77b0000800f7600540fd402dc0fd802d60fd402d40af4070400c97b00005409540576050403880f660176035405f40584054409d37ba809a409760b240da405f005260524077409a409a4090000d97b0000940ff400f600f407f005f605f407f4009408940f0000e07b80004800fe0fcc01000890057603540f7403540554090000e17b80028402fb01fe04fa06f804fc04fb06fe04fa0982020000ee7b00000008760f04096c0f0009360f2409ac09ac0f24080000f17b0800140fd601d405d407d805d405d6039409d409140f1400f77b84089404a6070c08c40ad00bb40bb60bb40bd40bc40a0000077c08082806ee01a40cac0328081c055605d403540354051009217c0200fa073b00fa077a0540057b05fa073a003a08fa070000387c240af40be602e406f40f0400e40fa609f406a406a40900003d7c00002808a6055c055405e809b00856056405ec05240800003f7c4400540606010400f401f007f405f601f407f401f4010401437c0400fc095b0fde0b5a0f7c0b6f0e130a960a920e920810004c7c08024802d60ffc0ff40ffc07f40ff60ff40f7c07540604024d7c0000b404b402f60fb4010000d00ff60ad40af40ad40f0400607c00005408f407d601fc0ad0071000fe07740b740b740e0404647c0000e00ad60bc6074c04e407e00f7604c4035c0744084404727c2800e80ff6073403fc0fe403e80ee609f40af402f40b0008737c4008440458024001c000fe0fc000400150024c04400800007b7c480948092a092a051803be0118031a052a054809480900007d7c2c03a000fe0fa0000c01400044084408f40f4c0044004000897c2c03a000fe0fa0002c0960045806c4014008460898072000927c2c062001fe0fa0002c0100086808880b0e08880f68080808977c08002003fc0fa0002c010008fc0f240924092409fc0f0008987c00002e03a000fe0f2400800f8004fe0488048804880f00009e7c8c032000fe0f8401fc0f1404fc051404fc041405f40f00009f7c04097405d405d4057c03540f54017c035405540574050409a47c00008000fc00c403d602d602d40af40ac40efc0280000000a57c0000f20892089e073c03fe0f28000403700892089e070000a77c2c07a000fe0fa800000cf80308084808ee0f480848080000aa7c0000280aa80aaa0a9c0bbe02880298069c07aa0aa80a280aae7c2607a000fe0fa0002e010000fc0f5404d60054037c040004b17c6409110541058c032001920f2e014203c2057e050c053009b97c0300d001ff0f500093018000ba008200e3079a009200a200bd7c0006b801fe0f200008030408a406a700a40fa4008c02800cbe7c02002c07e000be0f0000d40fdc02dc02de0adc0adc0f1400ca7c0c002003fe0f2c00800f7e04c803000cfe039208fe070000d57c0600a003fe0fe8000008a806aa00ac0ef800ac0caa00880ed67c0600d800ff035800100ffc007403f402f602f402f4032000d97c0c00a001fe0fa80024094004dc070008ac0bbc0aa80aa80bdc7c000efc0104081c05bc052e03860f1c03bc031c052c050000df7c0600a001fe0f8c003a00d60fff0ad60aff0ad60afe0f0000e07c03009001ff0fc202ff0101025501ff07d7033d0191028102e77ca801fe0fa0002808e00bfc0bfc0bfc0ffc0bfc0bdc0b0008ef7c0300d000ff0fde018d07bd00a507ef00a507ad00bd070000f87c8004840498039401e300d00f480044017401400280040000fb7c000000049404d402dc08b408940f52004a01420282048004fe7c0000900edc00b20c88020000fc03000100010001fe0f0000007d000048077c00d20f48010000e4072408240824087c080006047d48077e00d00f4c00000310004e0088090808080cf8030000057d000048077600d00f4c00e00a04080408fc0f0408040800080a7d00001408540554057c01f409560f54011c059409240a24000b7d48076e00d00f4c00e00a08083804c8020e03c804380408080d7d48076e00d00f4c000001f80f0801c8003e00c808f8070000107d100e9c00f20ec80080020408440cfc0b4408fc0f40080000147d48076e00d00f4c010000e80308010801fe070409e4090004197d48077600d00f4c0064010004fe072204fe012206210c00001a7d48075800f60f6000400b0407fc00840424053c03e00420081b7d48077600d00f4c00000b70084e06c00142084e08d0072000207d20002a096a056a03ea0bff096a072a01aa05aa09200b2008217d48077e00d00f4c00c40a00080807f8002e082808e8070800227d0000340814055405f4015e09540f3401b405140534090000277d00081e098005de01c009a209920f5e0152051e05220920002b7d10091c0950055e05b401900f4e01140594051209080a00002f7d000000083e056a05ea017e096a0f2a01aa053e0500080008307d48077600d00f4c01c000fc0f44044404fc0744044404fc0f397d48076e00d00f4c0000032000a20f9e048204a2049e0f0000427d48076e00d00f4c00800288004e04350534054c0940000000437d100edc00b20648004007480068065a05cc042806080c0000447d48076e00d00f4c0000030008fc0f240924092409fc0f00084c7d48076e00d00f4c000003420826092a09920f2a0926094008507d48076e00d00f4c00a0030400a40fa404bf04a404a40f2400557db00dec00a20498020000f40734092c09e40934092c09e0055e7d48077800d60f5000000b280898041803ce03080428082800617d48076e00d00fcc00c4039000c80fd604a404dc04440f8000667d48076e00d00f6c012000900f8c04a204a4048804900f20006e7d00002c082c059601d409cc09800f5e01520512051e090000717d480f7600d10f4c0000090404bc0327002c00bc0f04080004727d0000900efc0092064802000058037608d00f4c00e0020004757d48077600d00f4c00000b10088806a605a4048806b00c1000767d48076e00d00f4c010000f80796089608fc089c089408f006937d900cbc01e20cd800000a3a0842091209ea0f82093e094608997d40076e00d00f4c000001fe0f0004a804fe05a0042c0500049a7d000048077e00d00fac038009540454035e005406d40804049c7d300eec00a20c980200008c0ca402a700a40fa400ac02800ca07d300eec00a20298040004da025408d40f74004c0280040000ad7d48076e00d00f4c0040031000fe0fa804fc07aa04a8040000b17d4e077000ec0f4001fc0fec03e4032402ac0b2408fc070000b27d48077800d60f8002fc0f0c00bc03e404b4040400fc0f0000bf7d48076e00d00f6c010000be07aa00aa00eb0faa00be048003ca7d00013e052e05be05ee01ae07a2015a031a03260542050000cf7d48077600d00f4c0000015e044000fc0f6409710846038804d17d48076e00d00f4c0000052004aa022a08ea073e01a0060000d27d48037600d00f4c00e003840094077e0554055c05d6071000da7d48076e00d00fcc00c0059c02ac092c08ee0f2c03bc040004e07d48077800d60f48010800a00794009c00d60f9c00b4070000e37d2008bc0ce202d802800420047e03b40ab407bc0120060000e87d48076e00d00f4c00000ffc07ac02ac0fac02ac0fbc02840fe97d48076e00d00f4c00400914045c03f409d406d206dc055408ef7d48075800f60f60020004f405bc07b605b40fbc05f0050004f47d48077800d60f48000002fc04ac02ac01fe0fac01fc020404fb7d900edc00b204c0019c04d40794040400f00c0e03f8040008017e48075e00f00f6c00800220046a03aa0a6a07be0020070000047e44035f00e80f26000001fc07bc02bc02fc07bc0abc0afc0d237e40027c017c00fc07fc00480218017c04d4035400d0028000267e48076e00d00fcc004002f60f98071604f00f9608100800002b7e100ede0071046c0301087606e0092c08bb0afb0b260a00082e7e40077e00d00f4c014000ec0f0400d60774055405d4070000317e100ede00b10ccc020000f70f0004ce030104e807860898083d7e900edc00b20c8802000cfc0284069609a40b8400fc0600003e7e48076e00d00f4c00000afc08fc05fe05fc01fc05fc091008417e0008300abe0a3c0bfc033c0f88025e0664075c0a840a00004a7e40074e00f00fec01c007f4071e04f4039006fe07900c1602547ea0032e00f007bc001000fc07b602d80f3f03d004160e00005e7e900edc00b20488020008aa09ea07af010a0fea09aa0980056a7e000778009406520108003407f205fa05d205f405f40704006b7e00007e0a7e077f07fe0f7e0b1807f602d20a7e0a980a8008707e48076e00d00f4c010004f002de01fa07ea01d602f0040000737e900edc00b20208093e0ceb03eb09be07340c8b03780c00007c7e100edc00b2064802fe0f3408ba0f38093e08ac0f100b00088c7e980ef600910648011208ee07fe07ef03fe03ee07fa0700088f7e800edc00a2065801000cfc03f409fe0bfe0efc0bfc0b8409967e50077c006a0200097604f5071004f60f3004fe07d00c1602a07ea004b0056c05220590040000fc01000100010001fe0f0000a27e00003009ec04a2049806000004040404fc07040404040404a47e00003009a80566051005400044004400fc0f440042004000a67ea004b805e4049204800230008e0088080809080cf8030000a77e2005b805e6049002100c84037c0884053402ac0560080008aa7e00002005b805660510050000c407440844084408fc080006ab7e00003005e805a6049002000874040403fc08040cfc030000ac7e2005b805660510040002a800a800fe0fa800a80488030000af7e2005b805670510050004f40104010401ff070409f40d0404b17e00003005e805a6049002000878080004fe04000298012000b27e00009805d704b1040000fe0f0200b201da010208fe0f0000b37e00003005ce0522050000f00f1003f0009e081008f00f0000b57e00003005ec05a2049000000efe01000c0003fe0000070008b77e00002005b8056605000160085804c40340084608d8076000b87e2005b805660530050000fc0f44084404fc01440642084006b97e00003005ec04a202980a00083804ca020e03e80418040808ba7e00003005ac056205180100080807f8004e084808c8070800bd7e00003009ac05630518010208420cfe0b4208420efe090008bf7e0000b805e4049202800a100850047e04c8032a05aa080004c37eb804e404b202000054067c015608f40f4400440104060000c47e00002005b805660510010008fc0f24092409fc0f00080000c57e00002009b80566050000f80328012801fe0f2801f8010000c67e2005b0056e0522050000fc0f44044404fc074404fc0f0000c77e2005b804e604900200087c0644014400440044017c0e0008c87e00003005e805a6049004100048025604240554054c088000ca7e300aac096209100500002c012001fe0f20012c0122010000cd7e30059c04f20288022000a20f9a048604a204a2049e070000ce7e2005f805a60490040400ac02ac02940fb402ac02a4020000cf7e200db805e60490000008a408a408940fac08a40820080000d17e0000380be60990010008280dfe030000fc0f04007c028401d27e20009804e402b20208004006e80108087e0488076a080806d37e3005ec04a20298020000a407a404a404bf04a404a4070000d57e2005bc04e20498020008a404a603bc00b40fc408a4080004d87e3005ec05a20480022008900eac09a60488069004a0080000d97e2005b804e60280022000a00fb00fae04a804b00f20004000db7e2004b805660512024000a802a802ae02940fac02a4022002dc7e00003005ec04a20290021000480fb604a404b4044c0f4000dd7e20059c04e20498040000f80796089608f4089c08f0080006de7e2009b805660510014008380898050a02c805280848080000df7e2005b805660592041002400868075e00480f680848084806e27e00002009b80564050000e00fbc02b402b40ab40afc0f0000e37e3005ac04e20498020008ac049c038c00bc009a092a070000e57e3005e804a602a00208084405e4066a02c2055a0c40040000e77e2000b805e604b0020000f8070404a004fe056004ac050000e97e30059c04f202980a0008dc055c045e035c005c04dc091000ea7e00009804f602920200025400d4077e0554055c05d4071200ed7e2005b804e60490020000b40814051e03d401140570051008ee7e0000b005ec04a2043800a007b402ac02ae0b3408d4073400f07e20059c04e20498020000f802a802a802ae0fac02fc020002f37e0000b0056c0522050000fc03b402f407b40ab40afc0b0000f47eb004ec04a20298022000fc0faa04a804fa07a804a8040000f57e20009805d604b1020000be07aa00eb0faa00aa04be030000f77e2005fc05b204000cfe039208fe07000cfe039208fe070000f87e0000b005ec04a2020008fc070400d407f4020409fc070000fc7e00002005b8056605000518008802aa08ac0fa800a8028004fd7e00003005e80524050001280ca8032804ee0f280928090000ff7e0000b80564051205880040042a022a09ea072a01be02a004007f0000380aa40b7309000caa089a060409a00992069e0ba208057f0000bc05e20499020800e2071204f2075e05f207f2070000067f0000d8024e0279010004ef043f02a00128032604ec0504040e7f00003805e60491000002fc0f52020008de054202fe056008137f2005bc04e3049802c00c5402f209d606d106dd0555080008147f1005ac05620518050000b4079c00d60f9c009404b4030000157f00003805e404b2040802a008aa0b9806de0498079a04a808167f0000b802e40292000006fc019407d603d4075401dc070000187f2004bc056305190000056c056b05aa0aaa07be0120062004197f9004dc02a30298020200ea0f62057e057e056205ea0f20001a7f2005b0046e0520050000780178057c017809fc0ff80100011d7f0000dc05b30488002208e0070408af0aea0bae0aa20a0008207f00003805e4051201000cfc037408ae0afe0fac0afc0a0008247fb8049602f102080806048204fa02aa00eb02aa048e080000287f000aa009f809a60100085e093a0b8e0d0c057a0b42095e09297f2001b804e60200028c00e40f1400d60774055405d40700002d7f1805d605b1048c00200cfa015609530f5601fa0522040000307fa002b802e60290000404fc07fc07fc07fc07fc07fc074404347f1004bc04e3021800be0ceb03ea09be07340ccb03780c0000367f00005000480f47044404fc07440444044404440f40000000387f0000a8072604fc032402a40700000404fc070404040400003a7f0000a8072604fc0724040407c000c80efe01c802f804c008507f10000807fe0724070401340ffe0f140fe40f3e0f340f0400517f0000fc0f04002403e40004042406c401340b0408fc070000557f00000401540154015401c40f4c014c015401540104010000577f00001e09920852087e05520652025e025201d2001e0000005a7f00009e00b208b20f1e0412041200de0312081208de0f0000627f00005c09540d540b5c09d40954095c09540554055c090000697f00001c02d403d403dc03f407f403fc03f403f4033c0200026a7f0002bc0ab40ab406ec0114001400ec0fb402b402bc0200026e7f2000dc0734043404fc07f407f407fc07f407f4073c040004707f2000fe07fa05fa05fe05fa070a00ee010a080a08ee0f0000727f2001ae00ba00ba077e057a057a057e057a05fa073e002000757f00080e04fa00fa01fe07fa00fa02fe00fa02fa049e030000777f00005c08f407f401fc0a94077406bc0ab40ab40abc0a0000857f00006e0dda014a0d0e054a00fa0fae0aaa0aea0fae0aa00a8a7f000148014a014c014801f80f48014c014a014801000100008e7f400858095a095c055803f80158035c055a05580940090000947f8008a806aa00ac00a806f800a802ac04aa00a802800400009e7f2001b804b8047c047805f807780578057c05f80728040000a17f50045c029c021e009c055c045c035e025e04dc0550040000a47f0001a801fa0fae04aa04be0708014a01f80f48014b010000a87f20092c0cae022e082c09fc04ac04ac03ae04ac08a40b0008a97f4003c40bd40bd60fd403fc0b54095607d605540b40090004af7f000028012a0df8032e010001be036a046a056a097e08c007b97f300afc0bde0bde07fc07dc03fc07de07de0bfc0b540b500abd7f1402240124098408fc0700001402640104098408fc070000c17f4804c40452025a0ad80f10005804da02520a440ac80f0800c57f2808e8043f03e8040008920a820afe0b0808420cfe0f0008cc7f44082c092409040d3c0980092c092c0d540944097c090000ce7f100048026706e409480002019208fe0700009208fe0f0000d27f40002800a40fe40ac40afc0a800aac0aa40a840f7c000000d47f28092a07f801ab00010230090208fe0710018208fe070000d87fa808a806be01b807c40880084c0afc0b0808400afc0f0002e07f00022a02ae02ae02ea02260fb0036402aa02aa022e020002e97f0008fc0fec07ea0fea07f80eb201fe079801fe0f00000000f07ffc02ac02ae0fac02fc020002580af40f4200140af8071000f97f0009a807ec010e076c090409900bfc090008540afc090004fb7f4000d40fb205be07ba05930700019208fe07b801fe0f0000fc7f0000020bee07ee07e203ee03e003ea03ea07e2070e0b000000800004f0033e00e00330020800a4079c078807a407bc0700000180000020012801a800a8077e0928093809a808a808240620000380000090009400d40254017e01540954095c09540712001000058000012001a800a80fa80afc0aa80ab80aa80aa80f240000000c800400f40f14001400f40f1c001400f40f14001408f40704000d808208ba088a0a8a0bba068e048a04ba068a058a04ba088208108000000000f40ffc03f403f40f0000d0011008fe0710000000158044065401fe0fd401d40200088806fe018800fe0f880000001780000054065401fe0f540100002401fc0792089208920880061880000054065401fe0f5401540100042407e4042404240724081980000044065401fe0f54010000fc0744087c084408fc0800063380000004040404fc039402940294029402fc0f04020402000036800402fc0354025402fc0f0000fc0f040024025c0284010000388020042004ec07aa05a805a005b005a805a605e80f280420043b800202fe0352025202fe0f0200f00f0008ff0f2008200800003d800202fe035202fe0f0201180c0803ff00e8070808180800063f800202fe0352025202fe0f020978040003fe0000037004080842800000c408fc06bc02bc01bc083c08bc05bc06bc06a409240846800202fe0352025202fe0f0200480054015302440dc80050004a800204fe035202fe0f0200f8090605f103fc0f0400fc0300004b8064046404d407f405ec05e605dc05f605f605e40f640454044c800202fe0352025202fe0f0201780c4403440044017c06000854800202fe0352025202fe0f0201480c4a03f8004c034a044008568000004408fc08dc0adc0afc0f800abc0aa40aa40a3c08000058800102ff0349024902ff0f4100fc016a017f056a057e0340005a8000002409bc09bc05bc04bc02a40fc002740254052c0524085e800000fe0f2a006a04fe07c005fe05ea0f6a002a08fe0700006a800202fe035202fe0f020078034b06c80848084e01780700006f800102ff012901ff070000df091205b00387071c01d201100070800202fe035202fe0f0004fc0284069608a40a8400fc06000072804000f604b607b707b607a2078807f607d207fe0fd804000474800404fc075402fc0f24005403740ede08740854017407000877800002fe035202fe0f2400ec07a602e8092004fe03a00d2e047d808400fc0bac0ffc0f0400f402d40cfc08d60af408d402f40083800000080cac032c00ac032c00fe0fac012c00bc0f08000000848040094e095405d40352050008ac02ac02fe0fac02bc0208028580080caa03aa03aa0f2a01ff0f2a01aa0faa03be0f0800000086808004fe06aa05aa04a2060800ac02ac02fe0fac02bc020802878020009e049606d607d607cd07e00fec07d6079c07a404240089800000f80f080048024802b8011e012801480a0808f80700008b80000cfe0392009208fe070000100ffe0010081008f00700008c80000cfe039208fe070000fe0f02000200fe07000800060000968000000200f60f500150015e01500950095009f607020000009880000cfe031201a208fe070000500090091008fe07100000009a80000cfe0392009208fe07000020042004fe072004200420049b80000cfe0392009208fe0f000004040404fc070404040400049d80000cfe0392009208fe07000044004400fc0f440044004000a080000cfe039208fe070000a20972042a03e608220ce0030000a180000cfe039200920cfe030008e0045e0542024205de044008a280000cfe0392009208fe0f00006804a8053e022805e8042808a480000cfe0392009208fe070000480c4803fe00480348044808a580000cfe0392089208fe070000fe0742087e084208fe080006a9800000c4073c00ac07ec01ec01ec01ec05ec05fc0304000000aa80000cfe0392089208fe0700080807f8004a084808c8070800ae80000cfe039208fe0f0004e8032a002a00e807080808060000af8000001000f00fbc02b002b002be02b40ab40af40710000000b28002000a00ea0fae02aa02ab02aa02aa0aae0aea070a001200b4808000a8007200ec0fec02fc02e402ec0aec0ae20720000000ba80000cfe039208fe0f0000e40324002400f60f24002402e401be8000001e00800f8003bc038003ac03b40bb40bac0724004000bf800008fe079200fe0f0000f80188008800fe0f88008800f801c080000cfe039208fe0700004008fe0f4004d0044c0142064008c180000cfe039208fe070000e80c0802fe090808f8070000e001c38000007c00d40fd403d403fc03d403d40bd40bd4077c000000c680000cfe039200920cfe030008fc09240924092409fc090008cc8020001400d40fd402de02c002c002de0ae40ae60710000000ce80000cfe039208fe070000b007ac04a204a804b00720000000d680000cfe0392089208fe0720012601fc0f20012c0122010000da80000cfe0392089208fe0700004408fc0b2408440884080000dc80000cfe0392089208fe0700009e089008fe0f900890081008de80000cfe039208fe072000f807ae08a808e8090809f8080006e1800800c80748027f024802c8030008fe0792009208fe070000e780000cfe039208fe0f00080807fe000804fa078a086a082804ef80000cfe039208fe0f0000a800b803a80aac0a880a9806a800f080000cfe039208fe070000ec04ac06fe01ac02ac04bc090008f380000cfe039208fe070000c80fb608a408bc08c40f80000000f680000cfc032409fc0f0000680908050e02a8052804c8080000f8800008fe079200fe0f88034702c402340ac40b0408fc070000fd800800ec0faa02aa0aa80aee0f00009e0724092409a20810060281000cfe0392089208fe071c00a80fa80aa40aa40aa40f10000581500034009c0fdc03d403b4038603b40b9c0b1c07500030000681000cfe039208fe072000f80f1600d40754085c0ad00910040781000cfe039208fe07000cc4039c080607a407a4009c0f00000881000cfe039208fe0f000cfc030400e40f1200f2014a0640080981000cfe039208fe0700042803ea080a08fa0fc200200310040a81000050005400d40fe002de02d002d40af4075400500000000f81000cfe039208fe0f0004f80308084a08ec0f4808480800001081000cfe039208fe070000440c4c03360034004c0f4400000011810008fe079200920efe01e0070805ee04a8040804e80f00001381000cfe039208fe0700008808e80f1c04ea044801580e00001681000cfe039208fe070000340174097409fe077401540114011a810008fe079200fe0f0003fe02480340040000fc0f0400fc032b81000cfe039209fe070800f40c92039000920ffc08100800042f81000cfe039208fe070000e80fa802a802fc0fa802ae0ae8073181000cfe039208fe07000078044a07cc00cc0f4a08790800063381000cfe039208fe070000ee0f00044105ce040004ee0f00003881000cfc032409fc0f200490052804a60428071007a00400003e81000cfe039208fe070000fc01d40154017e07540154017c014a81000cfe039208fe0700001400de07540554055e05d40700004b81000cfe039208fe0f0000f40f0400e60c54039405740800084c810008fe079200fe0f0000e803b802ec07a80af80b280800045081c00f3c00a40fa400b4068405a6059405d408f408940f04005481000cfe039208fe070000a4089408860f9408a4082c0800005581000cfe039208fe0780004c08b4074600f4071408f40900046581000cfe039208fe070001fe08ea0aaa0aaa0faa0abe0a80086681000cff03c900ff070000ef0f2004b70428052204ed0700006e81000cfe039208fe0700047c0354005407fc08540854017c077081000cfe039208fe079200aa07fe06aa04be03aa04ba08000073810008fe07b200fe0f8000fc0fa004c40ff8070400fc0300007881000cfe031208fe070000fe06ea01ea04ea03fe08c00700007981000cfe039208fe0700007c05ee05ec02ec05fc04000400007a81000cfe039208fe070000bc02ac092c08ee0f2c03bc0400047b81000cfe039208fe078001780e7800f8050808fe03080c0a067e810008fe079201fe0f8001ea04b806ae06a80a6a0ba90680007f81000cfe039208fe0f0008ee070008fc0b5408d409fc0a00088081000cfe039208fe070000540ed401540956095409540700008a81000cfe039208fe0700007805780578017c09780f7c0178018f81000064003c0ffc07bc07be07bc07bc0ffc0f0c0f640000009881000cfe039208fe072401d405fc01d40ffc01d405f40500009a81000cf8030800f808f807fe03fc07fc07fc0ddc0f180000009b81000cfe030208fe071000ca05a805ae07a805ca051a0500009c81000cfe039208fe07000074057607f40176037405740500099d81000cfe039208fe07800054054c023e0f4c024c0554040000a081000cfe03b608fe070000540aa20abe0a4005540502023e00a8810008fe079200fe0f4000b406be04740500004c0c22030001b3810008fe079200fe0f0000540f560bfc0b540bd60b540f0001bd81000cfe03a208fe071000f8079608b40f9c0fb40fd00fc000c081f0000e00fa0fba03fa03be038003f60bd20b3e0758004000c28140003c00fc0fdc03dc03fc03b003bc0bf60bbc0734001000c981000cfe03a208fe070000f007b805f700550ca402e80c0000ca81000cfe039208fe07e000de06fa01fa07ea07d601f0020004d381000cfe039208fe0fe407fe0f7407f4051e00fc049c07580ce3810000fe0792049204920492049e0792049204f20402040000e5810000fc07a404a404bc07e404000c80037c00800100060008e8810000fc0f94049c079404700b9804a607540fd404f40f0400ea8100000000fc0f240924092709240924092409fc0f00000000ed81000000097c055c055c035e015c015c035c057c0500090004f3810408a408b408ac08a408a40fa408a4089408a40804080000f4810000bc04a40494079404b40220087e048803e80218040808fa818409fc0ddc0fdc0ddc0dde0fdc0fdc0fdc0ffc0d84090000fc810000fc0f44044204420400044404440444044404fc0f000000820000d40f54054405440514042405020562057a05ca0f0000058200001c05fc05fc05fa03f001fc01fc05fc05fc05fc030000068200000009fc05520500055e01740154050005d4053c090000078200000009fc05540500053e01740100055405d4053c090000088200000009fc050405fc052c015c012401fc054005fc09000909820000c0007c025a02c002ee07dc02c8025c02fc02c00000000a8200002400f407f407f607f006f006f607f407f407940700000c8200000a00ca0f4a044a047e044a0449044904c907080000000d8210005000500758055405f2055405540558055007500010000e8210005000480f440952097a09520954095809480f5000100012821000480f4405f3054405080760006a08f20f2e00e200000014820000920ffe049204d00fd40134089c0f140034025400500317821000480f56057c0558071000c00fa802fe0fa802ea0f000018821000580f5405f205440f0c00f40f5605540574051c0f00001c820009b00852055602d2011600d2035202d90f5502500200001e8218095809fe06d402fc01d400fc03d402bc07d402900200001f8240084006fc0144004c014e01550244084408fc0f400040002a82400cfc0347005509fc070000e80f28002e00e80f080400002c82400cfc034e00450dfc030008de0842054206ce055008000030820000400cf803d408f80f00007e0e0201fa070208fe0800063182400cfc03d6004408fc071000e80727082509e808300600003582400cfc03d6004508fc070000e8078a088c0848085808000636824008c0077c005609fc070000f80f88048e048804f80f00003782400cfc035701450cfc03000868045807ce046804280708083982400cfc0344005709fc070000b80f860480048e04b00720004782400cf8035e014a08f80fb407ec040008240afc0b220a00025882400cfc03cf084508fc070000be08a007ff04a006bc0580086682400ffe005b07fe010004ff07d504f707dc048f07a404a4076f8200000008fc0754045404d6045401540254057c0580080000708214042402c4017c060000fe0f5208d208520152067e050009728220001000f807940896089408f4089c089008f009000400007382000028012801fe0f28010800f8079608f4089c08f00800067a820000040024042e0a2409a408a40864082e084408040600007e82040804082404ce04040304020403ce04240404080408000082820400240024002e00e40f2400240024022e02e401040000008b82840094009400960894089408f407960094009400840000008d82840044003400b60024012402240824082e08240ce4030000928204004400c4074e0444045404640444044e04440444040400978204080409440a6609d405540744020e03c40044000400000099828408a408a404ae04a402f401a401a402ae04a404a40884089c82820892089208970492029201f207920897089208920482009d820408440444025e04440c740a440a4409de08440844080408a582440044082404ae032400140014002400ae0f240044004400a68200080406f401560154015401540156014c01cc0304000000ac8284004408c408ae04a40384008408a4082e07440084000400ad8200000400f40796089408f0089408940896089408f4080406ae820200e20f22002f022201b2007000a2002f0b2208e20f0200af820804880308009c0708082808480888081c06880008070800b182000004018400e40f0e000401e4078e084408440824080006b3822408240424062e01e400b408a408a408ae08a40724002400b78200080408c40f0e0804080408f00f84088e08840804080000b8828400a408a408ae0fa40ca40ca40ca40cae0ca406a4088408b98204080404f4039600940094009000940f96008c008c000000bd8204089404d40496029402940994099408f607940094008400c78204001401540156015401f40f540154015605540514030000cd82440044002400e60754085408540a540ae609240444000400cf82040a2409a4042e02a401740024082408ee07040084030400d18284084408b4043e03e4000000e40724082e092409e4090004d48200004400440f660554055405440554055605640f04000000d78204000400f40796049404f407940494049604f40704000400db8200001400d407560254025402d00314081608f40714001000de82820042002207ba0aaf0aa20aa20aa20b2f08e20b02080004df82840044002407b602a402a002a40b24082e08240ce4030000e582040224032401ae0fe404b404a404a404ae04a40724000000e68200002400a40fae04a404f404a404a404ae04a40724000000eb820000040084078e048404f404a404a404ae04a40724000000f18200000409e4092e052407f401240324052e09e40904090000f98204011401540116011401f40f140114011601540114010401018300000400e4068e048404f407840484048e04e404040e040002830000040ce4032e08240824047404a4032e05a408b408240603838400940824044e030400e407240824082e09e40804080004048344084406e4014e0844088407e40f24042e042404e40f00000583840494049402b60ab409d408d407d400b60094028401840009832408a404a404ae02a401f40fa400a401ae02a404a40424080e8384089408540856095409540f540974097609540944088408278300000404e4052e052405f40724052e052405e40504080000288304002402240a0e09440434042403e4012e02a404640804082b834404540444020e012400e407240434043e042404240424002c8314019400d40f3e00940894089408d40f960894089408040032830008c40ca40a8e094404240c8000e4068e0984044406000834830400f4071404d605540554055405d4051604f4070400000035830400f40f140c960c940ad4099409940a960a1408f40f040036834400240ca402a6029400d40f9400a400ae02a402240444003883040014041404f6075405540554055405f60f140414040400468384089404f60394009400f60f94000000fc050008fe070000498300000402fc02ae02ac02ac0fac02ac02ae02fc02040200004f8300008401e40f0e00240924092009e40f2e09240924090000508314019400d40f3600140154095409d40f5601540114011400528304001408740496029400940e94009400960e94081408040454830000440954055603340918071000540556033409040700005883040464020402ee0f040044084408e40f4e084408440804005a8382088a04aa048b028a01fa008a018a028b02aa048a0482045e83440244015409d608540674005400d40f4e014c0144020400608384009408940c96027400540054007400960f94009400840061834408540444030e0044025409d4047402d6015408c407000063830008b408940494049602d40f9401960294049404b40800086483040454045405d60554055405540f5405560554055404040065830004b40c9404940296091408d40f16031405940434080000678300003404940416021401d4009400140116029405340400046b830000f40f1400760294090404f403560954095409f40700006f8344097405c4054e05040544002400b40026092408e4070000778380004400f40f1600d40754025402d40b1608f407140000007883000074023402b60ab40ab40ab40eb403b602340274020000868300001400f40fb602b402f00ffc0fb402be0afc07140000008983440454025401f60fd40054030400e4030e080408f40f00008a83000974074401ee0f0400440844084408ee0f4408440840088e8304000400540896062402840864080404ee0404022402c400928300000400740756055405d0055405560554057407040000009383440124019c075e055405d407d407540d560dd407140500009883000094029402f6029002980f9002d402b6029402940200009e830008b408f408f606f401f400f000f407f6089408b4040000ab830008040af40ab60ab406b403b402b406b60af40a040a0000b18384089404b40496029401f40f940094019602b40494048408b28300085404c4070605540974095409d40b5609540914090400b7830000440a3409d4071600440c4403e4004e03440454080400b98300007408140956095409d40f54095409560b140934080000ba8300003c02ec032e036c037c033c032c032e0b6c091c070000bd835400540954093605940314011401940f3e015c0154014400c1830000540cf403f603f403f403f003f403f60bf40f54000000c583000034001400f607b405b405b405b405b605d40714000000c783a408e4043403a60264040400a40fa604f404a404a4070000ca83420042097a052f032203a20f220322036f092208e2070000cc830400f40f1408b60ab409f40bb409b60a940a1408f40f0400cf834400540c14031600d40350015001d4091608f40f14000400dc8304095409540516033403940f14030e034c052c0904090000e0834408540e9400060cf4039409940afc049606940934080400e98384009400940ed60a940a9c0a9c0a940af60a940e94008000ef83040044045405f6055405f40f54055405f605540544050400f183a408a40ab40a76063405340534057405b60bb40924080408f2830402a402a402ae02e40f04000400ee0fa402a402a4020002038400009402940256021002180f900254029602940314030000048440002401140556055405d4075405540516011408f40700000a840000140dd40416021401f80ff00f140156029404140d00040c840400e407a402ae02e4090406f40154015609f40f000000000d844408540404033601740114011401f40f16015401540104010e84a409b409740b360bb405f40534056e076c056c09a409a4091d84040074095409d604f406d406d404f402d601d40074000400248400003408940956095409d407540556055405940534080000258400003400140776057405740574057405760514073400000027842000b40eb400b60cb400f40fb400b406b600f40e2400000028840000f40f1400f60904049403b400d4009e00d400b40094002c840200020ffa01ab05aa05f807aa05aa05ab05fa09020f00003d844408540444030e00a400a40fb40954095609b40e840000004984140514057c055e035401f40f74017e037405540554050000578402012201aa00ab0faa0afa0aaa0aaa0abb0aaa0f220000005b84040204017407f604f406f405f404f60cf408f4088407000061848000c400e40fde03d403d407f403d40f16081408f4070400638400002404f407f607f407f407f407f607f407e407240400006b840400a40fa404f604a4032008f407160054091409f40f00006c840000d40ad40a7406760314027402d602b40fb4029402000271842408a4069c005e063408d40a540a740a1e08f402040c04007584040854095409560574055403c40344036e0544056409240082840000d400540756015401d40f5401540156055406d40000008b8474020401e40f0e00a4019405540156093409b40f140100019984000b5c0b5c07de06dc035c0b5c075c015e034c045c0800049c84040054075400d60f5400540144025408d60f540054070404b28424002c0c44031600f40fb402b402fe0fb402b40af4071000b884920492065a003b010a0d6a011a053b096a00a20412090000bc840400240ce403d60ff00be80bf00bd40bf60be40f24002000bf8404001400940ff600f407f405f405f407f600940894070400c48490009400b407d607d407d407f407f407d607d406d4009000c984000034021401560f94095409540954099609540f54030001cb8404004408d40ed60ad40ef40ad00ed40ad60ad40c44094400d68400000400f40ef60af40abc00bc06b40a960af40a04080004dd8404000408640f0e09640f04093c0f1e09d409940f04080000e68440014405fc04fe06fc06fc06fc06fe0bfc0afc0644000000ec8414085404c4070e08e40bd40bb40bb40bb60bb40b340a4400ee840008b404f2030304fa09580b5a0bfe0b5f0b5a0bfa0b000211850400740cd403d601f40ad408d409f606d406d408f408800413850008c40b7c0b7e0bfc0f7c077c07fe077c0b7c0bc40900081785040cf40314085604d401540d54015405d6095400540e04001a85040ff400540cd601d40ff0010404a4012608f40f2400000021852409a4089405de01b4099409840ff601d405b40c140900002385040974074401ee0f04005405900574095609340f140100012b85040854045400d601d409f405f401f601f403f405d40300002c8504049407f40796040400540f7400560f56007407740884043585c40f3400f40f760574077405d40d7e049407f408340800063a850400c4071400c603d403d403d403d60754061404f40300003c8544005404c40706007401f407f406f605f406f40ef40700003d851400d40fc407ee0fc403d40f8408ee042403e40524080000438540024a024a0feb0b4a0b780f4a0b460be70b560f42010002498524082406f4007601740d7001f401740d76017401140d00004a85040674000406ae0844055400540344062e0884093408040369854408540c04028e008405f405f003f405f603f409840704006d850000240874077607700ff0077402760f74077407240f040072850400e401f401e607fc01ec01040cfe034c00cc0f440000007485420a6209d20a4705220d0208fa0fab0faa0faa09fa0f02087e85000064002c0fee0b2c0b780f2c0bec0bae0b2c0f64000000848524044c0744001601f401f403f401fe05f407f401f4010001878500013401840f0600b40eb000b40e8400de082c07e40520089b850000f40f54055605740704009402de02940fd40294028000a685040ef401b408b603f40bb403b40bf403b607b40bf4070400a9850000fa0f3a00c30dea032808aa0aae0abf0faa0aaa0a2008aa85040454015c09de077401040cf4035e005400d40f54004000ac858400940844050605f403b40fb401f4030605440594089400af8500027403d403d60ff40fd40fd00ff40fd60f540f74010000b08502088a0dfe05db01de05fe01de05fe05df01fe058a050000c985b404b402f40fb60194020400d40ffe0adc0af40ad40f0000cd850000f404f407f605f407f00504075c055e05540754040000cf85000974074401f40ff603b406f4061e0ffc041407d4081004d085140654065403ce0a24070400f40954075e01540ff4090004d5858a04aa02fa0fab03aa01020efa01fb03aa03aa09fa0f0000dd8504035c075c07fe0bfc0b980b400736071407740a84024400e485040cf4035409f60f04017405f4007e0f6402f40564090000e5850008b405e4050605f401b00fb401d4037e036c0504050000e98522046a0302013700b20ff20ab20ab30faa0aea0fa2000000fb8502002a0c4a030b05e203be03760f970f7603be05e20502050786240ce4017c0dfe01740de40400025401f60f4c014c0604000b864400640b4408ee0564027008f40bf60af402f406f407000811860208fa070a046b056a0f6a0b0a0b6a0b6b0b6a0f2a010a002d8600000000fe0fff07fe02e007c002fe03ff053e00fe07000038860400f40ff4067e06b406f40b240efe007e05fc03740114054e860000000cf003100850077e01d401b4079408b408b00410004f860000000cf803080828093e075c015c054c095c0d5803080050860000c00f3800880fa80abe0adc0adc0acc0adc0a4808280051860000000ff000100650007e06d408b40ab4089402b00600005486000cf80308082809280b3e0d6c056c0b4c0b5c09580908005586000cf803080ba806a8063e095c08dc0bdc08dc0b580a08005a860000000ff000100a50087e0eb408b40e9408b40a900850005b860000800f7000100b500a7e0f5408b40e940ab40a300800005e860000000cfc030408940b7f07b603b603b607e6072c0a00005f862000ee04aa04aa032606f001180c38035f005a074a0418026786000cf8031801de0fbc0f8c0b1808f20092089208920700006b8600000004f80488048804fe07880488048806f8040008000071860004f40534053405f40734052c07ec070408fc03000c000679860000f8048804fe03f802000404040404fc070404040400047d8600000008dc0b54095409f407540554055405dc05000800087e860004f8098e07fe07f80600080400fc0f2400440084000000808620001408ca0f08041802f00888088804fe0788048805f80781860008f8098804fe07f80e0008780482050c03e0041c08000882860000f804fe038e03f80700007401440144097c0cc00300008a860000f809fe078e07f80600081808ea0c0a078803780408088c860000f8048804fe07f806000428012801fe0f24012401000193860000f8048e07fe07f8060000f20892089e070000fe0f0000958688004a08ea095a094e09ea074a054a055a07ea074a0c48089c86f8058804fe078804f80412022201a2096208fe0722000000a3860000f8098804fe07f806000c3c00020ec0090e08700b200ca48620042204d20556055a05d20756055a055607d20520080000aa860000f8098804fe07f806000c2400c8020002fe0f00010001af860000f8098804fe078804f80e0008fc0f2208e20f22080000c0860000f80dc804fe03f80a000cc808ca08fa0fc808c8080008c6860004f805fe078804f8060008fc0f24092409fc0f00080000c7860000f804fe078804f0060800e8070a098c08880858080006c9860008f805fe078804f80a00005800440253064409c8001000cb8600001204ca054a055205de07560556055607d60512080000d4860002f802ce03fe0348023003fe0f620492046204fe0f0000d9860000f80cfe07fe07f806000824092409bf0f240924092008db860008f805fe078804f80600005e064801fe0f480148020004e4860000f8044804fe0378032000b80fa604ac04b004a00f0000ee8600041404d40544055c05c60744055c054405d40514080000f9860008f805fe078804f80a0000e40f6402f40f6c02e40f0000fe8600047804fe03780300019408fc07900c7e02900556080006008740005c00f40574057c05f40774057c05f40d3408fc07000002870008f809fe078e07f80a500048056e05d40f6c054405400408870008f805fe0788048804f00e4c095405d40354055c09400912870000f805ff07f8060208be074208f00b020afe0b220a00081387f8058804ff078804f0061a0fe6050008240afe0b220a220a15870000f8048e07fe078804f802300cce03c80f4e087908000617870000f805fc07880470028c0f54005401f4015408dc0f0000188700047c02ff03c407780c2b02fc012403fe050202fe0700001c8700001404a407a406b406b607b406ac068c0694071408000021870000f8044802fe0378030006d4075e0554055e05d40710003b870000f8058804fe07f80a0000fc0f3c033e033c0bfc07100047870000f809f8048e07f8060008fc03b402f407b40afc0d000449870000f8098e07fe078804f8067000aa02f80fac02fa0200004c8700047802fe0338038000fe0f900024000801fe0f800000004e87f8098804fe0788047801e0075e046a056a056a08fe07000057870004f8058e07fe078807f008bc0ad40ad60fd40afc0a800859870008f805fe0788047802c007bc02d4075601d4075401dc0760870000f8099808fe07f80a0000f40f540ad40f540af40f040066870008f804fe0788047002fe0f92020e0860096207de0800087487f8098804fe078804780080077f02800ffe031208fe07000076870008f805fe07f80600007c0d4803fc0f68037c054809000082870008f805fe0788067004fc0756053c02f80f0400fc03000083870008f805fe078804f00e04085406dc0156095409540700008d870400fc0fec04ec027c09800778008808fe078804f80600089e870000f804ce03fe03480230017e06aa02fe01aa09820700009f870004f802fe03c80276037e095a055a05da015a057e050e09a28700006204e807ee06e406e007f206e806ee06e80774080008ba870000f8098e07fe078804f0051e09ea0d7e0f2a01be0b000ac0870008f809fe07f80600089402f402ee0ed402040354020000c6870004f8024802fe034802300b64087607f4017603740d0004cb870004f805fe078804f80400025c0434097c0932005a069000d1870008f805fe07f8060008f40374037403760ff40310020000f2870000a00bac0aac07ac073e08ac03ac0abc07ac06a0070008f98784047c043705be05b6057807ca07b605b205ba0736080000fb870004fc02ff0344027e013b0bda0f7e03ea072b076a0b00090d880008f805fe07f0067c0f3c03bc07e0033007fe000803380415880008f805fe07f80202003a0f4a07de015a0f6a016a0f40001f880000f809fe0788047002260f780b7400fa0f50047e03000c21880000d405dc05be07bf05b7093f009705ad07ac05a405000022880000aa059e05fe07fe05fe09ff00fe05fe079e05aa0720083b882c001704de0540057605ff077e0570056405bf073408120040880004f80708040804fc070a040804f80708040804f807000445880000f807fc07fa07f80302001c012001fe0f20012c010000468800082009bc042404bc00a60f7c0124022405bc04200800004c8888004800e40f120000002400240024082408e40f240020004d8888004400f30f0800220c2202840120082208e20f22000000538840004400f30f0900c801ff070800c3051004f2071200000054880000cc00f20f18008608f507940400002408e40f24000000578840004400f20f19025002de03540254060004f2071200000059880000c800e40f0200540f7c057407640024002408e40720005b8804004200f90f0800fa03df02da07fe020200f207120000005d8800002400f20f08007a095a09fe07fa0509042000e40f2000618800004400f20f0809f805ae03fc03ac0df8010008e40f2000628800008c00e00f1c00bc079c079807bc07bc040000e40f20006388800088004808c80f28081a043c04c80088034804280800086588000008018a00ea0f980048010000fe0f20004000c0008000688820013409b404b40774043e04f4043401b402b40420080000698808018800ee0f9c0040091c08e4041403840274040c0800006b8808018800ee0f9c00480100088804480444023202100100006c8808018800ee0f9c0048010000d00010091008fe07100000007088140114057c055c07dc045e04dc045c015c037c05140510047788000004027402540e5409f608540954025406740904090000818800021002f402b40eb409be04b401b402b406740510090008848804018500f70f8e006401000c2202a2017e00a103210420048b8890028802bc0a820e8809c8088e099802aa06ca0aca0aa8088d8800018c00ec0f58010000f0072c092809e80b080af8090004928808018800ea0f98000008fc092409240924092409fc090008968808018800ea0fd8000000f80f88048804ff0788048804f80f9c8800018a00ea0fd800000448024801fe0f4801480248040000ab8808018800ca0fb801000cf803c80848097e064806c8091808ad888402a402a40a940e8c09a608bc09d602d606d405c405b408b18800018800ea0ff0002000fc0f02001007fe009003160c0000b48808018800ec0f98000000a800b803ac02a80a980aa806a000c1880001540bd4075e0454015403100cfe021003d20414080006c288d602d602de0aae0e9e09c60480019e02c006c005fe090008c588a002ac02900abc0e8009a804a801bc02a806a804a8080000c68808018800ee0f9c00480100042c0520053e052005ec0f0000cf88000444057c0d7c0f7c09fe097c037c057c057c0b440b0008d4881400d40f7400f4076c0564056605cc06d400a40f24000000d58808018800ee0f580088000001c40fb2088808b208c40f8801d8888004ac02ac0aac0e8409de048401a602ae06ac04a4080000d98800018800eb0fd80080022a01ea07be04aa04aa04be070800dc8808010801ce0fb8000000e80fa802a802fe0fa802aa0aea07dd889002be02980a980ebe098004a804a801be02a806a8048808e18808018800ec0fd80000007c0954095409fc0f54097c090000e48800018a00ea0fd800000cfc034400b602940f940294020000f38800029c048502b60eb409f604b401b402b60685049c080000f88808018a00ea0fd0008004fc04d402d40ffc0fd401fc028004f988800244027c017c07fc04fe047c017c027c027c05c4040000fd880802be029c0abe069c05fc0480019c02c006c005be09000402890000c400f50f6c0000049404df0794040000ff0720004000078980004800ee07780000053e05fe05bc02bc02bc05bc040404108908018900ca0fb8000001be07aa04aa05aa06aa08be070000128920021402f402040e64097c093e097c023c067c0524090004258900018800cc0ff800000efc0174045c013c09dc0f1c0100002a8900008801ec0fd8002008ec070008fc0b540854097c0a0008328900019400d407b0000004f803e803ec03f807e803e803080244894005c405fc03ec0ffc09c609fc03ec05ec05fc09440900005f8900008800ee0fdc0100094c055e01500f4c015e0554091000728900050c057c037e0f7c0b7c0900097e03fc05fc0be00b40097f890400f40f9404d4043c04140414047c0494049404f40f0400818900008208ba08aa0bfe06aa04aa04be06aa05aa04ba088000868944015c01bc0f5c00dc08ec0bfc07fc07fc07fc0b3c080008878902005e07d607d60fde075607160cfe03b602b60afe0702008b8900080008fc09540554035401540154075409fc09000800048f8948084804fc034801480a0008fc055403540f5409fc090004938900080c08fc0be406e406ec02e402e406e20afa0b02080004968908018800ce0fb80008090008fc055403540f5409fc0900049a89000838080a08ec0be806ea02ec02e80eec0b0a0838080004a78900083c08fc0bfc07fc07fc03c003ec07e80be80b28080004aa890000a404ac02e60fac02a008fc0554035401540ffc090004b38900003001ec07b807e807a807fc0d540354015407fc090004ba89000030081e08de0bd007da03da03d80fde0b1e0830080004bd8900083e08ee0bfe07ee07ee03c003f607fc0bfc0b34080004c0890001ba0fab07b807af07aa0e3a04fe03aa03aa04fe020000c18900080008fc09040484037400040704080408fc0800060000c289140c2402c4013c030008fe0402020201fa070208fe080006c48900084806c8017e0148020008fe040202fa070208fe080006c58900080408ec092404a4032c00240724082208ee0806060000c68900018800eb0f98000008fe0402020201fa070208fe080006c88900081c08c00b40085e044003580646085408d40b04080000c98900001808fe093804ba033a00380738083808fe0838060000d2891000100cf803540156015401f40f54015c095009f00f0000e389080cfc03ab00fa07ae007807c2014a01e60742015e010000e6891008f8075601f4095c09e00778008808fe0f8808f80e0000f889200cf803fe09f00f2000ae05de075a05de051a08fe070000008a08000800aa0eaa0aaa0aaa0aaa0aaa0aaa0aaa0e08000800028a0800ba07ba04ba04ba07000004080408fc07040004000000088a0400ae07ae04ae04ae07000010001000ff071000100010000a8a0000580f5e055c05580700004400fc0f44000400fc07000c0e8a0400e607e604e604e6070000d00010091008fe0710000000138a0000ae07ae04ae04ae030008fe070000fe030000fe0f0000178a0400ae07ae04ae04060746006200fe072208210821083006188a0800ba07ba04ba04ba070000e4072408240824087c0800061d8a0000580f5b055805000732002e02a2096208fe0f220000001f8a0400ae07ae04ae04ae0700001e06c105300482040c0710082a8a0400b607b604b604b6070000880f78002e082808e80708002d8a0000ce07ce04ce044a0758084609420542024e05c8080408318a0400b607b604b604b60700005e004500fc0f440044004000338a0000ae07ae04ae04ae07000cfe0322006200a2033e0c0004348a0400ae07ae04ae04ae070004fe0312005200f20f110110013a8a0400ae07ae04ae04ae0700002409920449022202a40188003b8a0000580f5e055c055807000088048a04fa078804880408043c8a0800aa0eaa0aaa0a000e0000e40f0408fc0f440844080008508a1400b607b604b6049607300008000f00fc0f2c012c012c01558a00009c0f9c059c059c070000b4008400fc0f8400b4008400578a0000580f5a050002fc0f0400e4032401e4090408fc0700005e8a0400d607d604d604d6070000e2032201e2090208fe070000608a0000580f5a05580700004002ca090a08f20f840060031004628a0000580f5a055a0540071000ec07aa02e80b0808f8070000668a0800dc07dc04dc0400035808d80758041800fe03160c1804698a040056075605560554070000a402a402be08e407a40020006d8a0000580f5e0508072000f80f1600d4075c08540ad00900046e8a0000d80fda04da048007b204aa04a604e207a40488043004708a0800aa0eaa0aaa0aaa0e0000240724053f05240524070400718a0400b607b604b60486071000920f9204fe049204920f0000728a0000580f5e055c05580700082805b8046e02280288054808738a0400b607b604b604b60700002a012c01f80f2c012a010801798a0000100cf8030e00dc0fcc0bec0bc80bd80be80f68000000878a0800ba07ba04b80424072400de01540954095c0714002000898a000088004a00ec0ff80bea0bec0be80bf80bee0f4a0088008a8a50005800fa0fdc0bd80bde0bd80bfc0bfc0f5a0f580050008c8a0800da07da04da04c80708002803280ebe082800280728008d8a0400ae07ae04ae04a80722071a0e4e080a0822091e030004938a00004c00ec0ffe0bcc0be00bdc0bca0bca0bda0f4a004800958a0400d60fd604d00702083e07c208f80b020afe0b220a000a988a0800ba0fba041a0740004c0cec035c00dc091c092a0740009e8a0400b607b604b60484072000aa07be04aa04aa04ba072200a08a0400b60fb604b6030008f8072800c8097e0688056a0c0000a48a0400d60fd604d60700007c0d40015e0152035203de0d0001aa8a08005a0f5a05580700001808f6069001920fe40808080804ac8a0400b607b604b60480073a084e06c8014800cc077a080006ad8a08003a0f3a053a070800600c34033e003400340f74080004b08a0000580f5a055a0508072000fe0fa804fa07a804a8040000b28a0400d607d604d60400037c04d402d401fc0fd401d402fc04bc8a0000680f6a056a0500070c04e40756055405e4070c040000bf8a0400ae0fae04ae030008fc070c01bc02ac0b0408fc070000c78a0400ae07ae04ae04ae070000d40c0802e6010802d2045208cb8a0000ae07ae04ae0480071400fc0fbc02be02bc0afc071000d28a0800680f6c05680500076806a801aa08ac07a800e8060804d68a0400ae0fae041a03c80f4401d20f5101d20f5401c40f0000e78a0000580f5a055a0500073e00a40f800abf0aa40ab40f1000ed8a0400ae07ae04a2070800e40fb202f10f92010408ec070400ee8a0800aa0faa04aa04a8070a00880fae049c04a404a40f0c00f78a880fd90fda04800bfe074200aa04fa07aa04420cfe03000cf88a040056075605560590069401d4077e0554055805d6071000fe8a680f68056a05680700004402ce0f640940095e09440f0000008b0800aa07aa04aa0408030400be06ac01ec0fbe0184020004028b0000d807da04da0480073e00ea0fea00fe026a0afe0700000a8b0000580f5a0540071400340f5600540f50005607540800000e8b000058075a0500069200f4070005a808fe0b2008ac0b0008198b0000580f5e05400718045a03fa0f5801f80f5e03f80540081b8b0400ae07ae0486041007fc0fbe02bc02fc03be0afc0710021d8b0800ea0fea042a078000fc025609fc0740009008fe071000208b0000580f5a0558070800340d64096e09d60f4c09440d00012c8b0000d807db0418074000d60ae20abe055e054a025e020000398b0000580f5a055a05000ef408de0adc0afc0fde0af40a0008498b0000b80fbb0488072000d205ba05b604b607da0520040000588b0800da0fda04da070000ec07e602a80f7e02a0072e0800065c8b0000480f5a055a0540070800a507be06bc06a606a8070000668b9000be00be0ffa0fea0fda0fc00fee0fd40f9c0fa400a4006c8b00005e00fa07fa07fa07fe07dc07dc07fe07dc075c0040006f8b0000580f5a05580700005e035e037a075e035a035e030000708b0400fd077d028d0360005a05db035e08da046b076a0c0000728b0800da0fda04da070000ec05ec07e604e401f402f405a405778b0400ae0fae04a4072400f409ee07ec05fc05ee0bec0984007d8b0000a000fc06ee07e207f707ee07e407ee077e06a000a000808b00005e0f5c0500073600f60ff60ef706f606f60ef60f00008a8b0000bc0a520a600b4c05be05e00548071e09580914095000938b0000b80fba04b8070000bc03fc0fbe09f403bc05bc0a000a9a8b0000580f5a0548070c00dc07fe07fc03de03de07c80b0000a18b20002208e40f0804200220002000fe0f2000200020000000a28b000020002608e8070002040204080408fc07040004000000a48b000020002208ec07080200080007fe000003000400080000a58b000020002408e40f08020008fc0704000400fc0700080006a88b20002408e40f040410025000900410091008fe0710001000a98b20002208e4070804000200080008fe0f2008200820080000ad8b20002208e40f08020008fc0700000000fc0700000000fc0fae8b20002408ec0f00040402780882050c028005780804080008af8b20002408e407080240024400fc0f44000400fc0700080006b08b20002208e40f08040000c4074408440844084408fc080006b28b20002208e407000288088804fe0388008800fe0f88008000b38b20002400e80f00048802a800a800fe0fa800a80488030000b68b10001206f4010405800c3a022201a2086208fe0722002200b88b20002200ec0f0004b0008e008800f80f8800880088000000b98b20002208e40708026000f80f06008000fe07200818080806ba8b20002208e40f080220009007080986088808900820062000bc8b20002208e40708046000180e860560040605180760080000bd8b00002408e4070802000cfc032406c4012402fc0700080004be8b20002208e4070802200aa0085e05420242067e05e0082008bf8b20002204ec07040200080806f8014a084a084808c8070800c08b20002204e4070802400948044803fe00c803780440080000c18b20002208ec0708020008e40f04080408fc0f440844080408c48b00002208ec0704048002ba008200fe0f8200b2008a000000c58b20002408e80f08040000fc0f240924092409fc0f00080000c68b20002204ec07080200087c0644014400440044017c0e0008c88b20002208ec070802600210000e00f80f2801280128012801c98b20002208e40f08040000fc0f24002401e40f220222020000ca8b20002208e40708040002500848090605c804500210010000cd8b20002208e40700060200ea032a012a01ea090208fe070000cf8b20002204ec0704022000a20f9a048604a204a2049e070000d18b20002408e80700022402a402ac02940fb402ac0224020000d58b00002208e207020408004804c8070802fe0008070a0c0802d78b20002408e8070802a000a802a802bc08a808e807a800a000da8b0000220cec03000ef80328002802c8097e048807ea080806dd8b00002408e80708022000a40fa408fc08a408a408a20f2000de8b00002208ec070000b20d2e03c204f009020afe0b220a020ae18b00002200ec0f0000f80f1600d40754085c0ad00910080004e28b20002408ec0700041000c803ae02a80ae80b0808f8070000e58b20002208ec0f00042401b408ac0467042406140584080000e68b20002208e407000208004a014a01f80f48014e0108010000e78b20002408e8070002180008012801ee07a808880898040000eb8b00002208e40f0000880ee801e80b0804fe040807ea080004ec8b00002400e80f0004840274088408fc0f8409740884090000ed8b00002200e40704022000aa07be04aa04aa04ba04a2070000ef8b20002400e80f080400015c095405d403540554055c090009f18b20002404e40700022808ac049c03bc009c092a094a074000f28b10001104f60700024400f3034b02da024a0a4a06fa034202f48b20002208e407040200097804ce034800cc0f7a0800080006f58b20002204e4070000f20f52015a01fa0f56015609f2070000f78b10001208f40704021400fc0fbc02be02bc0abc0af40f0000f88b20002204e407040290025400d4077e0554055805d4071200fa8b00002204e40304022000e407be04ac04a404ae04a4072400fb8b20002208e40704045001140954051e03d401140570051009fd8b20002208ec07080220012801fe0f0000fe0f280128010000fe8b20002408e80708028006fc04d403fc0fd40fd401fc028004018c20002204ec0704023000fc0faa04a804fa07a804a8040004038c20002208e407000efe010200aa03ba02aa0b0208fe070000058c00002208ec0f04020008f4069400960f94009401f4030404068c20002204e40704020002bc02ac0aae0fac03ac02bc020402088c20002408ec0f0800200aac0920049e031006200bac0800000a8c20002204e40700020c00f407540556055405f4071c0400000b8c10001204f40700010404be02ac01ec07ac01be02840400040d8c00002408e807000208087c054803fe0f68037c05480900000e8c00002208e40f0002140874075600540f5400560f54041400108c20002408e80f08044000bc0fa80a880abe0aa40aa40f1400128c00002208ec0704040000fe06ea04aa05aa08aa08be070000138c00004400d80f00047c00d40fd403fc03d40bd40bfc0f0000158c00002200ec0f0000e80fb402f40f1600d40b0408e80700001a8c00001104f603000df20312005e0553055a059602920200011c8c00002200ec0f00042c00e0070405a008fe0ba0082c090008228c00001104f6070000fe04aa02ab09fe074800880cff070800238c00002200ec0700039407b404a404ea07a204aa04aa0e0000248c20002208ec07000254085c06dc0156095409540954070000268c00002208ec0f000258085a05fc0f5801fc0f5a03f8054008288c00001208f40f0002f40ad40ade0afc0fdc0ade0af40a04082c8c20002208ec0f00042401920c5e0d400a8a08a206be0200002d8c20002408e80700023c02ec03fc03ec07fc03ec03fc030000318c00002204e40700022800e50f7e0564057c05e60f28002000348c00002200ec0f00042c00d0071c08fc0bfe0afc0afc0b0008378c000010018800c40fa20898089008a208c40f880008010000418c00005e075a037f035e074600ee0f59044804f70f20000000468c00080408f408940a9408940894089408940af40804080000488c00002008ae0ba80ea80aae0aa80aa80ea80aae0b200800004a8c00084008fe0bea0eff0aea0aff0aea0efe0b4008000800004c8c00007405540454072404cc083407c600e6072408ec090004508c00087c08f00bfc0afe0efc0af80afc0afe0efc0b78080000618c00001006f806d4055605d402740b5c0750017002000400006a8c0000440bfc07ec07ec0dee0aec04ec01ec027c04c40800006b8c20002a08ea0f3600c20498056e03ee0abc07ac01380200046c8c4c022c099408f4071400c000d4077e0554055c05d4071000798ca4049402520a7a09800730008e0088080809080cf80300007a8c2404a402520a7a098a0700000803c8082808fe0f080000008c8c48044804a402740a94070000f80ca803ac00a80ff8080004938c000055004905b504c003f20f97049204f0079704f20f00009d8c00000008fc05540554055401540154055405fc05000800009e8c00000008f80ba806a806ae02ac02ac06ac06fc0b04080000a08c08000808f80bac06ae06ac02ac02ac06a806f80b00080000a18c0008fc0d54015401fc0d0000100390085008fe0710001000a28c00001004f405f403f403fc01f401f403f403f40510040000a78c00002408f407f606ed06e402f402f506ee06e40708080000a88c00000808e80bec0ae20ae002ee02f406f406f20b08080008a98c0004fe02aa02aa007e01000cfe03320cd2021203f2041208aa8c10000808c807d407d207da03da03dc07f807d80708080800ab8c00080808f80bfe06fa06fa02fe02fa06fa06fe0b08080800ac8c00041404fc03fc03fc03fe01fc01fc03fc03fc0314040000af8c0008fc0d54015401fc05080024082408e60f24002c002000b48c20082008fc07f407f407fe03f403f407f407fc0720080000b78c00041c04f405f403fc03f401f401fc03f403f4051c040000b88c00000808e40bea06e506e402e602ec06f606f60704080008bb8c00085408dc0bfc07de07dc03dc03de07dc07fc0b1c080008bc8c0008fc0d54015401fc050000800f8004ff049804980f1800bf8c00041004fc05f403ec03f001f401ec03e403d4050c040000c08c00001408cc0be60af40aec02e002fe0af20af20b1e080008c38c10000800dc03c40be00bea03ea03fe0bea0be9032a000000c48c0008fc0d54055401fc054000f80fac02a802a80ae8070000c78c10081208f40bf406e406f402f602ec06f406f40b14080000ca8c0008fc0d54015405fc014800e80948047e0288056c080806d38c20002c08ec07fc06ec02fe02ec02fc02fc06fc070c080008db8c00001c08cc05ee05ec05ec01e001fc05ee05fc051c082000dc8c0008fc0d54015405fc050001be02ea09aa04aa03be088007de8c00001c08c60ff60df40df605f405f40df60dc50f1c080000e08c0008fc0554055401fc052000b407a404a604a404b4072400e28c00083e08fa07fe07fa07fa03e003e207da079a0726082000e38c00043a08ee07ee07fe07ef03ee03fe07ee07ee073e080200e48c0008fc0554055401fc03a808ec041807da06bc09b8091004e68c0008fc0d5401fc050008d40f1408d0079004fe03100c1406ea8c20001c08cc0bec06fa06f802ee02ea06ea06da0b0a080800ed8c0004fc0754015403fc050001a407fe05a405bc05a6072000f48c000478025801fc0f58013800c00bec0ae402f406ec070008fa8c0000fc0d5401fc0208086c05f80f6801f80f6e03e8054008fc8c0008fc0d54015403fc06c00fec02fe02ec0bfe0aec072002fd8c0000ac087c04fc07fc03fe03fc03fc03fc07b404a4040000088d0008fc055401fc050000fc0fe70ae40afc0ae40ae70f7c000a8d00002808fe0f5e0d5c055c057c055e055e05ec0f1c0808080f8d000c8203b60a3a07ba09bb03ba053a00ba07ba0f0a0400001d8d00000008fc09040404040402f40104040404fc09000800001e8d00080008f00b100810041e02d40114041404f405040800001f8d20081008f809140816041402d4011c041004f00900080000218d00001408d40b540854065c01540454045408d40b14080000228d0008fe090204fa030200fe0e0000080388086808ff070800238d10001408dc0b5c085c045c035e005c045c04dc0514080000248d00001e08c00540045e02400166045a045a08d60b12002000258d0008fe080206fa01fe0c000070088e048803780408080000268d00047f07f9000102ff020008ff072004e800260321040000278d00000808c40b5e08410644014f0454045408d20b0a080000288d0000f0070c00ec092c042c02bc012a042a04ea0508080000298d00007c0ff4000402fc00000efc01340cd4021403f20404082a8d08000808d40b540852045a03520074045404d405040808002b8d08002808ec0b6a085a04480368006a045c04c405080808002c8d0008fe0df2030202fe00000c240222062a09e208210800082d8d0008fc0de4030400fc0e1000cc010a01c8090808f80700002e8d0000fc090404f4030400fc0e100008040e040804080438042f8d00000808fc0b6a086a067e016a046a046a08fe0b08080000308d00002808b809b804b802b808b80b0808fe0108060e080804318d0008fc080406f401fc0200085004fe045007540950090004348d0008fc0df4030400fc060000800ffe0488048804880f0000358d00002008fc0b7408740474037e0074047404fc0520080000378d10000808dc0b4208480448034e0058046a08e20b14000000388d00000008dc0b52085b04400352004e046204e2051e080000398d00084008de0b76085f04560356005f045604d605160800003a8d00001408d40b4e0864065c0140045c045408d40b1c0000003c8d0004fc02f4010404fc000006e80108087e048807ea0808063e8d02083a08ea056a047e046a036a007e026a04ea053a0802003f8d0000fc0df4030400fc05c000f80fae02a802a80ae80f0800418d08000408df0540046a036a006a027e026a04e9052a080000428d0008fc06e4010404fc040000c80fd604a404d4044c0f4000438d0000fc0de403fc0c000cf80308084a08ea0f480848080000448d10081208d40540046802660356004c025404d4050c0800004a8d0000fc0de4030400fc0e000050036808e60f6800480710044b8d0000fc0de403fc000008d40f1408d4071000fe03100c16064c8d0000fc0ff4010404fc058000d40f7e0554055805d40f10004e8d0008fe05f2030200fe050000a4095407fe011405340900004f8d00001c08860bb408b404b602b400b404b60485051c080000508d0008fc090404f4030400fc0e0000be00ea0baa06aa09be07548d0008fc07e4010404fc050000a80fa404a604b404a4072000568d0008f4049402fe0f9401f40a0008f807d6031c08f40b0008588d20042e049e055e045e025e0348006c025e049c05240424005a8d0008fc0de403fc0000085a05fc0f5801f80f5e05f80940005b8d0000ac08bc08fc05bc04be02bc00bc04fc05b404240900005e8d20002e089c0b4e087c0440036e005c044e049c052c082800608d00007e040203fa0002027e0098077f057c057f05fc070000618d0000fc0df403fc0c0000f8070e00ec0fcc0bc80bd00f0000628d000ce203be0afe07de0c3f03fe0cde073e01fe0f06040000648d2002a401a4082406e4013e082408e40f2400a40020030002668d80092404e4033e08e407240080093404ca028803780408086b8d80092404e4033e08e407a4008007e4013e08e40724008003708d20082804a80328042804fc0f280928092809280920080000748d1006d4011402fe035404540450040004fe05080410042004758d1006d4011401fe03540454040005cc0430044c0482050004768d200ca4032404fe07a408a40800082408fc0b240824080000778d1008d4071402fe07940894080008e409240a240a3c0a8009818d1006d4011401fe0354045004040552052205a40488040804858d0008d8071804fc0798081008d40b4c0a640a640adc0b00088a8d200ca803fc07a8080008f8098808080a7e09c80a2a0a00088b8d2006a8012802fe03880420041805560554055c05f4050004958d2006a8012802fc03a80500055c04dc04dc05dc04dc040004998d200ca8032802fc07a8080008f40b3008bc08900af40900089f8d0008a4072402ff07a4080408f40b90085e099008f60b0008a38d140014049e03f4031004fe04aa04fe050004e4051c050004a88d100cd4031402fe079408a408ef0b5e094a096e08de0b0000b38d000000083c04a40324042408e40f240924093c0900080000b48d0008de071204f2079e00000efc0100000400fc0000070008be8d0008de071204f2079e000008f80f0008fe0f400840080000c38d0008de07f20792049e040000240c2203fe00220322042008cb8d00089e0f1208f2079e0c00080807ff00480b4a06ca094800cc8d0004de071204f2035e0200084e044803fe00480348044808d18d0004de071204f2079e040000fa07b408f40a040afc090004db8d00049e0f1204f2079e00000cf803c8097f064805d8080808dd8d0004dc071404f4039c020000fc0f140514051405f4050004df8d0008de071204f2079e000008fc0f5408d40154067c050009e18d00049e07f20792040e02e00cf8030e08f8070800e8010000e88d00049e07f207f2078e042000b803a80aac0ab80aa806a800ea8d00001e07f20792043e0cf8071600d40754085c0ad0091004ef8d0008de071204f2079e049000880fd608a408bc08c40f8000f38d0008de07f2079e040000080dfe030000fe07400898080405f58d0004de07f20792041e0280084804ff0448032a05aa098004f78d0004de07f20792041e028008a607bc00b40fcc08cc08a004fa8d00049e07f20392029e0200005e07c200e20f4e01500600040a8e000000041e0ff2079e040000e40fa402f40fac02e40f00000f8e0000de0f1204f2079e040000b80f800afe0a900aac0f2400108e0004de07f20792041e084009e8052f071805a90b4d0b2409228e0004de07f20792049e028000be02ea09aa06aa01be0f0000298e00009e0ff2079e0400049400a40e8401d40f8202ba0482082a8e0004de071204fe078000a806a800ae08a80f880098028004318e0000de0f1204fe07000cfc031408f405d606f40594080000348e00009e0f1204f2070e08f00a6a067a036e0afa0a00060000428e0008de071204f2079e0400001a0d0a03be0f0a031a050809448e0008de07f20792040e02600024079400a60f9400a4070000488e00001e0ff20792040c00b00f4409140942085209ca0f00004b8e0000dc0f1404f4071c0440077c02ec0fac006c0afc0700005f8e0000de0f1604f6079e0c0008fc0b7c0d7e057c0dfc0b1008648e00089e07f2079e048000f60f0004dc030a06e00f8e089008668e9e0f1208fe07800cec07a802e80f0e00e807a802ec0f00006c8e00043e03f203b2027e04ba057a0766056c07b407300448006d8e0000de071204f2079e020000bc07af05bc05af05bc070000728e00089e0f1208f2078e00e4039607bc07bc03d60ff4030002818e00009e07f2079202ee06d002de01fa07ea07d601f00200048d8e0008de07f20792049e048001fe0fa60af00fae0aae0a00008f8e00009e07f2031e00c0079400e607d403f403d603f40f0400ab8e00090009fc09540554055603540b5409fc07400020000000ac8e8004fe04aa02ab09fe070000f2009208920892089e070000af8e8004fe04ab02aa09fe070000fe0f020a9a0962089a0b0208b28e0009fc0956055503fc0f0000b00c8e02c20f82029e042008ba8e8004fe04ab03fe0f0000f7071000d0035e019004f7030000ca8e00000402fc02ac02ac02fe0fac02ac02ac02fc0204020000cc8e0000fc02ac02fe0fac02fc0a0006ff010800f80f00080006cd8e00000602fa02ba02ba02fe07ba02ba02ba02f20206020000d28e0000fc02ac02fe0fac02fc0240004400fc0f440044000000df8e0000fc02ac02fe0fac02fc0810040e03f800080338040808e28e0000fc02cc02fe0fcc02fc0200082407e404240424072008f88e0000fc02ac02fe0ffc020000f80f8804ff078804f80f0000fd8e0000fc02ac02fe0fac02fc0a400826099a0f1a0926094208038f0000fc02ac02fe0ffc020000140854048602940354041008098f1002f403f403ee07ee07f40310067e029003d20414080006148f0000fc02ac02fe0ffc020000e80fa802fe0fa802ea0f0000158f0000fc02fe0fae0ffc0210086a0902097a0f02097a0942081b8f0000f402fe0fd4027400e00f14009401fc0f9401f40f00001d8f0c0ce0033e00e80720020a02fa02ba02fa0fba02fa020002298f10005c04dc07fc07cc07e00fc007dc07dc07dc071c0400002a8f0000fc02ac02de0ffc021c00c40fe207e10fc60f080010002f8ffc02ac02ae0ffc02fc0200062e04ea076a056a05ee0f2004388f0000fc02ac02fe0ffc021800c40fb302f20f8401e80f00003b8f0000fc02ac02fe0fac027c00140fac0aac0fac0abc0f0000498f0000fc02ac02fe0fac02fc029c06bc0afe0abc0ffc0300005f8fe207e207fe0ffe07fe077e00be07fe07fe0ffe07e2070004668f00000802680258024e024a02e80f48024802480208020000678f000044027c024602f40f44010000fe070008000800070000688f440274024e02e40f440100080807fe000800f80700080006698f040274024e02e40f4401000144004400fc0f4400440000006c8f00007c024602f40f44010000a400f402ae04a40ba40020006e8f440074024e02e40f44011000c807860885088808300600006f8f040274024e02e50f4401240930040e03e800080338040808708f0008a408b406bc02b60136093408b405b406b406a4052008748f00007c024601f40f4000f80f8804ff078f048804f80f00007b8f00007c024602f40f440100092408a408940fac08a40820087d8f10005405d4055e05540f54031008fe0410039605500800067f8f00007c024602f40f0400d00c34031c001400320f52008000838f000074024e02e40f44010009680488040e03a80528084008858f00003a012701f20722010000f40f5401ff075401f5070000868f7c024402f60f0400f00f1401fc001c03fc081409f4070000888f50045c05dc055c055e054005400f5e055c055c055c041004898f000cf4031e00f007140142014e017a01ea074a014a010000908f3c024402f60f4400000fbc0aac0aac0fac0aac0abc0f0400918f000078024c02e80f48010004fc07740574057405fc0f2004938f00007c024602f40f2000f80fb402f20f94011808f0070000958f440074024e02e40f40021002f40eb409be09b40274051009968f00007c014601f40740011400b407b405f605b40594078000998f000074024e02e40f1400ee07b40ae40f74048a03780400089b8f200024012c013c012401e70f2401340124012401200000009c8f000042055e055605d6055605770f5605d6055e05020500009e8f0400920f9204fe049207100044017401c60f7401440140009f8f0004fc03a40fa404bc07000058014801ce0f680148014000a38f000044095409c70774010408f0049402fe0f9402f4040008a68f1008cc07e80140081007fe00e00f08005a01c60f68010000a88f44005509c607740100087006fe0100005401c70f74014000a98f44005509c607740140000e08e40700005401c70f74014000ab8f08005a09ec0740011c04f204880400045501c70f74010000ad8f0400cc0f52017a07d600d60f00005401c70f740144010000af8f08005a09ec074801480f6b0568070c005d01ef0f4c010000b08f0000000cfc034400d40f54085404d4015402540554094008b18f000080027e022206ea06aa022a0a6a0aaa06ea0262030002b28f000cfc036c09ec09fe07ec09ec05fe07ec05ec05fc0b4009b98f00082204ec0308040008080bc8083e08080a080af8090004ba8f42084604c80700040408c40b3c08040a040a040afc090008bb8f48085204d6030404100810081008ff0b1008100810080008bc8f42084204cc070008000a820962083e08c0080009000a0000bd8f00082404e80300040408040a040af40b14080c0804080000be8f20082204ec0300040808080bc8083e0848088808080b0008c18f20082604e8030004240824082408fc0b2208220822080004c28f00082404e80308042008240a240afc092408240824080000c48f20082404e803000430040809ac0a680a280a280a08090000c58f24082404e807000424082408f40b24080408fc09000a8009c78f20082204ec03000408082808c808080a080afe0908080808c88f24082404e8070008040bc4083c081408140a140af4090404ce8f0008460cc8030004fc0904090008fc0b04080409fc080000d08f20082404e8070008100ad4093409140954099409140a0008d18f42084204c4070008000bfe0812081208f20b120812080000d48f00084204cc070008000bfe08320ad20a1209d20a320a020ad88f00082204ec030804800844082408fc0b04082408c4088008d98f00082404e8070008280a2809ca084c08b8080809080a0000db8f20082204ec0300044808480bfe0848084808fe0b48084808dc8f20082404e8070008100a1409f4081408f40b140a90090000dd8f00042204ec030004540454045404fe0554045404c4050000de8f00082204ec07000414092c092609f40b2409240904090000df8f20082404e80300040009fc0824086408e40824093c0a0008e68f00084e04c0070405fc040608fc0b0008fc0b040afc0b0008ea8f00082404e8070008f80b480a480afe0b480a480af80b0000eb8f44084404c80700040008f80b480a4e0a480a480af80b0008f08f42084204cc070004880968080808fe0b08086a088a090008f48f9008d404b4030004fc09040af40a940af40a040afc0b0000f78f42084604c8070008240ba8086008fe0b6008a808240b000af98f00082404e80308046008080bfa080c0af80b0808e8080000fd8f42084204c4030004fc09540a560a550a540a5c0ac00b0008009040084204cc070408000afe0b2a0a6a08aa095e0a400a0000019042084204cc07000448084e0a4809f8084a094a0a480a0008029020082604e80700041408d40b540a7c0a520a520ad20b1008039000084408c80700049c08400afe090008fe09400a9c0a800a069000084e0cc0030804ea088e0a880af80988088e08ea080808099000082408e8070008200aac0968083e08e80b280a280a20090a9000082204ec0700042208fa0b4608300afe0b00083808c0000d9000009208f40694050008f60b10085e091009940af20b00080f9000082408e80700042c082c0bdc085c089c0aaa0aaa092008109000082204ec0300041205aa08ae0a520ae20952088a080004129020042204ec03000474055705d404fc0556045505dc040004149000084e04c007100448095408540af209540848095009100817900008240cc80310040408740ad40a540ad40bf40a040a00081990000054047c02d8030004f80578057c057805f805080400041a9020082204e4030004fa09ae08ae08fa0bae08ae0afa0900001b9000082404e80740082e0bf408000a240afc0b240a240a00001d9000082608e8070008480afe090808fc0b1208f20b120800001e900000d208bc0698050008bc0ab40af40bb40abc0a000a00001f9042084204cc070008740a5409d408fe0bd4085409740a040a209000082408e80700042008ac0ba80abc0aa80aa80b20080000229000082604e0070408940a920aaf0aea0bae0aaa0a080a1008239002082604e40300047c095c095c09fe0b5c095c097c0904092e9000084e08c0071008940a540a5408fe0b54097c0a100a000831900008420ccc030004fe090208ea097a09ea09020afe090008329000084608c80700041008fe0ba80afc0baa0aa80a080a0008389042084404c4071008780a5609d6087408dc0b500a700a00013b9020082404e80300049c08540a7c0a54095c09d4081c0800003c9024082804e807800b7c056c0dec0f6c0d6c0dfc0f000800003e900008220ce2030804e805fc08fc0b0b08ea08040ce80f0800429000084604c803000428096e09d808a80ac809ae08a8080809459040084404d8030005fc081408d409d409d40bf409dc090008479000082404ec070008fe0b6a08fe097e096a0b7e0cc00f00004a900008460cc0030405fc08170ae4090c08460af40b540844084b900008220ce40300047a097a097a09fa0b7a097a097a0900014d9000082204ec030005fc08d40bb408f60bb408f40bbc08e00b4e9000084208cc070008e00b3e08e2097a09ea093e08e00b00004f9000042202ec038002dc053c05bc05bc053c053c07fc070002539020082404e80700040808fa0bbe0ab80abe0afa0b08080000549000084604c8030004d409f409d409de0bd409f409d4091008559000084408c8070008fc0adc0bdc0ade0adc0bfc0a880a0008579000082204ec030004ee086a0a6a097f086a0aea0a2e08200459909008f60690050008b80ea40ebc0ef60fac0eac0ea40e80085c900000d10cb60210054204fa09060a5c08f60b4208c10a00005e909008f304140380047e08020bf2083e0a7e087509750a3001609002084208c20708047c095c09dc08de0b5c09fc09880a000863900208420cc4031004fc09fc0afc0afe0afc0afc0a900b000865900008240ce80300044c097c0a640aec0b640a620a6a0b400068908008d60830070406f4097e0d540d440b10088e0b780a080a69900008460cc8030004f4093408fc097609fc09340af40900086d9000081104f6030004fe09be0abf0abe0abf0afe0b1e0800046e9000042602e80380027c04140574045606540574041405000072909008d404b4070006fc090c08b40a8c0adc0b8c0abc0a000a759000082608e80700047c096e0b6c096c097c0dfe0f7c09040177908008d404b4030005fc08ec0bfc0cec0efc0fec0c7c090009789001082604e4038004ae0aee0aae08a008ee0aae0aae0a08087a9004084404c4031004fc0dfc0bfc09fe09fc0bfc0b100800087f900000440cc8030005fc0b540adc0b0808b808ec0bb408a808809002082c0ce0074c06fc097e095c0b10080e0be808180b000881909008d604b0070008840bf409fe09f409f409fe08f40b0008849002084408c40710047e097a09fe08fa0b7e09fa099e0a10088a909008d604b007c008fc0dfc0b7e0b7c0ffc0ffc0bc00800088f900000a40ce8030004fc0f540b9c0bd40bdc0bd40bdc0b000a919000000000dc0754095409d409540954095409dc09000400009390000014042402c40134010c020000fc0f040074028c010000959000000400fa07d00ad40ada0bd00ad40ada0afa0b000800009790400044004400fc0f440044000000fc0f040074028c010000a19008080807f8002e082808e8070000fc0f040074028c010000a2900008440efc0144004400fc0744000000fc0f040074028c01a3902400240dfc0324092409fc070000fc0f0400f4020c010000a6908000a40ca403ff00a400a4000000fe0f02007a0286010000aa90000004063401a408fc0f24000000fc0f040074028c010000ae900000f8074802fe034802f8070000fc0f040074028c010000af900800fe0f480448044804fe0f0000fc0f04007c0284010000b1900004fc0724042402e40324020000fc0f040074028c010000b390840444042404fc072402c4020000fc0f040074028c010000b5902000a20f9e048204a2049e070000fe0f060076028c010000b8900002fe09220922097e08a20b0000fe0f02007a0286010000b990080018049404930492049e04e00ffe0302003a01c6000000bb90100050014803560ec80950000000fc0f040074028c010000c1900000c800f80fac02a80ae8070000fc0f0400f4040c030000ca9048042804a8020c01a80128020000fc07040074028c010000ce900004fc07940296029402fc040000fc0f040074028c010000d19040084a044a03f80048014e060000fc0f04007c0284010000d39000009602f2029a02d20f92020600fc0f02007a0286010000dd902000a4082406fe01e40fa4000000fe0f02007a0286010000e1900a022a01fe0faa04aa04be070000fe0f02007a0286010000e8902000a80fa404a604a404a80f0000fc0f040074028c010000eb9000007c01d4017e0154077c010000fc0f040074028c010000ed900402f402d40ad60fd402f4020000fc0f040074028c010000ef900000a408a4041002ce031002a40dfe0f02003a02c6010000f49080014800ff0f2801c000ff0f28000000fe0f02007a028601f5904c09fc094c09fc074a05fa050000fe0f02003a02c6010000f7909808dc06a3010004fe0752027e030000fe0f0200fe030000f8900002f002b602f00fbe02f0020000fc0f040074028c010000fd9000009400d40f7e0554055c05d4070000fc0f04007c02840102918000bc00b40bbc0aa80ab406bc000000fc0f64049c03000009911009dc0432038000fc079604fc060000fe0f0200fe03000019911000d707d504fd05d5055704d0070000fe0f02003a01c600279128001a08da0a5609400dbe094000fe0f02007a02860100002d91000af40b1607bc033c0b560be403fc0f040074028c010000309100002809ec068803be018802dc0f8000fc0f0402fc0100004c910000fa0f7e043e054a04fa0f3000ce0808090808f80700004d910000fa0f3e053a054e05fa0f0000e207220822087e080006529100001904a3030000f90f49053f0509053f054905f907000057910000fa0f3e057e05f20ff8038c0570048e04f80f000000005d910000fa0f7e053e054a05fa0f00002407e4042404a407200863910000fa0f3e057e05fa0f0000fe0f88048804fe0f0800000065910000fa0f7e053e054a05fa0f0000a401fc0fa200220300006a910000fa0f3e057e05fa0f9800c40fae08bc08c40f400000006c910000fa0f7e053e05fa0ff000fe072000fe072000ff0f000071914000c20fd40ed00ede0dc00ce80ce60dd60ed40ecc0f440075910000fa0f7e051e05fa0f00002a012f09ba0f6c012a01000077910000fa0f3e057e05f80f3c03aa04a804be04a8070000000078910000fa0f3e057e05fa0f00012c059a05b802ac05280800007f910000fa0f7e053e05fa0f0000fc0f5404d60054037c04000487910000f60f3e057e05f60f0000bc0aac0aae0fac02bc02040289910000fa0f7e053e05fa0f000024011401c60f3401640100018b910000fa0f7e041e05fa0f0000e4077f0564057f05e407000092910000fa0f7e053e054a05f00f9e08aa0aaa0faa0abe0a00009c910200fa0f7e043e05f20f78085407fe00d407fc0b00040000ab9100005e00fa07fe05ee06fe06bc06f607d207f60754000000ac919000bc0f980bbe09800db80dbc0d9c0fdc0ff40b940f9000b4910200fa0f7e043e054a04b60f6a08ff0dea0aff0aeb0efe0bc7914004540254024401cc00e40fc400620172024a0240040000c891000096015200fe0755000006ff012100e10021033f0c0004ca9100002a03a200fe0fa300aa00a002ae02920faa02a6022202cb910400ac01fc0fa200a8003e02fa02be02ba07be02fa022e02cc9100000004be04aa04aa04aa04fe07aa04aa04be0400040000cd9100001004f405f405f405fc07f405f405f205f20510040000ce9100007c095409fc0754057c0100082408f40f2c00e4000000cf9100002004fc07fc07fc07fc07fc07fc07fc07fc0720042000d1911000b0089009980b9608f10f92089408980a900830080000dd915008580b5408f2075404440500002000fe0f200020000000e3915008580b5408f207540444051000ce080809080cf8030000e7914008580b5408f2075406000cfe030000fc070000fe0f0000159250085809f6075404540100084408fc0f4408c40f7c0840001e925008580b5408f207540458050601250924090405fc03000034925008580b5408f207540510044800d70f52004c04d0071000449250095c08f2075404440110044e044803fe00480348044808719250085c09f2075404000df80308000807ee04080488070008749240085e09400b60095e09d00f5609640d340954094408000080925008580b5408f20754070000fe0f4a08ca014a067e090008839250085c09f2075204040d640434032c002600b40f34084406859250085c09f20752048404fe0f0200ea032a01c208fe070000989258045405f2075204440510021801940fe6049c04840f0000ad9250085c05f207540454010008a804fe05a806aa09aa080006b39250085c05f60740051000fc0492069001920ff40818081004b792400850095c04f2074406080df60710005e011009f6070000d292000050085c05f207540500004805af05920fae05a2054004ea92500b5804f607480458050800e80fa802fe0fa802ea0f0000ed92500958055404f207540400017a0ccc034800cc0f7a080006fc920000500b5c08f2075407fc0b0c04a403e4030c0bfc070000049350085809f607540444050004d8025608d40f74004c054005229350085805f60754045401000828099e0518075a072a0ba808269328042e05f9032a062a078007be00eb0faa00aa04be0300002b93500858095404f20744070004be04ea03aa06aa09be0700002f9358085409f207540404052400fe07640564057e05e4070000329350085809f60754040005a2042a00ea0faa012a02be02a0043693480b5c08f207540444011400540fd4087e08d403540540094a9358085409f20754040405f404b4029401fe0fb401f40204044b9350095808f60754050400e00f3e00b203aa023e09e0070000759348085c09f207c407300c2e03e004aa06ff0baa0abe0a08087e9368086c096a04f9076a07020cfe08ae0afe0fae0afd0a00088c934804ce04f9074a05ec05ad02fe0fac00fc0faf02fc0400009693500858085409f20754040009f40bb00abe02b002f60b0008ae934008500b5c08f207d4050000fc0bec0aee02ec0afc0b000ae193500858085609f10752040a0dea086e076b016e0fea090804189450085c05f20754050000f20b7a0b730bf30f720b7e0bf20b359430085a0afc071c077400b407be07540cfe051007d6080006519450085c09f20704077e00aa0fee09ba0f00094e0f4809480f709408085c09f20744050800e80fc4079202f40f8402680f00007d9450085c05f207540d00081808de05dc03dc0bde0bac0b2800889498008608f50f94048404200020002000fe0f2000200020008994000098008608f50f94049404000004080408fc07040004009394000098008608f40f9404a0021c004a0088090808f8070000999498008600f50f940494040000f2008200fe089208920702009d9498008608f50f94040004e80108010801fe0708090809e80d9e9498008608f50f9404840c800838080004fe038001080030009f9498008608f50f94040404f00190009000fe0f90009000f001a094b8008608e50fa4040400f00f100290017e009009f00f0000a29498008600f50f94040000fe0f02023201fa010208fe070000a594b8008608e50fa404a400000cfc03240124092409fc0f0000a694000098008608f40f9404840c30080e06e801080338040808a79498008408f6079404840210004e0248094809080cf8030000a99498008600f50f940404041001ee010809c80b0808f8070000ae9498008608f40f9404840c0008420efe094208420efe090008b19498008608f50794040002c8084804fe0448072a09aa090004b3948000ac08ea07a80480021000fc0f900490049004fc0f1000bb9498008604f507940494020400800f8004fe049004900f0000be9498008608f50f94040004fe0192009200fe0f92009200fe01c19498008608f50f94041404c000ce0cc802fe01480248044008c39498008608f50f94048404100048015602440dc80010000000c59498008608f507940494020000be0f82048204fe04c00f0000c69418008608f50f0004fc01020dfa020000fc0f0400fc030000d09490008c00fa0f98048005a800a803fc0aa80ab80aa806a400db9498008608f50f9404140440015e0540057e054005de0f0000dc94a000b808e60fa4042000fc0f0400d40754028409fc070000dd9498008604f50794040000be0fa204a204a204a204be070000e19410008c08f6078408fc07f401fc0c0000f8090008fe070000e39498008604f50f9404940200084e04c8037e00c80f48084004ed9498008604f507940400029800840fe604a4049c04840f0000ee9498008608f6079404000258085609f40f5c015401f0014000f29498008608f50f9400000ce4032c0025002600340024000000f69490008c00fa0f98040000fe0f5208d208520352057e090009f89408009408f60f940400005406d4017e035409540f44010000fa945c004304f20752020000f40f54015401ff0754015505f503fe9430008e08e507e0040400c00738044c09e80b4809480900000095b8008608e50fa4040400e00fac02a002bc02a00aee0f00000195000098008608f50f94040000f6091004de031004f6090008049518008400f60f0004fc079404fc030006fe011008f0070000059590008c00fc0f98040800c00f5c005403f4005409dc0f000008958800a608e507a40404029008b407b400bc00b20932074000099598008608f50f9404840c60081c096009fe0f40093c0940080b9598008608f50f9404000068056e05d40f5c052405200400000c9590008e08fd079c041c04400158015801cc0f7801580140011095b0008e08e50fa404000070045407d800d00f5c0872080006199598008608f50f940480042800fe07680568057e05e80720001a954c004304fa074a020000f40f9e049404f4079e049404f007219598008608f50794040000be04ea02aa05aa03aa08be070000239590008c08f80f9804000c9e087e0852065e02d2015e000000249588009604f50794041000f4095409fc0f5409f20950010000259598008608f50f940484043000fe0f2805fa0728052805000026955c004308f20752020000be07aa00aa00eb0faa00be048003289518008408f60f0004fc031400f20f0000140eea01080638082d9598008e08fd0f9c04000ea80328042808ee0f2809280900002e9518009408f607840020083e07e0086a0aff0b6a0a7e0a08082f9598008608f60f94040006fe012a062a05fa052a052e0700003095000090009c08f80f98041800500f540f7c0f140f14081000399500008e00f50f00049401fe0f1200b80c0003fe000003380c3a9500008000f608f50ff404000cfa08ba0afe0fba0af90a00083b9510009c00fa0f9800fc0f52020008de054202de0500080000409598008608f50f9404000efc011408f405d606f40594080000479598008608f50f94048000040afc07bc06be02bc0afc0b04024a9590008c08fa0f90040400bc06bc063c01bc09bc06bc06a40950950c004200fb074a02c00f5e005607570556075e00c20f0000519598008608f6079404840210085406d60154095409540700005695b0008c08ea07a800000cf401fc09d40ffc01d405f40500005c9580009608f50f94040004ea016a0d6a036b016a0fea090804639598008608f50f94040400f407ac02a60eac02f407440c000070951800c408f607c40afc075c04fe0f7401f40f7c03f005000476950800a608f50734040005fc03ec0ffe09f403ec05fc0a000a7795000040044004fe0756045604d604560156035605400540047f95000040004000fe0f40085008d0044801440244044008000880950000fe0f2a002a003e0000003e002a002a042a04fe03000083950000fe0f2a002a063e0180003e012a022a0a2a08fe07000089950000fe0f2a00aa04be028009be07aa00aa082a08fe0700008b950000fe0f2a006a05fe0340017e01ea076a012a04fe03000092950000fc0f54005408bc078003fc0bd40f54005408fc07000093950000fe0f2a00ea0f7e0540057e05ea072a002a08fe070000a2950000ff0f1500d506df02c001df01d502d5041504ff030000a3950000fe0f2a006a0efe0b400bfe0b6a0f2a022a08fe070000a5950000fe0f2a00aa0f3e008008be05ea06aa082a0cfe070000a995fc0f1c00dc055c054c05e0074c055c05dc051c08fc070000b1950000ff0f1500f5055f0340015f07f50455061504ff030000c6950000fc0f1c001c07dc05a007bc027c051c071c08fc070000ca950000ff0f1500b5061f00a007ff05b505b507150cff070000d6950000fc0f1c04fc01fc05e003fc07fc053c031c08fc070000d8950000fe0f2a00ea0dfe0e80073e01aa08aa072a08fe070000dc950000fe0f2a00ea0dbe0d0003fe0c2a05aa0d2a08fe070000e1950000fc0f1c00fc07fc07e00f8c077c077c0c1c08fc070000e8950000f90f02000400000002000200020002080208fe070000ea950000f80f02000403800072004a008200020b0208fe070000ed950000e20f0c0028022001a4046404f40724000408fc070000ee950000f20f04000400f40314011401f40104080408fc070000ef950000f80f02004a016a014a014a057a04c2030208fe0f0000f0950000f20f0400140250025402f4035402540a0408fc070000f2950000f80f020024022001a200fa07a20022090208fe070000f4950000f40f0400e003a402a402a402e40304080408fc070000f5950000f80f0200540450029a01d2013202120a0208fe070000f7950000f00f86004400f00102023a020201e2080208fe070000f8950000f20f0400f00154015401f40f54015401f4010408fc07f995e20f0e00e80360006c00fc0764006402e4090408fc070000fa950000f00f04004404500554057407540554090408fc070000fb950000e40f0402f003b402b402b402f40714020408fc070000fd95e20f0c00e80490029402f40394029402f4060400fc0f000000960000f20f0600f0070a0042047a02a203aa040200fe0f000001960000f20f0600a006740554057405940684000408fc07000005960000f20f0400e004b403a400a407bc04ec040400fc0f000006960000f00f0400f007b404b400b402740304090408fc0700000e960000fa0f0200e207aa02aa020a02aa02ea0b0208fe0700001096f2070400e001f801e001e403f401e401e4010404fc03000014960000f00f0600d006140044075405f40554070408fc0f00001c9600000002fc02b402b402b60fb402b402b402fc02000200021f960000fe0f02003a01c608000480037e0080010002000c00002a960000fe0f0200fe0c0002fc096404a4052402a405640800082e960000fe0f02007a0186082004e40324002400e4072408200631960000fe0f1200ee0300088804fe0388008800fe0f8800000032960000fe0f0200ba01460c0003f8004f0848084808c807080033960000fe0f02003a01c6000000fc0f440444044404fc0f000034960000fe0f020072028e090004fc03240124012409fc07000035960000fe0f02003a01c60000027c024602f40f44024402000236960000fe0f02007a018600100cc80307000500e80f080010003b960000fe0f0200fe090008fc0f240924092409fc0f000800003f960000fe0f0200fc010000f4031401f4090408fc070400000040960000fe0f0200fe0100001800e8078b084c0848081806000044960000fe0f3200ce010000fc0f0300d0001008fe071000000045960000fe0f02007a0186002002a4092408e40f2400a40120064696fe0f0200ba014600000748044804fe0748044804480f000048960000fe0f1200ee00000678014e08e80f48004801480600004b960000fe071a00e600f0070204fa050a047e040a05fa0400044c960000fe0f02003a01c6000000f20f92049e049204f20f00004d960000fe0f3a00c60010024802a803b602b40fac02a402400050960000fe0f02003a01c6080004fe075204d20452017e06000855960000fe0f0200fe0100089004e802ff018803a804880800005b960000fe0f0200fe0100087e094809000f7e094809440924085f960000fe0f3200ce000008bc092004fe042402a4012400000061960000fe0f3200ce090004a8032804fe0f280928092809000062960000fe0f1a00e6080808840494039600940784088c06000063960000fe0f1a00e6027802ac02ac02fe0fac02ac02fc02000064960000fe0f3200ce0000049002880aa408e30fa400a802880465960000fe0f3a00c6011000e80f0400e60f34092c09e00f000068960000fe0f02003a01c6000008ee052a04aa032e00e006000869960000fe0f3200ce01000490052804a704a6040806900520046a960000fe0f02007a0186002000ac0fa404a604b404a407200070960000fe0f1200ee010808a40aaa0eaa0ee40ea80a080a00007396fe0f0200fe010004fc04ac02ac01fe0fac01ac02fc04000075960000fe0f3200ce08000a340994059e06f406d405d408100876960000fe0f3200ce001000ac07e803a802280b0808f807000077960000fe0f0200fa010600d00f4805060564047c05c40f000078960000fe0f1200ee014008540934099e0f34095409500900007a960000fe0f3200ce08800958095405f20354035805d80910087d960000fe0f0200fe01000afe05d203d205d203d209fe0780008596fe0f0200fa010600f80fd400d402fc03d401d408fc0f000086960000fe0f3a00c6000008e80aae0a940fac0aa40aa00800008a960000fe0f3200ce048004aa027c0a4809b8074f00a90328028b960000fe0f72008e012000940fdc03d603f403d40bd40740008e960000fe0f0200fe010000de07540540055e056405e40710008f960000fe0f0a00f60b0008e8070008fc0b56095409f40b000890960000fe0f0a00f6000006ac00ab05aa09ae0aaa00f80e000894960000fe0f0a01f4000000bc0fac00ac02ac0eac02bc08840798960000fe0f1a00e608c00faa08aa0f8808aa0faa08a90f400899960000fe0f02003a01c6040004fe02d008de07d000f60200049b960000ff0f1900ef006c06b700ae04a007a700b802ae0222009c960000fe0f02003a01c6001002f402fc02f60ffc02f4021002a0960000fe0f3200ce0904046c01640d6c09640b7209ea01000ca3960000fe0f3200ce000009ee059803bf009803ea0fa8020000a7960000fe0f3200cc084004b6078004aa09f80cc80bce082809a8960000fe0f3200cc08e2071404d40bec08ee097c0dec0f0408aa960000fe0f3a01c6085004b802f4001308f406b804e80c0800b1960000fe0f0201fe00c00df601f207fa0bf20df901f50da008b6961004540554055402540afe07540154025403bc0490040000bb961008100978097c09780778057c0578057807780948080008be9600001406a401e4001c032000fe0fa804fa07a804a8040000c096000050005800c40fe00ade0af00af00fc40ac40ad80a1000c1960006fe014200fa0702002200fa075205fa07520552050000c496080ce8031e08c80708042003fc07aa04a804fc07aa04a804c5962406bc016408fc072400f00fae04a804fe07aa04a8040000c696080808057c055e035c03dc0f7e015d035c055c0544090001c7960000040efc01ac00ec0fec0aec0aec0fec0aec0afc0a0408cc960000f00f0004fe070004fe073002fe0fa804fa07a8040804cf961000b804a604b404ec0f2000f80fae04a804fa07a8040804d1962400b4048e02840fbc0240043000fe074805fc074a054805d596800f7c003407b4023409fc073000fc0faa04f407a8040804d6960000ee04aa04fa03ae02e0063000fe0fa804fa07a804a804d99600000808bf04bc04be05bc068802be02bc05be05bc042404dc962000a4069400c60fb4020000fe0fa804aa04fa07a804a804de9604087c097c05aa03520d3801fc0faa04a804fe07a8040804e296800ff400d403d602c408f4072000fe0f2805fc072a050004e3960000f409d605f403d605f4052000fe0fa804fc07aa04a804e8960400f40f140054011400fc0f14005401540a1408f40f0400ea961800ca0aca0aca0a8a0abe0a8a0aca0aca0aca0f18000000ef9600089808ca08ea09ca069e04ca048a06da09ca0898080008f096000a18099a05ba050a033e011a093a098a07180100020000f29600010c056505650745055f05450565076507050d1c090000f3961c0cc603760876097e07460176097609760946095c070000f696800098009a01ba054a05de05ca055a0dba0b8a0198008000f7961800ca0fca0aca0a8a0abe0f8a0aca0aca0aca0f18000000f99680009800fa07fa0aea0afe0aca0afa0b7a0aca0918040000fb9600001800da07fa02ca02de07da0afa0aca0b180800060000fe960001580b5c0b5c0bcc06dc02dc027c0b4c0b5c07000000000097000058005a0f7a014a0fde015a0f7a014a09580740000000049700001e000e08ae078601de058606d602de0a86071e000000069700084c09e605760b26083e0d460df60f760d660d0c0d00000797180cda037a09fa07ca05de05ca07fa05fa05ca07580b0009099700000c016605e606e606c607de06c60ee60ee6074c0500000a97000838098a0baa098a0fbe098a0faa0faa090a0b380b00080d9700010c01a60fb60b860bde0f860bb60ba60b8c08000000000e9718025a0b4a0b6a0bca0f6e0f4a0f5a07fa074a0b5a0b1808139700000e000e08d60bae0aae060602ae06be0ae60b0e0800041697000098048a02ba0f8a023e008a06ba01ba0f8a02980400041c9700009804ba02ba0fba023e00be07fa05fa05fa05c80700001e971800ca0ffa05fa05ca05de0c0a08fa0bfa05ca05d80b000827970000000c4c03e60ff60146031e0ac6067603e60b4c07000132971808ca0d7a097a0fca0b9e028a0e7a0bfa0a4a0f58020000389700004c07e607f60fc6075e03060cf603f602e60acc07000039970006ec0175076d056d0505072f02e502a50fad02ed02a0004297000eec016504fd04fd067504e7076506fd06f506f5042000489700080c09e60bfe0b4609ae0fa609e60d4e0bb608e4080000529710001400fc0fbc02bc02be02bc02bc0abc0afc071400100056970802e8020e02e8010000fc0fbc02be02bc0abc0afc0f140059971000dc0fdc02de0adc0f100058095609f4075c01f00140005c971008dc07dc02de0adc0700008802a40aea07a202ea0380005e970001280128012801fe0f00000000fe0f28012801280100016097000408077c075e075c0f5c005e005c0f5c077c07080700046197000efc01040434077407540f0600340f740734075407000062970000f20f1204f2075e055205f20712041204f20f02000000699700000402e402be02b402f40fb402b402be02e4020402000074970402ee02fc0fae02e40200023000fe0f0000fe071008080676970400ee02ac02fc0fae024000fe0742087e084208fe0800068b970000e402ae02fc0fee02040a20082409bf0f2409240900008d970400ee02ac03fe0ee40200004809c60974064405e804400891970402ee02fc0fae026408e0070408900b7e08d008100b000098970400fe02b402f40fbe024008f40710005e011009f4070000a0970402fe02f40fb402ee02fc068a03e80fe801880af8070000ad970402ee02fc0f6e00fe0f7c09ac07fc04ac08fc0804080000d397fc02ac02ae0fac06fc060004ec07ae05ac0fac05ec050804e69700009200920092009200ff0f920092009204920480030000e797a800a800fc0fa800a8020001740c84037c080408fc070000e9970000f402d402de0fd402f4020000a800fe0fa800a8048803ed970000500550055005fe0700040004fe07a804a804a8040000f39710001400d407540554055605540554055c05d40714001000f5972000e80766057405e407200010012e05a8080808f8070000f6971000dc0756055c05d4070400b0078e04a204a2049e070000fb971000dc0755055a05d4070400f80f540354035403fc0f0008ff979400be00d507e007fe07ee07ce07c007de07c6079a000000019800080408fc0bac06ac06ac02ac02ac06ac06fc0b04080000029804080408fc0f04000008fc0bac0aac02ac06ac06fc0b0000059804010401fc0104010408fc07ac06ac02ac06ac06fc0b000806980008fc070000f8030000fe0f0000fc07ac06ac02ac0afc0b08984808c804240410030408fc0bac0aac02ac02ac0afc0b0008109824082408f40f3c00e4080008fc0bac02ac02ac0afc0b0000119800001407f4001402f4030008fc07ac06ac02ac02fc0b00081398e8008800fc0f8804e8020008f407b406bc02b40af40b00001798000ef801280cbc02a8035808fc0bac0aac02ac06fc070008189800005800d4075200c4090c04fc07ac02ac02ac06fc0f00002d9800007c084c054c047c07000cfc09ac0aac02ac06fc0700083b981000de0510047f0214019000fe0d560356035601fe0500043c98000078065801fc0f5801380afc09ac06ac02ac06fc07000846980004bc04ac02fc0fac029c08f809ac0aac02ac06fc0700084c98400c5c035c04dc075c09000cfc0d5c095c095c09fc0d000c4d982001ac0fb4055605a4070c00fc07ac06ac02ac0afc0b00004f98000cec033c08ae092c052402fc0bac0aac02ac06fc0700085498000ce4032c08a60a2c052400fc0bac0aac02ac0afc0b00085898000ffc007c06ac00ac0ffc010008fc07ac06ac02fc0b00085b98040afc0bdc0ade02fc0b0000fc07ac06ac02ac06fc0b00005e980000ac049802de019c028808fc0bac06ac02ac02fc0700086798000efa012a0faa07da0780070208fa0bae06aa02fa07020c6f980001fc0dda011a09fa03bc030009fc07ac06ac02fc0b0008759800000408f40b140814041402dc0114041408f40b040800007698000004080408fc0704000008fa090a04ee030a08fa090000779800000000fc03100210010008f4051404dc031404f4090408799804010401fc0184000008fa050a040a03ee000a020a04fa057a98000cfc030000f8030000fe0f0000fc080c06ec010c02fc0c7b9800044804260290010208fa040a02ee010a000a02fa0402087d9800001206f2011200f2070002fa080a06ee010a00fa0e00007e98fc0f0200fa070a04fa020008fa040a06ee010a00fa0e00007f980000f4008400ff0f84046002fa080a06ee010a00fa0e00088198300c0c02e2092008ef071000fa090a04ee030a08fa090000829830040c03e2020002de070000fa0c0a02ee010a00fa0d0004849822002a08ea073600e2000008fa040a06ee010a00fa0e000085980008f00790009e00f4010008fc090c04ec030c08fc0900088698100050014c026a0dd0000008f4041406dc011400f40e00088798000efc01240c3e03e4060c00f0041406dc011400f40e000888980000a20892088a07b604000cfa090a04ee030a08fa0b00008a98480458044803fe0078034808e0041402dc011402f404000091982000b80b2008fc0528032008f4091404dc031404f4090000939800002c08ac07bc00aa070004f2081206de011204f209000096980004cf02d401d40fb201000af2081a06d6011204f205000897980004fc04d402fc0fd401fc00e0091404dc031408f40900009898400c5c035c04dc075c09000cf40c140bdc08140af40c040c9c980008f2071a01b304aa021208fa040a02ee010a00fa0e00009d98ac0014065e057405940e1c00f4091406dc011400f40d0004a098040afc0bec0aee02fc0b0000f4091404dc031408f40b0000a4980008fc0bfc0bfe0bcc0b3c03f0080a04ee030a08fa090000a8980000000efc010404ec052c05fc072c05c40cfc0700080004b198000efe014204fa034202fe000003d80456095009dc0d0000c4980400f40dfc01fc07a40ffe076604f603fa03fa0704080004c6984006ca016a006706eb01620cff036104fd036107ff010006ce980000000efe0102041a02a201e2001a070200fe0700080006d2982804ca040e02ec03000afc070402f4010402fc07000c0000d898740dd401fc09d407fc03d401240dfc031406e401fc07000cdb9850085206fa0142004200fa0f42004200ce0314052a094805de980000040004000400040004000400fc002007500888088806df98000010001008f80fb408b209b402b406f809900810080000ef980804e407d204d204f406000efe01620ca2052203e2040008f2980804f407b204b204f40620001c0c8a03f800080338040808fc981004fc07b204b204f4060000ec032c01ec090408fc070000fd9808000804fc07ba04ba02f4060000f8039604f4040404fc04fe981004fc07b204ba04f2063404e8012600fc0f2400e403000005990400f20f5a095a05f20900008a0cfa038800ff0f890000000a99800094005c08fe0fdc09dc09dc07dc05fe0d5c0894080000109910009000a808ee0fdc0b8003b607d6079605ae08a200000013990408f2077106750321048904ff0358001f02f803db06100018990808ec0f5a095605f40d040094029408f30794008402880428991004f807b404b204ec061c00f40f940596059405fc07000052990000f00fbe04b204f40e40006a0d7a036f012a0ffa0d2805659930000c08ea0f08043800000efc0104000400fc0f000800066d9930000c08ca071800000efc01340cd4021403f204120800006e9970000c08ea0f08043802000830040e03e800080328041808709920001400ca0f18020000e80327002400fc0f24002402e401719960001400ca0f18044000f0072c092809e80b080af8090004729930000c08ca0718020800e2032a012a01ea090208fe070000759970000c08ea0f080430000404fc07940494049402fc0f0402769920001408ca0718020808a004ae03b800a40fd408940800047a9930000a08e5070402080a60081404850386030404740840047c9920001408ca0f0804b8028108fa0788008800fc0f8b0080007f9920001000ce0f180480029408fc0f1004fe02900556080006809920001c00ca0f08041800900698009408f20f940098029004819920001408ca07180200085409c4056c024403c2045a084000859920001404ca0708023800d00f4805060544045c05c40f0000869920001404ca0710020400fc07f4075505560564050c0700008b9930000c08ca0718029000b8026e043c056c09ac0ab80080008d9920001404ca0718030008740576057403f4017603740500088f9930008e0f2804180440003e0fb00ae40f9c0a840abc0f0000929910001c00ea0708016004de05fe06de02fe06de05fe040000969900000400f40f570554055c05540554055705f40f04000000999990005400540fb40a940abc0a940ab20ad20ad20f50009000a8990000bc02bc02fe0efc0ff40ff80ef60ef20ffe0ed8020002ac990008000cfc01540154055401fc0d5401540b540900070000b3990006fe00aa07fe02aa0a0007fc071008fe091008f8080006c1990006fe00aa02fe09aa0baa070000d60c08030e05d1041008c5990006fe00aa03fe0baa0e800dfe032200e20022033e0c0000c6990006fe00aa06fe02aa0b0007fe0f0204a20572048a050005d099000efe00aa06fe0eaa09aa0700008a08fa0f8c0888080008d2990006fe00aa07fe02820a1007cc012a01e8090808f8070000d59900001408cc05e601e405ec01e003fe01f203f2051e030000db9900037f00d5037f035505c1031c0c2403ff0224043c040008dd990006fe00aa07fe03aa0f00001800f8078e08880858084006ff990006fe00aa04fe01aa0f00003c078a04b806ae09200800000e9a0006fe00aa03fe0b8a072000a407b402ae0b3408d4072000129a0006fe00aa07fe038a0f4000a2096609fa0f5a09e60d2008139a0006fe00aa03fe06aa0a0a07e8082605f2032407e8090808199a0006fe03aa01fe09800ffc07ec03ec07ea036a05fa070000309a000cfe039208fe074400f605dc0bd60bdc07f60b54064000379a000efe00aa02fe0baa070000f4096a09d20f6a0fe60f2008459a0006fe06aa01fe0982070000fc07540aec0b9c09c40b0000559a00067e07fe02aa090207a80ffa03de05da07f900a90f0000579a0006fe07aa01fe0d82037008b806f600540cb802d00c00005a9a10083a0cfe03fa03fa0bda03c80bec03d60bac0b2c0624005f9a000efe00aa07fe0e00077e06ba00fe0f6c0014032c0400006c9a0000000204027402440244024402440a7c084007c00000006e9a00027a0242094208fe070000100c90037e009001100610086f9a00027a0242097208ce070000fe0f0000fe070000fe0f0000709a00027a02420a4208fe070000fc071008fe090808f8080006719a00007a02420a4209fe07f80f0408140be4089409040a0000739a0002740244094408fc070000540c88028803540412080000749a00007a02420a4208fe070000f80f48004a004800f8000000769a000274024408440cfc03300848054802fe05480478080000799a00027a0a42097a08c6071000ce032901e8090808f80700007b9a00007a02420a420afe07000088088908fa0f8808880808087c9a0000740244094409fc070000e8078a086c080808180600007e9a000004022c02a602a402ac02a002be02f20ab2089e070000829a00000e02aa02aa02ae02a002ae02aa02ea088e0880070000849a00027a0a42097e08c0071000540c34031c00320f52004000859a0000fa02820afe08800710007f01000f3e01480146012000869a00027a0242096208de074000480fb604a404b4044c0f4000879a0002720242094208fe070008a804b9026e020803c80c00008c9a02027a0142094208fe07200098052404a6050804d00710008f9a00027a02420a4208fe0700002c09ab068904a807ae082008919a0000740244094409fc070000a407ac02ae0b3408f40f2000979a02027a0142097e08c007fc03940fd607d40f5401dc0f00009a9a00027a0942097e08c00792085609de075a055607d2072008a19a00007a0242094208fe071c0dea017e092a0faa01be0b000aa49a02027a0142087c0ae205be06ba05be0f6a03d2052e090000a89a000060002000fc0fe402fc02ec02ec0afc0f200060000000b89a3000fe0ff602fe0afe0730000409b404af0264021405c408d29a6008fc07e4007c0afc074000b40a76065002b60eb4020000d39a3000fe0ffe02fe0f74007008dc070608e40bfc09ec0b0008d49a600cfc037c09fc0f00007c08ec0bfe0aec0efe0eec0b7c00d89a00000200c20f5e00560f5705560556075e004208c2070000e69a00001004be05de05be02be07800b640b6a0b140b140a0000ea9a0000d008fe04de02de09fe07d0058405d207aa09aa08a008ee9a0000b004be02be0abe09be06b0068404d206aa04aa049008069b0000b004be02be0fbe023e00b20d00066c046a0692081001139b0000d00a5e06de07de07fe03ce03e407ea075a07520a0000259b0000fe0f00003e002a0000002a003e002a080008fe070000279bfe0f0000ae07ae00a600f00fa600ae04ae030008fe070000319b0000ec01ae0dac0b74077e07f601360868092e046c0304003c9b000000087c045402d4017e0054075408540b7c0b000a0008419b00007c0c5403fe0754087c0b000aac088008fe0b40080006429ba00364022401a40100087c0454025401fe0754097c0b0004449b0000f8074e02f80300087c065401fe075608540b7c0b0008459b00007c0fd400fe07540b7c0a000ae808fe0b6808a80900044f9b0000ac0a9c07dc049a0780003c0e5401fe075408bc0a000a549b000cfc030408b40bb40b9607c403b407b40fb40f940b00085a9b00083008f8055401560df4015c0554095001f005000800006f9bd0000800b80fbe0afc0abc0afc0afc0ab80a780f80008000ae9b100cf801560df4035c01e00509004e01f80f4c014a010000e89b100cf8015605f4035c01f0046402940896079400f40600007c9c00001004f805540556055405f4055c055005f00500040000819c08004800f80ffe0afc0afc0afc0afc0af80af80f400000008d9c2008f8095605f4055c05f4051000ec07e8090809f80800049c9c1000f8055605f4055c05f40500014a01f80f4e014a010000a49c1000f8055605f4055c05e0013c085409fc0f54097c090000ab9c1000f8015605f6055c05e004fc0754023c00f80f0400fc03b89c1000f8055605f6055c05f405000074035408d60754007403c49c1004f805f6055c05f40500009c028c0ba80ab40abc068000cd9c0800fc02fb02ae027800920f56057f0576056e05ef0f0500d69c00017a09380f7e0fb80fba0f900fae0f340f2c0f44084000de9c1000f805fe05f4040001aa0c98033e009802ae0fa8020000e59c00080004fc015c015c055e015e055c015c055c0940070000f39c0000e00f1c04fc01fc05fc03fc0bfc090c07fc0700080006f49c0000fc030401fc090004fc015c095e035e0b5c095c074000289d0000fc019400fc0f9400f80cfc015c055e035c0b5c0700003b9d1008220ea4010400fc09040cfc015c055e035c0b5c0700005d9d00009208fe071006fe0dd400e8055c035e095c0b5c074000b49d4000ec0f5c05f60754050408f8055c035e055c0b5c074000f99d0000fc0f0200ba0b8e07ca0fff0fbe07be07be0f260600001f9e000100017c014401540156014401640164095c08c0070000209e0000080ffe000800f80180003c004e0166096408dc070000219e14043402c4013c030000fc0284029602960aa4089c070000239e0000fc030401fc010000fc0284029602840abc0880070000259e0000fc070406e40514050004fc008c02a60aa4089c070000269e00003400240be408fc0f0000fc028c02a60aa4089c0700002d9e0000fc019400fc0f9400f8007c028c02a60aa40a9c0700002f9e40005004dc0774067406d4065e065406740bdc0a50064000339e24021202fa0333036e0320032e03b20bba0b7e0910070800359e0002fc0296028408bc070000e8078a088c084808580800063d9e0000b00f8804a604ac070000fc028402960aa4089c0700003f9e1008260f20000402fc010000fc028c02a60aa4089c070000439e0000fc0fb402b402bc0ac00d7c028c02a60aa40a9c070000459e00001409fc071000fe07dc08000afc028e02a40a9c070000499e0000ec070c04c803ff030a0c0008fc029e0a8408bc0700004a9e0000d4075e0554055e05d4070002fc02960a840abc0700004f9e000cfe039208fe0ffc079200fe0f78029e0a840abc070000649e4000ec0f5c055605f40754050000fc02960a840abc070000669e00007e09320b5e0d4c05320b4e08f802a602b40a9c088007709e0000c00f3c008407fc06ce07fc07fc06fc0afc0a7c0604007f9e0000800f7c00540f74095409560074075409540974090004979e0000000eea01aa0fe20afa0ae000ea07fa0ae20aea0a00089f9e800f7c007e0f7404540f60016a0d98033e009802ca0f8002a59e5400540a54092405a4069e02a40234055408540854000000a69e20092c09ac08ec05ac06be04ac06ac05ac082c0820080000b59e0000940ba4069e04a4070008fa0bfe0bfa0b0a0afa0b0008b89e00009c057c045e02dc055c00000c4803fe00480348040008bb9e000cfc030400a401f40fa5000602a401f40fa40024030000bc9e0006fe010a003a059a05aa0703052a059a042a062a080000bd9e000cfc030400540af40a540c060b3408f40a340e54080000c39e00081408f407be06bc02fc03bc02bc06be06f40714080000c49e00001008f40bb40abe0af403b402be06b406f40b10080000cd9e2801ac00ac045c044c033c0a4c0f5c02aa02aa04a8040000ce9e00006a011a05be04a902880e480296028c0444053c010000cf9ea0049a025a083e075a00d9060800c00f7e044804c8070000d19e000000095e055601520dfe015205560952015e0500090000d29e0000000d7e016a016a0dfe016a056a096a017e0500090000d49e00007e0d6605fe017a0d7e05000090008800a60c8803b000d89e000e7e006605fe036a017e050000900f7e00900316040008d99e00005c0d5c01fc015c055c010001c8063e0048048a050001db9e0808040aee0ba103a40be603a40bee0bb603f40b140a1400de9e000c7c016c05fc0364013c03800f8004ff048804880f0000df9e000e7e006a05fe0166057e0108052809f606b4068c018000e89e00000c0ae40bbe03bc0bfe03bc0bfc0bbe03e40b0c0a0000ef9e000c7e01660dfe016a097e07c007740566057405e40700000e9f00007c0940077e01ee0f2e00ee0f7e0140017e01000f0000139f04047405b404be04b407e00d6804a8053e02a805680c0004209f00000000be0f2a09aa00e00f2a08aa0a2a00be07000800043b9f000ac00bfc0bfc07fc03fe03fc03fc0ffc03c003c00300024a9f4c087c0ccc03cc02b4028c02f602bc02ac02ec0f140020004b9f00005000340f9400240c8c01a60f94052400540f24004000509f4000440844044c0334002600260034004c0f440044004000529f1000f00ff00f9c08b00a9008de08d40ad40a9408d00f1000619f0000ec07f007de06f407d407000038016602480d90002000629ff00ffc05d005de05f40f10000800f40f77006804b00300007f9f0000f007f0071c04100590045e04940414051404d40f1000849f0000de071005de041404d407100048015602440dc80050008d9f0000f20fba02b302ba0af6070000ef07aa0baa0b3a0a0004909f000cfc030408e407d406d402060fb403b40fb40ff40f0004999f100810041002d0093e081004f007120994085408500810049c9f0000e807f807fe07fc074c0afc0b580bd80a580ac00b00009f9f00001000f80354015601f4075c0954095009f0090008000600ac000004020401840064001c0000000000fe0f20002000000001ac000044004401240134010c01000100017e0f10001000000004ac80004400440f240814080c0800080008fe0910001000000007ac80004400440f240934090c09000900097e0910001000000008ac20002400a40ea40a940a8c0a800a800abe0b08000800000010ac80004400440f240934090c09000900097e0f10001000000011ac40004400440f240a340a0c0a000a000a7e0f10001000000012ac00004400440f440a340a0c0f0000000c7e0310041008000013ac400084084408240414020c0100020004fe0810080000000015ac000084004406440934090c09000900097e0610001000000016ac000044004409240934050c03000500097e0910001000000019ac40004400240fa40a940a8c0a800a800abe0a1000100000001aac0000800044084409240f1c090009000f7e091000100000001bac00002400a400a404940acc0a800a800abe040800080000001cac00010401840064001c000000fe0720002000fe0f000000001dac80004400440134010c0100017e01100110017e0f0000000024ac000040002400940e9c0a800abc0a880a880abe0b0000000040ac20002400a40ea40a940a8c0a800a800abe0b14001400000070ac000004030401840074000c0020002000fe0f00000000000071ac000040004400440124011c010401100110017e0f0000000074ac000080004400440f24081c08040810081008fe090000000077ac000080004400440f24091c090409100910097e090000000078ac000040002400a40e940a8c0a800a900a900abe0b0000000080ac000080004400440f24091c090409100910097e0f0000000081ac000040004400440f340a0c0a000a100a7e0f00000000000083ac000080004408440824041c02040110021004fe080008000089ac000040002400a40f940a8c0a800a900a900abe0a000000008cac00010401840044003c0020002000fe070000fe0f0000000090ac000084004400240f1c0810081008fe090008fe09000000009cac000080004400240f14091c0910097e0900097e0f00000000a8ac000004020401c40024009c0090009000fe0f000000000000a9ac0000400044002401240114010c01280128017e0f00000000aaac00004000440124012401140f0c00280128017e0f00000000acac000080008400440e240814084c0848084808fe0900000000b0ac000040002400a40ea40a940a8c0aa80aa80abe0b00000000b9ac000040004400440f340a0c0a280a280a280a7e0f00000000bdac800044004406240914090c092809280928097e0600000000c1ac000040004400240fa40a940a8c0aa80aa80abe0a00000000c4ac00020403c40024009c0090009000fe0f0000fe0f00000000e0ac0002040204020402e403040204020402fc02000200000000e1ac000040004401440144017401440144015c0f400000000000e4ac00004000440f440844087408440844085c08400000000000e7ac00004000440f440944097409440944095c09400000000000e8ac00002000a20ea20aa20aba0aa20aa20aae0b200000000000f0ac00004000440f440944097409440944095c0f400000000000f1ac00004000420f420a420a720a420a420a5e0f400000000000f3ac000040084408440444047403440444045c08400000000000f5ac000040004406440944097409440944095c06400000000000f6ac000040004209420942057203420542095e09400800000000fcac000004020402c40304020402fc020000fe0f400040000000fdac0000440044017401440144015c0100017e0f10001000000000ad00008400840ee40884088408bc080008fe0b20002000000011ad0000440044067409440944095c0900097e061000100000001cad80008400f40e840884089c080008fe091008fe0b0000000034ad000004020402c403040204027c020000fe0f00000000000049ad0000440044067409440944095c0900097e0900060000000050ad000000020402c40304020402c4030402fc020002000000006cad00004000440044004400c40f440044007c004000000000006dad00002000240124012401e401240124013c0f20000000000070ad00004000440e44084408c409440844087c0840000000000073ad00002000240f24092409e409240924093c0920000000000074ad00002000a20ea20aa20ae20aa20aa20abe0b20000000000075ad00002000a20ea20a220b2208a200a200be0f20000000000076ad00002000a20ea20aa20ae201e20fa208be0f2000000000007dad00002000220f220a220ae20a220a220a3e0f2000000000007fad000020082208220422046203220422043e0820000000000081ad00002000220622092209e209220922093e062000000000008cad20002400240f2408e40924083c088008fe0b000000000000c0ad0000400044004400c40744007c0040000000fe0f00000000d3ad200024002408e409240824043c030004fe09000800000000dcad000040004400c40f440044004400c40f7c00400040000000e0ad00004000440f4408c40944084408c4097c08400000000000f8ad00000002040204020402040204020402fc02000200000000f9ad400040014401440144014401440144017c0f400000000000fcad00004000440f440844084408440844087c0840000000000000ae00002000a20ea20aa20aa20aa20aa20abe0b20000000000001ae00002000a40ea40aa40b2408a400a400bc0f20000000000008ae00004000440f440944094409440944097c0f40000000000009ae00002000240f240a240a240a240a240a3c0f2000000000000bae000040084408440844044403440444087c084000000000000dae000040004406440944094409440944097c0640000000000030ae000204020401840064001c0000000000fe0f00000000000034ae80008400440e240834080c0800080008fe0900000000000038ae000040002400a40e940a8c0a800a800abe0b00000000000040ae80004400440f240914090c09000900097e0f00000000000045ae800084004406240934090c09000900097e090006000000004aae0000840044084409240f1c090009000f7e090000000000004cae00000401e4001c000003c4003c000000fe0f2000200000004eae0000440024011c01400f24001c0100017e0f10001000000050ae00004400340f0c08c00824081c080008fe0910001000000054ae000024009c0e840aa00a940a8c0a800abe0b0800080000005cae00004400240f1c09400924091c0900097e0f1000100000005dae00006400140f0c0a400a340a0c0a000a7e0f08000800000061ae0000440024061c09400924091c0900097e0610001000000065ae20002400940f8c0a800ab40a8c0a800abe0a10001000000068ae0401c4003c000003c4003c000000fe072000fe0f00000000bcae00000401c4003c000003c4003c002000fe0f000000000000beae0000440034010c01400f24001c0110017e0f000000000000cdae00006400140f4c0a400a240a1c0a100a7e0f000000000000cfae0000440034080c04400624011c021004fe08000800000000d1ae0000440034060c09400924091c0910097e09000600000000d8ae0401c4003c000002c4013c002000fe070000fe0f00000000e8ae400024001c00000f64091c0910097c0900097e0f00000000f4ae00000403c4003c000002c401bc009000fe0f0000000000002caf00000002040264021c02c003040204027c020002000000002daf00004000420142014e016001420142015e0f40000000000034af00002000a20eaa0aa60ab00aa20aa20aae0b2000000000003caf00004000420f52094e096009420942095e0f4000000000003daf00004000420f5a0a460a700a420a420a5e0f40000000000042af00004000420942094e056003420542095e0940000000000043af0000400042095a0946057003420542095e0940000000000049af000044005c014001740144015c0100017e0f10000000000064af000104013c01800104017c010000fe074000fe0f00000000b8af00004400440044007c00c00f440044007c00400000000000bcaf00004000440e44087c08c009440844087c08400000000000c0af00002000a20ea20abe0ae00aa20aa20abe0b200000000000c8af00002000240f24093c09e009240924093c0f2000000000000cb00000440044007c00c00744007c0040000000fe0f0000000044b000000402040284027c02000204020402fc0200020000000048b000004000440f44087c084008440844087c084000000000004ab000002000240f24083c002005240ba40b3c052001000000004cb000002000a20ea20abe0aa00aa20aa20abe0b20000000000053b000002000a20ea20abe0b20002205a20b3e0b20050000000054b000002000240f24093c092009240924093c0f20000000000057b000004408440844087c044003440444087c084000000000005db000002000a20fa20abe0aa00aa20aa20abe0a2000000000007cb000000401e4001c000002c4013c000000fe0f0000000000008cb000004400240f1c09400924091c0900097e0f00000000000098b00000fc01000100010001000100010000fe0f20002000000099b000007c004001400140014001400100017e0f1000100000009ab000003c0020012001200f2000200100017e0f1000100000009cb000007c00400f40084008400840080008fe09100010000000a0b000003e00a00ea00aa00aa00aa00a800abe0b080008000000a1b000003e00a00ea00aa00b2008a0008000be0f080008000000a8b000003c00200f200920092009200900097c0f100010000000a9b000003e00200f200a200a200a200a000a7e0f080008000000abb000007c00400840084004400340040004fe09100810000000adb000007c004006400940094009400900097e06100010000000aeb000003c002009200920052003200500097e09100010000000afb000003c00200920092005a003200500097c09100810000000b1b000003e00a00fa00aa00aa00aa00a800abe0a080008000000b3b000003e00a000a004a00aa00a900a800abe04080008000000b4b00000fc010001000100010000fe0720002000fe0f00000000b5b000007c0040014001400100017e01100110017e0f00000000c4b000007c004000400f400900097e09100910097e0f00000000c5b000003c002000200f200a000a7c0a100a100a7e0f00000000c7b000007c0040084008400400047e0310041004fe0800080000c9b000007c0040004006400900097e09100910097e0600000000d0b00000fc01000100010001000100010000fe0f900090000000e5b000007c004006400940094009400900097e0628002800000008b10000f8010001000100012001200120002000fe0f0000000009b100007c0040014001400140014801080108017e0f000000000cb100007e004000400f40084008480808080808fe090000000010b100003c002000a00ea00aa00aa80a880a880abe0b0000000013b100003c00a00ea00aa00b2800a80f080a080abe0f0000000018b100007c004000400f400940094809080908097e0f000000001db100007c0040064009400940094809080908097e060000000023b100003c00a000a004a00aa80aa80a880a8804be000000000024b10000f80100010001200120012000fc070000fe0f0000000025b100007c00400140014801480108017e0100017e0f0000000028b100007c004000400f400850081008fc090008fc09000000002cb100003c002000a00ea00aa80a880abe0a800abe0b0000000037b100007c00400840044804480208017e020004fe080008000040b10000f8010001000100015001500150005000fe070000000041b100007e0040014001400140015401140114017e0f0000000044b10000fe008000800e80088008d40814081408fe090000000050b100007e004000400f400940095409140914097e0f0000000055b100007e0040064009400940095409140914097e060000000078b1000000047c0440044004c00740044004400400040000000079b1000040005e0150015001700150015001500f4000000000007cb1000080009e0e90089008f00890089008900880000000000080b100004000dc0ed00ad00af00ad00ad00ad00b40000000000088b1000040005e0f50095009700950095009500f4000000000008bb1000040045e085004500270015002500450044008000000008db1000040005e0650095009700950095009500640000000000092b1000040005e09500f500970095009500f500950094000000093b1000020003c05300b300bb00b300b300b300530012000000094b100023c0220022002e003200220020000fe0f400040000000ccb1000000023c022002e003200220020000fe0f000000000000e8b1000000047c04c007400440044004c007400440040004000004b200008000bc00a000a000a00fa000a000a00080000000000005b2000040005e0150015001d00150015001500f40000000000008b2000040005e0f50085008d00950085008500840000000000014b2000040005e0f50095009d00950095009500f40000000000015b2000040005e0f500a500ad00a500a500a500f40000000000058b2000080009e009000900f900090000000fe0f00000000000074b200008000bc00a00fa000a000a000a00fa00080008000000084b2000040005e0fd009500950095009d009500f40000000000090b2000000047c0440044004400440044004400400040004000091b2000040005e0150015001500150015001500f40000000000094b2000080009e0e90089008900890089008900880008000000098b200002000bc0eb00ab00ab00ab00ab00ab00b20000000000099b200004000dc0ed00ad00b5008d000d000d00f400000000000a5b2000040005e06500950095009500950095006400000000000a6b2000040085e09500950055003500550095009400800000000acb2000000013c0120012001200120010000fe0f000000000000c8b20000fc01000100010001000180000000fe0f000000000000c9b200007c004001400140014001400100017e0f000000000000d0b200003e002000a00ea00aa00aa00a800abe0b000000000000d8b200003e00200f200920092009200900097e0f000000000000dbb200007c00400840084004400340040004fe09000800000000ddb200007c004006400940094009400900097e06000000000000e4b20000fc01040104010401040100010000fe0f200020000000e5b200007c004401440144014401400100017e0f100010000000e6b200007c0044014401440f4400400100017e0f100010000000e8b200007c00440f44084408440840080008fe09100010000000ebb200007c00440f440944094409400900097e09100010000000ecb200003c00a40ea40aa40aa40aa00a800abe0b080008000000edb200003c00a40ea40aa40b2408a0008000be0f100010000000eeb200003c00a40ea40aa40b2400a00f8008be0f100010000000f4b200007c00440f440944094409400900097e0f100010000000f5b200007c00440f440a440a440a400a000a7e0f100010000000f7b200007c00440844044404440340040004fe08100810000000f9b200007c004406440944094409400900097e06100010000000ffb200003c00a400a404a40aa40aa00a800abe0408000800000000b30000fc010401040104010000fe0720002000fe0f0000000001b300007c0044014401440100017e01100110017e0f0000000004b300007c004400440f44080008fe0910081008fe090000000010b300007c004400440f440900097e09100910097e0f0000000013b300007c0044084408440400047e0310041004fe080008000054b30000fc010401040104010401200120002000fe0f0000000055b300007c0044014401440154015001100110017e0f0000000058b30000fc008400840e84089408900810081008fe09000000005cb300007c004400c40ec40acc0ac80a880abe0b0000000000005fb300007c00c40ec40ac40b5400500f100abe0f00000000000064b300007c00440f4409440954095009100910097e0f0000000065b300007c004400440f440a540a500a100a100a7e0f0000000067b300007c004408440444044402540110021004fe080008000069b300007c0044064409440954095009100910097e06000000006eb300007c0044094409440f54095009100f10097e090000000070b30000fc0104010401040120012000fe070000fe0f0000000071b300007c00440144015401500110017e0100017e0f0000000074b300007c004400440f540850081008fe090008fe090000000078b300003c002400a40eac0aa80a880abc0a800abe0b0000000080b300007c004400440f5409500910097e0900097e0f0000000085b300007c00440044065409500910097e0900097e0600000000c4b3000000047c0444044404c407440444044404000400000000c5b3000040005e0152015201720152015201520f400000000000c8b3000080009c0e94089408f408940894089408800000000000cbb3000040005e0f520952097209520952095209400000000000ccb300004000de0ed20ad20af20ad20ad20ad20b400000000000d4b3000040005e0f52095209720952095209520f400000000000d5b3000040005e0f520a520a720a520a520a520f400000000000d7b3000040085e04520452027201520252045204400800000000d9b3000040005c06540954097409540954095406400000000000fcb300027c024402c403440244020000fe0f4000fe0f0000000018b400027c0244024402c403440244020000fe0f0000000000001cb400008000bc0ea408e408a408a4080008fe0900000000000050b400008000bc00a400a400a40fa400a400a40080000000000051b4000040005e0152015201d20152015201520f40000000000054b400008000bc0ea408a408a40ba408a408a40880000000000058b400004000de0ed20ad20ad20ad20ad20ad20b40000000000060b4000040005e0f52095209d20952095209520f40000000000061b4000040005e0f520a520ad20a520a520a520f40000000000065b4000040005c0654095409d409540954095406400000000000a4b400008000bc00a400a40fa400a4000000fe0f000000000000b7b4000040005c085408d409540454030004fe09000800000000c0b400008000bc00a40fa400a400a400a40fa400800080000000dcb4000000047c04440444044404440444044404000400040000ddb4000040005e0152015201520152015201520f400000000000e0b4000040005e0f520852085208520852085208400000000000e3b4000040005e0f520952095209520952095209400040000000e4b400004000de0ed20ad20ad20ad20ad20ad20b400000000000ecb4000040005e0f52095209520952095209520f400000000000edb4000040005e0f520a520a520a520a520a520f400000000000efb4000040005e08520452025203520252045204400800000000f1b4000040005e0652095209520952095209520640000000000014b50000fc01040104010401040100010000fe0f00000000000015b500007c004401440144014401400100017e0f00000000000018b500007c00440f44084408440840080008fe090000000000001cb500003c00a40ea40aa40aa40aa00a800abe0b00000000000024b500007c00440f440944094409400900097e0f00000000000027b500007c00440844044404440340040004fe0900080000000029b500007c004406440944094409400900097e090006000000002ab500007c004409440944094405400300057e0900000000000030b50000fc0104010000fc01040104010000fe0f20002000000031b500007c00440100017c014401440100017e0f10000000000034b500007c00440f00087c08440844080008fe0910000000000038b500003c00a40e800abc0aa40aa40a800abe0b08000000000040b500007c00440f00097c094409440900097e0f10000000000045b500007c00440600097c094409440900097e061000000000004cb50000fc0104010000fc0104010000fe072000fe0f000000005cb500007c004400000f7c09440900097e0910097e0f0000000061b500007c00440600097c09440900097e0910097e0600000000a0b50000fc0104010000fc010401040120012000fe0f00000000a1b500007c00440100017c0144014401500110017e0f00000000a4b500007c00440f00087c084408440850081008fe0900000000a8b500003c00a40e800abc0aa40aac0aa80a880abe0b00000000bbb500003c00a4008004bc0aa40aac0aa80a8804be0000000000bcb50000fc0104010000fc0104012000fe070000fe0f00000000ccb500007c004400000f7c09440910097e0900097e0f0000000010b600047c0444044404440400077c044404440444040000000011b6000040005e01520140017e0152015201520f4000000000009cb600008000bc00a400a400800fbc00a400a400a40000000000abb620002000be0eb20ab20b60013e05b20b320b320500000000b1b6000040005c0654095409c0095c0954095406400000000000f0b68000bc00a400a400800fbc00a400a4000000fe0f0000000028b7000000047c044404440400047c044404440444040004000029b7000040005e015201520140015e015201520f4000000000002fb7000040005e0f5209520940095e095209520952004000000030b700004000de0ed20ad20ac00ade0ad20ad20b40000000000038b7000040005e0f5209520940095e095209520f4000000000003bb7000040005c085404540440035c025404540854080000000044b700017c014401440100017c01440144010000fe0f0000000060b70000fc01040104010000fc01040104010000fe0f000000007cb70000e4012401240124013c0100010000fe0f2000200000007db7000074005401540154015c01400100017e0f10001000000080b700007400540f540854085c0840080008fe0910001000000084b700003c00ac0eac0aac0aac0aa00a800abe0b0800080000008cb700007400540f540954095c09400900097e0f1000100000008db700007400540f540a540a5c0a400a000a7e0f10001000000091b7000074005406540954095c09400900097e0610001000000097b700003a002a012a052a0bae0b200b000b7e0508000800000098b70000e401240124013c010000fe0720002000fe0f0000000099b700007400540154015c0100017e01100110017e0f000000009cb70000f4009400940e9c080008fe0910081008fe0900000000a8b7000074005400540f5c0900097e09100910097e0f00000000a9b7000074005400540f5c0a000a7c0a100a100a7e0f00000000abb700007400540854045c0400027e0110021004fe0400040000adb700007400540054065c0900097e09100910097e0600000000b5b7000074005401540154015c01400100017e0f280028000000c9b7000074005406540954095c09400900097e06280028000000ecb70000e4012401240124013c0100012000fe0f000000000000edb7000074005401540154015c014001100110017e0f00000000f0b70000f4009400940e94089c08800810081008fe0900000000f4b700003c002c00ac0eac0aac0aa00a880a880abe0b00000000fcb700007400540f540954095c094009080908097e0f00000000fdb700007200520f520a520a5e0a400a080a080a7e0f00000000ffb7000074005408540454045c02400110021004fe040008000001b8000074005406540954095c094009100910097e060000000007b800003c002c012c052c0bac0b200b080b08057c010000000008b80000e401240124013c0100012000fe070000fe0f0000000009b800007400540154015c01400110017e0100017e0f000000000cb80000f4009400940e9c0880081008fe090008fe0b0000000018b8000074005400540f5c09400910097e0900097e0f0000000019b8000074005400540f5c0a400a080a7c0a000a7e0f000000001bb800007400540854045c04400210017e020004fe04000400001db800007400540054065c09400910097e0900097e060000000024b80000e4012401240124013c0100014800fe0f00000000000025b8000074005401540154015c014001080128017e0f0000000028b80000f4009400940e94089c08800828082808fe09000000002cb800007c004c00cc0ecc0acc0ae00a840a940abe0b0000000035b8000074005400540f540a5c0a400a080a280a7c0f0000000039b8000074005406540954095c094009080928097e060000000040b80000e401240124013c0100009000fe070000fe0f000000005cb800000004f404940494049407940494049c040004000000005db800008000ba02aa02aa02ea02aa02aa02ae0e80000000000060b800008000ba0eaa08aa08ea08aa08aa08ae0880000000000064b8000040005a0f5a0b5a0b7a0b5a0b5a0b5e0b4000000000006cb800008000ba0faa09aa09ea09aa09aa09ae0f8000000000006db800008000ba0eaa0aaa0aea0aaa0aaa0aae0e8000000000006fb800008000ba08aa08aa04ea02aa04aa08ae0880000000000071b800008000ba06aa09aa09ea09aa09aa09ae06800000000000b0b80002740254025402d40354025c020000fe0f000000000000ccb800000004f404940794049404940494079c04000400000000e1b800008000ba06ea09aa09aa09aa09ea09ae06800000000000e8b8000000017a014a014a014a0f4a014a014e01000100000000e9b800008000ba02aa02aa02aa03aa02aa02ae0e800000000000f8b8000040007a0f6a096a09ea096a096a096e0f400000000000f9b8000040007a0f6a0a6a0aea0a6a0a6a0a6e0f400000000000fbb8000040087a086a046a04ea026a046a046e0840080000000004b98000bc00ac00ac00ac0fac00ac020002fe0f0000000000003cb900008000b400b400b407b400bc000000fe0f00000000000058b900008000fa00ca0fca00ca00ca00ca0fce0080000000000059b900008000ba02aa03aa02aa02aa02aa03ae0e8000000000005cb900008000ba0eaa08aa0baa08aa08aa0bae0880088000000060b9000040005a0fda0b5a0b5a0b5a0bda0b5e0b4000000000006db900008000ba06aa09aa09aa09aa09aa09ae0680000000000074b900000004f404940494049404940494049c0400040000000078b900008000ba0eaa08aa08aa08aa08aa08ae088000000000007cb9000040005a0f5a0b5a0b5a0b5a0b5a0b5e0b40000000000084b900008000ba0faa09aa09aa09aa09aa09ae0f80000000000087b900008000ba08aa08aa04aa02aa04aa08ae0880000000000089b900008000ba06aa09aa09aa09aa09aa09ae068000000000008eb9000040007a096a0f6a096a096a096a0f6e09400000000000acb90000e4012401240124013c0100010000fe0f000000000000adb9000074005401540154015c01400100017e0f000000000000b0b90000f400940e940894089c0880080008fe09000000000000b4b900003c002c00ac0eac0aac0aa00a800abc0b000000000000bcb900007400540f540954095c09400900097e0f000000000000bdb900007400540f540a540a5c0a400a000a7e0f000000000000bfb9000074005408540454025c0140020004fe04000800000000c1b9000074005406540954095c09400900097e09000600000000c8b90000fc01040104010401fc0100000000fe0f200020000000c9b900007c004401440144017c01000100017e0f100010000000ccb900007c00440f440844087c0800080008fe09100010000000ceb900003c00240f240824013c05000b800b3e05080108000000d0b900003c00a40ea40aa40abc0a800a800abe0b080008000000d1b900003c00a40ea40aa40b3c0880008000be0f080008000000d8b900007c00440f440944097c09000900097e0f100010000000d9b900007c00440f440a440a7c0a000a000a7e0f080008000000dbb900007c004408440844047c0300040004fe09100810000000ddb900007c004406440944097c09000900097e06100010000000deb900007c004409440944057c03000500097e09100010000000e1b900003c00a40fa40aa40abc0a800a800abe0a100010000000e3b900003c00a400a404a40abc0a800a800abe04080008000000e4b90000fc0104010401fc010000fe0720002000fe0f00000000e5b900007c00440144017c0100017e01100110017e0f00000000e8b900007c004400440f7c080008fe0910081008fe0900000000f5b900007c004400440f7c0a000a7e0a100a100a7e0f00000000f7b900007c00440844087c0400047e0310041004fe0900080000f9b900007c00440044067c0900097e09100910097e0600000000fab900007c00440944097c0900057e03100510097e090000000038ba0000fc01040104010401fc01200020002000fe0f0000000039ba00007c004401440144017c011001100110017e0f000000003cba00007c004400440f44087c08100810081008fe090000000040ba00003c002400a40ea40abc0a880a880abe0b00000000000048ba00007c00440f440944097c091009100910097e0f000000004bba00007c004408440844047c04100310041008fe09000800004dba00007c004406440944097c091009100910097e06000000004eba00007c004408440944097c051003100510097e090000000054ba0000fc0104010401fc0120002000fe070000fe0f0000000055ba00007c00440144017c01100110017e0100017e0f0000000058ba00007c004400440f7c0810081008fe090008fe09000000005cba00003c002400a40ebc0a880a880abc0a800abe0b0000000064ba00007c004400440f7c09100910097e0900097e0f0000000067ba00007c00440844087c04100410037e040008fe090008000069ba00007c00440044067c09100910097e0900097e060000000070ba0000fc01040104010401fc01900090009000fe0f0000000074ba00007c004400440f44087c08280828082808fe090000000078ba00003c002400a40ea40abc0a940a940abe0b00000000000085ba00007c004406440944097c092809280928097e060000000087ba00003c002409240924093c05a80328057e09000800000000a8ba000000047c0444044404c407440444047c04000400000000a9ba000040005e01520152017201520152015e0f400000000000acba00008000bc0ea408a408e408a408a408bc08800000000000b0ba00004000de0ed20ad20af20ad20ad20ade0b400000000000b8ba000040005e0f520952097209520952095e0f400000000000b9ba000040005e0f520a520a720a520a520a5e0f400000000000bbba000040085e04520452027201520252045e04400800000000bdba000040005e06520952097209520952095e06400000000000fcba00027c0244024402c40344027c020000fe0f00000000000018bb000000047c04c407440444044404c4077c0400040000000034bb00008000bc00a400a400a40fa400a400bc0080000000000035bb000040005e0152015201d201520152015e0f40000000000036bb000040005e015201520e5200520152015e0f40000000000038bb00008000bc0ea408a408a40ba408a408bc088000000000003bbb000040005e0f52095209d209520952095e094000000000003cbb00004000de0ed20ad20ad20ad20ad20ade0b40000000000044bb000040005e0f52095209d209520952095e0f40000000000047bb000040085e0852085204d202520452085e0840080000000050bb00008000bc00a400a407a400bc010001fe0f00000000000058bb000020002e0f2a0b6a0b2a0b2e0b000b7e0b00000000000063bb000020003e08f20932083204be028004fe09000800000000a4bb00008000bc00a40fa400a400a400a40fbc00800000000000acbb00004000de0ed20ad20ad20ad20ad20ade0b400000000000c0bb000000047c04440444044404440444047c04000400000000f8bb0000fc01040104010401fc0100000000fe0f000000000000f9bb00007c004401440144017c01000100017e0f000000000000fcbb00007c004400440f44087c0800080008fe09000000000000ffbb00007c00440f440944097c09000900097e0900000000000000bc00003c00a40ea40aa40abc0a800a800abe0b00000000000009bc00003c002400240f240a3c0a000a000a7e0f0000000000000cbc00007c084404440344047c08000400037e040008000000000dbc00007c004406440944097c09000900097e090006000000000fbc00003c002409240924093c05800300057e0900080000000011bc00003c00a40fa40aa40abc0a800a800abe0a00000000000014bc0000fc01200120012001fc0100000000fe0f20002000000015bc00007e004801480148017e01000100017e0f10001000000016bc00007e0048014801480f7e00000100017e0f10001000000018bc00007c00500f500850087c0800080008fe091000100000001bbc00007e00480f480948097e09000900097e091000100000001cbc00003c00a80ea80aa80abc0a800a800abe0b0800080000001dbc00003c00a80ea80aa80b3c0880008000be0f0800080000001fbc00003c00a80ea80aa80b3c00000f000abe0f08000800000024bc00007e00480f480948097e09000900097e0f10001000000025bc00007c00480f480a480a7c0a000a000a7c0f10001000000029bc00007e004806480948097e09000900097e061000100000002dbc00007c00c80fc80ac80afc0a800a800abe0a08000800000030bc0000fc0120012001fc010000fe0720002000fe0f0000000031bc00007e00480148017e0100017e01100110017e0f0000000034bc00007c005000500f7c080008fe0910081008fe090000000038bc00003c002800a80ebc0a800abe0a880a880abe0b0000000040bc00007e004800480f7e0900097c09100910097e0f0000000043bc00007e00480848087e0400047e0310041004fe090008000045bc00007e00480048067e0900097e09100910097e060000000049bc00003c002800a80fbc0a800abe0a880a880abe0a0000000084bc0000fc01200120012001fc01200020002000fe0f0000000088bc00007c005000500f50087c08100810081008fe09000000008cbc00003c002800a80ea80abc0a880a880abe0b00000000000094bc00007e00480f480948097c091009100910097e0f0000000095bc00007e004800480f480a7c0a100a100a100a7e0f0000000097bc00007e004808480848047c04100310041004fe0900080000a0bc0000fc0120012001fc0120002000fe070000fe0f00000000a4bc00007c005000500f7c0810081008fe090008fe0900000000a7bc00007e004800480f7c09100910097e0900097e0900000000a8bc00003c002800a80ebc0a880a880abe0a800abe0b00000000bcbc0000fc01200120012001fc01900090009000fe0f00000000bdbc00007e004801480148017c012801280128017e0f00000000c0bc00007c005000500f50087c08280828082808fe0900000000c4bc00003e002800a80ea80abc0aa80aa80abe0b000000000000cdbc00007e004800480f480a7c0a280a280a280a7e0f00000000d1bc00007e004806480948097c092809280928097e0600000000d5bc00007c004800c80fc80afc0aa80aa80abe0a000000000000f4bc000000047c0450045004d007500450047c04000400000000f5bc00008000be01a401a401e401a401a401be0f800000000000f6bc000040005e015401540f7400540154015e0f400000000000f8bc00008000bc0ea808a808e808a808a808bc08800000000000fcbc00004000de0ed40ad40af40ad40ad40ade0b40000000000004bd000040005e0f540954097409540954095e0f40000000000007bd000040045e04540454027401540254045e0440040000000009bd000040005e06540954097409540954095e0640000000000024bd8000bc08a804e802a804a808bc080006fe0410081000000048bd00027c0248024802c80348027c020000fe0f00000000000059bd000040005c0f580a780a580a5c0a000a7c0f00000000000080bd00008000bc00a800a800a80fa800a800bc0080000000000081bd000040007e0164016401e401640164017e0f40000000000084bd00008000bc0ea808a808a80ba808a808bc0880000000000088bd00004000de0ed40ad40ad40ad40ad40ade0b40000000000089bd000040005e0f540b540bd409540154015e0f40000000000090bd000040005e0f54095409d409540954095e0f40000000000093bd000040085e0854045404d402540454045e0840080000000095bd000040005e0654095409d409540954095e0640000000000099bd000040005e0f540b540bd40b540b540b5e0b400000000000d4bd00008000bc00a800a80fa800bc000000fc0f000000000000f0bd00008000bc00a80fa800a800a800a80fbc008000000000000cbe00000004fc0490049004900490049004fc0400040000000010be00008000bc0ea808a808a808a808a808bc0880000000000014be00004000de0ed40ad40ad40ad40ad40ade0b40000000000044be0000fc01200120012001fc0100000000fe0f00000000000045be00007e004801480148017e01000100017e0f00000000000048be00007c00500f500850087c0800080008fe090000000000004cbe00003c002800a80ea80abc0a800a800abe0b00000000000054be00007e00480f480948097e09000900097e0f00000000000057be00007e004808480448047e0300040004fe0900080000000059be00007e004806480948097e09000900097e090006000000005abe00007e004809480948097e05000300057e090000000000005bbe00003e002809280928053e05800300057e0900080000000060be0000fc012001fc01f8002001fc010000fe0f20000000000061be00007e0048017e017e0148017e0100017e0f10000000000068be00003c00a80ebc0abc0aa80abc0a800abe0b08000000000075be00007e0048067e097e0948097e0900097e061000000000007cbe0000fc012001fc01f8002001f800fe072000fe0f000000008fbe00007c007c0800087c0450027c02fe021004fe0800080000a8be00007e00480f7e097e0948097e0900097e0f280000000000d0be0000fc012001fc01f80020012001fc012000fe0f00000000d4be00007c00500f7c087c0850087c0810081008fe0900000000d7be00007e00480f7e097e0948097c09100910097e090000000008bf0000fc012001fc01f80020012001fc019000fe0f0000000009bf00007e0048017e013c0148017c01280128017e0f0000000051bf000040007e0f640a7e0a600a7e0a640a7e0f40000000000055bf000040007e06640964097e097e09640964067e0040000000ccbf8000bc00a800a800bc00800fbc00a800a800bc0080000000d0bf00008000bc0ea808bc08800bbc08a808a808bc000000000058c00004fc0490049004fc040004fc0490049004fc040004000068c0000040007e0f64097e0940097e096409640f7e0040000000acc000010001c0003c004000800000010000fe0f200020000000adc04000400020011c0120014001400100017e0f100010000000b0c080004000200f1e082008400840080008fe09100010000000b4c020002000900e8e0a900aa00aa00a800abe0b080008000000b6c000002000b00e8e0a900b1000a00f8008be0f080008000000bcc040004000200f1c0920094009400900097e0f100010000000bfc04000400820081c042004400340020004fe08100810000000c1c04000400020061c0920094009400900097e06100010000000c8c000000001c0003c00c0010000fe0720002000fe0f00000000c9c00000400020001c01600100017e01100110017e0f00000000ccc00000c00020001c0f60080008fe0910081008fe0900000000d0c00000200010008e0eb00a800abe0a880a880abe0b00000000d8c00000400020001c0f600900097c09100910097e0f00000000ddc00000400020001c06600900097e09100910097e0600000000e4c000020001c0003c00c000000100020000fe0f900090000000ecc020002000900e8e0a900aa00aa00a800abe0b140014000000f5c040004000300f0e0a300a400a400a000a7e0f240024000000f7c04000400820041c041002200140020004fe042808280000001cc100020001c0003c00c0000001200220002000fe0f000000001dc14000400030010e01100120014801080108017e0f000000001ec14000400030010e011001200f4000080108017e0f0000000020c18000800060001c0e20084008800810081008fe090000000024c14000200010008e0e900aa00aa00a880a880abe0b000000002cc140004000300f0e09100920094809080908097e0f000000002dc14000400030000e0f100a600a480a080a7e0f0000000000002fc14000400030080e0410042002400108020804fe040008000031c14000400030060e09100920094809080908097e060000000038c10000000380007c00c00000032000fe0f0000fe0f0000000039c10000400030000e013001400108017e0100017e0f000000003cc10000800060001c0f600880081008fc090008fe090000000040c10000200010008e0e900aa00a880abe0a800abe0b0000000048c10000400030000e0f3009400908097e0900097e0f000000004bc10000400030040e043004400208017e020004fe040004000054c100020001c0003c0040008000080148004800fe0f0000000058c18000400060001c0e20084008800828082808fe090000000074c10000800060001c0f600880082808fe090008fe090000000078c10000400030008e0eb00a800a940abe0a800abe0b000000008cc1000080044004400420049c072004400440048004000000008dc100005000500148014401660148014801500f50000000000090c10000a000a00e90088808e40888089008a008a0000000000094c100005000d00ed00ac80ae60ac80ad00ad00b5000000000009cc100005000500f48094809660948094809500f5000000000009dc100005000500f480a480a660a480a480a500f5000000000009fc1000050085004480444026601440248045004500800000000a1c1000050005006480948096609480948095006500000000000a5c100005000500f500b480b660b480b500b500b500000000000c4c1000020021002ce0310020000fe0f20002000fe0f00000000e0c100004002400220029c03200240020000fe0f000000000000fcc1000440044004200710040c043004200740044004000400000dc200005000480f680a440a460a440a680a480f50000000000018c20000a000a00090008800860f88009000a000a0000000000019c200005000500150014801c60148015001500f5000000000001cc20000a000a00e900890088c0b90089008a008a000000000001fc200005000500f50094809c60948095009500950000000000020c200005000d00ed00ac80ac40ac80ad00ad00b50000000000028c200005000500f50094809c60948095009500f5000000000002bc200005008500850084804c6024804500850085008000000002dc200005000500650094809c6094809500950065000000000002fc200002808280528052405a20324052805280528080000000032c2400050095009500f4809c6094809500f500950094000000050c2000050004800c607480050010001fe070000fe0f0000000058c200002800280f660b280b680b400b7e0b000b7e0b000000006cc20000a000a00090008c0f9000a0000000fe0f00000000000070c240005000500f4808c609480850080008fe090000000000007dc240005000500f480ac40a480a500a000a7e0f00000000000088c20000a0009000900f880086008800900f9000a0000000000090c200002800a80ee80aa40aa20aa40ae80aa80b280000000000a4c2000080044004400420041c04200440044004800400000000a8c20000a000a00e900890088c0890089008a008a00000000000acc200005000d00ed00ac80ac40ac80ad00ad00b500000000000b4c200005000500f50094809460948095009500f500000000000b5c200005000500f500a480a460a480a500a500f500000000000b7c2000050085004500448024603480250045004500800000000b9c2000050005006500948094609480950095006500000000000dcc200020001c0003c00c000000100010000fe0f000000000000ddc24000200030010e0110012001400100017e0f000000000000e0c28000400020001c0f2008400840080008fe09000000000000e3c240004000300f0c0910092009400900097e09000000000000e4c22000200010008e0e900aa00aa00a800abe0b000000000000ebc200002000900e8e0a900b20002005800b3e0b000500000000ecc240004000300f0c0930092009400900097e0f000000000000edc24000400030000c0f300a200a400a000a7e0f000000000000efc24000400830080c043004400340040004fe08000800000000f1c24000400020061c0920094009400900097e09000600000000f6c24000400030080c09100f20094009000f7e09000000000000f8c2000180017c00800080017c0080010000fe0f200000000000f9c2400020001c01200160011c01600100017e0f100000000000fcc2400060001c0f600860081c0860080008fe0910000000000000c3200010008e0e900ab00a8e0ab00a800abe0b08000000000008c3400020001c0f200960091c09600900097e0f1000000000000dc3400020001c06200960091c09600900097e0610000000000013c3200010008e009004900ace0a900a800abe0408000000000029c3000060003c0640093c09600900097e0910097e060000000068c3000280017c00800380017c00800120022000fe0f0000000069c3400030001e01200160011e012001480108017e0f000000006cc3800040003c00400ec0083c08400890081008fe090000000070c3200010008c0eb00ab00a8c0a900aa00a880abe0b0000000079c3400030000e00300f600a1e0a300a400a080a7e0f0000000084c300008001fc000001fc0080012000fc0f0000fe0f0000000088c30000c0003c00c00e3c08c0081008fc090008fe09000000008cc3000020001c00a00e9c0aa00a880abe0a800abe0b00000000d8c30000400420041c042004400720041c042004400400000000dfc300005000480f460948096809480946094809500000000000e0c300005000c80ec60ac80ae80ac80ac60ac80b50000000000064c40000a00090008e009000a00f90008e009000a00000000000f0c40000800460041c046004800460041c046004800400000000f4c40000a000900e8c089008a00890088c089008a00000000000f8c400005000d00ecc0ac80ad00ad80ac40ac80b50000000000000c500005000480f46094809500948094609480f5000000000000cc5400220021c02600260021c02200240020000fe0f0000000028c5000180017c00800180037c00800000010000fe0f0000000029c5400020001c01200160011c012001400100017e0f000000002cc5400060001c0f6008e0081c08600840080008fe090000000030c5200010008e0e900ab00a8e0a900aa00a800abe0b0000000039c5400020001c0f200a600a1c0a200a400a000a7e0f000000003bc5400020001c08200860041c04200340040004fe09000800003dc5400020001c06200960091c092009400900097e060000000044c50000f000080104020801f00000000000fe0f20002000000045c5000038004401440144013801000100017e0f10001000000048c500003800440f44082408380800080008fe0910001000000049c500003800440f4408440c380880048003be041008100000004ac500003800440f440844013805000b800b3e050801080000004cc500001c00a20ea20aa20a9c0a800a800abe0b08000800000053c500003c00c20ec20ac20b3c000005800b3e0508000800000054c500003800440f440944093809000900097e0f10001000000055c500003800440f440a240a180a000a000a7e0f08000800000057c500003800440844044404380300020004fe0810081000000059c5000038004406440944093809000900097e061000100000005ec50000380048094409440f38090009000f7e0910001000000060c50000f80104020402f8010000fe0f20002000fe0f0000000061c50000380044004401440138017c01100110017e0f0000000064c5000038004400440f44083808fe0910081008fe090000000068c5000018002400a40ea40a980abc0a880a880abc0b0000000070c5000038004400440f440938097c09100910097e0f0000000073c50000380044084408440438027e0310041004fe080008000075c50000380044004406440938097e09100910097e06000000007cc50000f000080104020801f00000000000fe0f9000900000007dc5000038004401440144013801000100017e0f28002800000080c500003800440f44084408380800080008fe0948004800000084c500001c00a20ea20aa20a9c0a800a800abe0b14001400000087c500003c00c20ec20ac20b3c00000f000abe0f1400140000008dc500003800440f440a440a380a000a000a7e0f2400240000008fc500003800440844044402380100020004fe0428082800000091c5000038004406440944093809000900097e0628002800000095c500003800c40fc40ac40ab80a800a800abe0a24002400000097c500001c00a200a204a20a9c0a800a800abe0414001400000098c50000f80104020402f8010000fe0f90009000fe0f00000000b4c50000f000080104020801f000200020002000fe0f00000000b5c50000380044004401440128011001100110017e0f00000000b8c5000038004400440f44082808100810081008fe0900000000b9c500003800440f44082404a800900c90039004be0800000000bbc5000038004400440f440928091009100910097e0900000000bcc500001c002200a20ea20a940a880a880abe0b000000000000c4c500003800440f4409440928091009100910097e0f00000000c5c5000038004400440f440a280a100a100a100a7c0f00000000c6c500003800440f440a440a280f1000100c10037c0400080000c7c5000038004408440444042802100110021004fe0800080000c9c50000380044064409440928091009100910097e0600000000cac50000380044084409440928051003100510097e0900000000ccc50000380044044405440528051005100510057e0f00000000cec50000380044084409440f28091009100f10097e0900000000d0c50000f80104020402f80120002000fe0f0000fe0f00000000d1c500003800440044014401380110017c0100017e0f00000000d4c5000038004400440f440838081008fe090008fe0900000000d8c5000018002400a40ea40a980a880abc0a800abc0b00000000e0c5000038004400440f4409380910097c0900097e0f00000000e3c500003800440844084404380210037e040004fe0800080000ecc50000f800040104020401f800880088008800fe0f00000000edc50000380044014401440138012801280128017e0f00000000f0c5000038002800440f44083808280828082808fe0900000000f4c500001c002200c20ec20abc0aa40aa40abe0b000000000000f7c500003c00c20ec20ac20b3c00a40f24092409be0f00000000fcc500003800440f4409240938092809280928097e0f00000000fdc5000038004400440f440a3c0a240a240a240a7e0f00000000ffc5000038004408440444043802280128022804fe040008000001c60000380044064409440938092809280928097e060000000006c60000380044084409440f38092809280f28097c090000000008c60000f80104020c03f00090009000fe0f0000fe0f0000000010c6000018002400a40ea40abc0aa40abe0a800abe0b0000000019c6000038004400440f240a3c0a240a7e0a000a7e0f000000001bc600003800440844084404380228017c020004fe080008000024c600000004300448048404840784044804300400040000000025c6000040005c01520162016201620152015c0f40000000000028c6000080009c0e9408a208e208a20894089c088000000000002cc600004000cc0ed20ad20af20ad20ad20acc0b4000000000002ec600004000cc0ed20ad20b7200d20fd208cc0f40000000000033c600004000cc0ed20ad20b72005205520b4c0b40050000000035c6000040004c0f520a520a720a520a520a4c0f40000000000037c6000040005c08520462026201620252045c0840000000000039c6000040005c06520962096209620952095c064000000000003bc6000040004c09520952057203520552054c0940000000000040c6000018022402c4032402240218020000fe0f20002000000041c680009c00a201e201a20194019c0100017e0f10001000000044c680009800a40ee408a408a40898080008fc0b20002000000051c640004c00520f720a520a520a4c0a000a7e0f10001000000055c640005c0062066209620954095c0900097e061000100000005cc6000038014401c40144013800fe0740004000fe0f0000000060c600009800a400c40ea40898080008fc092008fe0b0000000078c60002300248024402c403440238020000fe0f0000000000007cc680009c00920ea208e208a2089c080008fe0900000000000094c6000000043804c807440444044404c807380400040000000095c6000080009c01e201a201a201a201e4019c0f800000000000a9c6000040004c06720952095209520972094c06400000000000b0c6000080009c009400a200a20fa20094009c00800000000000b1c6000040005c0162016201e201620162015c0f400000000000b4c6000040005c0f64086208e20b620854085c08400000000000b8c600004000cc0ed20ad20ad20ad20ad20acc0b400000000000c0c6000040004c0f52095209d209520952094c0f400000000000c3c6000040004c0852085204d202520452084c08400000000000c5c6000040005c0662096209e209620962095c06400000000000ccc680009800a400a400a407a40098010001fe0f000000000000cdc620002c003202f20232023202ac028002fe0e000000000000d0c640004c00520f5208d20952080c088008fe09000000000000d4c620002c00320f320b720b320b2c0b000b7e0b000000000000e8c6400058006400e407640058010001fc070000fe0f00000000ecc600004800540ed4085408c8088008fc090008fe0b00000000f0c600002c00320f720b320b6c0b400b7e0b000b7e0b00000000f9c600002c00320f720a320a6c0a400afe0a000a7e0f0000000004c780009800a400a400a40fa40098000000fc0f00000000000008c740005c00620f6208e20962085c080008fe090000000000000cc720002c00b20eb20af20ab20aac0a800abe0b00000000000017c740004c0052085208d20952044c030004fe0900080000000019c740004c005206520ad20952094c0900097e0600000000000020c7000080009c00a20fa200a200a200a20f9c0080000000000021c7000040005c01e201620162016201e2015c0f40000000000024c7000040005c0e6408e20b62086208e20b5c0840000000000028c700004000cc0ed20ad20ad20ad20ad20acc0b40000000000035c7000040004c06d209520952095209d2094c064000000000003cc70000000430044804840484048404480430040004000000003dc7000040005c01620162016201620164015c0f40000000000040c7000080009c0ea408a208a208a208a4089c0880000000000044c700004000cc0ed20ad20ad20ad20ad20acc0b4000000000004cc7000040005c0f620962096209620962095c0f4000000000004dc7000040004c0f520a520a520a520a520a4c0f40000000000051c7000040005c06640962096209620964095c0640000000000058c700023802440244024402440238020000fe0f00000000000074c70000f0000801040204020801f0000000fe0f00000000000075c7000038004401440144014401380100017e0f00000000000078c7000038002800440f4408440838080008fe090000000000007cc700001c001400a20ea20a9c0a800a800abe0b0000000000007dc700003800c40ec40ac40ab80b00088000bc0f00000000000083c700001c00a20ea20aa20b1c000005800b3e0b00050000000084c700003800440f440944092809380900097e0f00000000000085c7000038002800440f440a440a380a000a7e0f00000000000087c700003800440844044402440138020004fe0800080000000088c7000038084404440344042808300400037e0400080000000089c7000038004406440944092809380900097e090006000000008ac7000038004408440944094405380300057e090000000000008ec70000380044094409440f28093809000f7e0900000000000090c700020401c4003c004400840004010000fe0f20002000000091c74000440024011c0124014401440100017e0f10001000000094c780004400240f1c082408440844080008fe0910001000000096c700004400340f0c0814002405200b800b3e0508010800000098c740002400940e8c0a940aa40aa40a800abe0b080008000000a0c740004400240f1c0924094409440900097e0f100010000000a1c740004400240f1c0a240a440a440a000a7e0f100010000000a3c78000440824081c042404440340020004fe08100810000000a5c78000440024061c0924094409440900097e06100010000000a6c74000440824091c0924054403440500097e09100010000000acc700000401c4003c00c4010000fe0720002000fe0f00000000adc70000440024001c01640100017e01100110017e0f00000000bcc70000440024001c0f640900097e09100910097e0f00000000c1c70000440024001c06640900097e09100910097e0600000000c8c700020401c4003c00c400040104020000fe0f900090000000ddc78000440024061c0924094409440900097e0628002800000000c800020401c4003c00c4000401240220002000fe0f0000000001c84000440024011c01240144015401100110017e0f0000000004c88000440024001c0f24084408840810081008fe090000000008c84000240014008c0e940aa00aa80a880abe0b0000000000000ac800002400a40e9c0aa40b2400840f9008be0f00000000000010c840004400240f1c09240944095409100910097e0f0000000011c84000440024001c0f240a440a500a100a7e0f00000000000013c88000440024081c0824044404440310041008fe090008000015c88000440024061c09240944095409100910097e060000000016c84000440024091c09240944055403100510097e09000000001cc80000040284017c00840024032000fe0f0000fe0f000000001dc80000440024001c012401440110017e0100017e0f0000000020c80000840064001c0f240844081008fe090008fe090000000024c80000240014008c0e940aa00a880abc0a800abe0b000000002cc80000440024001c0f2409440910097e0900097e0f000000002fc80000840064081c082404440410037e040008fe090008000038c800020401c4003c0044008400040150005000fe0f000000003cc88000440024001c0f240844088c0828082808fe090000000070c8000084044404440424049c0724044404440484040000000071c800005000520152014a0166014a015201520f50000000000074c80000a000a40ea4089408cc089408a408a408a0000000000078c800005000d20ed20aca0ae60aca0ad20ad20b50000000000080c800005000520f52094a0966094a095209520f50000000000081c800005000520f520a4a0a660a4a0a520a520f50000000000085c800005000540654094c096c094c09540954065000000000008bc820002a012a052a0b2a0ba60b2a0b2a0b32053201200000008cc88002440224029c032402440244020000fe0f400040000000c4c800004002440224029c03240244020000fe0f000000000000e0c8000484044404440724041c04240444074404840400040000e4c80000a000a40ea40894088c089408d4089408a40880000000fcc80000a000a400a40094008c0f9400a400a400a00000000000fdc800005000520152014a01c6014a015201520f50000000000000c90000a000a40ea40894088c0b9408a408a408a0000000000004c900005000d20ed20aca0ac60aca0ad20ad20b5000000000000cc900005000520f52094a09c6094a095209520f5000000000000dc900005000520f520a4a0ac60a4a0a520a520f50000000000011c900005000540654095409cc0954095409540650000000000018c90000a000a40094008c079400a4010001fe0f00000000000050c90000a000a40094008c0f9400a4000000fe0f0000000000006cc98000a400a400a40f94008c009400a40fa400a4008000000088c9000084048404440424041c0424044404840484040000000089c9000050005401540154014c0154015401540f5000000000008cc90000a000a40ea40894088c089408a408a408a0000000000090c900003000b20eaa0aaa0aa60aaa0aaa0ab20b30000000000098c900005000520f52094a0946094a095209520f50000000000099c900005000520f520a4a0a460a4a0a520a520f5000000000009dc9000050005406540954094c09540954095406500000000000c0c900020401c4003c00c400040104020000fe0f000000000000c1c900004000440024011c012401440100017e0f000000000000c4c9000080004400240f1c08640884080008fe09000000000000c7c940004400240f1c0924094409400900097e09000000000000c8c94000240014008c0e940aa40aa00a800abe0b000000000000d0c900004000440f24091c092409440900097e0f000000000000d1c9000040004400240f1c0a240a440a000a7e0f000000000000d3c900008000440824081c04640340040008fe09000800000000d5c900008000440624091c092409440900097e09000600000000d9c920002400940f8c0a940aa40aa00a800abe0a000000000000dac900004000440824091c0f24094409000f7e09000000000000dcc9000184017c00840380007c0084010000fe0f200000000000ddc9400024001c01640160011c01640100017e0f100000000000e7c9200014008c0eb40aa00b1c00b40f000abe0f080000000000f1c9400024001c06640960091c09640900097e06100000000000f8c9000084017c0080017c0084010000fe072000fe0f000000000cca000064083c0c40033c04640800047e031004fe08000800004cca000284017c00840180037c00840120022000fe0f000000004dca400024001c01640120011c012401440110017e0f0000000050ca800044003c00c40e40083c08440894081008fe090000000054ca200034009c0ea40ab00a8c0a940aa00a880abe0b000000005cca400024001c0f640960091c092409440910097e0f00000000bdca000052004a0146014a0168014a0146014a0f520000000000d3ca000052004a0946054a0568034a0546054a0952000000000048cb0000a400a4009c00a400a00fa4009c00a400a4000000000049cb0000540054014c015401d00154014c01540f540000000000d4cb0000840464043c044404800444043c0464048404000000000ccc000284017c00840180037c00840104020000fe0f000000000dcc400024001c01640120011c012401440100017e0f0000000010cc800064003c0ec40840083c08640884080008fe09000000001ccc400024001c0f240960091c092409440900097e0f0000000022cc400024001c09640920051c032405440500097e090000000028cc00010801c8003e00c800080108010000fe0f20002000000029cc4000440024011e0124014401440100017e0f1000100000002ccc80004400240f1e082408440844080008fe091000100000002ecc00004400340f0e0814012405200b800b3e0508010800000030cc20002400940e8e0a940aa40aa40a800abe0b08000800000038cc40004400240f1e0924094409440900097e0f1000100000003bcc4000440824081e042402440344020004fe081008100000003dcc8000440024061e0924094409440900097e061000100000003ecc4000440824091e0924054403440500097e0910001000000044cc00000801c8003e00c8010000fe0720002000fe0f0000000045cc0000440024001e01640100017e01100110017e0f000000004ccc0000240014008e0eb40a800abe0a880a880abe0b0000000054cc0000440024001e0f640900097e09100910097e0f0000000059cc0000440024001e06640900097e09100910097e060000000060cc0002080188007e00c800080108020000fe0f90009000000064cc80008400640e1e082408440884080008fe0948084800000098cc00020801c8003e00c8000801280120002000fe0f0000000099cc4000440024011e01240144015401100110017e0f000000009ccc8000440024001e0f24084408840810081008fe0900000000a0cc4000240024009e0ea40aa40a840a900abe0b000000000000a8cc40004400240f1e09240944095409100910097e0f00000000a9cc4000440024001e0f240a440a540a100a7e0f000000000000abcc8000440024081e0424044402440110021004fe0900080000adcc8000440024061e09240944095409100910097e0600000000b4cc00000801c8003e00c80008012000fe070000fe0f00000000bccc0000440024009e0ea40a840a900abe0a800abe0b00000000d0cc0002080288017e008800080118029000fe0f00000000000008cd000080048804480428043c0728044804880480040000000009cd0000a000a402a4029402ce029402a402a40ea000000000000ccd0000a000a40ea4089408ce089408a408a408a000000000001bcd0000a008a408a4089404ce029404a408a408a008000000001dcd0000a000a406a4099409ce099409a409a406a000000000002ccd00005400540f4e0b540b540b540b000b7e0b1000100000005ccd00004002440224029e03240244020000fe0f00000000000078cd000488044804480728041c0428044807480488040004000094cd000040014401240114011e0f14012401440140010000000095cd00005000540154015401ce0154015401540f50000000000098cd0000a000a40ea40894088e0b9408a408a408a000000000009ccd00006000640f540b540bce0b540b540b640b600000000000a4cd00005000540f54095409ce0954095409540f500000000000a5cd00006000640f540a540ace0a540a540a640f600000000000a7cd00005008540854045404ce02540454045408500800000000a9cd00005000540654095409ce09540954095406500000000000e8cd0000a000a40094008e0f9400a4000000fe0f00000000000004ce8000a400a400a40f94008e009400a40fa400a4008000000020ce000080048804880448043c0448048804880480040000000021ce000050005401540154014e0154015401540f50000000000030ce00005000540f540954094e0954095409540f50000000000035ce000050005406540954094e0954095409540650000000000058ce00000002080188007e00880108020000fe0f00000000000059ce00004000440024011e012401440100017e0f0000000000005cce000080004400240f1e082408c4080008fe0900000000000060ce000020002400940e8e0a940aa40a800abe0b00000000000068ce40004400240f24091e092409440900097e0f00000000000069ce000040004400240f1e0a240a440a000a7e0f0000000000006bce00004000440824041e06240140020004fe040008000000006dce00004000440624091e092409440900097e0900060000000074ce000024022401940064001c0000000000fe0f20002000000075ce000054005401340134010c01000100017e0f10001000000078ce10005400540f340814080c0800080008fe091000100000007cce00002a00aa0eaa0a9a0a860a800a800abe0b08000800000084ce00005400540f540934090c09000900097e0f10001000000085ce00005400540f340a340a0c0a000a000a7e0f10001000000089ce000094005406540934090c09000900097e0610001000000090ce20012401940074001c000000fe0720002000fe0f0000000094ce000090005400340f1c080008fe0910081008fe0900000000a0ce000090005400340f0c0900097e09100910097e0f00000000a1ce000090005400340f0c0a000a7c0a100a100a7e0f00000000a3ce90009400540834080c0400027e0310041004fe0900080000e4ce000024022401a40064001c0000002000fe0f000000000000e8ce000090005400540f3c080c08000810081008fe0900000000ecce000050005400340eb40a8c0a800a900a900abe0b00000000f4ce000090005400540f34090c090009100910097e0f00000000f5ce000090005400540f340a0c0a000a100a100a7e0f00000000f7ce000090005404340834040c02800110021004fe080004000000cf10012401940054003c0020002000fe070000fe0f0000000004cf000094005400340f1c0810081008fe090008fe090000000008cf000050005400340e9c0a900a900abc0a800abe0b0000000010cf000090005400340f1c09100910097e0900097e0f0000000013cf90009400540834041c04100210017e020004fe08000800001ccf000024022401a40064001c0090009000fe0f00000000000054cf0004240424042404a407240424042404fc0400040000000058cf00008000940e94089408d40894089408bc088000000000005ccf00004000ca0eca0aca0aea0aca0aca0ade0b40000000000064cf000040004a0f4a094a096a094a094a095e0f40000000000065cf000040004a0f4a0a4a0a6a0a4a0a4a0a5e0f40000000000069cf000040004a064a094a096a094a094a095e0640000000000070cf000024022402a40324022402fc020000fe0f4000400000008ccf10012401a401140114017c010000fe074000fe0f00000000c4cf000420042404a40724042404a4072404fc04000400000000e0cf00008000940094009400940f94009400fc00800000000000e1cf00004000520152015201d201520152017e0f400000000000e8cf00002000aa0eaa0aaa0aea0aaa0aaa0abe0b200000000000fccf400054005400d407540054007c010001fe0f00000000000034d00000400054005400d40754007c0040000000fe0f0000000035d00000400054005401d40154017c0100017e0f00000000000038d040005400540f5408d40954087c080008fe090000000000003cd020002a00aa0eaa0aea0aaa0abe0a800abe0b00000000000050d0000090009400940f940094009400940ffc008000000000006cd000022002240224022402240224022402fc0200020000000070d000004000540f540854085408540854087c0840000000000074d000002000ac0eac0aac0aac0aac0aac0abc0b2000000000007cd000004000520f520952095209520952097e0f400000000000a4d0000224022401a40064001c0000000000fe0f000000000000a8d0000090009400540e34080c0800080008fe09000000000000acd048002a00aa0e9a0a9a0a860a800a800abe0b000000000000b4d0000090005400540f34090c09000900097e0f000000000000b9d0000094005406540934090c09000900097e09000600000000c0d00000fc01240124012401240100010000fe0f200020000000c1d000007c005401540154015401400100017e0f100010000000c4d00000fc00940e94089408940880080008fe09100010000000c8d000003c00ac0eac0aac0aac0aa00a800abe0b080008000000d0d000007c00540f540954095409400900097e0f100010000000d1d000007c00540f540a540a540a400a000a7e0f100010000000d3d000007c00540854045402540140020004fe08100810000000d5d000007c005406540954095409400900097e06100010000000dcd00000fc012401240124010000fe0720002000fe0f00000000ddd000007c0054015401540100017e01100110017e0f00000000e0d000007c005400540f54080008fe0910081008fe0900000000e4d000007c005400d40ed40a800abc0a880a880abe0b00000000ecd000007c005400540f540900097c09100910097e0f00000000edd000007c005400540f540a000a7c0a100a100a7e0f00000000f1d000007c0054005406540900097e09100910097e060000000030d10000fc012401240124012401000120002000fe0f0000000031d100007c0054015401540154014001100110017e0f0000000034d10000fc009400940e94089408800810081008fe090000000038d100007c005400d40ed40ad40ac00a880abe0b00000000000040d100007c00540f5409540954094009100910097e0f0000000045d100007c0054065409540954094009100910097e06000000004cd10000fc0124012401240100012000fe070000fe0f000000004dd100007c00540154015401400110017e0100017e0f0000000050d10000fc009400940e940880081008fe090008fe0b0000000054d100007c005400d40ed40ac00a880abc0a800abe0b000000005cd100007c005400540f5409440910097e0900097e0f000000005dd100007c005400540f540a440a100a7c0a000a7e0f00000000a0d100000004fc04940494049407940494049404000400000000a1d100008000be02aa02aa02ea02aa02aa02aa0e800000000000a4d100008000be0eaa08aa08ea08aa08aa08aa08800000000000a8d1000040005e0f5a0b5a0b7a0b5a0b5a0b5a0b400000000000b0d100008000be0faa09aa09ea09aa09aa09aa0f800000000000b1d100008000be0eaa0aaa0aea0aaa0aaa0aaa0e800000000000b5d100008000be06aa09aa09ea09aa09aa09aa06800000000000f4d1000000027c025402d403540254020000fe0f0000000000002cd2000000017c0154015401540f54015401540100010000000034d2000040005e0f5a0b5a0bda0b5a0b5a0b5a0b4000000000003cd200008000be0faa09aa09aa09aa09aa09aa0f80000000000041d200008000be06aa09aa09aa09aa09aa09aa0680000000000080d200008000bc00b400b407b400b4000000fe0f0000000000009cd2000000017c01540f540154015401540f5401000100010000b8d200000004fc04940494049404940494049404000400040000b9d200008000be02aa02aa02aa02aa02aa02aa0e800000000000bcd200008000be0eaa08aa08aa08aa08aa08aa08800000000000bfd200008000be0faa09aa09aa09aa09aa09aa09800080000000c0d2000040005e0f5a0b5a0b5a0b5a0b5a0b5a0b400000000000c8d200008000be0faa09aa09aa09aa09aa09aa0f800000000000f0d20000fc01240124012401240100010000fe0f000000000000f1d200007c005401540154015401400100017e0f000000000000f4d200007c005400540f5408540840080008fe09000000000000f8d200003c002c00ac0eac0aac0aa00a800abe0b00000000000000d300007c00540f540954095409400900097e0f00000000000001d300007c005400540f540a540a400a000a7e0f00000000000005d300007c005406540954095409400900097e090006000000000cd300000401fc0104010401fc0104010000fe0f2000200000000dd3000044007c01440144017c01440100017e0f1000100000000ed3000044007c014401440f7c00440100017e0f10001000000010d300008400fc0e84088408fc0884080008fe0910001000000014d300002400bc0ea40aa40abc0aa40a800abe0b0800080000001cd3000044007c0f440944097c09440900097e0f1000100000001dd3000044007c0f440a440a7c0a440a000a7e0f1000100000001fd3000044007c08440444047c0344020004fe0810081000000028d300000401fc010401fc010000fe0720002000fe0f0000000029d3000044007c0044017c0100017e01100110017e0f000000002cd3000044007c00440f7c080008fe0910081008fe09000000007cd300000401fc0104010401fc01040120012000fe0f000000007dd3000044007c01440144017c014401500110017e0f0000000080d3000044007c00440f44087c08440850081008fe090000000084d3000044007c00c40ec40afc0ac40ac00a880abe0b000000008cd3000044007c0f440944097c094409500910097e0f0000000098d300000401fc010401fc0104012000fe070000fe0f0000000099d3000044007c0044017c01440110017e0100017e0f000000009cd3000044007c00440f7c0844081008fe090008fe0900000000a0d3000044007c00c40efc0ac00a880abc0a800abe0b00000000a8d3000044007c00440f7c09440910097e0900097e0f00000000abd3000044007c0844087c04440210037e040004fe0800080000b4d300000401fc0104010401fc01040150015000fe0f00000000b8d300008400fc00840e8408fc08a80828082808fe0900000000bcd3000044007c00c40ec40afc0ad80a980a980abe0b00000000c9d3000044007c06440944097c096809280928097e0600000000d0d300000401fc010401fc0104015000fe070000fe0f00000000ecd30004440444047c044404c40744047c044404440400040000edd38000a200a202be02a202e202a202be02a20e800000000000f0d300008000a40ebc08a408e408a408bc08a408a40080000000f4d300004000520f5e0b520b720b520b5e0b520b520040000000fcd300004000520f5e095209720952095e09520f40000000000001d44000520052065e095209720952095e0952064000000000005cd4000444044404fc07440444044404fc07440444040004000078d48000a400a400bc00a400a40fa400bc00a400a4008000000079d44000620062027e026202e20362027e02620e4000000000007cd400008000a40ebc08a408a40ba408bc08a408a4008000000080d400004000520f5e0b520bd20b520b5e0b520b52004000000088d400004000520f5e095209d20952095e09520f4000000000008bd44000520852085e045204d20252045e0452085208400000008dd44000520052065e095209d20952095e095206400000000000e8d48000a400a400bc0fa400a400a400bc0fa400a4008000000004d5000484048404fc04840484048404fc04840484040004000008d500008000a40ebc08a408a408a408bc08a408a400800000000cd500004000520f5e0b520b520b520b5e0b520b52000000000014d500004000520f5e095209520952095e09520f4000000000003cd500000401fc0104010401fc0104010000fe0f0000000000003dd5000044007c01440144017c01440100017e0f00000000000040d500008400fc0e84088408fc0884080008fe0900000000000044d500002400bc0ea40aa40abc0aa40a800abe0b0000000000004cd5000044007c0f440944097c09440900097e0f0000000000004fd5000044007c08440444027c0144020004fe0800080000000051d5000044007c06440944097c09440900097e0900060000000058d50800e80118021c021802e80108000000fe0f20002000000059d5040074008c018e018c017401040100017e0f1000100000005cd504006400940e96089408640804080008fe0920002000000060d504003400cc0ece0acc0ab40a840a800abe0b10001000000068d5040074008c0f8e098c097409040900097e0f10001000000069d5040034004c0f4e0a4c0a340a040a000a7e0f1000100000006bd504006408940896089404640204040008fe091008100000006dd5040064009406960994096409040900097e0610001000000074d50000c80028011c0168018000fe0740004000fe070000000075d50000640094009601940160017e01100110017e0f0000000078d5000064009400960e94086408fe0920082008fe090000000084d5000064009400960f940964093e09100910097e0f0000000087d5000064009408960894086404fe0210041008fe090008000089d50000640094009606940964093e09100910097e0600000000a5d5040064009406960994096409040900097e06280028000000c8d50800c80128022c022802c801080040004000fe0f00000000ccd5040064009400960e94086408040820082008fe0900000000d8d5040074008c0f8e098c0974090409100910097e0f00000000dbd5040064009408960894046404040310041008fe0900080000e4d50000e80118021c021802e8010000fe0f0000fe0f00000000ecd5000034004c00ce0ecc0ab40a800abe0a800abe0b00000000f4d5000064009400960f9409740910097e0900097e0f0000000000d60800e80018011c021801e8000800a000a000fe0f0000000001d6040074008c018e018c0174010401500150017e0f0000000004d6040064009400960e94086408040850085008fe090000000008d6040034004c004e0f4c0b340b000b280b7e0b00000000000011d6040074008c008e0e8c0a740a040a500a500a7e0f0000000015d60400640094069609940964090409500950097e06000000001cd60000e80118021c023803e800a000fe0f0000fe0f0000000038d6000008046804980498049c0798049804680408040000000039d600008400b402cc02cc02ce02cc02cc02b40e8400000000003cd600008400b40ecc08cc08ce08cc08cc08b40884000000000040d600004400540f6c0b6c0b6e0b6c0b6c0b540b44000000000048d600008400940eac0aac0aee0aac0aac0a940e84000000000049d600008400940eac0aac0aee0aac0aac0a940e8400000000004dd6000084009406ac09ac09ee09ac09ac09940684000000000054d604026402940296039402640204020000fe0f40004000000055d68400b402cc02ce02cc02b40284020002fe0e10001000000058d68400b400cc0ece08cc08b40884080008fe092000200000005cd6000054006c0f6e0b6c0b540b440b000b7e0b10001000000069d680009400ac06ee09ac099409840900097e061000100000008cd600000402640294029603940264020000fe0f0000000000008dd600008400b400cc02ce02cc02b4020002fe0e0000000000009fd600008400b408cc08ce04cc02b4040004fe09000800000000a1d6000084009406ac09ee09ac09940900097e09000600000000a8d6000408046804980798049c04980498076804080400040000c4d600000401240154015401560f540154012401040100000000c8d600008400b40ecc08cc08ce09cc08cc08b408840000000000ccd600004400540f6c0b6c0bee0b6c0b6c0b540b440000000000d4d600008400940eac0aac0aae0bac0aac0a940e840000000000e8d600004400540f6c0b6e0b6c0bd40b800bfe0b000000000000fcd68000b400cc00ce0fcc00b4020002fe0f0000fe0f0000000000d780009400ac00ae0dac0894090009fe0b0008fe0b0000000018d70000040134014c014e0f4c0134010000fe0f00000000000020d740004400540f6c0bee0b6c0b540b000b7e0b00000000000034d7000004012401540f540156015401540f240104010001000049d7000084009406ac09ac09ae09ac09ac09940684000000000050d700000804e804180518051c0518051805e80408040000000051d700008400b402cc02cc02ce02cc02cc02b40e84000000000054d700008400b40ecc08cc08ce08cc08cc08b40884000000000058d700004400540f6c0b6c0b6e0b6c0b6c0b540b44000000000059d740004400540f6c0b6c0b6e086c016c01540f44000000000061d700008400940eac0aac0aae0aac0aac0a940e84000000000065d700008400b406cc09cc09ce09cc09cc09b40684000000000069d700004400540f6c0b6c0b6e0b6c0b6c0b540b4400000000006cd700000402640294029602940264020000fe0f00000000000070d700008400b40ecc08ce08cc08b4080008fe0900000000000088d70800c800280118021c021802e8010000fe0f0000000000008cd7040064009400940e9608940864080008fe0900000000000090d704003400cc0ecc0ace0acc0ab40a800abe0b00000000000098d7040074008c0f8c098e098c09740900097e0f00000000000099d7040034004c004c0f4e0a4c0a340a000a7e0f0000000000009dd7040064009406940996099409640900097e0900060000000010fe000000000000000000000000000008000b0006000000000011fe00000000000000000000000000000000020004000800000012fe000000000000000000000000000000000c00120012000c0013fe000000000000000000000000000000000c0308020000000014fe000000000000000000000000000000088c0508030000000015fe000000000000000000000000000000007e0300020000000016fe000000000000000000000000040002004203620212000c0017fe800f8004800280028001800180018001800280028004800f18fe3e0024002800280030003000300030002800280024003e0019fe00000000000000000000660644040000000000000000000030fe000000000000000000000c0308020000000000000000000031fe00000000000000000000fe0700000000000000000000000032fe00000000000000000000e00000000000000000000000000033feff0f0000000000000000000000000000000000000000000034fe99096606000000000000000000000000000000000000000035fe00080004000400020002000200020002000400040008000036fe02000400040008000800080008000800040004000200000037fe00080004000400040004000200040004000400040004000838fe02000400040004000400080004000400040004000400020039fe0008000400020002000200020002000200020004000800003afe0200040008000800080008000800080008000400020000003bfe000e000600020002000200020002000200020006000e00003cfe0e000c0008000800080008000800080008000c000e0000003dfe000a000900058004800280028002800400050009000a00003efe0a000a0012001400240028002400140012000a000a0000003ffe00080004000400020002000100020002000400040008000040fe02000400040008000800100008000800040004000200000041fe00000000000000010001000100010001000100010001000f42fe1e001000100010001000100010001000100000000000000043fe000000000000000300030003000300030003000f0009000f44fe1e0012001e0018001800180018001800180000000000000045fe000000000800100030007000e000c003c00700030000000046fe00000000080018002800c80010032004400480030000000047fe000e0002000200020002000200020002000200020002000e48fe0e0008000800080008000800080008000800080008000e0049fe0000000002000200000002000200000002000200000000004afe0000000002000200000002000000020002000200000000004bfe0200020002000200020002000200020002000200020002004cfe0a000a000a000a0006000a000a000a0006000a000a000a004dfe0000000000040004000000040004000000040004000000004efe0000000000040004000000040000000400040004000000004ffe00040008000800040004000800080004000400080008000450fe00000000000000000000000a00060000000000000000000051fe00000000000000000002000400080000000000000000000052fe00000000000000000000000000040000000000000000000054fe00000000000000000000200a00060000000000000000000055fe00000000000000000000400400000000000000000000000056fe00000000000020001000100d90006000000000000000000057fe000000000000000000000000f00d0000000000000000000058fe00000000000000020002000200020002000200020000000059fe00000000000000000000c003300c000000000000000000005afe00000000000000001000200cc003000000000000000000005bfe00000000000000000000e0071008000000000000000000005cfe0000000000000000100860078000000000000000000000005dfe00000000000000000000e0071008000000000000000000005efe000000000000000000001008e007000000000000000000005ffe00000000000000004005f003e0075001000000000000000060fe00000000000000066009900960060006000900000000000061fe00000000000000006000300060000000000000000000000062fe00000000000000010001c00700010001000000000000000063fe00000000000000000001000100010001000000000000000064fe00000000000000008000800180014002400200000000000065fe00000000000040024002800180010001000000000000000066fe00000000000000004002400240024002000000000000000068fe00000000000000001000e00000070008000000000000000069fe000000000000000060029004980c900420030000000000006afe00000000e0001001e00c0003c000300780080007000000006bfe00000000c00320049009500a500990092002c0010000000001ff00000000000000000000fc0600040000000000000000000002ff00000000000000000f00000000000f00000000000000000003ff0000000090009004fc0390009004fc03900090000000000004ff000000000000180224044404460c8404080300000000000005ff00007800840084047802c0013000c80324042004c003000006ff00000000800378044404a40418030003c00400040000000007ff000000000000000000000f0000000000000000000000000008ff00000000000000000000000000000000f0010c060208000009ff000002080c06f001000000000000000000000000000000000aff0000000010011001a0004000fc074000a0001001100100000bff00004000400040004000fc074000400040004000000000000cff000000000000000000016001c000000000000000000000000dff0000400040004000400040004000400040004000000000000eff0000000000000000000060004000000000000000000000000fff00080004000200018000400020001000080004000200000010ff000000000000f0010802040404040802f00100000000000011ff000000000000000404040404fc070004000400000000000012ff0000000000000804080404060405c404380400000000000013ff0000000000000802080444044404a404b80300000000000014ff0000000000008001600110010801fc07000100000000000015ff0000000000027c022404240424044402840100000000000016ff000000000000f0014802240424042402c80300000000000017ff00000000000004000400840764001c00040000000000000018ff00000000000098036404440444044404b80300000000000019ff00000000000078028404840484044802f0010000000000001aff0000000000000000000018031002000000000000000000001bff000000000000000000088c050803000000000000000000001cff000040004000a000a00010011001080208020404000000001dff0000a000a000a000a000a000a000a000a000a000000000001eff0000000004040802080210011001a000a0004000400000001fff000000000000080004008406c4042400180000000000000020ff0000e00118020404e40812099208e208120584007800000021ff0000000000040003f0008c008c00f000000300040000000022ff000000000000fc074404440444044404b80480030000000023ff000000000000f0010802040404040404040408020000000024ff000000000000fc0704040404040404040802f0010000000025ff000000000000fc074404440444044404040400000000000026ff0000000000000000fc07440044004400440004000000000027ff00000000f000080308020404040444044404c8030000000028ff00000000fc07400040004000400040004000fc070000000029ff00000000000004040404fc070404040400000000000000002aff0000000000000002000400040004fc0300000000000000002bff000000000000fc07400020005000880104020404000000002cff0000000000000000fc0700040004000400040000000000002dff00000000fc070800700080030001f0000800fc07000000002eff000000000000fc0708003000400080010002fc07000000002fff00000000f001080204040404040404040802f0010000000030ff000000000000fc078400840084008400480038000000000031ff00000000f8000401020202020206020a0409f8080000000032ff000000000000fc07440044004400c400440338040000000033ff00000000000018022404440444048404080300000000000034ff00000000040004000400fc0704000400040000000000000035ff00000000fc01000200040004000400040002fc010000000036ff0000000004003800c00100060006c001380004000000000037ff0c00f0010006800370000c00780080030006f0010c00000038ff00000000000004040c02b0014000b0010c0204040000000039ff0000000004001800600080076000180004000000000000003aff000000000000040404078404440434040c040404000000003bff000000000000000000000000000000000000fe0f020802083cff0200040008001000200040008000000100020004000800003dff02080208fe0f0000000000000000000000000000000000003eff0000000000000000020001000100020000000000000000003fff00080008000800080008000800080008000800080008000840ff00000000000000000100010002000000000000000000000041ff00000000000020039004900490049002e00700000000000042ff000000000000fe072004100410042002c00100000000000043ff000000000000c0012002100410041004200200000000000044ff000000000000c0012002100410041002fe0700000000000045ff000000000000c001a00290049004a004e00200000000000046ff00000000000010001000fc0712001200120000000000000047ff000000000000b8064409440944093c09040500060000000048ff000000000000fe072000100010001000e00700000000000049ff000000000000000000000600f007000000000000000000004aff000000000000000000000000fb0f000000000000000000004bff0000000000000000fe078000c000200110061004000000004cff00000000000000000000fe030004000400040000000000004dff0000f0072000100010001000e007200010001000e00700004eff000000000000f0072000100010001000e0070000000000004fff000000000000c0012002100410042002c00100000000000050ff000000000000fc0f0801040104018800700000000000000051ff00000000000070008800040104010401fc0f00000000000052ff0000000000000000f007200010001000100000000000000053ff00000000000060025004900490049004200300000000000054ff00000000000010001000fc0310041004100400000000000055ff000000000000f0030004000400040002f00700000000000056ff00000000100060008003000480036000100000000000000057ff00001000e0010006800360003000c0030006c0013000000058ff00000000000010043002c00140013002100400000000000059ff0000000004081808e0040003c000380004000000000000005aff0000000000000004100690055004300410040000000000005bff000000000000000000000000000000004000bc07020800005cff00000000000000000000ff0f0000000000000000000000005dff00000208fc070000000000000000000000000000000000005eff4000400020002000200040008000800080004000400000005fff0000000000000000000000000000fc03020cf801060e000060ff00000208fc070000fe0f000000000000000000000000000061ff00060009000900060000000000000000000000000000000062ff00000000fe0102000200020000000000000000000000000063ff000800080008f00f0000000000000000000000000000000064ff00000001000200040000000000000000000000000000000065ff00000000600040000000000000000000000000000000000066ff00004808480c4803b800000000000000000000000000000067ff00001004d00310006000000000000000000000000000000068ff000000018000c00f3000000000000000000000000000000069ff0000e000300c2002e00100000000000000000000000000006aff00042004e0072004000400000000000000000000000000006bff00002001a004f807200000000000000000000000000000006cff00008000f000400fe00000000000000000000000000000006dff0000000420042007e00400000000000000000000000000006eff00002004a004a004e00f00000000000000000000000000006fffc0000008e0040002e001000000000000000000000000000070ff00004000400040004000400000000000000000000000000071ff0808080ee80108007800000000000000000000000000000072ff4000c0004000f00f0c00040000000000000000000000000073ff000078000e0688017800000000000000000000000000000074ff08020802f80308020802000000000000000000000000000075ff100290015004fc071000000000000000000000000000000076ff10041003fc001004f003000000000000000000000000000077ff20011001fc00900f8800800000000000000000000000000078ff0000600010040e03c800380000000000000000000000000079ffc0003c081006f001100000000000000000000000000000007aff0000080208020802f80700000000000000000000000000007bff1000fc0010041002fc0110000000000000000000000000007cff00002008440c1802800160000000000000000000000000007dff0000000c080288017803000c0000000000000000000000007eff00002000fc031004d00438040000000000000000000000007fff00000c0030040003e0001c0000000000000000000000000080ff6000100c4e02c8013801000000000000000000000000000081ff00004808480cf8034400400000000000000000000000000082ff380000041c03c0003c00000000000000000000000000000083ff200024042406e4012400200000000000000000000000000084ff00000000fc074000c000000000000000000000000000000085ff000010041003fe001000100000000000000000000000000086ff00000002080208020802000200000000000000000000000087ff000008084806c8013806000000000000000000000000000088ff000008018800ce073800880100000000000000000000000089ff000000040003e0001c0000000000000000000000000000008aff0004c003380000003800c0070000000000000000000000008bff0000fc0320042004100400000000000000000000000000008cff0000080808048803780000000000000000000000000000008dff8001600010006000800100060000000000000000000000008eff0000d0011004fc071000d0010000000000000000000000008fff00000800c80088036804180000000000000000000000000090ff00002001240248024804000000000000000000000000000091ff0002f0030c02c0020005000000000000000000000000000092ff00041003e000b8000401000000000000000000000000000093ff40004800f80348044804600000000000000000000000000094ff2000fc01100ed0003800000000000000000000000000000095ff000208020802c8033802000000000000000000000000000096ff0000480248024802f807000000000000000000000000000097ff00002000240c2403e400000000000000000000000000000098ff00007c0000040002fc01000000000000000000000000000099ff0007fc000000fc07000280010000000000000000000000009aff0000fc0700020001800040000000000000000000000000009bff0000f80708020802f80700000000000000000000000000009cff00007800080c0803f80000000000000000000000000000009dff0000040418020001c00030000000000000000000000000009eff0c00000006000000000000000000000000000000000000009fff04000a000400000000000000000000000000000000000000a0ff000000000000000000000000000000000000000000000000a1ff00000000100010001000100010001000f003000000000000a2ff0000100010001000f0030000100010001000f00300000000a3ff0000000010001000f00300000003f0000001000200000000a4ff00000000f801000100010001000100010001000000000000a5ff00000000f0030002000210021001f0001001100200000000a6ff00000000f00100010000a00160027002a001000000000000a7ff00000000f001100110011001100110011001000000000000a8ff00000000f001100110010000f00110011001000000000000a9ff00000000c803480248024802480248027802000000000000aaff00000000d00150017001000110001000f001000000000000abff00000000d001500170010000f00110011001f00100000000acff00000000d001500170010000f00120012001f00100000000adff00000000d001500170010001800070008000000100000000aeff00000000d001500170010000f00150015001100100000000afff00000000d001500170000001f0011001f001100100000000b0ff00000000d001500170010000900158029001000000000000b1ff00000000f00110011001100110011001f001000000000000b2ff00000000f80120012001200120012001f801000000000000b3ff00000000f0014001f0010000f0014001f001000000000000b4ff00000000f0014001f0010001800070008000000100000000b5ff000000000001800040003800400080000001000000000000b6ff0000000280017000800100028001f0000001000200000000b7ff00000000e00010010802080208021001e000000000000000b8ff000000000801880048003800480088000801000000000000b9ff000000018800780088000001880078008800000100000000baff000000001001100190007c00900010011001000000000000bbff00000000480048004800480048004800f801000000000000bcff00000000f001500150015001500150015001000000000000bdff000000011001f001100110011001f0011001000100000000beff000000001000900150025802500290011000000000000000c2ff00000000000000000000fc0f400040000000000000000000c3ff0000000000000000fe072000fe0f00000000000000000000c4ff0000000000000000fe0f9000900000000000000000000000c5ff0000000000000000fe0f9000fe0f00000000000000000000c6ff000000000000200020002000fe0700000000000000000000c7ff00000000000020002000fe070000fe0f0000000000000000caff000000000000900090009000fe0f00000000000000000000cbff00000000000090009000fe0f0000fe0f0000000000000000ccff00000001000100010001f001000100010001000100000000cdff0000000100010001e001000100010000fc0f400040000000ceff000000010001e001000100010000fc0f4000fc0f00000000cfff0000000100010001f001000100010000fe0f000000000000d2ff000100010001f801000100010001f8010001000100000000d3ff00002000200020002000e007200020002000200000000000d4ff0000400040004000c0074000400040010001fc0f00000000d5ff000040004000c007400040010001fc0f0000fe0f00000000d6ff0000400040004000c0074000400040000000fe0f00000000d7ff200020002000e007200020002000e0072000200020000000daff000040004000400040004000400040004000400040000000dbff000080008000800080008000800080000000fe0f00000000dcff00000000000000000000fe0f000000000000000000000000e0ff000000000000e00010010802fc0708021001000100000000e1ff0000000000044006f8054404440444040404080000000000e2ff000020002000200020002000200020002000e00100000000e3ff010001000100010001000100010001000100010001000100e4ff00000000000000000000be0f000000000000000000000000e5ff0000000004009801e0018007e00198010400000000000000e6ff000044007800c007c00370007800c0034006f80144000000e8ff00000000ff0f000000000000000000000000000000000000e9ff4000e0005001400040004000000000000000000000000000eaff10000800fe0f080010000000000000000000000000000000ebff4000400040005001e0004000000000000000000000000000ecff00010002fe0f000200010000000000000000000000000000edff0000f000f000f000f0000000000000000000000000000000eeff0000e00010011001e0000000000000000000000000000000") +const _hex14438 = pxsim.BufferMethods.createBufferFromHex("20000000000000002100001700000000220000030003000023000a1f0a1f0a0024000a17151d0a00250013090412190026000a15150a100027000003000000002800000e11000000290000110e0000002a00000a040a00002b0000040e0400002c000010080000002d000004040400002e000008000000002f0010080402010030000e11110e0000310000121f100000320019151512000033000911150b000034000c0a091f080035001715151509003600081416150800370011090503010038000a1515150a00390002150d0502003a00000a000000003b0000100a0000003c0000040a1100003d00000a0a0a00003e0000110a0400003f0002011505020040000e1115090e0041001e05051e000042001f15150a000043000e111111000044001f11110e000045001f151511000046001f050501000047000e1111150c0048001f04041f00004900111f110000004a000911110f01004b001f040a1100004c001f10101000004d001f0204021f004e001f0204081f004f000e11110e000050001f0505020000510006091916000052001f05050a10005300121515090000540001011f01010055000f10100f0000560007081008070057001f0804081f0058001b04041b0000590001021c0201005a001915131100005b00001f111100005c000102040810005d000011111f00005e000002010200005f00101010101000600000010200000061000c12121e100062001f141408000063000c121212000064000814141f000065000e15151200006600041e0501000067000215150f000068001f04041800006900001d000000006a000010100d00006b001f040a1000006c00000f101000006d001e0204021e006e001e02021c00006f000c12120c000070001e0a0a0400007100040a0a1e000072001c0202020000730010140a0200007400000f1414100075000e10101e1000760006081008060077001e1008101e007800120c0c12000079001214080402007a00121a161200007b0000041f1100007c00001f000000007d00111f040000007e00000404080800d3000c1213130c00f3000c12130d000004010e05051e100005010609191f080006010c121313120007010c121313000018010f0b1b19000019010e151d1a000041011f14121000004201100f1412000043011f0205081f0044011e03031c00005a0110140b0302005b0110140b0300007901121a171300007a01121a171300007b01121b171200007c01121b17120000") +const _hex5296 = pxsim.BufferMethods.createBufferFromHex("87041c00100000000000000000000000000000555500000000005555555500000050550400550500005545000050550000550400000055045045000000005005504500500500504550450055550050455045005555045045504500504504504550450000440050455045000000005045504500000000504550450000000050455045000000005045504500000000504550450050050050455045005555005045504500555504504550450050450450455045000044005045005500000000554400550500005055040050550000554504000055555555440000004055554404000000004444040000") +const _hex5298 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000ffff0000000000f011110f000000001ff11ff1000000001ff11ff1000000001f1111f1000000001f1111f1000000001f1111f1000000001f1111f1000000001ff11ff1000000001ff11ff100000000f011110f0000000000ffff00000000000000000000000000000000000000") +const _hex5300 = pxsim.BufferMethods.createBufferFromHex("870411001000000011111155551111111111555555551111115155141155151111451451151155155145115555115115514511555514514551451151451451455145111144115145514511111111514551451151151151455145115555115145514511555514514551451151451451451145141144115415111155555555441111114155554414111111114444141111") +const _hex5302 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000020222222220200002002000020020000202000000202000020000220000200002000200200020000200020020002000020000220000200002020000002020000200200002002000020222222220200000000000000000000000000000000000000000000000000") +const _hex5304 = pxsim.BufferMethods.createBufferFromHex("87041000100000001111111111111111111111616666161111111111666666111111111161666616111111111166661611111111116666161111111161666611111111116666161111111161666611111111116666161111111161666611111111116666161111111161666611111111116666161111111111666611111111111111111111111111") +const _hex5306 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000800000000000080d800000000000088d800000000008088d800000000008888d800000000808888d800000000888888d800000080881111d800000088181888d800008088881111d800008888888888d80000d0dddddddddd0000000000000000000000000000000000") +const _hex5308 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000088888888880800001811118888dd000018181888d80d000088818188dd000000888888d80d000000888888dd000000008888d80d000000008888dd000000000088d80d000000000088dd000000000000d80d000000000000d000000000000000000000000000000000000000000000") +const _hex5310 = pxsim.BufferMethods.createBufferFromHex("87040f0010000000111111111111111111414444444414111144444444444411114444444444141111141114111111111114111411111111114441141111111111414411111111111111444444441111114144444444141111441111111144111144111111114411114144444444141111114444444411111111111111111111") +const _hex5312 = pxsim.BufferMethods.createBufferFromHex("87040f0010000000111111111111111111414444444414111144444444444411114444444444141111141114111111111114111411111111114441141111111111414411111141111141141111114411114414111111441111444444444444111144444444444411114444444444441111111111111144111111111111114111") +const _hex5314 = pxsim.BufferMethods.createBufferFromHex("87040f0010000000111111111111111111414444444414111144444444444411114444444444141111141114111111111114111411111111114441141111111111414411111144111141441111414411114414111144441111441111414444111144114144444411114444444414441111414444141144111111441411114411") +const _hex5316 = pxsim.BufferMethods.createBufferFromHex("87040f00100000001111555555551111115155ffff5515111155f5ffff5f55115155ffffff88551555f5ffff8f88585555ffffff8888ff5555ffff1f11f8ff5555ffff1211ffff5555ff2f1211ffff5555ff2222ffffff55552522ffffff5f555155f2ffffff55151155f5ffff5f5511115155ffff5515111111555555551111") +const _hex5318 = pxsim.BufferMethods.createBufferFromHex("87041000100000001111111111111111111111c1cccccc1c1111117c7777771c1111c1777777771c11117c777777771c11c17777c7cccc1c11c17777dcdddd1111c177c711111111c1cc77c7cc111111c1777777c7111111c1777777c7111111117c77771c11111111c177c71111111111117c1c111111111111c111111111111111111111111111") +const _hex5320 = pxsim.BufferMethods.createBufferFromHex("8704100010000000111111c1cccccc1c1111117c7777771c1111c1777777771c11117c777777771c11c17777c7cccc1c117c7777dcdd1d11117c77c7cc111111117c77cc771c1111117c77cc77c71111117c777777771c1111c177777777c71111117c777777dc111111c1cc77c71d11111111c177dc1111111111c1cc1d111111111111dd111111") +const _hex5322 = pxsim.BufferMethods.createBufferFromHex("87041000100000001111111111111111111111111111111111111111111111111111111111ee1e11111111114124ee1111111f114444e2111111f1114444e211f1ffff1f4444e2111111f1114444e21111111f114444e211111111114124ee1111111111d1eede111111111111dd1d11111111111111111111111111111111111111111111111111") +const _hex5324 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111111111111111818822b211111111888822221b111181881b1122b2111181b8111121b2111181b8111121b2111181b8111121b2111181b8111121b21111f1bf1111f1bf1111f1bf1111f1bf11611111111111116111111161611111111661611111616111111111111611111161111116111611111111161111111111") +const _hex5326 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111111111111111111111111111111111111111111111111111111111111111111111f11f1111111111112ff21111ffffffff22221ff1dddd222222221f11ffffffff22221f11111111112ff2111111111111f11f1111111111111111111111111111111111111111111111111111111111111111111111111111111111") +const _hex5328 = pxsim.BufferMethods.createBufferFromHex("8704100010000000111111111111111111111111111111118188888888888818818888588885881f818888855888881f815585888588281f514454888888281f514454585858281f514454888888281f815585888588281f818888855888881f818888588885881f8188888888888818111111111111111111111111111111111111111111111111") +const _hex5330 = pxsim.BufferMethods.createBufferFromHex("87041000100000001111111111111111111111111111111111111111111111111111111111111111111111f1ff11111111111111111f111f11b1bbcb1cf1111f11cbccccccf1ff1f11ccccccccf1ff1f11c1cccc1cf1111f11111111111f111f111111f1ff1111111111111111111111111111111111111111111111111111111111111111111111") +const _hex5332 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111181111111111118188111111111111888818111111111166681611111111111118111111111111f1ff1111111181161f111f11111188161f1f1f11118188881f111f11111188161f1f1f11111181161f111f1111111111f1ff1861111111111111818611111111111161881111111111118688111111111111111111") +const _hex5334 = pxsim.BufferMethods.createBufferFromHex("87042000210000006066666666bc1b11111111c1bb6c66b6000000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bcbb11111111bcbb6c66660b0000006666666666bcbbbbbbbbbbbbbb6c66660b0000006666666666bcbb11111111bcbb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1be1eeee11c1bb6c66660b0000006666666666bc1bdeddee11c1bb6c66660b0000006666666666bcebe1dded11c1bb6c66660b0000006666666666bc1e55deed11c1bb6c66660b0000006666666666ec51e5e4ed11c1bb6c66660b00000066666666661e554ee4ee11c1bb6c66660b00000066666666e651e544ee1e11bcbb6c66660b000000666666661e554ee4eebbbbbbbb6c66660b000000666666e651e544eebebcbcbcbb6c66660b0000006666661e554ee4eebbbbbbcbbb6c66660b0000006666e651e544eebebbbbbbbbbb6c66660b0000006666ee554ee4eebbbbbbbbcbbb6c66660b00000066e644ee44eebebbbbc1bbbbbb6c66660b00000066e644e2e4eecbbb1b11bccbbb6c66660b00000066662e22eebebbbbbbc1bbbbbb6c66660b0000006666e6e2eebccbbbbbbbbbcbbb6c66660b000000666666ee6ebcbbbbbbbbbbbbbb6c66660b0000006666666666bccbbbbbbbbbcbbb6c66660b0000006666666666bcbbbcbcbcbcbcbb6c66660b0000006066666666bcbbbbbbbbbbbbbb6c66b600000000") +const _hex5336 = pxsim.BufferMethods.createBufferFromHex("87042000200000006666666666666666666666666666666666666666666666d6dd6666666666666666666666666666d6dd66666666666666666666dd666666dddd6c666666666666666666dd6d66d6bbbbcc66d6dd6666666666dddddd66ddbbbbcc66ddddcc66666666ddbbbbccddbbbbccddbbbbcc66666666ddbbbbccddbbbbccddbbbbcc66666666ddbbbbbbbbbbbbbbbbbbbbcc6666666666bbbbbbbbbbbbbbbbbbbb666666666666c6bbddbbccccbbddbb6c666666666666c6bbddbb6cc6bbddbb6c6666666666ddddbbbbcc6666ccbbbbcccc66666666ddddbbbb6c6666c6bbbbcccc666666d6bbbbbbcc66666666ccbbbbbb6c6666ddbbbbbb6c66666666c6bbbbbbcc6666ddbbbbbb6c66666666c6bbbbbbcc6666d6bbbbbbcc66666666ccbbbbbb6c666666ccccbbbb6c666666bbbbcccc66666666ccccbbbbcc6666c6bbbbcccc6666666666d6bbddbb6cc6ccddbb6c666666666666d6bbddbbccccbbddbb6c666666666666ddbbbbbbbbbbbbbbbbbb6666666666ddbbbbbbbbbbbbbbbbbbbbcc66666666ddbbbbccddbbbbbbccbbbbcc66666666ddbbbbccddbbbbccccbbbbcc66666666ddcccc66ddbbbbcc66cccccc6666666666cc6c66ddbbbbcc66c6cc666666666666cc666666cccc6c66666666666666666666666666c6cc6666666666666666666666666666c6cc6666666666666666666666666666666666666666666666") +const _hex5338 = pxsim.BufferMethods.createBufferFromHex("87042000210000001011111111111111111111111111111100000000111111111111111111111111111111110b00000011ffffffffffffffffffffffffffff1f0b00000011ffffffffffffffffffffffffffff1f0b0000001111111111111111111181888848f41f0b0000001111111111111111118188884144f11f0b0000001111111111111111818888114414f11f0b0000001111111111111181881811414411f11f0b0000001111111111111188181111441411f11f0b0000001111111111118188111141441111f11f0b0000001111111111118818111144141111f11f0b0000001111111111818811114144111111f11f0b0000001111111111881811114414111111f11f0b0000001111111181881111414411111111f11f0b0000001111111188181111441411111111f11f0b0000001111111188111141441111111111f11f0b0000001111118118111144141111111111f11f0b0000001111118118114144111111111111f11f0b0000001111118818114414111111111111f11f0b0000001111118811414411111111111111f11f0b0000001111811811441411111111111111f11f0b0000001111811841441111111111111111f11f0b0000001111811844141111111111111111f11f0b0000001111814844111111111111111111f11f0b0000001111814814111111111111111111f11f0b0000001111814811111111111111111111f11f0b0000001111841811111111111111111111f11f0b0000001141841811111111111111111111f11f0b0000001111111111111111111111111111f11f0b0000001111111111111111111111111111f11f0b000000111111111111111111111111111111110b000000101111111111111111111111111111b100000000") +const _hex5340 = pxsim.BufferMethods.createBufferFromHex("870420002100000060666666666666666666666666666666000000006666666666666666666666666666666606000000666666666666666666666666666666660600000066666666866866666666666666666666060000006666666686686666666666666666666606000000666666866866666666666666666666660600000066666686686666666666666666666666060000006666866866866866666666666666666606000000666686686686686666666666666666660600000066866866866866666666466466666666060000006686686686686666666646646666666606000000668668866866866866465465666666660600000066866886686686686646546566666666060000006686688668866866465455454444444406000000668668866886686646545545444444440600000066866886688668465455555555555555060000006686688668866846545555555555555506000000668668866886686646545545444444440600000066866886688668664654554544444444060000006686688668668668664654656666666606000000668668866866866866465465666666660600000066866866866866666666466466666666060000006686686686686666666646646666666606000000666686686686686666666666666666660600000066668668668668666666666666666666060000006666668668666666666666666666666606000000666666866866666666666666666666660600000066666666866866666666666666666666060000006666666686686666666666666666666606000000666666666666666666666666666666660600000066666666666666666666666666666666060000006066666666666666666666666666666600000000") +const _hex5342 = pxsim.BufferMethods.createBufferFromHex("8704200021000000606666666666666666666666666666b600000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b0000006666bbbbbbbbbbbbbbbbbbbbbbbb66660b00000066b68b88888888888888888888b86b660b00000066b68888888888888888888888886b660b00000066b6cccccccc88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c111c11116b660b00000066b6ddddddcd8833111c111c11116b660b00000066b6ddddddcd88331111111c11116b660b00000066b6cd8888cd88331111111c11116b660b00000066b68d8888cd88331111111111116b660b00000066b68d8888cd88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6cccccccc88331111111111116b660b00000066b68888888888888888888888886b660b00000066668b888888888888888888f88f6b660b0000006666b688888888888888888888886b660b000000666666bbbbbbbbbbbbbbbbbbbbbb6b660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000606666666666666666666666666666b600000000") +const _hex5364 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000c000000000000000cccccccc0c0000c0c11b1111c10000ccc1cccc1cc100c0c0cddbddddcd00f0f0fdccccdcfd00f0f0fddbddddfd0000fffbccccbcfb0000f0fbbcbbbbfb000000ffffffff0f000000f00000000000000000000000000000000000000000000000000000000000") +const _hex5575 = pxsim.BufferMethods.createBufferFromHex("870490001600000010111111111111111111000011bbbbbbbbbbbbbbbbbb0b00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbff00b0bbbbbbfbffffffffff0f0000bbbbbbbb0000000000000000b0bbbbbb0b0000000000000000bbbbbbfb0000000000000010b1bbbbfb0000000000000011bbbbbbff00000000000010b1bbbbfb0f00000000000011bbbbbbbb11111111110000b1bbbbbbbbbbbbbbbbbb0b00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b0bbbbbbbbbbbbbbbbbbff0000ffffffffffffffffff0f0010110100111111111111000011bbbb10b1bbbbbbbbbb0b00b1bbbb1fbbbbbbbbbbbbfb00b1bbbb1fbbbbbbbbbbbbfb00b1bbbb1fbbbbbbbbbbbbfb00b0bbfb0fbbbbbbbbbbbbff0000ffff00f0ffffffffff0f000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbbbffbfbbbbfb00000000b1bbfb0f00bbbbfb00000000b1bbfb0000b1bbfb00000000b1bbfb0000b1bbfb00000000b1bbbb0010b1bbfb00000000b1bbbb0b11bbbbfb00000000b0bbbbfbb1bbbbff0000000010bbbbfbb1bbbb0f0000000000bbbbfbb1bbfb0f0000000000f0bbffb0fbff00000000000000f00f00ff00000000000010111111111111000000000011bbbbbbbbbbbb0b00000000b1bbbbbbbbbbbbfb00000000b1bbbbbbbbbbbbfb00000000b1bbbbbbbbbbbbfb00000000b0bbbbbbbbbbbbff0000000000bbfbffffffff0f0000000010b1fb00000000000000000011bbfb000000000000000000b1bbbb000000000000000000b1bbbb0f0000000000000000b0bbbb0f000000000000000000bbfb0f000000000000000000f0ff0000000000000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbbbffbfbbbbfb00000000b1bbfb0f00bbbbfb00000000b1bbfb0000b1bbfb00000000b1bbfb0000b1bbfb00000000b1bbbb0010b1bbfb00000000b1bbbb1b11bbbbfb00000000b0bbbbbbbbbbbbff0000000010bbbbbbbbbbbb0f0000000000bbbbbbbbbbfb0f0000000000f0bbbbbbfbff00000000000000f0ffffff00000000000010111111000000000000001011bbbbbb1b00000000000011bbbbbbbbbb0b0000000010b1bbbbbbbbbbbb0000000011bbbbbbbbbbbbbb0b000010b1bbbbbbbbbbbbbbbb000010bbbbbbbbbbbbbbbbbb0f0011bbbbbbfbffbbbbbbbb0b00b1bbbbbbff00b0bbbbbbfb00b1bbbbfb0f0000bbbbbbfb00b1bbbbfb000000b1bbbbfb00b1bbbbfb000000b1bbbbfb00b1bbbbbb000010b1bbbbfb00b1bbbbbb0b0011bbbbbbfb00b0bbbbbbbb10b1bbbbbbff0010bbbbbbbb1fbbbbbbbb0f0000bbbbbbbb1fbbbbbbfb0f0000b0bbbbbb1fbbbbbbff00000000bbbbbb1fbbbbfb0f00000000f0bbfb0fbbfbff000000000000f0ff00f0ff000000000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbbbffbfbbbbfb00000000b1bbfb0f00bbbbfb00000000b1bbfb0000b1bbfb00000000b1bbfb0000b1bbfb00000000b1bbbb0010b1bbfb00000000b1bbbb1b11bbbbfb00000000b0bbbbbbbbbbbbff0000000010bbbbbbbbbbbb0f0000000000bbbbbbbbbbfb0f0000000000f0bbbbbbfbff00000000000000f0ffffff0000000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbbbffbfbbbbfb00000000b1bbfb0f00bbbbfb00000000b1bbfb0000b1bbfb00000000b1bbfb0000b1bbfb00101111b1bbbb1111b1bbfb0011bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b0bbbbbbbbbbbbbbbbbbff0000ffffffffffffffffff0f000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbfbbbfbbbbbfb00000000b1bbffb1fbb0bbfb00000000b1bb0fb1fb10bbfb00000000b1bb0fb1fb10bbfb00000000b1bb0bb1fb10bbfb00000000b1bbbbb1fb10bbfb00000000b0bbbbbbfb10bbfb0000000010bbbbbbfb00bbff0000000000bbbbbbfb00f00f0000000000f0bbbbff000000000000000000f0ff0f00000000") +const _hex5577 = pxsim.BufferMethods.createBufferFromHex("8704a000100000008888888888886666888888888868666688188888888866668888888888666666888858888888666688888888886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688888888886666668818888888886666888888888868666688881888888866668888888888666666888888188888666688888888886866668888888888886666888888888866666688888885888866668888888888686666888188888888666688888888886666668888888888886666888888888868666688888888888866668888888888666666888888888888666688188888886866668881818888886666881888888866666688888888888866668888888888686666888888818888666688888888886666668888888888886666888888888868666688888888888866668888881888666666888888888888666688888888886866668881888888886666888888888866666688888888888866668888885888686666888888888888666688888888886666668888888888886666888881888868666688181888888866668888818888666666888888888888666688888888886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688888888886666668818888888886666888888888868666688888888888866668888888888666666888888888888666688888881886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688188888886666668888885888886666888888888868666688888888888866668888888888666666888888888888666688888888886866668888888888886666888888818866666688888888888866668888888888686666888888888888666688888888886666668818888888886666888888888868666688888888888866668888888888666666888888888888666688888888886866668888881888886666888888888866666688888888888866668888888888686666885888888888666688888888886666668888888888886666888888588868666688888888888866668888818888666666888888888888666688888888886866668885888888886666888888888866666688888888888866668888818888686666888888888888666688888888886666668888888888886666888888888868666688888888888866668888888888666666888888888888666688888888886866668888188888886666888881818866666688881888888866668888888888686666888888888888666688888888886666668888888888886666888888888868666688888888888866668881888888666666888888888888666688888888886866668888888888886666888888888866666688888888888866668888188888686666888888888888666688888888886666668888888888886666888888888868666688588888888866668888888888666666888888888888666688881888886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688818888886666668888888888886666888888588868666688888888888866668888888888666666888888888888666688881888886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688888888886666668888888888886666888188888868666688888888888866668888888888666666") +const _hex5620 = pxsim.BufferMethods.createBufferFromHex("8704040003000000f00f0000cf0c0000cf0c000000000000") +const _hex5623 = pxsim.BufferMethods.createBufferFromHex("8704100010000000ffffffffffeeffffffffffffef22feffffffffffef22feffffffeeffffeeeffeffef22feffff2ee2ffef22feffff2ee2ffffeeffffffeffeffffffffffff2ee2ffffffffffff2ee2ffffeeffffffeffeffef22feffff2ee2ffef22feffff2ee2ffffeeffffeeeffeffffffffef22feffffffffffef22feffffffffffffeeffff") +const _hex5626 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111111111111111111111ff111111111111f1cc111111111111f1cc1111111111111111") +const _hex5628 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131111110080888d1311111100d0dd8d1311111100d0dd8d1311111100808888131111110000888888888888000080888888888800000000dddddd0d000000000000000000") +const _hex5630 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d13f1111f0080888d13ffff1f00d0dd8d1311111f00d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d000000000000000000") +const _hex5632 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131ff11f0080888d131f1f1f00d0dd8d13f1111f00d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d000000000000000000") +const _hex5634 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131f111f0080888d131f1f1f00d0dd8d13f1ff1100d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d000000000000000000") +const _hex5636 = pxsim.BufferMethods.createBufferFromHex("8704200021000000606666666666666666666666666666b600000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b0000006666bbbbbbbbbbbbbbbbbbbbbbbb66660b00000066b68b88888888888888888888b86b660b00000066b68888888888888888888888886b660b00000066b6cccccccc88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c111c11116b660b00000066b6ddddddcd8833111c111c11116b660b00000066b6ddddddcd88331111111c11116b660b00000066b6cd8888cd88331111111c11116b660b00000066b68d8888cd88331111111111116b660b00000066b68d8888cd88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6cccccccc88331111111111116b660b00000066b68888888888888888888888886b660b00000066668b888888888888888888f88f6b660b0000006666b688888888888888888888886b660b000000666666bbbbbbbbbbbbbbbbbbbbbb6b660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000606666666666666666666666666666b600000000") +const _hex5638 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000222222222222002042444444442402204444444444440220444444444444022044444444444402204444444444440220444444444444022044444444444402204444444444440220444444444444022042444444442402002222222222220000000000000000000000000000000000") +const _hex5640 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000cccccccccccc00c0fcffffffffcf0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0fcffffffffcf0c00cccccccccccc0000000000000000000000000000000000") +const _hex5642 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000bccbbccb00000000bcfbbfcb00000000c0fbbf0c00000000c0bbbb0c00000000bcbbbbcb00000000bbcbbcbb0c0000c0bb0cc0bb0c0000bcbb0cc0bbcb00c0bbcb0000bcbb0cc0bb0c0000c0bb0cbcbb0c0000c0bbcbbccb00000000bccbbccb00000000bccbc0bb0c0000c0bb0cc0bbcb0000bcbb0c00cc0c0000c0cc00") +const _hex5644 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000c0cbbc0c00000000c0fbbf0c00000000d0fbbf0d00000000d0bbbb0d00000000bcbbbbcb000000ccbbcbbcbbcc0000bccb0cc0bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000c0bb0cc0bb0c000000cc0000cc0000") +const _hex5646 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000002f2222f2000000002f2222f2000000002f2222f2000000002f2222f2000000002f2222f2000000002f2222f200000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000") +const _hex5648 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000c000000000000000cccccccc0c0000c0c11b1111c10000ccc1cccc1cc100c0c0cddbddddcd00f0f0fdccccdcfd00f0f0fddbddddfd0000fffbccccbcfb0000f0fbbcbbbbfb000000ffffffffdf000000f0d0dddd0d00000000000000000000000000000000000000000000000000") +const _hex5650 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000000000000ffff0000000000005ff50000000000005ff500000000f0ff5ff5ff0f0000f0555555550f0000f0555555550f0000f0ff5ff5ff0f000000005ff50000000000005ff5000000000000ffff000000000000000000000000000000000000000000000000000000") +const _hex5652 = pxsim.BufferMethods.createBufferFromHex("87040800080000000000000000f00f0000f00f00f0ffff0ff0ffff0f00f00f0000f00f0000000000") +const _hex5654 = pxsim.BufferMethods.createBufferFromHex("870408000800000000000000f00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00f00000000") +const _hex5656 = pxsim.BufferMethods.createBufferFromHex("87041000100000004444444444444444444444444444444444444444f41c444444cf4144cf11414444cf41f41c11114444cf4144f41c444444cfc144cf11444444f411cc1c41444444441f11114444444444444444444444444414441444444444444441414444444444441444444444444444414144444444441444144444444444444444444444") +const _hex5658 = pxsim.BufferMethods.createBufferFromHex("8704120012000000dddddddddddddddddd000000cddddccddddccddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddccddddccddddc000000dddddddddddddddddd000000") +const _hex5660 = pxsim.BufferMethods.createBufferFromHex("8704120012000000bbbbbbbbbbbbbbbbbb000000dbbbbddbbbbddbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbddbbbbddbbbbd000000bbbbbbbbbbbbbbbbbb000000") +const _hex5662 = pxsim.BufferMethods.createBufferFromHex("87040e0014000000dddddddddddddddddddd0000dddddddddddddddddddd0000dddddddddddddddddddd0000d0dddddddddddddddd0d000000dddddddddddddddd00000000d0dddddddddddd0d0000000000dddddddddddd000000000000d0dddddddd0d00000000000000dddddddd0000000000000000d0dddd0d000000000000000000dddd00000000000000000000d00d000000000000000000000000000000000000000000000000000000000000") +const _hex5664 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000020000000000000020f0ffffff00000000f0ff2fff0b002222f02ffff20b000000f0fffff20b000000f02ffff20b000000ddf22fff0b000020d4fdffff0b00004224bdbbbb0b002044e20b000000004224be000202002044e20b000220004024be000002000000e20b00000200000000000000000000") +const _hex5666 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000020000000000000020f0ffffff00000000f0ff22ff0b002222f02f2fff0b000000f0f22fff0b000040f02222f20b000050f4ff2fff0b00445445ffffff0b40555555bbbbbb0b544454450000000054045004000202005404400000022000540400000002000054040000000200005404000000000000") +const _hex5668 = pxsim.BufferMethods.createBufferFromHex("8704090009000000f0ffffff000000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f000000f0ffffff00000000") +const _hex5670 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000f0ffffff00000000ff9999f90d0000f0f999f9ff0d0000ffff99f9f50d00009f9999f9f50d00009f99f9fff5ff0000ffffff5555f50d0000fdf75f55ff0d0000fffff7f5f70d00007f77777ff70d00007f777777f70d0000ffffffffff0d000000dddddddd0d0000000000000000") +const _hex5672 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000000000000000000000ffdf0000000000005fdf0000000000005fdf0000000000ff5fff0f000000f05f5555df0000007fff55f5df0000f0ff7f5f7fdf0000f07777f777df0000f077777777df0000f0ffffffffdf000000d0dddddddd0000000000000000000000000000000000") +const _hex5674 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff999999f90000f0f9999999f90000ffff999999f900009f99f999f9f900009f99f9fffff900009f999999f9f900009f99999999f900009f99999999f90000ffffffffffff00000000000000000000000000000000000000000000000000") +const _hex5676 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff555555f50000f0f5555555f50000ffff555ff5f500005f55f555fff500005f55f5f5f5f500005f55555ff5f500005f55555555f500005f55555555f50000ffffffffffff00000000000000000000000000000000000000000000000000") +const _hex5678 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff444444f40000f0f4444444f40000ffff444444f400004f44f444f4f400004f44f4f4f4f400004f44444f4ff400004f44444444f400004f44444444f40000ffffffffffff00000000000000000000000000000000000000000000000000") +const _hex5680 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff333333f30000f0f3333333f30000fffff3ff33f300003f3333f333f300003f33f3fffff300003f3333f333f300003f33333333f300003f33333333f30000ffffffffffff00000000000000000000000000000000000000000000000000") +const _hex5682 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff777777f70000f0f7777777f70000fffff7fff7f700007f77f7f7f7f700007f77f7f7f7f700007f77f7777ff700007f77777777f700007f77777777f70000ffffffffffff00000000000000000000000000000000000000000000000000") +const _hex5684 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000bbbb0b00000000b01111b1000000001b111d110c0000b0111d1d1dc10000b011111111c10000bfb99b12ddc10000b099991211c10000b0999b121dc10000009b991211dc000000c09919c10d00000000ccccdc0000000000d0dd0d000000000000000000000000000000000000") +const _hex5686 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11212112c100001b22211112c100001b11212122c100001b11111111c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d000000000000000000") +const _hex5688 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11111111c100001b11121121c100001b21222222c100001b11111121c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d000000000000000000") +const _hex5690 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b21221121c100001b21211121c100001b21211121c100001b21112212c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d000000000000000000") +const _hex5692 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11121111c100001b21112221c100001b21111211c100001b11221111c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d000000000000000000") +const _hex5694 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d400004055f5ff5504000040555f555f0400004055f5ff550400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d0000000000000000000000000000000000") +const _hex5696 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d400004055f5555f0400004055ffff5f040000405555555f0400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d0000000000000000000000000000000000") +const _hex5698 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d4000040555ff55f04000040555f5f5f0400004055f5555f0400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d0000000000000000000000000000000000") +const _hex5700 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000008000000000000000000800000000000008800000000000008000080000000080000808004404000008080840154500000808084011410000080808401545008000080800440400008000080000000000088000000000000000080000000000008000000000000000000000000000000000000000000000") +const _hex5702 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000008000000000000000000800000000000008800000000000008000080040000080000808005004000008080844544500000808085555550400080808445445008000080800500400008000080040000000088000000000000000080000000000008000000000000000000000000000000000000000000000") +const _hex5704 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000008000000000000800000000000000008800000000000800008000004000080800008400500008080800054454404808080405555550580808000544544048080000840050000800008000004000000088000000000000080000000000000000008000000000000000000000000000000000000000000") +const _hex5706 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000008000000000000000000800600060000008800096069606008000086606660680000808960696060008080860006000000808080000000000080808000000008000080860006000008000089606960600088000660666060000080096069606008000006000600000000000000000000000000000000000") +const _hex5708 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000004444000000000040dddd0400000000d440044d00000000544054400500000054d05d4005000000540000400500000054000040050000005400004005000000544004400500000054405440050000004dd55dd400000000d044440d0000000000dddd0000000000000000000000") +const _hex5710 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000000000ee0e00000000004024ee0000f000004444e200000f00004444e200f0ffff0f4444e200000f00004444e20000f000004444e200000000004024ee0000000000d0eede000000000000dd0d00000000000000000000000000000000000000000000000000") +const _hex5712 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010f1ffffbb000000f1ffffffff0b0000f1ffffffff0b0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0000fbffffffffdb0000fbffffffffdb0000b0fbffffbb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") +const _hex5714 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010212222bb00000021222222220b000021222222220b00102222222222b200102222222222b200102222222222b200102222222222b200102222222222b200002b22222222db00002b22222222db0000b02b2222bb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") +const _hex5716 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010818888bb00000081888888880b000081888888880b00108888888888b800108888888888b800108888888888b800108888888888b800108888888888b800008b88888888db00008b88888888db0000b08b8888bb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") +const _hex5718 = pxsim.BufferMethods.createBufferFromHex("8704100010000000cccccccccccccccccccdccdcccccccccdcd1cccccccccccccccdcccccccccccdcccccccccccccccccccccccccccdccccccccccccdcd1cccccccccdcccccdccccccccccccccccccccccccdccc1ccccccccccc1dcdccccccccccccdcccccccccccccccccccccccdccccccdcccccccc1dcdccccccccccccdccccccccccccccccccc") +const _hex5720 = pxsim.BufferMethods.createBufferFromHex("87041000100000000020224455777707002242547577770720224455777788082042545577878808204254757788c80c204254758788cc0c2042547587c8ac0a2042547587c8ac002042547587c8ac002042547587c8ac0a204254758788cc0c204254757788c80c2042545577878808202244557777880800224254757777070020224455757707") +const _hex5722 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010717777bb00000071777777770b000071777777770b00107777777777b700107777777777b700107777777777b700107777777777b700107777777777b700007b77777777db00007b77777777db0000b07b7777bb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") +const _hex5724 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010a1aaaabb000000a1aaaaaaaa0b0000a1aaaaaaaa0b0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0000abaaaaaaaadb0000abaaaaaaaadb0000b0abaaaabb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") +const _hex5726 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010515555bb00000051555555550b000051555555550b00105555555555b500105555555555b500105555555555b500105555555555b500105555555555b500005b55555555db00005b55555555db0000b05b5555bb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") +const _hex5728 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000ffffffbf000000ff4ff422ffbf00f0554ff4226ff60bf055ffffff6ff60bffff0f0000f0ffdf4ff4000000f088bf4ff4000000f088bfffff000000f0ffbf9ff9000000f0aabf9ff9000000f0aabfffff0f0000f0ffbff0bbffffffcffcdbf0bb7ff7eecffcdb00ff7ff7eeff554500d0ffffffbf55450000dddddddd5504") +const _hex5730 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000000000000ff000000000000f0f20000000000002ff2ffffff0000f022222222f200002f22222222f20000f022222222f20000002ff2ffffff000000f0f200000000000000ff000000000000000000000000000000000000000000000000000000000000000000000000") +const _hex5732 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000000000000000000000ff000000000000009f0f000000ffffff9ff90000009f999999990f00009f99999999f900009f999999990f0000ffffff9ff90000000000009f0f000000000000ff0000000000000000000000000000000000000000000000000000000000000000000000") +const _hex5734 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888808808888588885880f808888855888880f805585888588280f504454888888280f504454585858280f504454888888280f805585888588280f808888855888880f808888588885880f8088888888888808000000000000000000000000000000000000000000000000") +const _hex5736 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000bccc000000000000bccc0000000000c0cbcc0c00000000bccccccc000000c0cbcccccc0c000000000000000000000000088000000000000080080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") +const _hex5738 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000bccc000000000000bccc0000000000c0cbcc0c00000000bccccccc000000c0cbcccccc0c000000000000000000000320400006900030000200046000000000204000060000000002000460000000200040000506005000020004600000002000400000060000025000040000000000000000000000") +const _hex5740 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000000000ff000000000000f0cc0b0000000000f0cc0b000000cfccccbc0b000000bcbbbbbb000000c0bc000000000000c0bb000000000000cc0b00f00f000000bc0b00cfbc0000f0bc0000cfbc0000c0ccccccccbb000000bbbbbbbb0b0000000000000000000000000000000000") +const _hex5742 = pxsim.BufferMethods.createBufferFromHex("8704100010000000111111111111111111111111111111111111111111111111111111cccccc11111111ccffffff1c1111c1ffffffffcf1111fcffffffffff1cc1ffffffffffff1cc1ffffffffffff1cc1ffffffffffff1cc1ffffffffffcf1111fcffffffff1c1111c1ffffffcc11111111cccccc11111111111111111111111111111111111111") +const _hex5744 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111") +const _hex5746 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000040444400000000005435550400000040553f554500000054f555ff5504000054555fff5f0400005455552f5204000054555f2f5204000054f5552f5504000040553f55450d000000543555d4000000004044440d0000000000dddd00000000000000000000000000000000000000") +const _hex5748 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000404444000000000054555504000000405555554500000054f55f5f55040000545555f555040000545555f555040000545555f55504000054f55f5f5504000040555555450d000000545555d4000000004044440d0000000000dddd00000000000000000000000000000000000000") +const _hex5750 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000444400800000004055550498000000545f5f45990000005455f545990000005455f54599000000545f5f45990000004055559499000000004444989900008000d088998800000840889989dd000008549889d8000000084088d80d0000008000dd0d0000000000000000000000") +const _hex5752 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000ff66060000000060ff7f670000000076f17f770600000076f77f7f67000000767777f777060000767777f77706000076f77f7f670d000076ff7f77d600000060f17f670d00000000ff66d60000000000d0dd0d000000000000000000000000000000000000000000000000000000") +const _hex5754 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000404444000000000054555504000000405555554500000054f55ff5550400005455555f550400005455555f550400005455555f5504000054f55ff55504000040555555450d000000545555d4000000004044440d0000000000dddd00000000000000000000000000000000000000") +const _hex5756 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000200000000000020020000000000002202000000222222220e000020222222e20d000020e2eeeede00000020dedddd0d000000e0eeeeeeee0e0000e0edededed0d0000e0eeeeeeee0e000000dddddddd0d00000000000000000000000000000000000000000000000000") +const _hex5758 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000006008000000000000960800000000009956080009000090119608099000001999560890900000997996889090000099f7568890900000997796889090000099f756d89090000090799608099000000099560800090000000096080000000000006d08000000000000d00d0000000000000000000000") +const _hex5760 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000220d000000000020ddd40000000000d200d400000000000d400d000000000000d400550d000000400d50ddd7000000400dd500d7000000d0550d700d00000000dd00d7000000000000700d900d00000000700dd90000000000d0990d000000000000dd00000000000000000000000000000000000000") +const _hex5762 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000300030000000000053033000300000003000530300000000000053030000000000335535030000003355555535030000003355350300000000005303000000000000530300000000030030003000000000003000530300000030000030000000000000000000000000000000000000") +const _hex5764 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000040444400000000005455550400000040f555554500000054f55555550400005455f5ff550400005455f52f550400005455f52f5504000054f555555504000040f55555450d000000545555d4000000004044440d0000000000dddd00000000000000000000000000000000000000") +const _hex5766 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000808800000000000000000800009099998008000000906666008000000090f6ffff0008000090f655f50000000090f655f59600000090f655f59600000000f055f59600000008f0ffff96000000800060669600000000889099990000000800000000000000808800000000000000000000000000") +const _hex5768 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000f000000000000000f00f000000008000f0f5000000008098f9550f0000008888f955f50000808098f955f50000088099f955f50000080099f955f50000080099f955f50000080099995ff5000000009999f9f500000000999999ff00000000999999f90000000000000000000000000000000000") +const _hex5770 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000099999989000000009999998800000000999989860000000099996886000008009989668600000800998966860000080099896686000008809989668600008080988966980000008888f0f5000000008008f00f000000008000f000000000000000000000000000000000000000") +const _hex5772 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000009999999900000000898888980000000068666686000000f0555555550f00005f55555555f50000ffffffffffff0000809999999900000088989999990000808888999999000000800000000000000080000000000000000008000800000000008088000000000000000000000000") +const _hex5774 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000080880000000000000800080000000080000000000000008000000000000080888899999900000088989999990000008099999999000000ffffffffffff00005f55555555f50000f0555555550f0000006866668600000000898888980000000099999999000000000000000000000000000000000000") +const _hex5776 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000f000000000000f00f0000000000005f0f0000000000f0550f00000000005f550f00008000005f550f00008800005f550f00808888085f550f00008800005f550f00008000005f550f00000000005f550f0000000000f0550f0000000000005f0f000000000000f00f000000000000000f000000000000000000") +const _hex5778 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000f000000000000000f00f000000000000f0f5000000000000f0550f0000000000f055f50000000000f055f50000080000f055f50000880000f055f58088880800f055f50000880000f055f50000080000f055f50000000000f0550f0000000000f0f5000000000000f00f000000000000f0000000000000") +const _hex5780 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000b0cccccc0c0000001bbbbbbbcb0000b011bbbcbbcb00001b11cbbbbbcb00001b11cbbbbccc00001b1bcbbbbccb00001b11bbccbbcb00001b11bbbbbbcb00001bb1ddddddbd00001bdbddbddddb0000bbdddbddbd0d0000b0bbbbbbdb000000000000d00d00000000000000000000") +const _hex5782 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c1111110000fc4fdcdddddd0000fc54dcfffddf0000fc55dcdddfdd0000fc54dcfffddf0000fc4fdcdddddd0000fcffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") +const _hex5784 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c1111110000fc4fdcdddddd0000fc54dcffdddd0000fc55dcddffdf0000fc54dcffdddd0000fc4fdcdddddd0000fcffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") +const _hex5786 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c1111110000fc4fdcdddddd0000fc54dcdffddf0000fc55dcdfdfdf0000fc54dcffdddf0000fc4fdcdddddd0000fcffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") +const _hex5788 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcfffddf00445445dcdddfdd40555555dcfffddf54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000") +const _hex5790 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcffdddd00445445dcddffdf40555555dcffdddd54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000") +const _hex5792 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcdffddf00445445dcdfdfdf40555555dcffdddf54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000") +const _hex5794 = pxsim.BufferMethods.createBufferFromHex("870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcfffddf40555555dcdddfdd00445445dcfffddf00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") +const _hex5796 = pxsim.BufferMethods.createBufferFromHex("870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcffdddd40555555dcddffdf00445445dcffdddd00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") +const _hex5798 = pxsim.BufferMethods.createBufferFromHex("870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcdffddf40555555dcdfdfdf00445445dcffdddf00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") +const _hex5800 = pxsim.BufferMethods.createBufferFromHex("870420002100000010111111b100000000000010111111b100000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b1000000000000000000000000000000001011111111b100000000000000000000000000001011111111b10000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b00000010111111b100000000000010111111b100000000") +const _hex5802 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffffffbf00000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffff2222fffffffff2ffffff0b000000ffffffffff2f222222ffff2f21fff2ff0b000000ffffffffff22111122f2ff2f212f21ff0b000000ffffffff2f1211111122ff2f2112f2ff0b000000ffffffff221141141121f2ff2221ffff0b000000ffffff2f12112442141122ffff2222ff0b000000ffffff2f1241f22f421121f2ff1211f20b000000ffffff2f1241f2ff2f141122ff2f22ff0b000000ffffff2f1241f2ffff421121f2ffffff0b000000ffffff2f1241f2ffff2f141122ffffff0b000000ffffff2f121124f2ffff421122ffffff0b000000ffffffff22114124ffff421121f2ffff0b000000ffffffff2f121141f2ff2f141122ffff0b000000ffffffff2f121141f2ff2f141122ffff0b000000ffffffff22114124ffff421121f2ffff0b000000ffffff2f121124f2ffff421122ffffff0b000000ffffff2f1241f2ffff2f141122ffffff0b000000ffffff2f1241f2ffff421121f2ffffff0b000000ffffff2f1241f2ff2f141122ffffffff0b000000ff2f222f1241f22f421121f2ffffffff0b000000ff12112212112442141122ffffffffff0b000000ff2f22f2221141141121f2ffffffffff0b000000ffff2f21221211111122ffffffffffff0b000000ffff12222122111122f2ffffffffffff0b000000ff2f212f212f222222ffffffffffffff0b000000fffff22f21ff2222ffffffffffffffff0b000000fffffffff2ffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000f0ffffffffffffffffffffffffffffbf00000000") +const _hex5804 = pxsim.BufferMethods.createBufferFromHex("8704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b0000001111bbbbbbbbbbbbbbbb1111111111110b00000011b111111111111111111b11111111110b00000011b11111111111111111db11111111110b00000011b11111114444111111db11111111110b00000011b11111445555441111db11111111110b00000011b11141555555551411db11111111110b00000011b11141555555551411db11111111110b00000011b11154f55ff5554511b1db111111110b00000011b111545555555f451111b11d1111110b00000011b111545555555f45111111db1111110b00000011b11154f55ff5554511b11bdb1111110b00000011b11141555555551411dbbddb1111110b00000011b11141555555551411dbd01d1111110b00000011b111114455554411118b88881111110b00000011b111111144441111116866861811110b00000011b111111111111111816666668811110b00000011b111111111111111681611618618110b0000001111bbbbbbbbbbbbbb686161668618110b000000111111dddddddddddd686161668618110b000000111111111111111111681611618618110b00000011111111111111111181666666881d110b00000011111111111111111111686686d811110b000000111111111111111111118188881d11110b0000001111111111111111111111dddd1111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000101111111111111111111111111111b100000000") +const _hex5806 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffffffbf00000000ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffff4f44ffffffffffffffffff0b000000ffffffffff5455f4ffffffffffffffff0b000000ffffffff4f151145ffffffffffffffff0b000000ffffffff4f111145ffffffffffffffff0b000000ffffffff4f151145ffffffffffffffff0b000000ffffffffff5455f4ffffffffffffffff0b000000ffffffffff4f44ffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffff4f44ffff0b000000ffff4f44ffffffffffffffff5455f4ff0b000000ffff5455f4ffffffffffff4f151145ff0b000000ff4f151145ffffffffffff4f111145ff0b000000ff4f111145ffffffffffff4f151145ff0b000000ff4f151145ffffffffffffff5455f4ff0b000000ffff5455f4ffffffffffffff4f44ffff0b000000ffff4f44ffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000f0ffffffffffffffffffffffffffffbf00000000") +const _hex5808 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffffffbf00000000ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffff5fffffffff0b000000ffffffffff4f44ffffffff5fffffffff0b000000ffffffffff5455f4ffffff5fff5fffff0b000000ffffffef4e151145ffffff5ffff5ffff0b000000888888ee4e111145ffffffff5fffffff0b000000ffffffef4e151145ffffffffff5f55ff0b000000ffffffffff5455f4ffffffffffffffff0b000000ffffffffff4f44ffff444444f4ffffff0b000000ffffffffffffffff4f45454545ffffff0b000000ffffffffffffffff4f54545454f4ffff0b000000ffffffffffffffff444545454545ffff0b000000ffffffffffffff4f445554545455f4ff0b000000ffffffffffffff4f55544545555545ff0b000000ffffffffffffff4f54455554555555f40b000000ffffffffffffffff44555455555555f40b000000ffffffffff5555ff4f444455555555f40b000000ffffffffffffffffff445554555555450b000000fffffffffffffff5ff4f5455555555550b000000ffffffffffff5ffff54f4555555555550b000000fffffffffffff5fff54f5554555555550b000000fffffffffffffffff5ff5444545555550b000000fffffffffffffffff5ff5455444455550b000000ffffffffffffffffffff4f55555544540b000000ffffffffffffffffffffff44444455550b000000ffffffffffffffffffffffffffff44550b000000ffffffffffffffffffffffffffffff440b000000f0ffffffffffffffffffffffffffffbf00000000") +const _hex5810 = pxsim.BufferMethods.createBufferFromHex("8704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b00000011111111c1cc1c1111111111111111110b000000111111114c44c21111111111111111110b000000111111c12422221c11111111111111110b000000111111c122cc221c11111111111111110b000000111111c12cc22c1c11111111111111110b0000001111114c44444c1c11111111111111110b0000001111c1242242c4cccccccc1c111111110b0000001111c122cc2cc411111111c1111111110b0000001111c1224424c2ccccccccdc111111110b0000001111112c2222ccdddcdddd1d111111110b000000111111c1ccccdd1cc1111111111111110b00000011111111dddd11cd111c1111111111110b00000011111111111111d11cc11111111111110b0000001111111111111111cd111c11111111110b000000111111111111cc11d1cc1dc1cc1111110b0000001111111111cc111c11dd11dcdd1c11110b000000111111cccc11111c1111c1ddddcd11110b0000001111cc1111111dc11111dcd1ddbd1c110b00000011c11111d1111dc111c11dddddbd1c110b00000011111c1dd111d1111cc11dddddbb1c110b00000011111cd1111d11111cc1ddddbdbd1c110b00000011111cd1111111c11dc1dddddbbb1c110b0000001111c1111111c1dc11c1bbbdbdcb1d110b0000001111c111c1ccdc1d1111bcbbbbcb1d110b000000111111ccdcdd1d111111c1bbbbdc11110b000000111111d1dd111111111111cccc1d11110b0000001111111111111111111111d1dd1111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000101111111111111111111111111111b100000000") +const _hex5812 = pxsim.BufferMethods.createBufferFromHex("8704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b000000116111111111111111111111111111110b000000111116161611111f51111116111116110b000000111161616111f1f411616116111116110b000000111111161111f1f411161661111166110b0000001111111111fffff461611661116111110b00000011111111f155f5f4ff616161116111110b00000011111b115f55f5f455ff6f61116111110b000000111111115fff5fff5555651f161111110b000000111111f1f511f155555565f5161115110b000000111111f1f5f1f15555556555161111110b000000111111f1f511f15555556555f61111110b000000111111115fff5f5555556555f61111110b000000111151115f55555555556555f61111110b00000011611111f155555555556555f6111f110b0000001116161111ffff5f4555655556fff4110b000000116111111161115f4555655456fff4110b000000111111111116115f45555654564ff4110b000000111111116611115f45555654564ff4110b000000111111651111615f4544465556fff4110b000000111111611111165f5565555556dfdf110b000000111116611111165f55655555561f1d110b00000011116616161516f155655555f61d11110b00000011116161111116115f565565f51d11110b000000111161111111611161ffff6fdf1111110b00000011611611b11111661616dd6d111111110b000000111111111b1b111111161161115111110b00000011111111b111511111165161616611110b000000111111111111111111611116161116110b000000111111111111111111116611111111110b000000101111111111111111111111111111b100000000") +const _hex5814 = pxsim.BufferMethods.createBufferFromHex("8704200021000000909999999999999999119199777777b700000000999999999999999999199199777777770b000000999999999199999999999199777777770b000000999999199199999999999199771777770b000000999999119199999999999999777777770b000000999999119199999999999999177717770b000000999999199199999999999999777751710b00000099999999919999f9ff999999777717770b00000099999999999999dfdd9f9999777777770b0000009999999999ffff3d33fdf9ffff7777770b00000099999999f9dded3d33fdeffeee7f77770b00000099999999f93dde3d33fdefdeef7f77770b00000099999999f9ed1ddfddddefdeff7f77770b0000009999229999effddfdfdddffe4e7f17770b00000099292492994fdeddfddddfed4e7f77770b00000099992222994fde2dffdddfedfe7f77770b00000099292292994fdeddfddddfed4e7f77770b0000009999229999ef1ddfdfdddffe4e7f17770b00000099999999f9edfddfddddefdeff7f51710b00000099999999f93dde3d33fdefdeef7f17770b00000099999999f9dded3d33fdeffeee7f77770b0000009999999999ffff3d33fdf9ffff7677770b00000099999999999999dfdd9f9999667777770b00000099199999999999f9ff999999777777770b000000991999999919999999999999177777770b000000999999999911999999999999777777770b000000999999991911999999999999777771770b000000999999991911999999999999771715770b000000999999999911999999999999777771770b000000999999999919999999999999177777770b000000999999999999999999999199777777770b000000909999999999999999999199777777b700000000") +const _hex5816 = pxsim.BufferMethods.createBufferFromHex("8704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b00000011f111111111111111111111111111110b000000111f11111111111111111111111111110b000000f1111f111111111111111141441111110b000000f1f111111111111111114144454414110b000000f1f111111111111111114145555445140b000000111111611611111111114155544445450b000000111111966911111141444155544545450b000000111111969916111154454455544545450b000000111111619969111144554454454545450b000000111111119669111111545554454545450b000000111111116116111111445545444444440b000000111111111111111111415555555555450b000000111111111111f11111415455555555450b0000001111111111f11ff111114d44555555440b000000111111111111111f1111114d545555550b0000001111111111f1ff11111111d1445555550b0000001111111111111111111111114d5555550b000000111111111111111111111111d15455550b000000111111111111111111111111114d55550b00000011111111111111111111111111d154550b00000011111111111111111111111111d154550b00000011111111111111111111111111114d550b0000001111111111111111111111111111d1540b000000111111111111111111111111111111410b000000101111111111111111111111111111b100000000") +const _hex5818 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffdfddbd00000000ffffffff1111f1ffffffffffffdfdddd0b000000ffffffffffff1f111111f1ffffdfdddd0b000000ffffffffffffffffffff1f11f1dfdddd0b000000ffffffffffffffffffffffffffdfdddd0b000000ffff11111111f1ffffffffffffdfdddd0b000000ffffffffffff1f11111111f1ffdfdddd0b000000ffffffffffffffffffffffffffdfdddd0b000000ffffffffffffffffffffffffffdfdddd0b000000ffffffffffffff444444f4ffffdfdddd0b000000ffffffffffff4f45454545ffffffdfdd0b000000ff11111111ff5454545444ffffeefedd0b000000ffffffffff4f4545454545ff4f24eedf0b000000ff1f1111ff545554545445ff4444e2df0b000000ffffffff4f5555454555f4ff4444e2df0b000000ffff11ff545555555445ffff4444e2df0b000000ffffffff5455555555f4ffff4444e2df0b0000001f1111f1545555554544ffff4444e2df0b000000ffffff4f555555555445ffff4444e2df0b000000ffff4f545555555555f4ffff4444e2df0b0000004f4454555555555545ffffff4f24eedf0b0000005455555555555555f4ffffffffeefedd0b0000005555555555555544ffffffffffffdfdd0b00000055555555554544ffffffffffffdfdddd0b0000005555555544f4ffffffffffffffdfdddd0b00000055555544ffffffffffffffffffdfdddd0b000000555544ffffffffff11111111f1dfdddd0b0000005544ff1f11111111ffffffffffdfdddd0b00000045ffffffffffffffffffffffffdfdddd0b000000f4ffffffffffffffff111111ffdfdddd0b000000ffffffffff1f111111ffffffffdfdddd0b000000f0ffffffffffffffffffffffffdfddbd00000000") +const _hex5820 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffffffbf00000000ffffffffffffffffffffffffffffffff0b000000fffffffffffffffff5ffffffffffffff0b000000ffffffffffffffff54ffffffffffffff0b000000ffffffff44ffffff44f5ffffffffffff0b000000ffffffff44f44fff4555ffffffffffff0b000000ffff5f25425455444552f5ffffffffff0b000000ffff2245554454554422f5ffffffffff0b000000ffff2522544544444545f5ffffffffff0b000000ffffff5545454444444454ffffffffff0b000000ff5ff2254544edee4e4454f5ffffffff0b000000ffff225522dddddded4e4455ffffffff0b000000ff2f2f5224ddddddddee4e4444ffffff0b000000ff5f225544dddddeddddeeee4444ffff0b000000ff5f255444edddddddddddedee44f4ff0b000000ffff254245dddddddddddddded4ef4ff0b0000005f255f2245ddddddddedddddddee44ff0b000000ff25222542dddeeddddddddedded44ff0b000000ffff2f5245d4dddddddddddddded44ff0b000000ffffff225244ddddedddddddddee44ff0b000000ffffff554244dddddddddeeddd4e44ff0b000000ffff2f524544d4dddddddddded4ef4ff0b000000ffffff2f524544dddedddddded4ef4ff0b000000ffffffff2f222244dddddedded44f4ff0b000000ffffff555555444444d4ed444444ffff0b000000ffffff5f252242444444444444ffffff0b000000ffffff225555224555ffffffffffffff0b000000ffffff2f42f4f255f5ffffffffffffff0b000000fffffffff4ffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000f0ffffffffffffffffffffffffffffbf00000000") +const _hex5822 = pxsim.BufferMethods.createBufferFromHex("8704200021000000909999999999999999999999999979b900000000999999999999999999999999999997790b0000009999cccc9c9999cccc9c9999999999770b00000099c94444c499c94444c49999b99d79790b000000994c2222429c4c8888489c992bbd99790b000000994c222242bc4c888848bccbdbc2cccc0b000000994c222242cc4c888848ccbcddcbcccc0b000000994c222242bc4c888848bcdbbdcccccc0b000000994c2222429c4c888848fcdb9b9999e90b00000091c94444c499c94444c4b9dd9b9999e90b0000009999cccc9c9999cccc9cb9bd999999e90b000000999999999999999999992bbd999999e90b000000999999999999999999b9dd92999999e90b000000999999999999999999b9bd99999999e90b000000199999999999999999dbbd99999999e90b0000009999999999999999b9dd9b99999999e90b0000009999999999999999b9bd9999999999e90b00000099999999999999992bbd9999999999e90b0000009999999999999999db929999999999e90b00000099199999999999b9dd9b9999999999e90b000000999999999999992bbd999999999999e90b00000099999999999999db92999999999999e90b000000999999999999b9dd9b999999999999e90b0000009999999999992bbd99999999999999e90b000000199999999999db9299999999999999e90b0000009919999999b9dd9b99999999999999e90b0000009999999999b9bd9999999999999999e90b0000009999999999d2bd9999999999999999e90b00000099919999992d9b9999999999999999e90b000000999999999999999999999999999959550400000099999999999999999999999999995955040000009099919999999999999999999999594500000000") +const _hex5824 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000d00d00000000d00dbdcbd00d0000bdcbbdcbbdcb0000bdbbbbbbbbcb0000c0dbcbbcbd0c0000ddbb0cc0bbcc00d0bbcb0000bcbb0cd0bbcb0000bcbb0c00ccbb0cc0bbcc0000d0dbcbbcbd0c0000bdbbbbbbbbcb0000bdcbbdcbbccb0000c00cbdcbc00c00000000c00c0000000000000000000000") +const _hex5826 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000000f000ff0ffff0ff0ffff0f0000000f00000000") +const _hex5829 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000000ff00ff000ff0ff0000f0f00ff000f00000000") +const _hex5832 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000f000000ff0f0000ff0f0000f00ffff0000000000") +const _hex5835 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000f0ff000000f0000000f00000f0ffff0f00000000") +const _hex5838 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000f0ff000ff0f0000ff0f0000ff000ff0000000000") +const _hex5841 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000088888888888800808888b8bb888808808888b8cc8b8808808888b8cb8b880800888888bbbc88000000000000cb0b000000000000b0bc00000000000000cb0b007707ff0f00b000707707ffff000000707707ffff000000007707ff0f00554500000000000055450000000000005504") +const _hex5843 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000088888888888800808888b8bb888808808888b8cc8b8808808888b8cb8b880800888888bbbc88000000000000cb0b000000000000b0bc00000000400200cb0b402200002400b00c00402222220200b00000000024000000000000400200554500000000000055450000000000005504") +const _hex5845 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004444000000000000544500000000000054450000000000004444000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") +const _hex5847 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000004444000000000000544500000000000054450000000000004444000000000000000000000000000000000000000000004444000000000000544500000000000054450000000000004444000000000000000000000000000000000000000000000000000000") +const _hex5849 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000444400000000000054450000000000005445000000000000444400000000000000000000000000004444000000000000544500000000000054450000000000004444000000000000000000000000000044440000000000005445000000000000544500000000000044440000000000000000000000") +const _hex5851 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000040440440440400004055044055040000405504405504000040440440440400000000000000000000000000000000000040440440440400004055044055040000405504405504000040440440440400000000000000000000000000000000000000000000000000") +const _hex5853 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000004444000000000000544500000040440454450000004055044444000000405504000000000040440444440000000000005445000000404404544500000040550444440000004055040000000000404404444400000000000054450000000000005445000000000000444400000000000000000000") +const _hex5862 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000006066666666666606666666966966666666ffff9ff9ffff66f6cfcc9cc9ccfc6f66ffff9ff9ffff66666666966966666660666666666666060000000000000000000000000000554500000000000055450000000000005504") +const _hex5864 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000ffffffffffff0000ff7f77ffffff0000ff7f77ffffff0000ff7f77ffffff0000ffffffffffff0000dddddddddddd0000ddfdffdddddd0000ddfdffdddddd0000ddfdffdddddd0000dddddddddddd000000000000000000000000000000554500000000000055450000000000005504") +const _hex5866 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000606666666606000066fcffffcf66000066ffccccff66000066cffffffc66000066cffffffc66000066cffffffc66000066cffffffc66000066ffccccff66000066fcffffcf6600006066666666060000000000000000000000f0000f0055450000ffff0f005545000000000f005504") +const _hex5868 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000606666666606000066fcffffcf66000066ffccccff66000066cffffffc66000066cffffffc66000066cffffffc66000066cffffffc66000066ffccccff66000066fcffffcf66000060666666660600000000000000000000000ff00f00554500000f0f0f0055450000f0000f005504") +const _hex5870 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000666666660000006066dddd6606000066d6ffff6d66000066fdffffdf66000066fdffffdf660000661d11ffdf66000066fdffffdf66000066fdffffdf66000066d6ffff6d6600006066dddd6606000000666666660000000000000000554500000000000055450000000000005504") +const _hex5872 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000900000000000000090090000000000999999000000009099999900000000998998890000000099089008000000009900800000000000990000000000000088000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") +const _hex5874 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008800000000000000990000000000000099008000000000009908900800000000998998890000000090999999000000000099999900000000000090090000000000009000000000000000000000000000000000000000") +const _hex5876 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000cccccccccccc0c007c77777777770c007c77777777770c00c077777777c70000c077777777c70000007c7777770c0000007c7777770c000000cc7777c700000000c07777c700000000007c770c00000000007c770c0000000000c0c7000000000000c0c7000000000000000c0000000000000000000000") +const _hex5878 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000cccccccccccc0c00bcbbbbbbbbbb0c00bcbbbbbbbbbb0c00c0bbbbbbbbcb0000c0bbbbbbbbcb000000bcbbbbbb0c000000bcbbbbbb0c000000ccbbbbcb00000000c0bbbbcb0000000000bcbb0c0000000000bcbb0c0000000000c0cb000000000000c0cb000000000000000c0000000000000000000000") +const _hex5880 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000d0dddd0d000000001d1111d1000000d0212222120d00001d22222222d100d02122122122120dd02122122122120dd02122122122120dd02122122122120dd02122122122120dd02122122122120d001d22222222d10000d0212222120d0000001d1111d100000000d0dddd0d00000000000000000000") +const _hex5882 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000d0dddd0d00000000cdccccdc000000d0bcbbbbcb0d0000cdbbbbbbbbdc00d0bcbbcbbcbbcb0dd0bcbbcbbcbbcb0dd0bcbbcbbcbbcb0dd0bcbbcbbcbbcb0dd0bcbbcbbcbbcb0dd0bcbbcbbcbbcb0d00cdbbbbbbbbdc0000d0bcbbbbcb0d000000cdccccdc00000000d0dddd0d00000000000000000000") +const _hex5884 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000e00b000000009999eebe000000999991e9ee0b8099999919e9ee0b0088999999e9ee0b0000889999e8ee0b0000008888eeee0b0000000000eeee0b0000009099e9ee0b000090991999ee0b009899999991ee0b008098999999be00000080989989554500000080880855450000000000005504") +const _hex5886 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000066060000000000601161000002000016911106002200001699192622220200169111060022000060116100000200000066060000000000006606000000000060116100200000001691110622000000169919262222020016911106220000006011610020554500006606000055450000000000005504") +const _hex5888 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000090000000000000ff9fff0f000000f0bb9bbbfb000000bfbb9bbbbb0f00f0bbbb89b9bbfb00f0bb9bb8bbbbfb00f0bb89bbbbbbfb00f09bb8bbbbbbfb00f08bbbbbbbbbfb00f0bbbb89b9bbfb0000bfbb9bbbbb0f0000f0bb9bbbfb00000000ff9fff0f554500000090000055450000000000005504") +const _hex5890 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000202222222222220220ffff2ff2ff2f0220ffff2ff2ffff022022222f2222f2022022222f2222f20220222222f2ff2f022022222222222202202222222222220220f2ff22f2ffff0220fff22ff2ffff02202f222ff222f20220fff22ff222f20220f2ff2222ff2f0220222222222222020000000000000000") +const _hex5892 = pxsim.BufferMethods.createBufferFromHex("87041000100000009999999999997777999999999999777799999199999977779919919999797777991111999979777799111199997977779911919999797777991991199979777799999919917977779999991991997777991999199199777799199199999979779919119999997977999911999999797799911999999977779999999999997777") +const _hex5894 = pxsim.BufferMethods.createBufferFromHex("8704100010000000200000000000200020000000000020002000f000000f20002000ffffff0f200020000000000f2000200000000000200020000ff0ff0f200020000ff0000f20002000ffff000f20002000000000002000204000000040200020404444444420002040000000402000200000000000200020000000000020002000000000002000") +const _hex20447 = pxsim.BufferMethods.createBufferFromHex("87040500050000000010000010000100000001001000010000100000") +const _hex22273 = pxsim.BufferMethods.createBufferFromHex("0001000000000001000000000001000000000002000000000400000000080000001000000010000000100000000800000000040000000002000000000000000000") pxsim.setTitle("microcode"); pxsim.setConfigData({ "4": 1054, @@ -84,21 +250,26 @@ pxtrt.mapKeyNames = [ "addRow", "addRule", "addToNavigator", + "alignment", "allow", "app", "appendText", "ariaId", "ariaPos", "arrow", + "atLoop", "atRuleStart", + "autoScale", "b64", "back", + "backBtn", "background", "backgroundActive", - "backgroundCaptured", "backgroundCaptured_", "backgroundColor", + "backgroundColour", "behaviour", + "border", "borderThickness", "borders", "bottom", @@ -133,15 +304,17 @@ pxtrt.mapKeyNames = [ "clone", "col", "color_", + "colour", + "components", "computeWorldPos", "condition", "configureP1Keys", - "configureP2Keys", - "constantFold", + "context", "copyFrom", "currIndent", "currPage", "currScene", + "currentComponentID", "currentDuration", "currentOctave", "currentPage", @@ -152,10 +325,12 @@ pxtrt.mapKeyNames = [ "data", "deactivate", "defaultBtnBehaviour", + "defaultTxt", "defs", "deleteAt", "deleteBtn", "deleteButton", + "deleteFn", "deleteIncompatibleTiles", "deletePriorCharacters", "deleteRuleAt", @@ -193,11 +368,12 @@ pxtrt.mapKeyNames = [ "error", "errorMsg", "eventQueue", + "eventQueueActive", "execute", - "f", "field", "fieldEditor", "fill", + "fillRect", "filter", "filterViaCompare", "filters", @@ -207,7 +383,6 @@ pxtrt.mapKeyNames = [ "flags", "flipIcon", "foregroundColor", - "forward", "frameCallbacks", "frameCounter", "frameWorker", @@ -216,11 +391,13 @@ pxtrt.mapKeyNames = [ "fun", "getActionKind", "getButtonAtIndex", + "getCol", "getCurrent", "getExprValue", "getField", "getFromName", "getIcon", + "getLeftAndTop", "getName", "getNewInstance", "getNormalisedReading", @@ -230,6 +407,7 @@ pxtrt.mapKeyNames = [ "getParamInstant", "getReading", "getRow", + "getRowCount", "getRuleButtons", "getRuleRep", "getSensorValue", @@ -249,10 +427,12 @@ pxtrt.mapKeyNames = [ "handlerState", "handlers", "has", + "hasBorder", "hasDelete", "hasErrors", "hasNextNote", "height", + "hidden", "hide", "hideOnClick", "host", @@ -276,10 +456,13 @@ pxtrt.mapKeyNames = [ "instantiateProgramTiles", "interp", "invisible", + "isActive", "isEmpty", + "isHidden", "isJacdacSensor", "isOffScreen", "isOffScreenX", + "isSelected", "isUpperCase", "keyboardBounds", "keyboardLayout", @@ -297,13 +480,13 @@ pxtrt.mapKeyNames = [ "lookupEventCode", "loop", "loopIndex", + "makeActive", "makeGood", "matchWhen", - "max", "maxTxtLength", "maximum", "melodyArray", - "min", + "minYBorder", "minimum", "mkPacket", "modifierIndex", @@ -327,13 +510,12 @@ pxtrt.mapKeyNames = [ "nextChar", "nextEmpty", "nextNote", - "nextPage", "nextScene", - "normalized", "notes", "num", "numberPayload", "occlusions", + "ok", "onButtonClicked", "onClick", "onDelete", @@ -352,6 +534,8 @@ pxtrt.mapKeyNames = [ "parent", "parent_", "parse", + "passedBackBtn", + "passedDeleteFn", "peek", "peekByte", "pickDiskSLot", @@ -361,6 +545,7 @@ pxtrt.mapKeyNames = [ "playUntilDone", "popScene", "pos", + "posInt", "postfixParser", "prec", "precOf", @@ -374,12 +559,12 @@ pxtrt.mapKeyNames = [ "processSection", "progdef", "program", + "programChanged", "provides", "ptr", "push", "pushScene", "queuedCursorMove", - "rName", "radioName", "raiseButtonDown", "raiseButtonRepeat", @@ -397,12 +582,14 @@ pxtrt.mapKeyNames = [ "registerOnSensorEvent", "releaseBackground", "releaseTimer", - "rendering", "repeatDelay", "repeatInterval", "repeating", "reportAria", "requires", + "rescaleHeightTo", + "rescaleWidthTo", + "reset", "resetOutlineColourOnMove", "restoreState", "right", @@ -416,9 +603,12 @@ pxtrt.mapKeyNames = [ "ruledef", "rules", "runAction", + "runBtn", "runCallbacks", + "runFromEditor", "runId", "runInstant", + "runProgram", "running", "runningCallbacks", "s", @@ -432,6 +622,7 @@ pxtrt.mapKeyNames = [ "scrollAndMoveButton", "scrollroot", "selected", + "selectedTextBtnIndex", "sendMessage", "sensor", "sensorFn", @@ -445,8 +636,12 @@ pxtrt.mapKeyNames = [ "setImage", "setOutlineColour", "setPalette", + "setPosition", "setPressed", + "setSelected", "setSize", + "setText", + "setupButtonBindings", "setupEventQueue", "setupFn", "shadow", @@ -455,6 +650,7 @@ pxtrt.mapKeyNames = [ "shakeTextCounter", "shakingText", "show", + "showBackground", "showDoInsertMenu", "showIcon", "showImage", @@ -470,10 +666,14 @@ pxtrt.mapKeyNames = [ "src", "start", "startSensors", + "startSensorsActive", "startup", "state", "stop", "stopAllRules", + "stopBtn", + "stopOngoingActions", + "stopProgram", "stopped", "stringPayload", "style", @@ -483,6 +683,7 @@ pxtrt.mapKeyNames = [ "switchToPage", "tempo", "text", + "textColour", "textLen", "tid", "time", @@ -499,8 +700,12 @@ pxtrt.mapKeyNames = [ "top", "translate", "trimRules", + "txtColor", "type", + "unmakeActive", "unregister", + "unscaledHeight", + "unscaledWidth", "update", "updateAria", "updateAt", @@ -509,6 +714,7 @@ pxtrt.mapKeyNames = [ "value", "vid", "visible", + "waitingOnTimer", "wakeTime", "whenBounds", "whenInsertBtn", @@ -518,12 +724,15 @@ pxtrt.mapKeyNames = [ "writeBuffer", "writeByte", "x", + "xBorder", "xOffset", + "xScaling", "x_", "xfrm", "xfrm_", "y", "yOffset", + "yScaling", "y_" ]; __this.setupPerfCounters([]); @@ -551,7 +760,7 @@ const pxsim_pxtrt = pxsim.pxtrt; const pxsim_numops = pxsim.numops; -function _main___P4778(s) { +function _main___P4790(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -561,19 +770,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - globals._intervals___4846 = (undefined); + globals._intervals___4858 = (undefined); globals.minPriority___2523 = (1); - globals.beatsPerMinute___4888 = (120); - globals.freqs___4891 = (_hex4890); + globals.beatsPerMinute___4900 = (120); + globals.freqs___4903 = (_hex4902); globals._b64___2782 = ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); - globals._pollEventQueue___4930 = (undefined); + globals._pollEventQueue___4942 = (undefined); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); s.tmp_0 = r0; s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "giggle"; - s.callLocIdx = 131; s.pc = 1; return s.tmp_1; - case 1: + s.callLocIdx = 136; s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; globals.giggle___2874 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -581,8 +790,8 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "happy"; - s.callLocIdx = 132; s.pc = 2; return s.tmp_1; - case 2: + s.callLocIdx = 137; s.pc = 4; return s.tmp_1; + case 4: r0 = s.retval; globals.happy___2875 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -590,8 +799,8 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "hello"; - s.callLocIdx = 133; s.pc = 3; return s.tmp_1; - case 3: + s.callLocIdx = 138; s.pc = 5; return s.tmp_1; + case 5: r0 = s.retval; globals.hello___2876 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -599,8 +808,8 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "mysterious"; - s.callLocIdx = 134; s.pc = 4; return s.tmp_1; - case 4: + s.callLocIdx = 139; s.pc = 6; return s.tmp_1; + case 6: r0 = s.retval; globals.mysterious___2877 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -608,8 +817,8 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "sad"; - s.callLocIdx = 135; s.pc = 5; return s.tmp_1; - case 5: + s.callLocIdx = 140; s.pc = 7; return s.tmp_1; + case 7: r0 = s.retval; globals.sad___2878 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -617,8 +826,8 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "slide"; - s.callLocIdx = 136; s.pc = 6; return s.tmp_1; - case 6: + s.callLocIdx = 141; s.pc = 8; return s.tmp_1; + case 8: r0 = s.retval; globals.slide___2879 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -626,8 +835,8 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "soaring"; - s.callLocIdx = 137; s.pc = 7; return s.tmp_1; - case 7: + s.callLocIdx = 142; s.pc = 9; return s.tmp_1; + case 9: r0 = s.retval; globals.soaring___2880 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -635,8 +844,8 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "spring"; - s.callLocIdx = 138; s.pc = 8; return s.tmp_1; - case 8: + s.callLocIdx = 143; s.pc = 10; return s.tmp_1; + case 10: r0 = s.retval; globals.spring___2881 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -644,8 +853,8 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "twinkle"; - s.callLocIdx = 139; s.pc = 9; return s.tmp_1; - case 9: + s.callLocIdx = 144; s.pc = 11; return s.tmp_1; + case 11: r0 = s.retval; globals.twinkle___2882 = (s.tmp_0); r0 = pxsim_pxtcore_mkClassInstance(SoundExpression__C2849_VT); @@ -653,820 +862,807 @@ switch (step) { s.tmp_1 = SoundExpression_constructor__P2850_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = "yawn"; - s.callLocIdx = 140; s.pc = 10; return s.tmp_1; - case 10: + s.callLocIdx = 145; s.pc = 12; return s.tmp_1; + case 12: r0 = s.retval; globals.yawn___2883 = (s.tmp_0); - globals.initialized___4995 = (false); - globals.RUN_KEY___5008 = ("#run"); - globals.SCOPE_KEY___5009 = ("#scope"); - s.tmp_0 = settings_initScopes__P5020_mk(s); - s.callLocIdx = 180; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - globals.SETTINGS_SIZE_DEFL___3116 = (8192); - globals.consoleFont___5060 = (globals.font5___3332); + globals.initialized___5007 = (false); + globals.consoleFont___5049 = (globals.font5___3305); s.tmp_0 = console_addListener__P2531_mk(s); - s.tmp_0.arg0 = scene_consoleOverlay_listener__P5063; - s.callLocIdx = 194; s.pc = 12; return s.tmp_0; - case 12: + s.tmp_0.arg0 = scene_consoleOverlay_listener__P5052; + s.callLocIdx = 187; s.pc = 13; return s.tmp_0; + case 13: r0 = s.retval; - globals._userEventsEnabled___5065 = (true); - globals.defaultRepeatDelay___5067 = (500); - globals.defaultRepeatInterval___5069 = (30); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals._userEventsEnabled___5054 = (true); + globals.defaultRepeatDelay___5056 = (500); + globals.defaultRepeatInterval___5058 = (30); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 5; s.tmp_1.arg2 = 4; - s.callLocIdx = 208; s.pc = 13; return s.tmp_1; - case 13: + s.callLocIdx = 201; s.pc = 14; return s.tmp_1; + case 14: r0 = s.retval; - globals.A___3266 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.A___3239 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 6; s.tmp_1.arg2 = 5; - s.callLocIdx = 209; s.pc = 14; return s.tmp_1; - case 14: + s.callLocIdx = 202; s.pc = 15; return s.tmp_1; + case 15: r0 = s.retval; - globals.B___3267 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.B___3240 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 1; s.tmp_1.arg2 = 47; - s.callLocIdx = 210; s.pc = 15; return s.tmp_1; - case 15: + s.callLocIdx = 203; s.pc = 16; return s.tmp_1; + case 16: r0 = s.retval; - globals.left___3268 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.left___3241 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 2; s.tmp_1.arg2 = 49; - s.callLocIdx = 211; s.pc = 16; return s.tmp_1; - case 16: + s.callLocIdx = 204; s.pc = 17; return s.tmp_1; + case 17: r0 = s.retval; - globals.up___3269 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.up___3242 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 3; s.tmp_1.arg2 = 48; - s.callLocIdx = 212; s.pc = 17; return s.tmp_1; - case 17: + s.callLocIdx = 205; s.pc = 18; return s.tmp_1; + case 18: r0 = s.retval; - globals.right___3270 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.right___3243 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 4; s.tmp_1.arg2 = 50; - s.callLocIdx = 213; s.pc = 18; return s.tmp_1; - case 18: + s.callLocIdx = 206; s.pc = 19; return s.tmp_1; + case 19: r0 = s.retval; - globals.down___3271 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.down___3244 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 7; s.tmp_1.arg2 = 51; - s.callLocIdx = 214; s.pc = 19; return s.tmp_1; - case 19: + s.callLocIdx = 207; s.pc = 20; return s.tmp_1; + case 20: r0 = s.retval; - globals.menu___3272 = (s.tmp_0); - r0 = pxsim.bitmaps.ofBuffer(_hex5091); - globals.defaultBitmap___3301 = (r0); - globals.__updated___5095 = (false); - globals.__ok___5097 = (true); + globals.menu___3245 = (s.tmp_0); + r0 = pxsim.bitmaps.ofBuffer(_hex5080); + globals.defaultBitmap___3274 = (r0); + globals.__updated___5084 = (false); + globals.__ok___5086 = (true); s.tmp_0 = control_runInParallel__P2441_mk(s); - s.tmp_0.arg0 = control___screen_inline__P5099; - s.callLocIdx = 239; s.pc = 20; return s.tmp_0; - case 20: + s.tmp_0.arg0 = control___screen_inline__P5088; + s.callLocIdx = 232; s.pc = 21; return s.tmp_0; + case 21: r0 = s.retval; - setupResume(s, 21); + setupResume(s, 22); pxsim.control.waitMicros(300000); checkResumeConsumed(); return; - case 21: - r0 = s.retval; - s.tmp_0 = shieldhelpers_setPalette__P3315_mk(s); - s.tmp_0.arg0 = _hex5112; - s.callLocIdx = 240; s.pc = 22; return s.tmp_0; case 22: r0 = s.retval; - s.tmp_0 = __screen_internal_createScreen__P3310_mk(s); - s.callLocIdx = 241; s.pc = 23; return s.tmp_0; + s.tmp_0 = shieldhelpers_setPalette__P3288_mk(s); + s.tmp_0.arg0 = _hex5101; + s.callLocIdx = 233; s.pc = 23; return s.tmp_0; case 23: r0 = s.retval; - globals.theScreen___3308 = (r0); - r0 = pxsim.BitmapMethods.fill(globals.theScreen___3308, 15); - globals._screenState___5142 = (null); - globals.__height___5149 = (0); - globals.__width___5152 = (0); - globals.__present___5155 = (undefined); - s.tmp_0 = shieldhelpers_registerSim__P3320_mk(s); - s.callLocIdx = 286; s.pc = 24; return s.tmp_0; + s.tmp_0 = __screen_internal_createScreen__P3283_mk(s); + s.callLocIdx = 234; s.pc = 24; return s.tmp_0; case 24: + r0 = s.retval; + globals.theScreen___3281 = (r0); + r0 = pxsim.BitmapMethods.fill(globals.theScreen___3281, 15); + globals._screenState___5131 = (null); + globals.__height___5138 = (0); + globals.__width___5141 = (0); + globals.__present___5144 = (undefined); + s.tmp_0 = shieldhelpers_registerSim__P3293_mk(s); + s.callLocIdx = 279; s.pc = 25; return s.tmp_0; + case 25: r0 = s.retval; r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "charWidth", 6); r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "charHeight", 8); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", _hex12589); - globals.font8___3327 = (s.tmp_0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", _hex13158); + globals.font8___3300 = (s.tmp_0); r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "charWidth", 12); r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "charHeight", 12); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", _hex6713); - globals.font12___3328 = (s.tmp_0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", _hex6758); + globals.font12___3301 = (s.tmp_0); r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "charWidth", 6); r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "charHeight", 5); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", _hex13869); - globals.font5___3332 = (s.tmp_0); - r0 = globals.theScreen___3308; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", _hex14438); + globals.font5___3305 = (s.tmp_0); + r0 = globals.theScreen___3281; s.tmp_0 = r0; r0 = pxsim.BitmapMethods.width(s.tmp_0); - globals.user_interface_base_Screen_WIDTH___3439 = (r0); - r0 = globals.theScreen___3308; + globals.user_interface_base_Screen_WIDTH___3412 = (r0); + r0 = globals.theScreen___3281; s.tmp_0 = r0; r0 = pxsim.BitmapMethods.height(s.tmp_0); - globals.user_interface_base_Screen_HEIGHT___3440 = (r0); - r0 = globals.theScreen___3308; + globals.user_interface_base_Screen_HEIGHT___3413 = (r0); + r0 = globals.theScreen___3281; s.tmp_1 = r0; r0 = pxsim.BitmapMethods.width(s.tmp_1); s.tmp_0 = r0; r0 = (s.tmp_0 >> 1); - globals.user_interface_base_Screen_HALF_WIDTH___3441 = (r0); - r0 = globals.theScreen___3308; + globals.user_interface_base_Screen_HALF_WIDTH___3414 = (r0); + r0 = globals.theScreen___3281; s.tmp_1 = r0; r0 = pxsim.BitmapMethods.height(s.tmp_1); s.tmp_0 = r0; r0 = (s.tmp_0 >> 1); - globals.user_interface_base_Screen_HALF_HEIGHT___3442 = (r0); - r0 = (0 - globals.user_interface_base_Screen_HALF_WIDTH___3441); - globals.user_interface_base_Screen_LEFT_EDGE___3443 = (r0); - globals.user_interface_base_Screen_RIGHT_EDGE___3444 = (globals.user_interface_base_Screen_HALF_WIDTH___3441); - r0 = (0 - globals.user_interface_base_Screen_HALF_HEIGHT___3442); - globals.user_interface_base_Screen_TOP_EDGE___3445 = (r0); - globals.user_interface_base_Screen_BOTTOM_EDGE___3446 = (globals.user_interface_base_Screen_HALF_HEIGHT___3442); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); + globals.user_interface_base_Screen_HALF_HEIGHT___3415 = (r0); + r0 = (0 - globals.user_interface_base_Screen_HALF_WIDTH___3414); + globals.user_interface_base_Screen_LEFT_EDGE___3416 = (r0); + globals.user_interface_base_Screen_RIGHT_EDGE___3417 = (globals.user_interface_base_Screen_HALF_WIDTH___3414); + r0 = (0 - globals.user_interface_base_Screen_HALF_HEIGHT___3415); + globals.user_interface_base_Screen_TOP_EDGE___3418 = (r0); + globals.user_interface_base_Screen_BOTTOM_EDGE___3419 = (globals.user_interface_base_Screen_HALF_HEIGHT___3415); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); s.tmp_0 = r0; r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", globals.user_interface_base_Screen_LEFT_EDGE___3443); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", globals.user_interface_base_Screen_TOP_EDGE___3445); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", globals.user_interface_base_Screen_WIDTH___3439); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", globals.user_interface_base_Screen_HEIGHT___3440); - s.tmp_2 = user_interface_base_Bounds_constructor__P3376_mk(s); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", globals.user_interface_base_Screen_LEFT_EDGE___3416); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", globals.user_interface_base_Screen_TOP_EDGE___3418); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", globals.user_interface_base_Screen_WIDTH___3412); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", globals.user_interface_base_Screen_HEIGHT___3413); + s.tmp_2 = user_interface_base_Bounds_constructor__P3349_mk(s); s.tmp_2.arg0 = s.tmp_0; s.tmp_2.arg1 = s.tmp_1; - s.callLocIdx = 374; s.pc = 25; return s.tmp_2; - case 25: + s.callLocIdx = 368; s.pc = 26; return s.tmp_2; + case 26: r0 = s.retval; - globals.user_interface_base_Screen_BOUNDS___3447 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); + globals.user_interface_base_Screen_BOUNDS___3420 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 0; s.tmp_1.arg2 = 0; - s.callLocIdx = 485; s.pc = 26; return s.tmp_1; - case 26: + s.callLocIdx = 479; s.pc = 27; return s.tmp_1; + case 27: r0 = s.retval; - globals._pos___5188 = (s.tmp_0); - globals.font___3487 = (globals.font8___3327); - globals.getIcon___3488 = (null); - globals.resolveTooltip___3489 = (null); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals._pos___5177 = (s.tmp_0); + globals.font___3460 = (globals.font8___3300); + globals.getIcon___3461 = (null); + globals.resolveTooltip___3462 = (null); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 9; s.tmp_1.arg2 = undefined; - s.callLocIdx = 489; s.pc = 27; return s.tmp_1; - case 27: + s.callLocIdx = 483; s.pc = 28; return s.tmp_1; + case 28: r0 = s.retval; - globals.Up2___3522 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.Up2___3495 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 11; s.tmp_1.arg2 = undefined; - s.callLocIdx = 490; s.pc = 28; return s.tmp_1; - case 28: + s.callLocIdx = 484; s.pc = 29; return s.tmp_1; + case 29: r0 = s.retval; - globals.Down2___3523 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.Down2___3496 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 8; s.tmp_1.arg2 = undefined; - s.callLocIdx = 491; s.pc = 29; return s.tmp_1; - case 29: + s.callLocIdx = 485; s.pc = 30; return s.tmp_1; + case 30: r0 = s.retval; - globals.Left2___3524 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.Left2___3497 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 10; s.tmp_1.arg2 = undefined; - s.callLocIdx = 492; s.pc = 30; return s.tmp_1; - case 30: + s.callLocIdx = 486; s.pc = 31; return s.tmp_1; + case 31: r0 = s.retval; - globals.Right2___3525 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3246_VT); + globals.Right2___3498 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(controller_Button__C3219_VT); s.tmp_0 = r0; - s.tmp_1 = controller_Button_constructor__P3252_mk(s); + s.tmp_1 = controller_Button_constructor__P3225_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 12; s.tmp_1.arg2 = undefined; - s.callLocIdx = 493; s.pc = 31; return s.tmp_1; - case 31: + s.callLocIdx = 487; s.pc = 32; return s.tmp_1; + case 32: r0 = s.retval; - globals.A2___3526 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3633_VT); + globals.A2___3499 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3606_VT); s.tmp_0 = r0; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3631_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3604_VT); s.tmp_1 = r0; - s.tmp_2 = user_interface_base_Borders_constructor__P3632_mk(s); + s.tmp_2 = user_interface_base_Borders_constructor__P3605_mk(s); s.tmp_2.arg0 = s.tmp_1; s.tmp_2.arg1 = 1; s.tmp_2.arg2 = 12; s.tmp_2.arg3 = 1; s.tmp_2.arg4 = 1; - s.callLocIdx = 494; s.pc = 32; return s.tmp_2; - case 32: + s.callLocIdx = 488; s.pc = 33; return s.tmp_2; + case 33: r0 = s.retval; - s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3634_mk(s); + s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3607_mk(s); s.tmp_3.arg0 = s.tmp_0; s.tmp_3.arg1 = 1; s.tmp_3.arg2 = s.tmp_1; s.tmp_3.arg3 = true; - s.callLocIdx = 495; s.pc = 33; return s.tmp_3; - case 33: + s.callLocIdx = 489; s.pc = 34; return s.tmp_3; + case 34: r0 = s.retval; - globals.ShadowedWhite___3636 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3633_VT); + globals.ShadowedWhite___3609 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3606_VT); s.tmp_0 = r0; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3631_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3604_VT); s.tmp_1 = r0; - s.tmp_2 = user_interface_base_Borders_constructor__P3632_mk(s); + s.tmp_2 = user_interface_base_Borders_constructor__P3605_mk(s); s.tmp_2.arg0 = s.tmp_1; s.tmp_2.arg1 = 1; s.tmp_2.arg2 = 11; s.tmp_2.arg3 = 1; s.tmp_2.arg4 = 1; - s.callLocIdx = 496; s.pc = 34; return s.tmp_2; - case 34: + s.callLocIdx = 490; s.pc = 35; return s.tmp_2; + case 35: r0 = s.retval; - s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3634_mk(s); + s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3607_mk(s); s.tmp_3.arg0 = s.tmp_0; s.tmp_3.arg1 = 1; s.tmp_3.arg2 = s.tmp_1; s.tmp_3.arg3 = true; - s.callLocIdx = 497; s.pc = 35; return s.tmp_3; - case 35: + s.callLocIdx = 491; s.pc = 36; return s.tmp_3; + case 36: r0 = s.retval; - globals.LightShadowedWhite___3637 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3633_VT); + globals.LightShadowedWhite___3610 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3606_VT); s.tmp_0 = r0; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3631_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3604_VT); s.tmp_1 = r0; - s.tmp_2 = user_interface_base_Borders_constructor__P3632_mk(s); + s.tmp_2 = user_interface_base_Borders_constructor__P3605_mk(s); s.tmp_2.arg0 = s.tmp_1; s.tmp_2.arg1 = 1; s.tmp_2.arg2 = 1; s.tmp_2.arg3 = 1; s.tmp_2.arg4 = 1; - s.callLocIdx = 498; s.pc = 36; return s.tmp_2; - case 36: + s.callLocIdx = 492; s.pc = 37; return s.tmp_2; + case 37: r0 = s.retval; - s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3634_mk(s); + s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3607_mk(s); s.tmp_3.arg0 = s.tmp_0; s.tmp_3.arg1 = 1; s.tmp_3.arg2 = s.tmp_1; s.tmp_3.arg3 = false; - s.callLocIdx = 499; s.pc = 37; return s.tmp_3; - case 37: + s.callLocIdx = 493; s.pc = 38; return s.tmp_3; + case 38: r0 = s.retval; - globals.FlatWhite___3638 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3633_VT); + globals.FlatWhite___3611 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3606_VT); s.tmp_0 = r0; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3631_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3604_VT); s.tmp_1 = r0; - s.tmp_2 = user_interface_base_Borders_constructor__P3632_mk(s); + s.tmp_2 = user_interface_base_Borders_constructor__P3605_mk(s); s.tmp_2.arg0 = s.tmp_1; s.tmp_2.arg1 = 12; s.tmp_2.arg2 = 12; s.tmp_2.arg3 = 12; s.tmp_2.arg4 = 12; - s.callLocIdx = 500; s.pc = 38; return s.tmp_2; - case 38: + s.callLocIdx = 494; s.pc = 39; return s.tmp_2; + case 39: r0 = s.retval; - s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3634_mk(s); + s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3607_mk(s); s.tmp_3.arg0 = s.tmp_0; s.tmp_3.arg1 = 11; s.tmp_3.arg2 = s.tmp_1; s.tmp_3.arg3 = false; - s.callLocIdx = 501; s.pc = 39; return s.tmp_3; - case 39: + s.callLocIdx = 495; s.pc = 40; return s.tmp_3; + case 40: r0 = s.retval; - globals.BorderedPurple___3639 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3633_VT); + globals.BorderedPurple___3612 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3606_VT); s.tmp_0 = r0; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3631_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3604_VT); s.tmp_1 = r0; - s.tmp_2 = user_interface_base_Borders_constructor__P3632_mk(s); + s.tmp_2 = user_interface_base_Borders_constructor__P3605_mk(s); s.tmp_2.arg0 = s.tmp_1; s.tmp_2.arg1 = 2; s.tmp_2.arg2 = 2; s.tmp_2.arg3 = 2; s.tmp_2.arg4 = 2; - s.callLocIdx = 502; s.pc = 40; return s.tmp_2; - case 40: + s.callLocIdx = 496; s.pc = 41; return s.tmp_2; + case 41: r0 = s.retval; - s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3634_mk(s); + s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3607_mk(s); s.tmp_3.arg0 = s.tmp_0; s.tmp_3.arg1 = 1; s.tmp_3.arg2 = s.tmp_1; s.tmp_3.arg3 = false; - s.callLocIdx = 503; s.pc = 41; return s.tmp_3; - case 41: + s.callLocIdx = 497; s.pc = 42; return s.tmp_3; + case 42: r0 = s.retval; - globals.RedBorderedWhite___3640 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3633_VT); + globals.RedBorderedWhite___3613 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonStyle__C3606_VT); s.tmp_0 = r0; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3631_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Borders__C3604_VT); s.tmp_1 = r0; - s.tmp_2 = user_interface_base_Borders_constructor__P3632_mk(s); + s.tmp_2 = user_interface_base_Borders_constructor__P3605_mk(s); s.tmp_2.arg0 = s.tmp_1; s.tmp_2.arg1 = 0; s.tmp_2.arg2 = 0; s.tmp_2.arg3 = 0; s.tmp_2.arg4 = 0; - s.callLocIdx = 504; s.pc = 42; return s.tmp_2; - case 42: + s.callLocIdx = 498; s.pc = 43; return s.tmp_2; + case 43: r0 = s.retval; - s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3634_mk(s); + s.tmp_3 = user_interface_base_ButtonStyle_constructor__P3607_mk(s); s.tmp_3.arg0 = s.tmp_0; s.tmp_3.arg1 = 0; s.tmp_3.arg2 = s.tmp_1; s.tmp_3.arg3 = false; - s.callLocIdx = 505; s.pc = 43; return s.tmp_3; - case 43: + s.callLocIdx = 499; s.pc = 44; return s.tmp_3; + case 44: r0 = s.retval; - globals.Transparent___3641 = (s.tmp_0); - globals.BACK_BUTTON_ERROR_KIND___3775 = ("back_button"); - globals.FORWARD_BUTTON_ERROR_KIND___3776 = ("forward_button"); - globals.user_interface_base_Options_fps___3840 = (false); - globals.user_interface_base_Options_menuProfiling___3842 = (false); - globals.extraImage___5305 = (null); - r0 = pxsim.bitmaps.ofBuffer(_hex5307); - globals.microbitLogo___3848 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5309); - globals.microbit_logo_btn___3849 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5311); - globals.microbitLogoWhiteBackground___3850 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5313); - globals.MISSING___3851 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5315); - globals.green_tick___3852 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5317); - globals.tile_button_a___3853 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5319); - globals.tile_button_b___3854 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5321); - globals.pin_0___3855 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5323); - globals.pin_1___3856 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5325); - globals.pin_2___3857 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5327); - globals.compass___3858 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5329); - globals.car_right_turn___3859 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5331); - globals.car_right_spin___3860 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5333); - globals.finger_press___3861 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5335); - globals.magnet___3862 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5337); - globals.thermometer___3863 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5339); - globals.led_light_sensor___3864 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5341); - globals.microphone___3865 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5343); - globals.accelerometer___3866 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5345); - globals.largeEditIcon___3867 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5347); - globals.largeSettingsGear___3868 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5349); - globals.linearGraph1___3869 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5351); - globals.radio_set_group___3870 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5353); - globals.largeDisk___3871 = (r0); - globals.extraImage___5360 = (null); + globals.Transparent___3614 = (s.tmp_0); + globals.BACK_BUTTON_ERROR_KIND___3748 = ("back_button"); + globals.FORWARD_BUTTON_ERROR_KIND___3749 = ("forward_button"); + globals.user_interface_base_Options_fps___3813 = (false); + globals.user_interface_base_Options_menuProfiling___3815 = (false); + globals.extraImage___5294 = (null); + r0 = pxsim.bitmaps.ofBuffer(_hex5296); + globals.microbitLogo___3821 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5298); + globals.microbit_logo_btn___3822 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5300); + globals.microbitLogoWhiteBackground___3823 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5302); + globals.MISSING___3824 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5304); + globals.green_tick___3825 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5306); + globals.tile_button_a___3826 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5308); + globals.tile_button_b___3827 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5310); + globals.pin_0___3828 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5312); + globals.pin_1___3829 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5314); + globals.pin_2___3830 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5316); + globals.compass___3831 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5318); + globals.car_right_turn___3832 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5320); + globals.car_right_spin___3833 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5322); + globals.finger_press___3834 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5324); + globals.magnet___3835 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5326); + globals.thermometer___3836 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5328); + globals.led_light_sensor___3837 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5330); + globals.microphone___3838 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5332); + globals.accelerometer___3839 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5334); + globals.largeEditIcon___3840 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5336); + globals.largeSettingsGear___3841 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5338); + globals.linearGraph1___3842 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5340); + globals.radio_set_group___3843 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5342); + globals.largeDisk___3844 = (r0); + globals.getIcon___3461 = (microgui_inline__P5345); + globals.resolveTooltip___3462 = (microgui_inline__P5350); r0 = pxsim.bitmaps.ofBuffer(_hex5364); - globals.wordLogo___3884 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5366); - globals.editorBackground___3885 = (r0); + globals.btn_delete___5365 = (r0); + globals.__kbBehaviourNumericDefault___5369 = (__kbBehaviourNumericDefault_inline__P5368); + globals.__kbBehaviourNumericMinus___5418 = (__kbBehaviourNumericMinus_inline__P5417); + globals.__kbBehaviourNumericDecimal___5449 = (__kbBehaviourNumericDecimal_inline__P5448); + globals.__kbBehaviourNumericEnter___5480 = (__kbBehaviourNumericEnter_inline__P5479); + globals.microgui_RadioButtonCollection_MINIMUM_BUTTON_Y_SPACING___5539 = (2); + globals.RUN_KEY___5544 = ("#run"); + globals.SCOPE_KEY___5545 = ("#scope"); + s.tmp_0 = settings_initScopes__P5556_mk(s); + s.callLocIdx = 1118; s.pc = 45; return s.tmp_0; + case 45: + r0 = s.retval; + globals.SETTINGS_SIZE_DEFL___4035 = (8192); + globals.extraImage___5572 = (null); + r0 = pxsim.bitmaps.ofBuffer(_hex5575); + globals.wordLogo___4048 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5577); + globals.editorBackground___4049 = (r0); r0 = pxsim.bitmaps.create(11, 11); - globals.lt___3887 = (r0); - s.tmp_0 = helpers_imageDrawLine__P3138_mk(s); - s.tmp_0.arg0 = globals.lt___3887; + globals.lt___4051 = (r0); + s.tmp_0 = helpers_imageDrawLine__P3111_mk(s); + s.tmp_0.arg0 = globals.lt___4051; s.tmp_0.arg1 = 2; s.tmp_0.arg2 = 5; s.tmp_0.arg3 = 8; s.tmp_0.arg4 = 2; s.tmp_0.arg5 = 15; - s.callLocIdx = 866; s.pc = 44; return s.tmp_0; - case 44: + s.callLocIdx = 1134; s.pc = 46; return s.tmp_0; + case 46: r0 = s.retval; - s.tmp_0 = helpers_imageDrawLine__P3138_mk(s); - s.tmp_0.arg0 = globals.lt___3887; + s.tmp_0 = helpers_imageDrawLine__P3111_mk(s); + s.tmp_0.arg0 = globals.lt___4051; s.tmp_0.arg1 = 2; s.tmp_0.arg2 = 5; s.tmp_0.arg3 = 8; s.tmp_0.arg4 = 8; s.tmp_0.arg5 = 15; - s.callLocIdx = 867; s.pc = 45; return s.tmp_0; - case 45: + s.callLocIdx = 1135; s.pc = 47; return s.tmp_0; + case 47: r0 = s.retval; - r0 = pxsim.BitmapMethods.clone(globals.lt___3887); - globals.gt___3888 = (r0); - r0 = pxsim.BitmapMethods.flipX(globals.gt___3888); - r0 = pxsim.BitmapMethods.clone(globals.lt___3887); - globals.lte___3889 = (r0); - r0 = pxsim.BitmapMethods.scroll(globals.lte___3889, 0, -1); - s.tmp_0 = helpers_imageDrawLine__P3138_mk(s); - s.tmp_0.arg0 = globals.lte___3889; + r0 = pxsim.BitmapMethods.clone(globals.lt___4051); + globals.gt___4052 = (r0); + r0 = pxsim.BitmapMethods.flipX(globals.gt___4052); + r0 = pxsim.BitmapMethods.clone(globals.lt___4051); + globals.lte___4053 = (r0); + r0 = pxsim.BitmapMethods.scroll(globals.lte___4053, 0, -1); + s.tmp_0 = helpers_imageDrawLine__P3111_mk(s); + s.tmp_0.arg0 = globals.lte___4053; s.tmp_0.arg1 = 0; s.tmp_0.arg2 = 10; s.tmp_0.arg3 = 10; s.tmp_0.arg4 = 10; s.tmp_0.arg5 = 0; - s.callLocIdx = 868; s.pc = 46; return s.tmp_0; - case 46: + s.callLocIdx = 1136; s.pc = 48; return s.tmp_0; + case 48: r0 = s.retval; - s.tmp_0 = helpers_imageDrawLine__P3138_mk(s); - s.tmp_0.arg0 = globals.lte___3889; + s.tmp_0 = helpers_imageDrawLine__P3111_mk(s); + s.tmp_0.arg0 = globals.lte___4053; s.tmp_0.arg1 = 2; s.tmp_0.arg2 = 7; s.tmp_0.arg3 = 8; s.tmp_0.arg4 = 10; s.tmp_0.arg5 = 15; - s.callLocIdx = 869; s.pc = 47; return s.tmp_0; - case 47: + s.callLocIdx = 1137; s.pc = 49; return s.tmp_0; + case 49: r0 = s.retval; - r0 = pxsim.BitmapMethods.clone(globals.lte___3889); - globals.gte___3890 = (r0); - r0 = pxsim.BitmapMethods.flipX(globals.gte___3890); + r0 = pxsim.BitmapMethods.clone(globals.lte___4053); + globals.gte___4054 = (r0); + r0 = pxsim.BitmapMethods.flipX(globals.gte___4054); r0 = pxsim.bitmaps.create(11, 11); - globals.eq___3891 = (r0); - s.tmp_0 = helpers_imageDrawLine__P3138_mk(s); - s.tmp_0.arg0 = globals.eq___3891; + globals.eq___4055 = (r0); + s.tmp_0 = helpers_imageDrawLine__P3111_mk(s); + s.tmp_0.arg0 = globals.eq___4055; s.tmp_0.arg1 = 2; s.tmp_0.arg2 = 4; s.tmp_0.arg3 = 8; s.tmp_0.arg4 = 4; s.tmp_0.arg5 = 15; - s.callLocIdx = 870; s.pc = 48; return s.tmp_0; - case 48: + s.callLocIdx = 1138; s.pc = 50; return s.tmp_0; + case 50: r0 = s.retval; - s.tmp_0 = helpers_imageDrawLine__P3138_mk(s); - s.tmp_0.arg0 = globals.eq___3891; + s.tmp_0 = helpers_imageDrawLine__P3111_mk(s); + s.tmp_0.arg0 = globals.eq___4055; s.tmp_0.arg1 = 2; s.tmp_0.arg2 = 6; s.tmp_0.arg3 = 8; s.tmp_0.arg4 = 6; s.tmp_0.arg5 = 15; - s.callLocIdx = 871; s.pc = 49; return s.tmp_0; - case 49: + s.callLocIdx = 1139; s.pc = 51; return s.tmp_0; + case 51: r0 = s.retval; - r0 = pxsim.BitmapMethods.clone(globals.eq___3891); - globals.neq___3892 = (r0); - s.tmp_0 = helpers_imageDrawLine__P3138_mk(s); - s.tmp_0.arg0 = globals.neq___3892; + r0 = pxsim.BitmapMethods.clone(globals.eq___4055); + globals.neq___4056 = (r0); + s.tmp_0 = helpers_imageDrawLine__P3111_mk(s); + s.tmp_0.arg0 = globals.neq___4056; s.tmp_0.arg1 = 8; s.tmp_0.arg2 = 2; s.tmp_0.arg3 = 3; s.tmp_0.arg4 = 8; s.tmp_0.arg5 = 15; - s.callLocIdx = 872; s.pc = 50; return s.tmp_0; - case 50: + s.callLocIdx = 1140; s.pc = 52; return s.tmp_0; + case 52: r0 = s.retval; - r0 = pxsim.bitmaps.ofBuffer(_hex5409); - globals.note4x3___5410 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5412); - globals.iconEditor___3896 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5415); - globals.melodyEditor___3897 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5417); - globals.disk___3898 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5419); - globals.disk1___3899 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5421); - globals.disk2___3900 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5423); - globals.disk3___3901 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5425); - globals.largeDiskIcon___3902 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5427); - globals.solid_red___3903 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5429); - globals.solid_black___3904 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5431); - globals.arm_open___3905 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5433); - globals.arm_close___3906 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5435); - globals.btn_stop___3907 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5437); - globals.btn_delete___3908 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5439); - globals.btn_plus___3909 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5441); - globals.arith_plus___3910 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5443); - globals.arith_equals___3911 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5445); - globals.loop___3912 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5447); - globals.btn_when_insertion_point___3913 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5449); - globals.btn_do_insertion_point___3914 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5451); - globals.rule_arrow___3915 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5453); - globals.showScreen___3916 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5455); - globals.showNumber___3917 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5457); - globals.rule_handle___3918 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5459); - globals.tile_switch_page___3919 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5461); - globals.tile_start_page___3920 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5463); - globals.tile_page_1___3921 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5465); - globals.tile_page_2___3922 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5467); - globals.tile_page_3___3923 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5469); - globals.tile_page_4___3924 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5471); - globals.tile_page_5___3925 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5473); - globals.tile_timer___3926 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5475); - globals.tile_timespan_short___3927 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5477); - globals.tile_timespan_long___3928 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5479); - globals.tile_timespan_fiveSeconds___3929 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5481); - globals.tile_timespan_random___3930 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5483); - globals.tile_pin_0___3931 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5485); - globals.tile_pin_1___3932 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5487); - globals.tile_pin_2___3933 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5489); - globals.radio_value___3934 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5491); - globals.radio_receive___3935 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5493); - globals.radio_send___3936 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5495); - globals.radio_set_group_small___3937 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5497); - globals.microbit_logo___3938 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5499); - globals.finger_release___3939 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5501); - globals.tile_color_black___3940 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5503); - globals.tile_color_red___3941 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5505); - globals.tile_color_blue___3942 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5507); - globals.tile_sparkle___3943 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5509); - globals.tile_rainbow___3944 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5511); - globals.tile_color_green___3945 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5513); - globals.tile_color_magenta___3946 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5515); - globals.tile_color_yellow___3947 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5517); - globals.rgbLed___3948 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5519); - globals.temp_warmer___3949 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5521); - globals.temp_colder___3950 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5523); - globals.light_sensor___3951 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5525); - globals.speakerSoft___3952 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5527); - globals.speakerFun___3953 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5529); - globals.music___3954 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5531); - globals.note_on___3955 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5533); - globals.note_off___3956 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5535); - globals.soundGiggle___3957 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5537); - globals.soundHappy___3958 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5539); - globals.soundHello___3959 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5541); - globals.soundMysterious___3960 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5543); - globals.soundSad___3961 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5545); - globals.soundSlide___3962 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5547); - globals.soundSoaring___3963 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5549); - globals.soundSpring___3964 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5551); - globals.soundTwinkle___3965 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5553); - globals.soundYawn___3966 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5555); - globals.moveShake___3967 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5557); - globals.moveTiltDown___3968 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5559); - globals.moveTiltUp___3969 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5561); - globals.moveTiltLeft___3970 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5563); - globals.moveTiltRight___3971 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5565); - globals.moveFaceUp___3972 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5567); - globals.moveFaceDown___3973 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5569); - globals.diceToss___3974 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5571); - globals.cupXread___3975 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5573); - globals.cupYread___3976 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5575); - globals.cupZread___3977 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5577); - globals.cupXassign___3978 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5579); - globals.cupYassign___3979 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5581); - globals.cupZassign___3980 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5583); - globals.cupXwritten___3981 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5585); - globals.cupYwritten___3982 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5587); - globals.cupZwritten___3983 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5589); - globals.largeNewProgramIcon___3984 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5591); - globals.sampleFlashingHeart___3985 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5593); - globals.sampleSmileyButtons___3986 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5595); - globals.sampleFirefly___3987 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5597); - globals.sampleClapLights___3988 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5599); - globals.sampleRockPaperScissors___3989 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5601); - globals.sampleTeleportDuck___3990 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5603); - globals.samplePetHamster___3991 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5605); - globals.sampleHeadsOrTails___3992 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5607); - globals.sampleReactionTime___3993 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5609); - globals.sampleHotPotato___3994 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5611); - globals.sampleRailCrossingLight___3995 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5613); - globals.settingsGear___3996 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5615); - globals.one___5616 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5618); - globals.two___5619 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5621); - globals.three___5622 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5624); - globals.four___5625 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5627); - globals.five___5628 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5620); + globals.note4x3___5621 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5623); + globals.iconEditor___4060 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5626); + globals.melodyEditor___4061 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5628); + globals.disk___4062 = (r0); r0 = pxsim.bitmaps.ofBuffer(_hex5630); - globals.servo_power___3997 = (r0); + globals.disk1___4063 = (r0); r0 = pxsim.bitmaps.ofBuffer(_hex5632); - globals.servo_set_angle___3998 = (r0); + globals.disk2___4064 = (r0); r0 = pxsim.bitmaps.ofBuffer(_hex5634); - globals.blocks1___3999 = (r0); + globals.disk3___4065 = (r0); r0 = pxsim.bitmaps.ofBuffer(_hex5636); - globals.blocks2___4000 = (r0); + globals.largeDiskIcon___4066 = (r0); r0 = pxsim.bitmaps.ofBuffer(_hex5638); - globals.blocks3___4001 = (r0); + globals.solid_red___4067 = (r0); r0 = pxsim.bitmaps.ofBuffer(_hex5640); - globals.blocks4___4002 = (r0); + globals.solid_black___4068 = (r0); r0 = pxsim.bitmaps.ofBuffer(_hex5642); - globals.blocks5___4003 = (r0); + globals.arm_open___4069 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5644); + globals.arm_close___4070 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5646); + globals.btn_stop___4071 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5648); + globals.btn_delete___4072 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5650); + globals.btn_plus___4073 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5652); + globals.arith_plus___4074 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5654); + globals.arith_equals___4075 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5656); + globals.loop___4076 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5658); + globals.btn_when_insertion_point___4077 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5660); + globals.btn_do_insertion_point___4078 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5662); + globals.rule_arrow___4079 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5664); + globals.showScreen___4080 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5666); + globals.showNumber___4081 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5668); + globals.rule_handle___4082 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5670); + globals.tile_switch_page___4083 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5672); + globals.tile_start_page___4084 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5674); + globals.tile_page_1___4085 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5676); + globals.tile_page_2___4086 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5678); + globals.tile_page_3___4087 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5680); + globals.tile_page_4___4088 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5682); + globals.tile_page_5___4089 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5684); + globals.tile_timer___4090 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5686); + globals.tile_timespan_short___4091 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5688); + globals.tile_timespan_long___4092 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5690); + globals.tile_timespan_fiveSeconds___4093 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5692); + globals.tile_timespan_random___4094 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5694); + globals.tile_pin_0___4095 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5696); + globals.tile_pin_1___4096 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5698); + globals.tile_pin_2___4097 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5700); + globals.radio_value___4098 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5702); + globals.radio_receive___4099 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5704); + globals.radio_send___4100 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5706); + globals.radio_set_group_small___4101 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5708); + globals.microbit_logo___4102 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5710); + globals.finger_release___4103 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5712); + globals.tile_color_black___4104 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5714); + globals.tile_color_red___4105 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5716); + globals.tile_color_blue___4106 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5718); + globals.tile_sparkle___4107 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5720); + globals.tile_rainbow___4108 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5722); + globals.tile_color_green___4109 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5724); + globals.tile_color_magenta___4110 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5726); + globals.tile_color_yellow___4111 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5728); + globals.rgbLed___4112 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5730); + globals.temp_warmer___4113 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5732); + globals.temp_colder___4114 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5734); + globals.light_sensor___4115 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5736); + globals.speakerSoft___4116 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5738); + globals.speakerFun___4117 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5740); + globals.music___4118 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5742); + globals.note_on___4119 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5744); + globals.note_off___4120 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5746); + globals.soundGiggle___4121 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5748); + globals.soundHappy___4122 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5750); + globals.soundHello___4123 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5752); + globals.soundMysterious___4124 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5754); + globals.soundSad___4125 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5756); + globals.soundSlide___4126 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5758); + globals.soundSoaring___4127 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5760); + globals.soundSpring___4128 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5762); + globals.soundTwinkle___4129 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5764); + globals.soundYawn___4130 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5766); + globals.moveShake___4131 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5768); + globals.moveTiltDown___4132 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5770); + globals.moveTiltUp___4133 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5772); + globals.moveTiltLeft___4134 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5774); + globals.moveTiltRight___4135 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5776); + globals.moveFaceUp___4136 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5778); + globals.moveFaceDown___4137 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5780); + globals.diceToss___4138 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5782); + globals.cupXread___4139 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5784); + globals.cupYread___4140 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5786); + globals.cupZread___4141 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5788); + globals.cupXassign___4142 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5790); + globals.cupYassign___4143 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5792); + globals.cupZassign___4144 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5794); + globals.cupXwritten___4145 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5796); + globals.cupYwritten___4146 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5798); + globals.cupZwritten___4147 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5800); + globals.largeNewProgramIcon___4148 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5802); + globals.sampleFlashingHeart___4149 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5804); + globals.sampleSmileyButtons___4150 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5806); + globals.sampleFirefly___4151 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5808); + globals.sampleClapLights___4152 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5810); + globals.sampleRockPaperScissors___4153 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5812); + globals.sampleTeleportDuck___4154 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5814); + globals.samplePetHamster___4155 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5816); + globals.sampleHeadsOrTails___4156 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5818); + globals.sampleReactionTime___4157 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5820); + globals.sampleHotPotato___4158 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5822); + globals.sampleRailCrossingLight___4159 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5824); + globals.settingsGear___4160 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5826); + globals.one___5827 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5829); + globals.two___5830 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5832); + globals.three___5833 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5835); + globals.four___5836 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5838); + globals.five___5839 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5841); + globals.servo_power___4161 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5843); + globals.servo_set_angle___4162 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5845); + globals.blocks1___4163 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5847); + globals.blocks2___4164 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5849); + globals.blocks3___4165 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5851); + globals.blocks4___4166 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5853); + globals.blocks5___4167 = (r0); r0 = pxsim_Array__mk(); s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, globals.blocks1___3999); - r0 = pxsim_Array__push(s.tmp_0, globals.blocks2___4000); - r0 = pxsim_Array__push(s.tmp_0, globals.blocks3___4001); - r0 = pxsim_Array__push(s.tmp_0, globals.blocks4___4002); - r0 = pxsim_Array__push(s.tmp_0, globals.blocks5___4003); - globals.num2image___5645 = (s.tmp_0); - r0 = pxsim.bitmaps.ofBuffer(_hex5651); - globals.kita_slider___4006 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5653); - globals.reflected_light_sensor___4007 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5655); - globals.kita_key_1___4008 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5657); - globals.kita_key_2___4009 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5659); - globals.kita_rotary___4010 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5661); - globals.kita_rotary_left___4011 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5663); - globals.kita_rotary_right___4012 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5665); - globals.car___4013 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5667); - globals.car_forward___4014 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5669); - globals.car_forward_fast___4015 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5671); - globals.car_reverse___4016 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5673); - globals.car_left_turn___4017 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5675); - globals.car_left_spin___4018 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5677); - globals.car_stop___4019 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5679); - globals.car_wall___4020 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5681); - globals.line_sensor___4021 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5683); - globals.line_neither_on___4022 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5685); - globals.line_left_on___4023 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5687); - globals.line_right_on___4024 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5689); - globals.line_both_on___4025 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5691); - globals.line_none_from_left___4026 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5693); - globals.line_none_from_right___4027 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5695); - globals.distance_sensor___4028 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5697); - globals.soil_moisture___4029 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5699); - globals.relay___4030 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5701); - globals.loud___4031 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5703); - globals.quiet___4032 = (r0); - r0 = pxsim.bitmaps.ofBuffer(_hex5705); - globals.decimalEditor___4033 = (r0); + r0 = pxsim_Array__push(s.tmp_0, globals.blocks1___4163); + r0 = pxsim_Array__push(s.tmp_0, globals.blocks2___4164); + r0 = pxsim_Array__push(s.tmp_0, globals.blocks3___4165); + r0 = pxsim_Array__push(s.tmp_0, globals.blocks4___4166); + r0 = pxsim_Array__push(s.tmp_0, globals.blocks5___4167); + globals.num2image___5856 = (s.tmp_0); + r0 = pxsim.bitmaps.ofBuffer(_hex5862); + globals.kita_slider___4170 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5864); + globals.reflected_light_sensor___4171 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5866); + globals.kita_key_1___4172 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5868); + globals.kita_key_2___4173 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5870); + globals.kita_rotary___4174 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5872); + globals.kita_rotary_left___4175 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5874); + globals.kita_rotary_right___4176 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5876); + globals.run___4177 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5878); + globals.runDisabled___4178 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5880); + globals.stop___4179 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5882); + globals.stopDisabled___4180 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5884); + globals.soil_moisture___4181 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5886); + globals.distance_sensor___4182 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5888); + globals.relay___4183 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5890); + globals.loud___4184 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5892); + globals.quiet___4185 = (r0); + r0 = pxsim.bitmaps.ofBuffer(_hex5894); + globals.decimalEditor___4186 = (r0); r0 = pxsim_Array__mk(); s.tmp_0 = r0; r0 = pxsim_Array__push(s.tmp_0, 10); @@ -1487,7 +1683,7 @@ switch (step) { r0 = pxsim_Array__mk(); s.tmp_4 = r0; r0 = pxsim_Array__push(s.tmp_4, 150); - r0 = pxsim_Array__push(s.tmp_4, 205); + r0 = pxsim_Array__push(s.tmp_4, 208); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "modifiers", s.tmp_4); r0 = pxsim_Array__mk(); s.tmp_5 = r0; @@ -1499,7 +1695,7 @@ switch (step) { r0 = pxsim_Array__push(s.tmp_6, 220); r0 = pxsim_Array__push(s.tmp_6, 225); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "comparisonOperators", s.tmp_6); - globals.ranges___4250 = (s.tmp_1); + globals.ranges___4407 = (s.tmp_1); r0 = pxsim_Array__mk(); s.tmp_0 = r0; r0 = pxsim_Array__push(s.tmp_0, 78); @@ -1507,20 +1703,29 @@ switch (step) { r0 = pxsim_Array__push(s.tmp_0, 80); r0 = pxsim_Array__push(s.tmp_0, 81); r0 = pxsim_Array__push(s.tmp_0, 82); - globals.only5___5750 = (s.tmp_0); + globals.only5___5940 = (s.tmp_0); r0 = pxsim_Array__mk(); s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, "value_in"); + r0 = pxsim_Array__push(s.tmp_0, "variable"); r0 = pxsim_Array__push(s.tmp_0, "comparison"); r0 = pxsim_Array__push(s.tmp_0, "maths"); r0 = pxsim_Array__push(s.tmp_0, "decimal_editor"); - globals.filterMath___5751 = (s.tmp_0); - globals.SAVESLOT_AUTO___4287 = ("sa"); - globals.runtimeHost___5753 = (undefined); - globals.theInterpreter___5755 = (undefined); - globals.microcode_PageEditor_MARGIN___4329 = (10); - globals.microcode_PageEditor_RULE_MARGIN___4330 = (3); - globals.VERSION___4365 = ("v2.5.47"); + globals.filterMath___5941 = (s.tmp_0); + globals.SAVESLOT_AUTO___4438 = ("sa"); + globals.theInterpreter___5944 = (undefined); + globals.microcode_PageEditor_MARGIN___4485 = (10); + globals.microcode_PageEditor_RULE_MARGIN___4486 = (3); + r0 = pxsim_numops_toBoolDecr(false); + if (!r0) { step = 1; continue; } + r0 = -60; + { step = 2; continue; } + case 1: + r0 = -40; + case 2: + // jmp value (already in r0) + s.tmp_0 = r0; + globals.buttonStart___5989 = (s.tmp_0); + globals.VERSION___4520 = ("v3.0.0"); r0 = pxsim_Array__mk(); s.tmp_0 = r0; r0 = pxsim_Array__push(s.tmp_0, "C"); @@ -1532,13 +1737,32 @@ switch (step) { r0 = pxsim_Array__push(s.tmp_0, "B"); r0 = pxsim_Array__push(s.tmp_0, "C5"); r0 = pxsim_Array__push(s.tmp_0, "D5"); - globals.noteNames___4441 = (s.tmp_0); - globals.iconEditorTile___5823 = (undefined); - globals.melodyEditorTile___5825 = (undefined); - globals.decimalEditorTile___5827 = (undefined); - globals.microcode_Options_profiling___4460 = (false); - globals.microcode_Options_menuProfiling___4461 = (false); - globals.font___4589 = (globals.font8___3327); + globals.noteNames___4583 = (s.tmp_0); + globals.iconEditorTile___6016 = (undefined); + globals.melodyEditorTile___6018 = (undefined); + globals.decimalEditorTile___6020 = (undefined); + globals.posIntEditorTile___6022 = (undefined); + globals.microcode_Options_profiling___4602 = (false); + globals.font___4732 = (globals.font8___3300); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "tid", 27); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "Light", s.tmp_0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "tid", 18); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "Microphone", s.tmp_2); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "tid", 16); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "Temperature", s.tmp_3); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "tid", 22); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "Magnet", s.tmp_4); + globals.sensorInfo___6042 = (s.tmp_1); r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "1", 73); @@ -1547,280 +1771,163 @@ switch (step) { r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "100", 70); r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "101", 71); r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "102", 72); - globals.matchPressReleaseTable___5847 = (s.tmp_0); - r0 = pxsim_pxtrt.mkMap(); + globals.matchPressReleaseTable___6049 = (s.tmp_0); + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, 11); + r0 = pxsim_Array__push(s.tmp_0, 1); + r0 = pxsim_Array__push(s.tmp_0, 2); + r0 = pxsim_Array__push(s.tmp_0, 3); + r0 = pxsim_Array__push(s.tmp_0, 4); + r0 = pxsim_Array__push(s.tmp_0, 5); + r0 = pxsim_Array__push(s.tmp_0, 6); + globals.gestures___6063 = (s.tmp_0); + r0 = pxsim_Array__mk(); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "11", 90); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "2", 92); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "3", 93); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "4", 94); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "5", 108); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "6", 109); - globals.matchAccelerometerTable___5855 = (s.tmp_0); + r0 = pxsim_Array__push(s.tmp_0, 90); + r0 = pxsim_Array__push(s.tmp_0, 91); + r0 = pxsim_Array__push(s.tmp_0, 92); + r0 = pxsim_Array__push(s.tmp_0, 93); + r0 = pxsim_Array__push(s.tmp_0, 94); + r0 = pxsim_Array__push(s.tmp_0, 108); + r0 = pxsim_Array__push(s.tmp_0, 109); + globals.gestures2tids___6071 = (s.tmp_0); r0 = pxsim_Array__mk(); s.tmp_0 = r0; r0 = pxsim_Array__push(s.tmp_0, 1); r0 = pxsim_Array__push(s.tmp_0, 2); r0 = pxsim_Array__push(s.tmp_0, 121); + globals.buttons___6075 = (s.tmp_0); + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; r0 = pxsim_Array__push(s.tmp_0, 100); r0 = pxsim_Array__push(s.tmp_0, 101); r0 = pxsim_Array__push(s.tmp_0, 102); - globals.buttons___5868 = (s.tmp_0); + globals.pins___6079 = (s.tmp_0); + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, 70); + r0 = pxsim_Array__push(s.tmp_0, 71); + r0 = pxsim_Array__push(s.tmp_0, 72); + globals.pin2tid___6083 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(microcode_MicrobitHost__C4736_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_MicrobitHost_constructor__P4737_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 2001; s.pc = 53; return s.tmp_1; + case 53: + r0 = s.retval; + globals.runtimeHost___4743 = (s.tmp_0); r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "normalized", true); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "tid", 27); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "cup_x", 19); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "cup_y", 20); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "cup_z", 21); + globals.vars2tids___6117 = (s.tmp_0); + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, 27); + r0 = pxsim_Array__push(s.tmp_0, 18); + r0 = pxsim_Array__push(s.tmp_0, 16); + r0 = pxsim_Array__push(s.tmp_0, 22); + globals.sensorTids___6136 = (s.tmp_0); r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "delta", 10); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "classicNormalized", true); + r0 = pxsim_Array__mk(); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "Light", s.tmp_0); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); r0 = pxsim_pxtrt.mkMap(); s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "normalized", true); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "tid", 18); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "Microphone", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "delta", 10); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "classicNormalized", true); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); r0 = pxsim_pxtrt.mkMap(); s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "normalized", false); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "tid", 16); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "Temperature", s.tmp_3); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "delta", 1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "classicNormalized", false); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_3); r0 = pxsim_pxtrt.mkMap(); s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "normalized", true); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "tid", 22); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "Magnet", s.tmp_4); - globals.sensorInfo___5895 = (s.tmp_1); - r0 = pxsim_Array__mk(); - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, "cup_x"); - r0 = pxsim_Array__push(s.tmp_0, "cup_y"); - r0 = pxsim_Array__push(s.tmp_0, "cup_z"); - globals.vars___5901 = (s.tmp_0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "delta", 1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "classicNormalized", true); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_4); + globals.sensorInfo___6138 = (s.tmp_1); r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "fun", fun_inline__P5925); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "fun", fun_inline__P6152); r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "prec", 5); r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, ">", s.tmp_0); r0 = pxsim_pxtrt.mkMap(); s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "fun", fun_inline__P5931); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "fun", fun_inline__P6158); r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "prec", 5); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, ">=", s.tmp_2); r0 = pxsim_pxtrt.mkMap(); s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "fun", fun_inline__P5937); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "fun", fun_inline__P6164); r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "prec", 5); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "<", s.tmp_3); r0 = pxsim_pxtrt.mkMap(); s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "fun", fun_inline__P5943); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "fun", fun_inline__P6170); r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "prec", 5); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "<=", s.tmp_4); r0 = pxsim_pxtrt.mkMap(); s.tmp_5 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "fun", fun_inline__P5949); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "fun", fun_inline__P6176); r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "prec", 5); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "==", s.tmp_5); r0 = pxsim_pxtrt.mkMap(); s.tmp_6 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "fun", fun_inline__P5955); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "fun", fun_inline__P6182); r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "prec", 5); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "!=", s.tmp_6); r0 = pxsim_pxtrt.mkMap(); s.tmp_7 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "fun", fun_inline__P5961); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "fun", fun_inline__P6188); r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "prec", 10); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "+", s.tmp_7); r0 = pxsim_pxtrt.mkMap(); s.tmp_8 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "fun", fun_inline__P5967); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "fun", fun_inline__P6194); r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "prec", 10); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "-", s.tmp_8); r0 = pxsim_pxtrt.mkMap(); s.tmp_9 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "fun", fun_inline__P5973); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "fun", fun_inline__P6200); r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "prec", 20); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "*", s.tmp_9); r0 = pxsim_pxtrt.mkMap(); s.tmp_10 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "fun", fun_inline__P5979); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "fun", fun_inline__P6206); r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "prec", 20); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "/", s.tmp_10); - globals.infixOps___5924 = (s.tmp_1); - globals.editorMode___4638 = (2); - r0 = pxsim_Array__mk(); + globals.infixOps___6151 = (s.tmp_1); + globals.microcodeClassic___4785 = (false); + globals.reportAria___4787 = (false); + r0 = pxsim_pxtcore_mkClassInstance(microcode_App__C4442_VT); s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, "0"); - r0 = pxsim_Array__push(s.tmp_0, "1"); - r0 = pxsim_Array__push(s.tmp_0, "2"); - r0 = pxsim_Array__push(s.tmp_0, "3"); - r0 = pxsim_Array__push(s.tmp_0, "4"); - r0 = pxsim_Array__push(s.tmp_0, "5"); - r0 = pxsim_Array__push(s.tmp_0, "6"); - r0 = pxsim_Array__push(s.tmp_0, "7"); - r0 = pxsim_Array__push(s.tmp_0, "8"); - r0 = pxsim_Array__push(s.tmp_0, "9"); - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); - r0 = pxsim_Array__mk(); - s.tmp_2 = r0; - r0 = pxsim_Array__push(s.tmp_2, "Q"); - r0 = pxsim_Array__push(s.tmp_2, "W"); - r0 = pxsim_Array__push(s.tmp_2, "E"); - r0 = pxsim_Array__push(s.tmp_2, "R"); - r0 = pxsim_Array__push(s.tmp_2, "T"); - r0 = pxsim_Array__push(s.tmp_2, "Y"); - r0 = pxsim_Array__push(s.tmp_2, "U"); - r0 = pxsim_Array__push(s.tmp_2, "I"); - r0 = pxsim_Array__push(s.tmp_2, "O"); - r0 = pxsim_Array__push(s.tmp_2, "P"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); - r0 = pxsim_Array__mk(); - s.tmp_3 = r0; - r0 = pxsim_Array__push(s.tmp_3, "A"); - r0 = pxsim_Array__push(s.tmp_3, "S"); - r0 = pxsim_Array__push(s.tmp_3, "D"); - r0 = pxsim_Array__push(s.tmp_3, "F"); - r0 = pxsim_Array__push(s.tmp_3, "G"); - r0 = pxsim_Array__push(s.tmp_3, "H"); - r0 = pxsim_Array__push(s.tmp_3, "J"); - r0 = pxsim_Array__push(s.tmp_3, "K"); - r0 = pxsim_Array__push(s.tmp_3, "L"); - r0 = pxsim_Array__push(s.tmp_3, ";"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_3); - r0 = pxsim_Array__mk(); - s.tmp_4 = r0; - r0 = pxsim_Array__push(s.tmp_4, "Z"); - r0 = pxsim_Array__push(s.tmp_4, "X"); - r0 = pxsim_Array__push(s.tmp_4, "C"); - r0 = pxsim_Array__push(s.tmp_4, "V"); - r0 = pxsim_Array__push(s.tmp_4, "B"); - r0 = pxsim_Array__push(s.tmp_4, "N"); - r0 = pxsim_Array__push(s.tmp_4, "M"); - r0 = pxsim_Array__push(s.tmp_4, ","); - r0 = pxsim_Array__push(s.tmp_4, "."); - r0 = pxsim_Array__push(s.tmp_4, "/"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_4); - r0 = pxsim_Array__mk(); - s.tmp_5 = r0; - r0 = pxsim_Array__push(s.tmp_5, "<-"); - r0 = pxsim_Array__push(s.tmp_5, "^"); - r0 = pxsim_Array__push(s.tmp_5, " _______ "); - r0 = pxsim_Array__push(s.tmp_5, "ENTER"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_5); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_6 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "btnTexts", s.tmp_1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "defaultBtnBehaviour", defaultBtnBehaviour_inline__P6030); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_7 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "btnRow", 4); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "btnCol", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "behaviour", behaviour_inline__P6039); - r0 = pxsim_Array__mk(); - s.tmp_8 = r0; - r0 = pxsim_Array__push(s.tmp_8, s.tmp_7); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_9 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "btnRow", 4); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "btnCol", 1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "behaviour", behaviour_inline__P6045); - r0 = pxsim_Array__push(s.tmp_8, s.tmp_9); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_10 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "btnRow", 4); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "btnCol", 2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "behaviour", behaviour_inline__P6051); - r0 = pxsim_Array__push(s.tmp_8, s.tmp_10); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_11 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "btnRow", 4); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "btnCol", 3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "behaviour", behaviour_inline__P6056); - r0 = pxsim_Array__push(s.tmp_8, s.tmp_11); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "specialBtnBehaviours", s.tmp_8); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_12 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, 0, s.tmp_6); - r0 = pxsim_Array__mk(); - s.tmp_13 = r0; - r0 = pxsim_Array__push(s.tmp_13, "0"); - r0 = pxsim_Array__push(s.tmp_13, "1"); - r0 = pxsim_Array__push(s.tmp_13, "2"); - r0 = pxsim_Array__push(s.tmp_13, "3"); - r0 = pxsim_Array__push(s.tmp_13, "4"); - r0 = pxsim_Array__mk(); - s.tmp_14 = r0; - r0 = pxsim_Array__push(s.tmp_14, s.tmp_13); - r0 = pxsim_Array__mk(); - s.tmp_15 = r0; - r0 = pxsim_Array__push(s.tmp_15, "5"); - r0 = pxsim_Array__push(s.tmp_15, "6"); - r0 = pxsim_Array__push(s.tmp_15, "7"); - r0 = pxsim_Array__push(s.tmp_15, "8"); - r0 = pxsim_Array__push(s.tmp_15, "9"); - r0 = pxsim_Array__push(s.tmp_14, s.tmp_15); - r0 = pxsim_Array__mk(); - s.tmp_16 = r0; - r0 = pxsim_Array__push(s.tmp_16, "<-"); - r0 = pxsim_Array__push(s.tmp_16, "-"); - r0 = pxsim_Array__push(s.tmp_16, "."); - r0 = pxsim_Array__push(s.tmp_16, "ENTER"); - r0 = pxsim_Array__push(s.tmp_14, s.tmp_16); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_17 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_17, "btnTexts", s.tmp_14); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_17, "defaultBtnBehaviour", defaultBtnBehaviour_inline__P6068); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_18 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_18, "btnRow", 2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_18, "btnCol", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_18, "behaviour", behaviour_inline__P6076); - r0 = pxsim_Array__mk(); - s.tmp_19 = r0; - r0 = pxsim_Array__push(s.tmp_19, s.tmp_18); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_20 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_20, "btnRow", 2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_20, "btnCol", 1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_20, "behaviour", behaviour_inline__P6081); - r0 = pxsim_Array__push(s.tmp_19, s.tmp_20); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_21 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "btnRow", 2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "btnCol", 2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "behaviour", behaviour_inline__P6096); - r0 = pxsim_Array__push(s.tmp_19, s.tmp_21); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_22 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_22, "btnRow", 2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_22, "btnCol", 3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_22, "behaviour", behaviour_inline__P6127); - r0 = pxsim_Array__push(s.tmp_19, s.tmp_22); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_17, "specialBtnBehaviours", s.tmp_19); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, 1, s.tmp_17); - globals.__keyboardLayout___6021 = (s.tmp_12); - r0 = pxsim_pxtcore_mkClassInstance(microcode_App__C4291_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_App_constructor__P4292_mk(s); + s.tmp_1 = microcode_App_constructor__P4443_mk(s); s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1983; s.pc = 51; return s.tmp_1; - case 51: + s.callLocIdx = 2191; s.pc = 54; return s.tmp_1; + case 54: r0 = s.retval; - globals.app___3880 = (s.tmp_0); + globals.app___4044 = (s.tmp_0); r0 = undefined; return leave(s, r0) default: oops() } } } -_main___P4778.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"main.ts","functionName":"
","argumentNames":[]} -_main___P4778.continuations = [ 21 ] +_main___P4790.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"main.ts","functionName":"
","argumentNames":[]} +_main___P4790.continuations = [ 22 ] -function _main___P4778_mk(s) { +function _main___P4790_mk(s) { checkStack(s.depth); return { - parent: s, fn: _main___P4778, depth: s.depth + 1, + parent: s, fn: _main___P4790, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -1833,228 +1940,41 @@ function _main___P4778_mk(s) { tmp_8: undefined, tmp_9: undefined, tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, } } -const _hex4890 = pxsim.BufferMethods.createBufferFromHex("1f00210023002500270029002c002e003100340037003a003e004100450049004e00520057005c00620068006e0075007b0083008b0093009c00a500af00b900c400d000dc00e900f70006011501260137014a015d01720188019f01b801d201ee010b022a024b026e029302ba02e40210033f037003a403dc03170455049704dd0427057505c80520067d06e0064907b8072d08a9082d09b9094d0aea0a900b400cfa0cc00d910e6f0f5a1053115b1272139a14d41520178018f519801b231dde1e") -const _hex5091 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000101111111111110110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110111111111111010000000000000000") -const _hex5112 = pxsim.BufferMethods.createBufferFromHex("000000ffffffff2121ff93c4ff8135fff609249ca378dc52003fad87f2ff8e2ec4a4839f5c406ce5cdc491463d000000") -const _hex12589 = pxsim.BufferMethods.createBufferFromHex("2000000000000000210000005e0000002200000e000e0000230028fe28fe280024004c92ff926400250002651248a64026006c92926ca000270000000e000000280000007c82000029000000827c00002a005438103854002b0010107c1010002c000000907000002d001010101010002e000000606000002f000060100806003000003c42423c00310000447e4000003200004462524c00330000424a4e320034003028247e20003500004e4a4a32003600003c4a4a30003700000262120e00380000344a4a34003900000c52523c003a0000006c6c00003b000000967600003c001028284444003d002828282828003e004444282810003f0000025909060040003c425a560800410078141214780042007e4a4a4a34004300003c424224004400007e42423c004500007e4a4a42004600007e0a0a02004700003c425234004800007e08087e00490000427e4200004a002040423e02004b00007e081462004c00007e404040004d007e0418047e004e00007e04087e004f003c4242423c005000007e12120c005100003c5262bc005200007e12126c00530000244a522400540002027e0202005500003e40403e005600001e70701e0057007e2018207e00580042241824420059000608700806005a000062524a46005b00007e424200005c000006081060005d000042427e00005e000804020408005f00808080808000600000000204000061000030484878006200007e4848300063000030484848006400003048487e006500003068585000660000107c12040067000018a4a478006800007e08087000690000487a4000006a000040847d00006b00007e102840006c0000427e4000006d007808300870006e000078080870006f00003048483000700000fc24241800710000182424fc0072000078100810007300005058682800740000083e48200075000038404078007600001860601800770038403040380078000048303048007900005ca0a07c007a000048685848007b000008364100007c000000fe0000007d000041360800007e00000804080400a000000000000000a10000007a000000a200003048fc4800a30090fc92928400a400542844285400a5002a2c782c2a00a6000000ee000000a7000094aaaa5200a800000200020000a9003e414955413eaa0000242a2e0000ab00102854284400ac00001010107000ad00001010101000ae003e415d45413eaf00000202020200b000000814140800b1008888be888800b2000024322c0000b30000222a140000b400000004020000b50000f840207800b6000c1e7e027e00b700000010000000b800000080400000b90000243e200000ba0000242a240000bb00442854281000bc00025f70f84000bd00021f90c8b000be0011557af84000bf000030484d2000c000601916186000c100601816196000c200601a151a6000c300601a151a6100c400601914196000c500601a151a6000c6007c0a7e4a4200c700001ea1611200c800007c55564400c900007c56554400ca00007c56554600cb00007c55544500cc0000457e440000cd0000447e450000ce0000467d460000cf0000457c450000d000087e4a423c00d100007e09127d00d200003845463800d300003846453800d400003846453a00d500003a45463900d600003845443900d700442810284400d80000fc724e3f00d900003c41423c00da00003c42413c00db00003c42413e00dc00003c41403d00dd00040872090400de00007e24241800df00007c025a2400e0000030494a7800e10000304a497800e20000304a497a00e3000032494a7900e40000304a487a00e50000304a4d7a00e600304878685000e7000018a4642400e8000030695a5000e90000306a595000ea0000306a595200eb0000306a585200ec0000497a400000ed0000487a410000ee00004a79420000ef00004a78420000f00000304a4b3d00f100007a090a7100f2000030494a3000f30000304a493000f40000304a493200f5000032494a3100f60000304a483200f700101054101000f800007068583800f900003841427800fa00003842417800fb00003842417a00fc00003842407a00fd0000b84241f800fe0000ff24241800ff00005ca1a07d000001601915196000010100304a4a7a000201611a16196000030100314a4a790004013c0a094abc00050100182464bc000601003846452800070100304a4948000801003846452a00090100304a494a000a010038444528000b010030484a48000c010038454629000d010030494a49000e01007c454639000f0100314a497e001001087e4a423c00110130484c7e04001201007d55554500130100326a5a52001401007d56564500150100316a5a51001601007c55544400170100306a5850001801003f65a521001901001874ac28001a01007c555645001b010030695a51001c010038465536001d0100304a49f2001e010039465635001f0100314a4af100200100384455340021010018a4a578002201001ea1691a0023010018a6a578002401007812117a0025017e080a7102002601047e147e04002701047e0c08700028010002457e450029010002497a41002a0100457d4500002b01004a7a4200002c0100014a7a49002d0100014a7a41002e0100217fa100002f0100247da00000300100447d440000310100487840000032017e0022423e0033013d0040847d0034012040463d0600350100800af90200360100bf440a3100370100bf4814200038010078102848003901007c404241003a0100467d4000003b01003fa06020003c0100a17f2000003d01007c414241003e0100457e4100003f01007e40484000400100427e4008004101107e48404000420100527e4800004301007c0a117c00440100780a097000450100bf42043f00460100bc440438004701007c09127d00480100790a09700049010a06780870004a01003f02847f004b01003c048478004c013945454539004d0100324a4a32004e013946464639004f0100314a4a310050013a4544463900510132494832010052013c427e4a420053013048306850005401007c163548005501007812091000560100bf49093600570100bc480408005801007d1635480059010079120910005a010048565524005b0100505a6928005c010048565526005d0100505a692a005e010012a56912005f010028ac741400600100485556250061010050596a290062010101bf410100630100049f641000640104057e050400650100083d4a2100660102127e120200670100183e5820006801003a414239006901003a414279006a01003d41413d006b01003a42427a006c010039424239006d010039424279006e01003a45453a006f01003a45457a0070013a41403a010071013a41407a01007201001f60a01f007301001c60a03c00740178221122780075013842314238007601081261120800770100b84241fa00780104097009040079010064564d44007a0100486a5948007b010064544d44007c010048685a48007d010064554e45007e010048695a49007f0100087c0204008f01003452523c00920100887e090200a0013c42423c0806a101003048483008af01003e403e0806b001003840781008b501006a5a4a4e00b601005878585800d101003845463900d2010030494a3100e601003845563500e7010030494af100fa0100742a750000fb0100304c4a7d00fc0178147e554400fd0130487a695000fe010078744e3d00ff0100706a59380018020012a569120019020028ac7414001a020101bf4101001b0200049f641000bb0200000c0a0000bc0200000a060000bd020000060a0000c602000201020000c702000102010000c902000202020000d802000102020100d902000002000000da02000205020000db02000040800000dc02000201020100dd02020100020100740300000201000075030000804000007a030000c08000007e03000096760000840300000300000085030200030002008603037c12127c008703000010000000880303007e4a4200890303007e087e008a030300427e42008c03033c42423c008e0303000e700e008f03035c62625c00900302003b400200910378141214780092037e4a4a4a34009303007e0202020094036058465860009503007e4a4a420096030062524a46009703007e08087e0098033c4a4a4a3c00990300427e4200009a03007e081462009b036018061860009c037e0418047e009d03007e04087e009e0300424a4a42009f033c4242423c00a003007e02027e00a103007e12120c00a30300665a424200a40302027e020200a503060870080600a60318247e241800a703422418244200a8030e107e100e00a9035c6202625c00aa0300457c450000ab03040970090400ac030030484a7900ad030030685a5100ae0378100a09f000af03003a41200000b0033a4043403a00b103003048487800b20300fe25251a00b3030c30c0300c00b403344a4a4a3000b503003068585000b603021aa6a24200b7033c080404f800b803003c4a4a3c00b903003840200000ba03007820504800bb03641212227c00bc03fc2020103c00bd03182040201800be03112d2ba94100bf03003048483000c003087808780800c103f82424241800c2031824a4a44800c303304848582800c403000838482800c503384040403800c6031c20f8241800c703c4281028c400c8031c20fc201c00c903304820483000ca03000238422000cb03384240423800cc0330484a493000cd03384042413800ce03304822493000d0033c52525c2000d10310344a3c0800d203067804020400d303120a7c020400d4030d7009040800d5031824ff241800d603384828483800d70348302221d800da031c2221a14200db031824a4a44200dc037e1212020200dd0300fc24240400de033e2010087c00df030c0ac9281800e003700c621c7000e10301092516f800e2039ea0bea07e00e30398a0b8a07800e4030c1214107e00e503001028207800e603be9088887000e70348544e443800e803245252524c00e903285454544800ea0364524c526400eb03086458640800ec03385454542200ed03306848682400ee03184a7e4a1800ef031848ff0a0800f003483020205800f10378a4a4a49800f203304848485000f303006080847d00f4033c4a4a4a3c00f5030030585848000004007c555644000104007c55544500020401013f8579000304007c0605040004043c4a4a422400050400244a522400060400427e420000070400457c45000008042040423e020009047c027e4830000a047e087e4830000b0402027e0a72000c04007c102a45000d047c2112087c000e040c5152523d000f043f20e0203f00100478141214780011047e4a4a4a300012047e4a4a4a34001304007e020202001404c07c427ec0001504007e4a4a4200160476087e087600170424424a4a34001804007e08047e001904007d120a7d001a04007e081462001b04403c02027e001c047e0418047e001d04007e08087e001e043c4242423c001f047e0202027e002004007e12120c002104003c42422400220402027e02020023040e5050503e00240418247e241800250442241824420026043f2020bf600027040e1010107e0028047e407e407e0029043f203fa07f002a04027e484830002b047e4848307e002c04007e484830002d0424424a4a3c002e047e183c423c002f04006c12127e0030043048487840003104003c4a4a3100320400786850200033040078080808003404c0704878c000350430686850000036044830783048003704004058683000380478402010780039047942221279003a040078203048003b044030080878003c047810201078003d047810101078003e043048484830003f047808080878004004fc24242418004104304848485000420408087808080043041ca0a0a07c0044041824ff241800450400483030480046043c2020bc60004704182020207800480478407840780049043c203ca07c004a040878505020004b047850502078004c040078505020004d044858683000004e047830304830004f0450282878000050040030696a500051040032686a50005204023f0a887000530400780a09080054040030685848005504005058682800560400487a4000005704004a784200005804004080847d0059047008785020005a047810785020005b04047e141060005c040078223148005d047841221078005e0418a1a2a279005f043c20e0203c006204027f4a4830006304087e5850200070040e107e100e00710418207820180072043c4a4a4a3c0073043068586830007404001e70180c0075040018603010009004007e020203009104007808080c009204087e0a0a0200930420782808080096043b043f043be0970424183c1824c09a04003f040a31c09b04003c101824c0ae04060870080600af040c10e0100c00b004161870181600b1042c30e0302c00b20421120c1221c0b3040024181824c0ba047e0808087000bb04007e08087000d804003452523c00d904002868583000e20400457d450000e304004a7a420000e8043c4a4a4a3c00e904003058583000ee04003d41413d00ef04003a42427a00d005681020285000d105484848784000d205004830600000d305080808780800d405680808087800d505000008780000d605080818680800d705087808087800d805784050487800d905000008180000da0504040404fc00db05484848483800dc050e4848281800dd05087848487800de05582010487000df05000004fc0000e005004040487800e105000878483800e205487840281800e305041c0404fc00e405485848483800e50504f820140800e605485060685000e705f40424241c00e805080808087000e905785058403800ea05487808087800f005087800087800f105081800087800f205081800081800f305000010080000f405100800100800021e7c5455542800031e007e484930000a1e007c454438000b1e003049487e001e1e007c151404001f1e001079140800401e7e0419047e00411e780832087000561e007c15140800571e00fc25241800601e004854552400611e0050586a28006a1e04047d0404006b1e00083d482000801e7c2112207c00811e384132403800821e7c2012217c00831e384032413800841e7c2110217c00851e384230423800f21e040972080400f31e00b84142f800a3207e0a7a120a00a420a8fcaa828400a720087e2a1c0800ab200098a4a6bf02ac20183c5a5a4200af20627f224438009021103854101000912108047e0408009221101054381000932110207e201000942110381010381095212844fe442800") -const _hex6713 = pxsim.BufferMethods.createBufferFromHex("20000000000000000000000000000000000000000000000000002100000000000006fc0000000000000000000000000000000000220000001c00000000001c0000000000000000000000000000002300a000f807a000f807a00000000000000000000000000000002400000018022404460c8803000000000000000000000000000025003802c4017800200390040803000000000000000000000000260080037804a4041803800340040000000000000000000000002700000000001c00000000000000000000000000000000000000280000000000f8010606010800000000000000000000000000002900000001080606f801000000000000000000000000000000002a00040014000e001400040000000000000000000000000000002b0040004000f8034000400000000000000000000000000000002c000000000000090006000000000000000000000000000000002d000000800080008000000000000000000000000000000000002e000000000000060000000000000000000000000000000000002f00000c800360001c000300000000000000000000000000000030000000f80304040404f80300000000000000000000000000003100000004040404fc07000400040000000000000000000000003200000008060405c4043804000000000000000000000000000033000000080244044404b803000000000000000000000000000034000000800170010801fc070001000000000000000000000000350000023c0424042404c403000000000000000000000000000036000000f0034804440488030000000000000000000000000000370000000400c40734000c00000000000000000000000000000038000000b80344044404b803000000000000000000000000000039000000780284048802f00100000000000000000000000000003a000000000030060000000000000000000000000000000000003b000000000018090006000000000000000000000000000000003c004000a000a000a000100100000000000000000000000000003d002001200120012001200100000000000000000000000000003e0000001001a000a000a00040000000000000000000000000003f000000080084066400180000000000000000000000000000004000f0030c04c20822092409f80900000000000000000000000041000007f8008400f8000007000000000000000000000000000042000000fc0744044404b803000000000000000000000000000043000000f001080204040404080200000000000000000000000044000000fc0704040802f001000000000000000000000000000045000000fc07440444044404000000000000000000000000000046000000fc07440044004400000000000000000000000000000047000000f00108024404c803000000000000000000000000000048000000fc0740004000fc070000000000000000000000000000490000000404fc070404040400000000000000000000000000004a000000000200040004fc0300000000000000000000000000004b000000fc074000f0000c0304040000000000000000000000004c000000fc0700040004000400000000000000000000000000004d000000fc0738007000fc0700000000000000000000000000004e000000fc073800c003fc0700000000000000000000000000004f000000f80304040404f803000000000000000000000000000050000000fc07840084004400780000000000000000000000000051000000fc0102020206fc09000000000000000000000000000052000000fc074400c4013806000000000000000000000000000053000000180224044404880300000000000000000000000000005400000004000400fc070400040000000000000000000000000055000000fc0300040004fc03000000000000000000000000000056000c00f0030004f0030c00000000000000000000000000000057007c008007e001f0010007fc0000000000000000000000000058000404b8034000b80304040000000000000000000000000000590004003800c00730000c0000000000000000000000000000005a0004040407e4041c04040400000000000000000000000000005b0000000000ff0f0108010800000000000000000000000000005c0003001c0060008003000c00000000000000000000000000005d00000001080108ff0f000000000000000000000000000000005e004000380004003800400000000000000000000000000000005f00000800080008000800080000000000000000000000000000600000000000020004000000000000000000000000000000000061000000200390049004e007000000000000000000000000000062000000fc0710041004e003000000000000000000000000000063000000c001200210043004000200000000000000000000000064000000e00310041004fc07000000000000000000000000000065000000e00390049004e0040000000000000000000000000000660000001000f80714001400000000000000000000000000000067000000b806440944093c09040600000000000000000000000068000000fc0710001000e0070000000000000000000000000000690000000000f4070000000000000000000000000000000000006a00000800080008fd07000000000000000000000000000000006b000000fe078000e001100610040000000000000000000000006c0000000000fc030004000400000000000000000000000000006d00f00710001000e0071000e0070000000000000000000000006e000000f00710001000e00700000000000000000000000000006f000000e00310041004e003000000000000000000000000000070000000fc0f04010401f800000000000000000000000000000071000000f80004010401fc0f000000000000000000000000000072000000f00720001000100000000000000000000000000000007300000060029004900420030000000000000000000000000000740000001000fc0310041004000000000000000000000000000075000000f00300040004f007000000000000000000000000000076003000c0030004c003300000000000000000000000000000007700f0000007e003c0010007f000000000000000000000000000780010046003800060031004000000000000000000000000000079000c0870088007f0000c0000000000000000000000000000007a000000000410079004700410040000000000000000000000007b0000004000be070108010800000000000000000000000000007c0000000000ff0f0000000000000000000000000000000000007d00000001080108be07400000000000000000000000000000007e00800040004000800080004000000000000000000000000000a000000000000000000000000000000000000000000000000000a1000000d80f0000000000000000000000000000000000000000a2000000e0011002f80710021001000000000000000000000000a30000004006f805440444040804000000000000000000000000a4000000f001100110011001e801000000000000000000000000a50044017801c007780144010000000000000000000000000000a6000000df0f0000000000000000000000000000000000000000a7000000000000004004b808240924094407c000000000000000a800000000000400000004000000000000000000000000000000a900e00010010802e40414051405140404021801e00000000000aa0012002a002a003c0000000000000000000000000000000000ab00800040012002800040012002000000000000000000000000ac0040004000400040004000c003000000000000000000000000ad00000080008000800000000000000000000000000000000000ae001c0022005900490022001c00000000000000000000000000af00000000000400040004000400000000000000000000000000b000080014001400080000000000000000000000000000000000b10000002004200420042004fc05200420042004200400000000b200020031002900260000000000000000000000000000000000b300100023002900160000000000000000000000000000000000b400000000000000040002000100000000000000000000000000b5000000f80f000200020001f801000200000000000000000000b60000000000000020007800fc00fc0ffc070000000000000000b70000000000000000004000e000400000000000000000000000b800000000000000000a00040000000000000000000000000000b900000002003e00000000000000000000000000000000000000ba001c002200220022001c000000000000000000000000000000bb002002400180002002c0010000000000000000000000000000bc0000000400fc0000068001600018038402c007000200000000bd00000004007c040003c0003000080024062005c00400000000be0040008400940068060001c000300208038402c00700020000bf000000000780086c0800040000000000000000000000000000c0000008800771010a0170018007000800000000000000000000c1000008800770010a0171018007000800000000000000000000c2000004c003b9008500b900c003000400000000000000000000c3000006c201b9008500ba00c101000600000000000000000000c40000040007f1008c008c00f100000700040000000000000000c500000c800372010d0172018003000c00000000000000000000c60000040003c000b0008c00fc07440444044404040400000000c70000007c0082000101010b0105820080000000000000000000c8000000f80f89088a0888080808000000000000000000000000c9000000f80f88088a0889080808000000000000000000000000ca000000fc074504450446040604000000000000000000000000cb000000fc074504440444040504000000000000000000000000cc000100fa0f0000000000000000000000000000000000000000cd000000fa0f0100000000000000000000000000000000000000ce000100fd070100000000000000000000000000000000000000cf000100fc070000010000000000000000000000000000000000d00000004000fc074404440404040802f0010000000000000000d1000000fc0709003100c2010102fd0700000000000000000000d2000000e00310040b08080808081004e0030000000000000000d3000000e0031004080808080b081004e0030000000000000000d4000000f00108020504050405040802f0010000000000000000d5000000f00109020504060406040902f0010000000000000000d6000000f00108020504040405040802f0010000000000000000d700000000000402080190006000600090000801040200000000d8000000f00508038404440424041802f4010000000000000000d9000000f8030104020804080004f80300000000000000000000da000000f8030004040802080104f80300000000000000000000db000000fc010102010401040102fc0100000000000000000000dc000000fc010102000400040102fc0100000000000000000000dd00080018006000860f61001800080000000000000000000000de000000fc071001100110011001e00000000000000000000000df000000fc070400020072068c04000300000000000000000000e00000002003910492049402e007000000000000000000000000e10000002003900494049202e107000000000000000000000000e20000002003940492049202e407000000000000000000000000e30000002403920492049402e207000000000000000000000000e40000002003940490049402e007000000000000000000000000e5000000200394049a049402e007000000000000000000000000e60000002003900490049004e003a00490049004e00400000000e700000070008800040b04058800000000000000000000000000e8000000c003a30294049004e004000000000000000000000000e9000000c003a00294049304e004000000000000000000000000ea000000c003a40292049404e004000000000000000000000000eb000000c003a40290049404e004000000000000000000000000ec000300f4070000000000000000000000000000000000000000ed000000f4070300000000000000000000000000000000000000ee000400f2070400000000000000000000000000000000000000ef000400f0070400000000000000000000000000000000000000f0000000c0032a0424043c04e203000000000000000000000000f1000000f007260012001400e207000000000000000000000000f2000000c0012102120414042002c00100000000000000000000f3000000c0012002140412042102c00100000000000000000000f4000000c0012402120412042402c00100000000000000000000f5000000c4012202120414042202c00100000000000000000000f6000000c0012402100414042002c00100000000000000000000f700000000004000400040004c06480440004000400000000000f8000000c00520021005d0042002d00100000000000000000000f9000000f003030404040002f007000000000000000000000000fa000000f003000404040302f007000000000000000000000000fb000000f403040402040402f407000000000000000000000000fc000000f003040400040402f007000000000000000000000000fd000800700082090107f0000800000000000000000000000000fe000000ff0f0801040104018800700000000000000000000000ff000c087108800780017900040000000000000000000000000000010004c003b9008500b900c003000400000000000000000000010100002003940494049402e40700000000000000000000000002010008800771010a0171018007000800000000000000000000030100002203940494049402e207000000000000000000000000100100004000fc074404440404040802f001000000000000000011010000c003200428042804fe0708000000000000000000000012010000fc07450445044504040400000000000000000000000013010000c003a40294049404e0040000000000000000000000001a010000f80f89088a08890808080000000000000000000000001b010000c003a20294049204e004000000000000000000000000280102000100fd07010001000000000000000000000000000000290104000200f4070400020000000000000000000000000000002a010100fd0701000000000000000000000000000000000000002b010400f407040000000000000000000000000000000000000043010000f80f1000640082030104f80f0000000000000000000044010000f007200014001300e10700000000000000000000000047010000fc0709003200c2010102fc070000000000000000000048010000f007220014001200e1070000000000000000000000004c010000f00108020504050405040802f00100000000000000004d010000c0012402140414042402c001000000000000000000004e010000e003100409080a0809081004e00300000000000000004f010000c2012402140414042202c0010000000000000000000052010000f0010802040404040404fc074404440444040404000053010000c003200410042002c001a00290049004a004e004000068010000fc010102010402040102fd010000000000000000000069010000f403020404040402f2070000000000000000000000006a010000fc010102010401040102fc01000000000000000000006b010000f003040404040402f0070000000000000000000000006c010000fc010102020402040102fc01000000000000000000006d010000f203040404040402f2070000000000000000000000009201000800082007f80024000400000000000000000000000000a0010000f00108020404040404040c02f3010000000000000000a1010000c0012002100410043002cc0100000000000000000000af010000fc010002000400040002fc0104000300000000000000b0010000f003000400040002f0070c0000000000000000000000cd010008800771010a0171018007000800000000000000000000ce0100002003920494049202e107000000000000000000000000cf010100fd070100000000000000000000000000000000000000d0010200f4070200000000000000000000000000000000000000d1010000e003100409080a0809081004e0030000000000000000d2010000c0012202140414042202c00100000000000000000000d3010000fc010102020402040102fc0100000000000000000000d4010000f103020404040202f107000000000000000000000000d5010000f8030204010801080204f80300000000000000000000d6010000f003050401040502f007000000000000000000000000d7010000f8030204010801080304f80300000000000000000000d8010000f003040401040402f007000000000000000000000000d9010000f8030204000801080204f80300000000000000000000da010000f003050401040502f007000000000000000000000000db010000f8030304010801080204f80300000000000000000000dc010000f003040401040402f007000000000000000000000000f8010000f80f1100630084030004f80f00000000000000000000f9010000f007210016001400e00700000000000000000000000051020000c003200410041004f00700040000000000000000000061020000f004080904090409fc07000000000000000000000000bb02000018001400000000000000000000000000000000000000c702000002000400180038000400020000000000000000000000c902000000000000040004000400040004000000000000000000ca02000000001000080004000200000000000000000000000000cb02000002000400040008001000000000000000000000000000d902000000006000600000000000000000000000000000000000ea02000000007e00400040004000000000000000000000000000eb02000000007e0008000800080000000000000000000000000000030000040008000800100020000000000000000000000000000103000000002000100008000400000000000000000000000000040304000400040004000000000000000000000000000000000007030000000000000600060000000000000000000000000000000c0300000400080030007000080004000000000000000000000091030004c003b8008400b800c00300040000000000000000000092030000fc07440444044404a404b8030000000000000000000093030000fc07040004000400040000000000000000000000000094030006c005380404043804c00500060000000000000000000095030000fc0744044404440404040000000000000000000000009603000004040407c40424041c0404040000000000000000000097030000fc074000400040004000fc070000000000000000000098030000f00108024404440444040802f001000000000000000099030000fc0700000000000000000000000000000000000000009a030000fc0740002000d0000c030404000000000000000000009b030004c003380004003800c0030004000000000000000000009c030000fc070800700080010003f0000800fc070000000000009d030000fc0708003000c0010002fc07000000000000000000009e030000040444044404440444040404000000000000000000009f030000f00108020404040404040802f0010000000000000000a0030000fc070400040004000400fc0700000000000000000000a1030000fc078400840084004400780000000000000000000000a303000004040c07b40444040404040400000000000000000000a403040004000400fc0704000400040000000000000000000000a50304000c003000c00730000c00040000000000000000000000a6030000e00010010802fc07080208021001e000000000000000a70304041803e000a00018030404000000000000000000000000a80300003c0040008000fc07800040003c000000000000000000a9030000f00508060404040004040806f0050000000000000000b1030000c003200410042002e003100400000000000000000000b2030000fe0f0101110211022e02c00100000000000000000000b30308001800e000000fc0003800000000000000000000000000b4030000cc03320232042204c403000000000000000000000000b5030000600390049004b0040002000000000000000000000000b6030000e10019010502030a010c000000000000000000000000b7030000f803100008000800f00f000000000000000000000000b8030000f801440242044402f801000000000000000000000000b9030000f0030004000000000000000000000000000000000000ba030000f0078000c00020031004000000000000000000000000bb030204820364003800c0030004000000000000000000000000bc030000f80f000200020001f801000200000000000000000000bd031000600080030006c0013000000000000000000000000000be030100cf0031011102110a010c000000000000000000000000bf030000e003100410042004c003000000000000000000000000c00300001000f00710001000f003100400000000000000000000c1030000e00f1001080208021001e00000000000000000000000c2030000f0000801080a100c0000000000000000000000000000c3030000e003100410043004d003100000000000000000000000c403000010001000f00310041000000000000000000000000000c5030000f003000400040004f003000000000000000000000000c6030000e00010010802fe0f08021001e0000000000000000000c70308083006c001600118060808000000000000000000000000c8030000f80100010002fe0f00020001f8000000000000000000c9030000e003100400048003000400043004c00300000000000001040000fc07450444044404050400000000000000000000000010040004c003b8008400b800c00300040000000000000000000011040000fc07440444044404440480030000000000000000000012040000fc07440444044404a404b8030000000000000000000013040000fc0704000400040004000000000000000000000000001404000ec0033c02020202020202fe03000e000000000000000015040000fc074404440444040404000000000000000000000000160404040406980160004000fc07400060009801040604040000170400000802440444044404b80480030000000000000000000018040000fc0700028001400030000800fc07000000000000000019040000fc0701028201420031000800fc0700000000000000001a040000fc0740004000b00008030404000000000000000000001b0400040002f0010c0004000400fc07000000000000000000001c040000fc070800700080010003f0000800fc070000000000001d040000fc074000400040004000fc07000000000000000000001e040000f00108020404040404040802f00100000000000000001f040000fc070400040004000400fc070000000000000000000020040000fc07840084008400440078000000000000000000000021040000f00108020404040404040802000000000000000000002204040004000400fc0704000400040000000000000000000000230404001804e0040003e000180004000000000000000000000024040000e00010010802fc07080208021001e000000000000000250404041803e000a0001803040400000000000000000000000026040000fe030002000200020002fe03000e0000000000000000270400003c004000400040004000fc070000000000000000000028040000fc07000400040004fc07000400040004fc070000000029040000fe03000200020002fe03000200020002fe03000e00002a04040004000400fc07400440044004400480030000000000002b040000fc07400440044004400480030000fc070000000000002c040000fc0740044004400440048003000000000000000000002d04000008024404440444044802f001000000000000000000002e040000fc0740004000f00108020404040404040802f00100002f04000038044403c40044004400fc0700000000000000000000300400002003900490049002e00700000000000000000000000031040000f0014802240424042404c4030000000000000000000032040000f007900490049004600300000000000000000000000033040000f00710001000100000000000000000000000000000003404000ee003180208020802f803000e0000000000000000000035040000c003a00290049004e00400000000000000000000000036041004300640018000f007800040013006100400000000000037042000100290049004e004000300000000000000000000000038040000f0070002c0012000f00700000000000000000000000039040000f0070202c4012400f2070000000000000000000000003a040000f0078000c000200310040000000000000000000000003b0400040006f00110001000f0070000000000000000000000003c040000f0076000800180036000f007000000000000000000003d040000f007800080008000f0070000000000000000000000003e040000c0012002100410042002c001000000000000000000003f040000f007100010001000f00700000000000000000000000040040000fc0f080104010401840078000000000000000000000041040000c00120021004100420020000000000000000000000004204000010001000f00710001000000000000000000000000000430404083808c00480037800040000000000000000000000000044040000f80004010401ff0f0401040184007800000000000000450410043002c00140013006100400000000000000000000000046040000f803000200020002f803000e0000000000000000000047040000f000000100010001f00700000000000000000000000048040000f007000400040004f00700040004f00700000000000049040000f803000200020002f80300020002f803000e000000004a04000010001000f007800480040003000000000000000000004b040000f00780048004800400030000f00700000000000000004c040000f00780048004800400030000000000000000000000004d04200290049004a002c00100000000000000000000000000004e040000f00780008000c003200410042004c0030000000000004f040000e004100310011001f00700000000000000000000000051040000c003a40290049404e0040000000000000000000000000011000000000400040004000400040004003c00000000000000011100000000040004003c000000040004007c000000000000000211000000003c002000200020002000200020000000000000000311000000003c002400240024002400240024000000000000000411000000003c002400240000003c00240024000000000000000511000000003400340034003400340034003c000000000000000611000000003c00240024002400240024003c000000000000000711000000003c00280028002800280028003c000000000000000811000000003c0028003c0000003c0028003c0000000000000009110000200020001000080006000800100020002000000000000a110000400020001c002000400020001c0020004000000000000b110000000018002400240024002400240018000000000000000c11000040002400240014000c001400240024004000000000000d110000440024001c002400400024001c0024004400000000000e11000040004800480028001c002800480048004000000000000f11000010001400140014001400140014003c000000000000001011000000003c0034003400340034003400340000000000000011110000240024003c002400240024003c00240024000000000012110000040034004c004c004e004c004c0034000400000000001311000000003c00200020002000040004003c000000000000001411000000003c002000200000003c00200020000000000000001511000000003c002000200000003c00240024000000000000001611000000003c002000200000003c0028003c000000000000001711000000003c00240024000000040004003c00000000000000181100000000340034003c0000003c0020002000000000000000191100000000340034003c000000340034003c000000000000001a1100000000340034003c00000014002e0014000000000000001b11000000001c005c007c007c007c005c001c000000000000001c11000000003c0024003c0000003c0028003c000000000000001d11000000001c00540074007400740054001c000000000000001e11000000003c0028003c000000040004003c000000000000001f11000000003c0028003c0000003c00200020000000000000002011000000003c0028003c0000003c00240024000000000000002111000000003c0028003c00000030000c0030002000000000002211000000003c003c0020001c00200004003c000000000000002311000000003c003c0020001c0020003c0024002400000000002411000000003c003c0020001c0020003c003c000000000000002511000000003c003c0020001c0020001c0020000000000000002611000000003c003c0020001c0020001c0024000000000000002711000000003c0028003c00000034000c0034000000000000002811000000003c0028003c00000034000e0034002000000000002911000000003c0028003c0000003c00340034000000000000002a11000000003c0028003c0000003c0024003c002000000000002b11000000001c00580078007800780058001c000000000000002c11000000001e0054004c0060004c0054001e000000000000002d110000200020001c0020002000040004003c000000000000002e110000200010000c00300000003c00200020000000000000002f110000200030000c00300000003c002400240000000000000030110000200020001c0020000000340034003c0000000000000031110000200030000c00300000003c0024003c0000000000000032110000200030000c00300000003c0028003c000000000000003311000020001c0020003c0028003c0000003c0000000000000034110000000020001c0020001c0030001c00200000000000000035110000200010000c003000000018002400180000000000000036110000200020001c002000200024001c00240020000000000037110000200010000e001000200014000e00140020000000000038110000200020001c0020002000040014003c0000000000000039110000200020001c00200000003c00340034000000000000003a110000400030001c00600000003c0024003c000000000000003b110000200010000c003000000014002e0014000000000000003c110000200020001000080006000800100010000000000000003d110000400020001c005000400020001c0030002000000000003e110000000010001000080006000800100020002000000000003f110000000020001c006000000030001c00200040000000000040110000000020003000280024002600280030002000000000004111000000001800240018000000040004003c0000000000000042110000000018002400180000003c002400240000000000000043110000000018002400180000003c0024003c0000000000000044110000000018002400180000003c0028003c00000000000000451100000000180024001800000030000c001000200000000000461100000000180024001800000038002c0030000000000000004711000000001800240018000000180024001800000000000000481100000000180024001800000034000c003400000000000000491100000000180024001800000034000e0034002000000000004a110000000018002400180000003c00340034000000000000004b110000000018002400180000003c0024003c000000000000004c11000000001000280028002c002800280010000000000000004d110000200034000c00340000001800240018000000000000004e11000040002400240014000c001400240024000000000000004f110000440024001c002400000064001c0024002400000000005011000000002400240014000c0014002400240040000000000051110000240024001c002400400014001c00240044000000000052110000200034000e0034000000140014003c0000000000000053110000200028001c002800000014002e0014000000000000005411000040004800480028001c002800280048000000000000005511000000004800280028001c002800480048004000000000005611000000003c0024003c0000003c0028003c0000000000000057110000140014005c007400740074005c00140014000000000058110000000014002e001400000014002e00140000000000000059110000000034004c004c004c004c004c0034000000000000005a1100000000040004003c0000003c00240024000000000000005b11000000003c0020000000200030000c0030002000000000005c11000000003c0020002000000024001c0024000000000000005d11000000003c0020002000000034004e0034000000000000005e11000000003c00240024000000340034003c000000000000005f110000000000000000000000000000000000000000000000006011000000000000000000000000000000000000000000000000611100000000000000000000000000000000fe0010000000000062110000000000000000000000000000fc001000fe00000000006311000000000000000000000000000000007e0024000000000064110000000000000000000000000000fe002400fe0000000000651100000000000000000000000000001000fe00000000000000661100000000000000000000000008007e0000007e00000000006711000000000000000000000000000028007c0000000000000068110000000000000000000000002800fc000000fe000000000069110000400040004000400060004000400040004000000000006a11400040004000400040004000400000007e001000000000006b1140004000400040004000400000007c0010007e00000000006c11000040004000400060004000400000007e000000000000006d114000400040006000400040004000600040004000400000006e1100004000400040004000c0004000400040004000000000006f11400040004000c00040004000400060007f000000000000007011400040004000c0004000400060007e0000007f000000000071110000400040004000c0004000400000007e000000000000007211400040004000c000400040004000c000400040004000000073110000400040004000400040004000400040004000400000007411400040004000400040004000400000007e000000000000007511000000000000000000000000000000007e000000000000007611000040004000400040006000400040005e00480000000000771100004000400040004000c000400040005e004800000000007811000040004000400040006000400040005e005400000000007911400040006000400040006000400040005e005400000000007a110000400040004000400060004000400048005e00400000007b1100004000400040004000c0004000400048005e00400000007c110000400040004000400040004000400048005e00400000007d110000400040004000400060004000400054005e00400000007e1100004000400040004000c0004000400054005e00400000007f11000040004000400060004000400008007e000000000000008011800080008000c000800080000800fe000000fe00000000008111800080008000c000800080001400fe000000fe000000000082110000c000c000c000c000e000c000c000c000c0000000000083110000c000c000c000c000e001c000c000c000c000000000008411400040004000400040004000400000007e00280000000000851100004000400040004000400000007e0024007e00000000008611400040006000400040006000400014007e000000000000008711c000c000c000e000c000c000c000e000c000c000c00000008811400040006000400040006000400000007e000000000000008911400040004000c0004000400040000000fe001000000000008a11400040004000c000400040000000fc001000fe00000000008b11c000c000c000c000c000c000c000c000fe008000000000008c11400040004000c000400040001400fe000000fe00000000008d110000a000a000a000a000a001a000a000a000a000000000008e1140004000c00040004000c00040000000fe001000000000008f1140004000c00040004000c00040000800fe00000000000000901140004000c00040004000c0000000fc000000fe0000000000911140004000c00040004000c00040001400fe00000000000000921140004000c0004000c00040001400fe000000fe00000000009311a000a000a000a000a000a001a000a000a000a000a0000000941140004000c00040004000c00040000000fe0000000000000095110000a000a000a000a000a001a000a000a000a0000000000096110000a000a000a000a000a000a000a000a000a000a000000097114000c000c000c000c000c000c0008000be0080000000000098110000000000000000000000000000f8007e00100000000000991100000000000000000000000000003c00fe002400000000009a110000400040004000400060004000400040005e00400000009b1100004000400040004000c0004000400040005e00400000009c110000400040004000400040004000400040005e00400000009d11000000000000000000000000000000005e000000000000009e110000000000000000000040000000000000000000000000009f11000000000000000040000000000008007e00000000000000a01100008000800080008000a001800080008000800000000000a111000000000000000040000000000000007e00000000000000a211000000000000400000000000000040000000000000000000a311000040004000400040004000400040005e00480000000000a41100004000400040004000c000400040005e00540000000000a51100000000000000000000000024003e00fc00240000000000a611400040004000400040004000400000007e00280000000000a71140004000400040004000400000007e0024007e0000000000a81100000000000100010001000100010001000f000000000000a9110000000000010001000f000000010001000f000000000000aa110000000000010001000f0000000c00030004000800000000ab1100000000000e000800080008000800080008000800000000ac1100000000000f000800080008000d0003000d000000000000ad1100000000000e0008000800000004000f0006000000000000ae1100000000000f000900090009000900090009000000000000af1100000000000d000d000d000d000d000d000f000000000000b01100000000000d000d000f000000010001000f000000000000b11100000000000d000d000f0000000f0009000f000000000000b21100000000000d000d000f0000000f000a000f000000000000b31100000000000d000d000f0000000800070008000800000000b41100000000000d000d000f0000000f000d000d000000000000b51100000000000d000d000f0000000f0009000f000900000000b61100000000000d000d000f0000000a000b000a000000000000b71100000000000f00090009000900090009000f000000000000b81100000000000f000a000a000a000a000a000f000000000000b91100000000000f000a000f0000000c0003000c000800000000ba11000000000008000800040003000400080008000000000000bb11000000080004000300040008000400030004000800000000bc11000000000006000900090009000900090006000000000000bd11000000000009000900050003000300050009000900000000be1100000000000a000a000600070006000a000a000000000000bf1100000000000500050005000500050005000f000000000000c01100000000000f000d000d000d000d000d000d000000000000c111000000000009000f000900090009000f0009000000000000c211000000000002000a000e000f000e000a0002000000000000c3110000000000010001000f0000000d000d000f000000000000c411000000010001000f00040003000c0001000f000000000000c51100000000000f00080008000800010001000f000000000000c61100000000000f000800080000000f00090009000000000000c71100000000000f000800000008000c0003000c000800000000c81100000000000f000800080000000c000b000c000000000000c91100000000000f000800080000000f000d000d000000000000ca1100000000000f00090009000000010001000f000000000000cb1100000000000f000900090000000d000d000f000000000000cc110000000f000b000b00000001000f000c0003000c00000000cd1100000000000d000d000f0000000f00080008000000000000ce1100000000000d000d000f0000000f00090009000000000000cf1100000000000f0001000e000900010004000b000500000000d01100000000000d000d000f0000000d000d000f000000000000d1110000000f000b0001000e0009000f00000001000f00000000d2110000000f000b0001000e0009000f00040003000c00000000d3110000000d000d000e0007000a000f000c0003000c00000000d4110000000d000d000e000f000a000f0004000b000500000000d511000000008006800680070000800b000b800b000000000000d6110000000f000b0009000c0003000c00040003000c00000000d71100000000000d000d000f0000000c000b000c000000000000d81100000000000d000d000f000000050005000f000000000000d91100000000000d000d000f00000005000b0005000000000000da1100000000000f0009000f000000010001000f000000000000db1100000000000f0009000f0000000d000d000f000000000000dc1100000000000f0009000f0000000f000a000f000000000000dd1100000000000f0009000f0000000c0003000c000800000000de110000000f0009000f000c0003000c00040003000c00000000df1100000000000f0009000f0000000e000b000c000000000000e01100000000000f0009000f0000000a0007000a000800000000e11100000000000f0009000f0000000a000b000a000000000000e2110000000000070005000d000d000d00050007000000000000e31100000000000f000a000f0000000d000d000f000000000000e41100000000000f000a000f0000000f0009000f000900000000e51100000000000f000a000e0000000a000b000a000000000000e6110000000000070006000e000e000e00060007000000000000e71100000008000400030004000800010001000f000000000000e81100000008000c0003000c0000000f00090009000000000000e911000000080008000700080000000d000d000f000000000000ea1100000008000c0003000c0000000f000a000f000000000000eb110000000000080008000c000b000a000c0008000800000000ec1100000000000600090006000000010001000f000000000000ed11000000060009000600000001000f00000001000f00000000ee11000000000006000900060000000600090006000000000000ef1100000000000600090006000000050005000f000000000000f011000000000004000a000a000b000a000a0004000000000000f111000000000006000900060000000c0003000c000400000000f211000000000006000900060000000e000b000c000000000000f31100000009000f0009000f0000000f000a000f000000000000f4110000800280028003800a800a800a80038002000200000000f51100000000000a000b000a0000000e00080008000000000000f61100000000000a000b000a0000000d000d000f000000000000f71100000000000a000b000a0000000f0009000f000000000000f81100000000000a000b000a0000000e000a000f000000000000f911000000000005000b000b000b000b000b0005000000000000fa110000000000010001000f0000000f00080008000000000000fb110000000000010001000f0000000f000a000f000000000000fc110000000000010001000f0000000a0007000a000800000000fd110000000000010001000f000000050005000f000000000000fe110000000000010001000f0000000a000b000a000000000000ff1100000000000f000800080000000f000800080000000000003e1e0000f80f1000e00004030206e1011000f80f0000000000003f1e0000f007200010001000e407230011001000e00700000000a01e0001c0003c0023083c00c000000100000000000000000000a11e0000c80024012409a400f801000000000000000000000000a21e00080006e00119013201c001000e00000000000000000000a31e00002003900492049402e007000000000000000000000000a41e0008800772010a0170018307000800000000000000000000a51e00002003940494049402e007060000000000000000000000a61e0008830770010a0172018007000800000000000000000000a71e00002303900494049402e407000000000000000000000000a81e0000000c880364023402c103060c00000000000000000000a91e00002003a80494049502ee07000000000000000000000000aa1e0000000c0903e5021602e6020903000c0000000000000000ab1e00002003910495049502e107000000000000000000000000ac1e000280017900470879008001000200000000000000000000ad1e000090014a02490a4a01f203000000000000000000000000ae1e0000000884076804cb040807000800000000000000000000af1e0000240398049a049902e407000000000000000000000000b01e0000000cc303350264028203000c00000000000000000000b11e0000240399049a049802e407000000000000000000000000b21e0000000cc20334022502c4020203000c0000000000000000b31e00004406280933093005cc0f000000000000000000000000b41e0008000e800172010c0175018401000e0008000000000000b51e00002403990499049902e507000000000000000000000000b61e00040003f0008d08f0000003000400000000000000000000b71e000091014a024a0a4a01f103000000000000000000000000b81e0000ff011101110911010001000000000000000000000000b91e0000f0002801240924013801000000000000000000000000ba1e0000f80f880889088a088808000000000000000000000000bb1e0000c001a00296049404e004000000000000000000000000bc1e0000fd074504460446040504000000000000000000000000bd1e0000c403a20292049404e204000000000000000000000000be1e0000f80f8a088a088a080a08010000000000000000000000bf1e0000c003a40294049004e604000000000000000000000000c01e0000fb0f88088a088a080808000000000000000000000000c11e0000c303a802a4049404e004000000000000000000000000c21e0000f00f1401140114011101160000000000000000000000c31e0000c003a40294049104e604000000000000000000000000c41e0000f80f89088b088b088908000800000000000000000000c51e0000c203a902a5049104e104000000000000000000000000c61e0000fe032302230a23020002000000000000000000000000c71e0000e0015202490a4a027002000000000000000000000000c81e0000f90f0200000000000000000000000000000000000000c91e0000f6070400000000000000000000000000000000000000ca1e0000ff090000000000000000000000000000000000000000cb1e0000fd090000000000000000000000000000000000000000cc1e00007c00820001010109010182007c000000000000000000cd1e000070008800040904018800700000000000000000000000ce1e0000e0031004080809080a081004e0030000000000000000cf1e0000c0012002120414042002c00100000000000000000000d01e0000e00310040a080a0808081304e0030000000000000000d11e0000c0012402140424042802c20100000000000000000000d21e0000e003130408080a080a081004e0030000000000000000d31e0000c3012802240414042402c00100000000000000000000d41e0000e00310040a080a0808081304e0030000000000000000d51e0000c0012402140424042102c60100000000000000000000d61e0000e003140412080b0813081404e0030000000000000000d71e0000c0012902250415042102c00100000000000000000000d81e0000f80004010302030a03020401f8000000000000000000d91e0000e0001201090a0a021201e00000000000000000000000da1e0000e0031004080808080b081804e6030000000000000000db1e0000c0012002140412043102cc0100000000000000000000dc1e0000e00310040b08080808081804e6030000000000000000dd1e0000c0012102120414043002cc0100000000000000000000de1e0000e0031004080809080a081804e6030000000000000000df1e0000c0012002160414043002cc0100000000000000000000e01e0000f00109020504060406040c02f2010000000000000000e11e0000c4012202120414043002cc0100000000000000000000e21e0000f00108020404040c04040c02f3010000000000000000e31e000070008800040904018c00730000000000000000000000e41e00007f008000000100090001ff0000000000000000000000e51e0000fc00000100098000fc01000000000000000000000000e61e0000f8070008050802080004f80300000000000000000000e71e0000f003000406040402f007000000000000000000000000e81e0000f8030004040802080104f80308000600000000000000e91e0000f003000404040202f0070c0000000000000000000000ea1e0000f8030104020804080004f80308000600000000000000eb1e0000f003020404040002f0070c0000000000000000000000ec1e0000f8070008050802080004f80308000600000000000000ed1e0000f003000406040402f0070c0000000000000000000000ee1e0000fc010102010402040102fd0104000300000000000000ef1e0000f403020404040402f0070c0000000000000000000000f01e0000fc0100020004000c0004fc0304000300000000000000f11e0000fc00000100098000fc01030000000000000000000000f21e080018006100860f60001800080000000000000000000000f31e0800700081090207f0000800000000000000000000000000f41e010003000c00f0090c000300010000000000000000000000f51e00000c0870088007e0001c04000000000000000000000000f61e080010006500860f60001800080000000000000000000000f71e1800e000030f820170000800000000000000000000000000f81e04000d003100c20731000d00040000000000000000000000f91e04001d08e0040103e1001c0000000000000000000000000002200000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000102000000000000000004000400040000000000000000000000011200000800080008000000000000000000000000000000000001220000080008000800080008000000000000000000000000000132000008000800080008000800000000000000000000000000014208000800080008000800080008000800080008000000000001520000040004000400040004000400040004000400040000000162000000000000000000000ff0ffe07000000000000000000001820000000000000000000000000000000000000000006000d00192016000c0000000000000000000000000000000000000000001a200000000a00060000000000000000000000000000000000001c20000000000000000000000000000006000d00000006000d001d2016000c00000016000c0000000000000000000000000000001e200000000a00060000000e0000000000000000000000000000202000000000000020002000fc0f200020000000000000000000212000000000000010011001fe0f100110010000000000000000222000000000000000004000e00040000000000000000000000025200000000060004000000000000000000060004000000000002620000060004000000000006000400000000000600040000000272000000000000000004000e0004000000000000000000000003020780084088406f80160009803440480038003400440048003322000001c000000000000000000000000000000000000000000332000001c00040010000c000000000000000000000000000000352000000000000000000100010002000000000000000000000039208000400120020000000000000000000000000000000000003a202002400180000000000000000000000000000000000000003b200000000064040803900064066804900108024404000000003c200000fc06000000000000fc060000000000000000000000004220000080020001c0079402be0208009402c007000180020000472000000800840664001800000008008406640018000000000048200000080084066400180000000000fc06000000000000000049200000fc060000000008000400c40638000000000000000000512000000000000094021403de07080394020000000000000000742000001c0012003f0010000000000000000000000000000000a920f8034007f800f0004007f803000000000000000000000000ab200000e00518061806fc030800000000000000000000000000ac20c000d001a802a404a4040802000000000000000000000000dd20e0001803040404040208020802080208040404041803e000de20fe0f0208020802080208020802080208020802080208fe0f002100003000480024063c018000600010038c04440440000000032108001400140008000000f001080204040404040408020000052100003000480044060401c0002000980344044004800300000921000008001400140008000000fc07440044004400040000000a2100000000000070068809840844084407b8000400000000000f210000000000000004f8034c0028002804c00300000000000013210001fc03420422041c02000000000000000000000000000016210000f8071000600080010002fc0700003001480148013001212100000400fc0704000000f007900490040000f00700040004222104007c00040000007c00180000007c000000000000000000262100000000f004080504060400040004060805f00400000000272100000000e40114020c04000400040c041402e401000000002b210000000000080006e60119011901e60100060008000000002e214000f0014802440444044404440448027002400000000000352100000000cc055006200040008000e40018010806000000003b210000fc07440044000007f8008c00f0010406bc03e0001c0790214000e0005001500140004000400040004000400040000000912100000000000018000400fe0f04001800000000000000000092210000400040004000400040004000400050015001e0004000932100000000000000030004fe0f00040003000000000000000094214000e0005001500140004000400050015001e00040000000952100000000000018030404fe0f040418030000000000000000962100000000780018002800480080000001000200040000000097210000000000040002000180004800280018007800000000009821000000000400080010002000400280030003c00300000000992100000000c003000380024002200010000800040000000000b821020002007a001a002a004a00820002010202020402000000b921c80f08020807880a480a080208024a022a021c0208023e02c42108020807880a480a0802080208024a022a021c0208020000c521000018000400fe0f0400180000030004fe0f000400030000c62108021c022a024a02080208020802480a880a080708020000cb21100110011801140110011001100110051003100110010000cc21100110011003100510011001100114011801100110010000d0214000a00010011c0714051001100110011001100110010000d221000010011001100110011001100114051c071001a0004000d4214000a00010011c071001100110011c071001a00040000000e6214000a000100108021c07100110011001100110011001f001e7210000000020003000ec0f02080208ec0f3000200000000000e821f0011001100110011001100110011c0708021001a0004000e9210000000080008001fe0602080208fe068001800000000000f521000000030004fe0f0004000318000400fe0f0400180000000022000004001800e000200320042003e000180004000000000002220000000000008003480424042404c40378000000000000000322000000000000440444044404440444044404fc070000000005220000e00010030803840444044404240418021801e00000000622000000000006800570040c040c04700480050006000000000722000000000c003400c40104060406c40134000c000000000008220000e000500148024802480248024802480248020000000009220000e0005001500148024802fc07480248024802480200000a22000000000000c003a00290049004900410000000000000000b220000000048024802480248024802480248025001e00000000f22000000000000fc0f0400040004000400fc0f00000000000011220000000000000c061405a4044404040404040000000000001222400040004000400040004000000000000000000000000000132200008400840084008400f40784008400840084000000000015220008000400020001800040002000100008000400020000001a2200028001000e0003e00018000600010001000100010001001d22e000100110011001a0004000a000100110011001000000001e22e000100110011001a00040004000a000100110011001e0001f2200000000fc070004000400040004000400040004000400002022000000040006000580044004200410040804000400000000232200000000000000000000fc070000000000000000000000002522000000000003c000200418038400600018000000000000002622000000000003d00020045803c400200118000000000000002722000000040003c00030000c003000c00000030004000000002822000004001800600080010006800160001800040000000000292200000000f007080004000400040004000800f007000000002a2200000000fc01000200040004000400040002fc01000000002b2200000000000000080008fc070200020000000000000000002c22000000080008fc070200020000080008fc070200020000002d2200080008fc0702000008fc07020002080008fc07020002002e220000000000000000e008fc07a200e200000000000000000034220000000000030002000018001000000000030002000000003522000000001800100000000003000200001800100000000000362200000000000000000000180310020000000000000000000037220000000018031002000000000000000018031002000000003d22e0001001100110018000800060002000100110011001e000432200002001100110011001100120012001200110010000000045220000a002900290029002a002a002a002a00290020000000048220000200190009000900010012001200120019000000000004c22380044054405440520052005180508054405440544053800522200000000a000ac00a800a000a000a006a002a0000000000060220000a000a000a000a007e000bc00a000a000a000000000006122000048024802480248024802480248024802480200000000622200005001500150015007f0015c01500150015001000000006422000020042004300450044804880484048404040500000000652200000000040584048404880448045004300420042004000066220000100a100a300a280a280a440a440a840a820a00000000672200000000820a840a440a440a280a280a300a100a100a00006a2240004000a00010014802a802a404100108020802040400006b2200000404080208021001a404a80248021001a000400040006e2200004000c000c000200fe0011c02080208040408000000006f2200000000040808041002100ef0012c01c000c0004000000072220000000010081004300228024804440844088204820200007322000000008208820444024402480428083008100410020000762200005008500858049804a804a40224034401420142010000772200004201420144012403a402a8049804580450085008000082220000e000100108020802080208020802080208020000000083220000000008020802080208020802080208021001e000000084220000e0001001080108068803480238020c02080200000000852200000000080208068803480238020c0210021001e0000000862200003004480484048404840484048404840484040000000087220000000084048404840484048404840484044804300400008a2200003004480484048404840c8406840484048404000000008b2200000000840484048404840c84068404840448043004000095220000e000180348024404f4054404440448021001e000000096220000e00010014802440444044404440448021001e000000097220000e00010010802a40444044404a40408021001e000000098220000e00010010802840444044404240408021001e000000099220000e00010010802040444040404040408021001e0000000a0220000fc0704041405a40444044404a40414050404fc070000a52200000004000400040004fc07000400040004000400000000bf22000000040006000580044004200410040804fc0700000000da2200004809480948094c055405540652065202620262020000db2200000000520252025202540654054c054809480948090000ef22000060004000000000006000400000000000600040000000052300000000080608018800480068008800080108060000000006230000000014061401d40034003400d4001401140600000000072300000000000000006108920492040c030000000000000000122308000400040002000200020002000200040004000800000018230c06120912091209fc0710011001fc071209120912090c06292300000000000000000000000000004000b0010c06020800002a23000002080c06b00140000000000000000000000000000000b023000000000000000000000008fe0701000000000000000000b123000000000000000000000100fe0700080000000000000000be2300000000000000000000ff0f000000000000000000000000bf2300000000000000000000ff0f000000000000000000000000c02300000000f00008010402ff0f040204020801f00000000000c1230000000070008c010401ff0f040104018800700000000000c22300000000e00018030802ff0f080208021001e00000000000c32300000003c00230020802ff0f08023002c002000300000000c423000000000003c00230020802ff0f08023002c00200030000c52300080008000bc00a300a080aff0f080a300ac00a000b0008c62300000000600010001000ff0f200040004000200000000000c72300000000600010001000ff0f200040004000200000000000c82300000000c00020002000ff0f400080008000400000000000c923000000000000000000000000ff0f00000000000000000000ca23000000000000000000000000ff0f00000000000000000000cb23000000000000000000000000ff0f00000000000000000000cc23000000000000000000000000ff0f00000000000000000000ce238001400240042004700e400240023e02020182017e000000da23000000008000800280068006fe0680028000800000000000db2340004000f001500150015001500150015001f0014000400023240000000c00080008000c00000000000000000000000000000030000000000000000000000000000000000000000000000000013000000000000000000000200040008000000000000000000002300000000000000000600090009000600000000000000000000330000000000003c000300000000003e00010000000000000000430f00108060408020b8204f201200820081c0404040803f0000530000000018000600018011401100290037004100000000000063000000000000f10041002a0014000a00090000c010000000007300000f00108020404020802080208020804040802f0010000083000000000000000000000000000004000b0010c06020800000930000002080c06b001400000000000000000000000000000000a30000000000000000000000000f0000c03620c9801060e00000b300000060e9801620c0c03f0000000000000000000000000000c3000000000000000000000000000000000fe010200020002000d30000800080008f00f000000000000000000000000000000000e300000000000000000000000000000fe010201fe01060006000f30000c000cf00f1008f00f0000000000000000000000000000103000000000000000000000000000000000fe0f060c02080000113000000208060cfe0f00000000000000000000000000000000123000000000240024002400e407240024002400000000000000133000009e079e079e079e079e079e079e079e079e079e070000143000000000000000000000000000000000fc070404020800001530000002080404fc070000000000000000000000000000000016300000000000000000000000000000ff0f0108fd0b030c010817300108030cfd0b0108ff0f0000000000000000000000000000183000000000000000000000000000000000fc03fe07050a020419300204050afa05fc03000000000000000000000000000000001a3000000000000000000000000000000000fe0f0208fe0f02081b300208fe0f0208fe0f000000000000000000000000000000001c304000400020002000200040008000800080004000400000001d300000000000000000000000000000000012001400240000001e300000240014001200000000000000000000000000000000001f300000800400050009000000000000000000000000000000002030e000c0009401d402d404f40614069404d404940380006000213000000000000000000000fe0700000000000000000000000022300000000000000000fc0300000000fe0700000000000000002330000000000000fc0300000000fc0100000000fe0700000000243000000004080408021001a000c000b0000c01000600000000253000000000000098035602220420045402980100000000000026300000200020002000200020002c00200020002000200020002730100010001001100110011401100110011001100010000000283010041004900490049004940490049004900410041004000029300000000008042804480288020e01880268021804000400002a30000c000800000000000000000000000000000000000000002b300700020000000000000000000000000000000000000000002c300700020000000000000000000000000000000000000000002d30000c000800000000000000000000000000000000000000002e306000400000000000000000000000000000000000000000002f30b0012001000000000000000000000000000000000000000030302000400080008000400020002000400080008000400020003130000000001c00630080010002000c000000000000000000003230000000001c00630080010002000c00000000000000000000333000000000000c0003c00030000c0002000000000000000000343000000000000c0003c00030000c00c200000060000000000035300000000002000c00100060008001000600080000000000003630e0011802040454045208d20b52085208540404041802e0013730020c0c03f0001801060e0000060c1803e0001c03020c0000383020002000200020002000fc0f20002000200020002000000039300000100010001000fe0710001000fe0710001000100000003a30000020082006fc0120002000fc0720002000fe0f200020003b300000000000004000c60828053005300210020000000000003c300000fc0704060405840444042404240414040c04fc0700003d3000001800040004000800040008003000c0000001000600003e30aa0a02080000d208d000d209d208d0000a0800000208aa0a3f30000000000000fe0f0208f209b2090208fe0f000000000000413000000000100210059004f8075001d008900480030000000042300000040388044804fc032c06a80168082804440280010000433000000000f001000200040003000010006000800300000000443000000000f8010002000400020001000008001800e001000045300000000040008000500850085008500480030000000000004630000000001000200012041404140414022401e000000000004730000000000008400448025001d00650080008000800000000483000000000000420022201a40164012402140400040004000049300000000020062009f807a000a008800890042003200000004a300000100310059004fc0350005004480440029803200000004b30000010041003f0001e0410041002e00108001800600000004c30000010041003f0001e0410041002e00108001a00e00006004d30000000002807a808280828083c096809a8092400000000004e300000000028072808280828083e096809a0092600000006004f30000000000000c000a000100108020c040408000000000000503000000000c000a000100108020c046408000030000000000051300000fe030205000010001004100c1002fe0110001000000052300000fe010207000000001004100c1002fc011200100006005330000000008003080408040804080408040804000400000000543000000000800308040804080408040804000404040000060055300000000010079004100810089c08b008d00888000000000056300000000010079004100810089c08b008d0089600000006005730000000000000fc07000800080008000800040004000200005830000000000000fc07000800080008100804041c040002000059300000000008000800c80828053e03c80108000800080000005a30000008000800c80828052803fe0108000a0008000a0000005b30200020002000fc0320042004900490047c041004100000005c30200020002000fc032004200410051005fc041204100006005d300000400040002400a40374042c08240824082000000000005e300000400040002400a40374042c08240828082000080000005f3000000000100690017c00140000032004200420040004000060300000100690017800140010030804200420042c0400000c006130000008000801f8008e0848084808480888048403000000006230000008000801f8008e0848084808480880048403010002006330000000004000400040042004200420024002c0010000000064300000200010001000100408040804080208021001e000000065300000200010001000100408040804080210021601e0000600663000000400080008000400e40114020c02040404040400000067300400080008000400e40114020c020404340404003000000068300000000082034e043004200410040804080400040000000069300000000004079c0860084008200810081008040800000c006a3000000801880168001e0608090409e00708020804100000006b300000f0070c0b8000000000030804080408040804080400006c30000080037c04e0041003c8003e02080508051002e00300046d30080210018800fe07280020001002080508051005e00300026e300000e001100208020401f4000c04040408021801e00000006f300000fc07020100001002100510051005fc0310021002000070300000fc0f020200001006100910091009f80712021004060071300000f80f040200001006100910091009f80714020a040400723000000800c80728041808040800080006fc01400080000000733000000800c80328041808040800080006fc0140008a000200743000000800c80328041808040800080006f80144008a0004007530000000020001800002042204c404180300004000800100027630000000020001800002042204c404180300005c0080010c027730000000020001800004046604840418030000c80014030802783000008000400020001000080010002000400080000001000279300001800040002000100020004000880010010002180400007a300000000180006000100010002000400098002401180600047b300000f807060100002002240524052405fc032402240200027c300000f00f0c030000200628092809f80928062802040400007d300000f00f0c030000200628092809f80928062e02090406007e30000000002806280928092809fc07280228022804000000007f300000000380044402c40174004c0840048003e0000001000080300000c80128023e06c80908080c080008040808071000000081300000800344043804d002880378080e0808041002e001000082300000900090009007fc08920890080008400480030000000083300000800090007000c003480c280120012001c0000000000084300000400024003800d001120e8a0888008800880070000000853000000000f00390004000400d2002f0032002c00100000000863000000000fc034000200110090806fe0308021001e0000000873000000000000600090009f809200620022004000400000000883000000006000900090009fc09100610021002100400040000893000000000f0019004840844084408480880048003000000008a30000000000000fe0012080804040404040803f000000000008b300000800144004406240934092c0e240844048003000000008c30100210019000fe07200010000800080088037004000400028d300000000180004400240834082c08240444048003000000008e300000000020022001f80f4000200420042002c001000000008f30100210019000fc0f200020001004100410042002c001000090300000800340042403a40074061c091009100a2004c003000091300008200414025403b402bc0cd404940254026002000c0000923000008800480038062e09a808c80b480848082008200000009330000000068001600058004400800300040004000200010000943000001000200012041404140414022001e40000000c0000009530000000004008400cc00338082008c0071000600080010000963000000000f007100a000040004008400cf00340004000000099300600000006000000000000000000000000000000000000009a300200050002000000000000000000000000000000000000009b300c00000006000000000000000000000000000000000000009c3004000a0004000000000000000000000000000000000000009d300000000000000000080010022001400180000000000000009e300000000000000000080010022001cc0100010c00000000009f300000000800060001c00470084e084a048803100000000000a030000000000000a000a000a000a000a0000000000000000000a130000000001004100c1002d0011000d0003000100000000000a23000000400040404020403f4000400240014000c0004000000a330000000000001000180008000c00f20003000100000000000a430000040004000200020001000f00708000400020000000000a53000000000e00020002008300420042002e001200000000000a630000000007800080008040e0408020801c800380000000000a73000000004200420042004e007200420042004000400000000a83000000802080208020802f803080208020802080200020000a93000000000000420022001a0086008f80f2000200020000000aa300000000210011001900050043004fc071000100010000000ab300000100410041002d0013c00100410041006f00100000000ac300000100410041002d0013c00100410041606f00106000000ad30000000002001200110011c01f003900c9000880080000000ae3000002001200110011c01f001900e90008600880002000000af30000040002004100c08040e02080188006800180000000000b030000040002004100c08040e020801880048003a0000000300b13000008000600010081c0810041003f0001000100010000000b23000008000600010081c0810041003f0001000140010000600b330000000000802080208020802080208020802f80700000000b430000000000804080408040804080408040a04fa0f02000000b530000010001000fc001004100410041003fc00100010000000b630000010001000fc00100410041002fc011000140002000000b730000020002008440808041004000200010001c00020000000b830000010002004420404020802000180004400300026000000b930000000080804080408020801880048013802080400080000ba30000000080804080408020801c80038010606080802000000bb300000200020002000fe03100410049004c804280418000000bc30200020002000fe03100410049004c8042a04180003000000bd300000040018002004000200020001c00030000c0000000000be30000008003000400800040004000380007a00080002000000bf30000040002008100448044e02880188016802180000000000c030000040002008100848044e028802880148033a0104000300c130000040004400440844044406fc0144004400420040000000c23040004800480848044802f801480044005400400018000000c330000000002000c0080008300440020001c000300000000000c430000008003000000400041c0210010001c000340008000000c530000018006000000800081804200200018001660010000600c630000020002000240424042402e40124002400240020000000c730000020002000240424042402e40124002400200025000100c8300000000000000000fc0f4000400040008000800000000000c9300000000000000000fc0f400040004000980080000c000000ca30000010001000100410021001fe0010001000100010000000cb30000000020802080208020802080208020802080200020000cc30000000000008480848048802080188017802080400000000cd30000000010801080188008800ce0728009800880000010001ce30000000000004000400020001800040003800040000000000cf30000000040003e00018000000000008007000800100060000d030000000040003c00038000000000008003000c60008070200d130000000040003e00018000000000008003000c4010a060400d230000000000000fc0320042004200410041004080400060000d33000000000fc03200420042004100410041604000606000000d43000000000fc032004200420042004100414040a0004000000d530000000000800080408080804080208028801680018000000d6300000000008000804080c08040802080188007e0008000200d73000000800080008080804080408020801c8003c000a000400d830000080004000200010000800100020004000800000010002d930000180004000200010002000400088001001000218040000da30000080014000200010001000200040008800140108060000db30000000011001d00010041004fc0710001000d00010010001dc3000021003d00010081008fc0f10001000dc00180302020000dd3000021003d00010081008fc0f10001000d4000a0304020000de300000080008004800880008018802880c6800180008000000df30000000000001240224022402440248024804080400000000e0300000000400040007f0040c0400020002c0020003000c0000e13000000004100210022001a0004000b0000c01000200000000e23000000000440044004400fc03440444044404440440040000e33000000000800040007000c003400c40012001e00020000000e430000020002000240078009007100890005000300008000000e5300000000000042004200420042004e0072004000400000000e63000000002080208020802080208020803f802000200020000e73000000000100490049004900490049004f007000000000000e830000000004804480448044804480448044804f80f00000000e930000000002000240024082404240424022401a40060000000ea30000000000000fc000000000800040002fc01000000000000eb30000000040003fc0000000000fc0700020002000180000000ec30000000000000fc0700040002000200010001800040000000ed3000000000f807080208020802080208020802f80700000000ee3000000000f00010001008100410021001f000100000000000ef30000000007800080008080804080408020801e80018000000f0300000000110011001f00110011001fc0f1001100100010000f13000000804080408040804e807080448042804180408040000f230000000004400440844084404440444024401e4001c000000f330000000000404040408021002000100018000600010000000f430000078000800080408040e0208020801ca00380003000000f53000000000200820042003f800200820082008e00700000000f6300000000080004000380828042003e0002000200020000000f73000007800080008080804080408020801ea00180002000000f830000110011001f001100110011001fc0f1001140102010000f93000000804080408040804e807080448042a041a040a040000fa3000004800480848084804480448024801fa00080002000000fb3000000000000000004000e000400000000000000000000000fc30000040004000400040004000400040004000400040000000fd30000000000000000010002000400080010002000000000000fe30000000000000100020004000980100020c00000000000000ff3000000000040004000400040004000400fc0f0000000000000531000000001800160010001008100810081007f0000000000006310000000810085e0490049002100190027004100800000000073100000000fc07040004000400040004000400fc070000000008310000fc03040404040404040404040404040404040000000009310000000810081e041003f000100810081004f003000000000a310000100010041007d0043804160490041003100c100800000b3100000000040004000400240034082c0824082007e00000000c31000000041c041202900170001e0410041004f003000000000d3100002000d0000c01020220045000880006030204000000000e3100000400040034002c0824082408240ce4030400040000000f3100040006fc010400040004000400040004000400040000001031000000000001fc018000800080008000fe0700000000000011310000000000004000a00010010802060402080000000000001231000000000400040004000400fc0704000400040004000000133100000004fc0480048004fe07800480048004fc04000400001431000000002001900088004800c40f22001000080000000000153100080006e4012400240024002400240024003c0000000000163100000000fc07040414042404c40484040404fc0f00000000173100000000040004000400fc0f0400040104010401fc00000018310000080008008800f8008e008808880c8803080008000000193100000006800340023802060200024002c0010003000400001a31000000000200040008001000e007100008000400020000001b310000000088038802480448047804080408020802080200001c310000000088034802480448047e04080408020802080200001d31000020002000fc03200420042004a0057c042004200020001e3100004408740444024401e4005c004400440cc403440000001f31000010000800080004003800400080000001000200040000203100000000400c60045806c4054204200498040003000c00002131000000040404140224024401840064011c0204040000000022310000000044007400440044004400440074084c0fc000000023310000000040007800440040004000400040084007c00000002431000000041004100210019000fe031004100410041004100025310000000000040007c00430040c040004000400040004000026310000000800040003fe0000000000fe03000400040004000427310000400040004000400040004000400040004000000000002831000000040402080190006000600098000603000400000000293100000000fc07000400040004000400040004fc0f000000002a3100040404040284017c002404240424042406e401040000002b310000040404040403fc0004000400fc0304040404040400042c3100000006f801080008000a000e00080008000800080000002d3100000400e407240024002400fc0f24002400e407040000002e3100000800c8034804480448047a04080408040804080408002f310000040004002400f4072c002c0424042006e00100000000313100000000100010001000100010001000f00300000000000032310000100010001000f0030000100010001000f0030000000033310000000010001000f00300000003f0000001000200000000343100000000f801000100010001000100010001000000000000353100000000f0030002000210021001f0001001100200000000363100000000f00100010000a00160027002a001000000000000373100000000f001100110011001100110011001000000000000383100000000f001100110010000f00110011001000000000000393100000000c8034802480248024802480278020000000000003a3100000000d00150017001000110001000f0010000000000003b3100000000d001500170010000f00110011001f001000000003c3100000000d001500170010000f00120012001f001000000003d3100000000d0015001700100018000700080000001000000003e3100000000d001500170010000f001500150011001000000003f3100000000d001500170000001f0011001f001100100000000403100000000d001500170010000900158029001000000000000413100000000f00110011001100110011001f001000000000000423100000000f80120012001200120012001f801000000000000433100000000f0014001f0010000f0014001f001000000000000443100000000f0014001f0010001800070008000000100000000453100000000000180004000380040008000000100000000000046310000000280017000800100028001f0000001000200000000473100000000e00010010802080208021001e000000000000000483100000000080188004800380048008800080100000000000049310000000188007800880000018800780088000001000000004a31000000001001100190007c009000100110010000000000004b3100000000480048004800480048004800f8010000000000004c3100000000f0015001500150015001500150010000000000004d31000000011001f001100110011001f00110010001000000004e310000000010009001500258025002900110000000000000004f3100000000000000000000fc0f40004000000000000000000050310000000000000000fe072000fe0f0000000000000000000051310000000000000000fe0f900090000000000000000000000052310000000000000000fe0f9000fe0f000000000000000000005331000000000000200020002000fe0700000000000000000000543100000000000020002000fe070000fe0f00000000000000005531000000000000900090009000fe0f00000000000000000000563100000000000090009000fe0f0000fe0f0000000000000000573100000001000100010001f00100010001000100010000000058310000000100010001e001000100010000fc0f4000400000005931000000010001e001000100010000fc0f4000fc0f000000005a310000000100010001f001000100010000fe0f0000000000005b31000100010001f801000100010001f80100010001000000005c3100002000200020002000e0072000200020002000000000005d310000400040004000c0074000400040010001fc0f000000005e31000040004000c007400040010001fc0f0000fe0f000000005f310000400040004000c0074000400040000000fe0f000000006031200020002000e007200020002000e007200020002000000061310000400040004000400040004000400040004000400000006231000080008000800080008000800080000000fe0f00000000633100000000000000000000fe0f0000000000000000000000006431000000000000000000000000000000000000000000000000653100000000f801000100010000f80100010001000100000000663100000000f001000100010000f00110011001000100000000673100000000f801000100010001800078008000000100000000683100000000f801000100000001c0013801e00100010000000069310000d0015001700100011000f001800070008001000000006a3100000000d001500170010000f001100110010001000000006b310000d00150012000f0012001f001800070008001000000006c3100000000d001500170000001c0013001c0010000000000006d3100000000d0015001700100009001500250029001000000006e3100000000f0011001f0010000f00120012001f001000000006f3100000000f0011001f0010001800070008000000100000000703100000000f0011001f001800040017001800100000000000071310000000000007c004403c40444037c000000000000000000723100000000f00140014001f00100001000f001000000000000733100000000f0014001f0010000f0011001100100000000000074310000f0012001f00180007000800110011000f0010000000075310000f0012001f001800070008000f0011001000100000000763100000000f0014001f0010000900170009000100100000000773100000000f0014001f0010000f0015001500100000000000078310000000000007c004803c80448037c0000000000000000007931000000007c0048003c0380043c0348007c000000000000007a31000000020001f0000001100210001000f0030000000000007b31000000018000780080000001f801000100010000000000007c31000000018000700080000001f001100110010000000000007d31000000018000700080000001f0014001f0010000000000007e31000000020001f000000110021001f00010011002000000007f310000000000000002800378022002c0030002000000000000803100000000e00010011001e000e00010011001e00000000000813100000000c00020011002180210022001c000000000000000823100000000e00018012001e000800178008000000100000000833100000000e00018012001e000800178012001c00100000000843100000000000044007c03c40444037c00440000000000000085310000000090015802900100009001580290010000000000008631000000000000c801280228022802c8010000000000000000873100010001f00100010001f00100010000fe0f900090000000883100000001f0010001f00100010000fe0f9000fe0f000000008931000000010001e0010001e00100010000fe0f0000000000008a3100002000e00720002000e0072000a0028002fe0f000000008b3100002000e00f2000e00f20008002fe0f0000fe0f000000008c31000040004000c00740004000c00740000000fc0f000000008d3100000000000000000000c0000000000000000000000000008e31000000000000000060000000fe0f000000000000000000009031000000000000000000000000fc07000000000000000000009131000000000000fc070002000200020001800080006000000092310000400040004000400040004000400040004000400040009331000000040804080408040804080408040804080408040004943100000004440444044404440444044404440404040004000095310000fc0f0404c4053c0404040404fc0484040404fc0f0000963100000004000400040004fe0720042004200420040004000097310000f801880088008800fe0f8800880088008800f8010000983104000400040004000400fc0f24004400440084000400000099310000fc01a400a400a400fc0fa400a400a400fc01000000009a3100000406040984084408240814080c0804080008000700009b310000f40f1400140394007c0094009400140b1408f40f00009c31000004000400040804080408fc07040004000400040004009d3104084408440444044403fc004401440244044408440800009e3100021002fe0310014000fc0720081008fe090808f80800069f310008000400040003c0003c00e00000010002000400080000a031000000001800160010001006100910091007f00000000000a131000004000404040a040afc0704008400840084007c000000a231000000000001fc0080008004800a400afe07000000000000a33100000000600098000603220c700088010602020d00090006a4310000200020002000fe031004100410045004700418000000a5310000200020002000fe031004100410045006300d08020000a631000004008400440124021c0c040404020402040184000000a731000004008401440234040c08040484054402440284050000a8310004040408021001a0004000e00050014c02420440040000a9310000040004000804100a200ae00710041000080004000000aa310000400040004000400040004000c0006000500020000000ab3100000004040408021001a0004000a0021803060502050002ac310000fc070400040004000400fc07040004000400fc070000ad310000040c0403fc0004000400fc0f0400fc03040404040000ae3100024405740544024405c4007c0044004404c40304000000af31000000004004600650054c05c404200c1006000500020000b03100000000e20f260028003000e00f30002c002200e00f0000b1310000f4071400940074011c021402140194001400f4070000b231000008000804080408040804f80708040804080408040800b331000000000000000600090009fe0700020002000000000000b43100000001c001000900090007000000000000000000000000b53100000009c005000300090007000000000000000000000000b63100004000c001400940094007400000000000000000000000b731000000088007800080008000800000000000000000000000b831000000000802080388028802480228021802080200020000b93100000000f803000200020002000200020002000200020000ba31000020002000200020002000fc0320002000200020002000bb31000000078008000200058008000000000000000000000000f03100000000800080084008300428042002a001600000000000f131000000002004480448021002000100018000600000000000f231000000000004100410021001900070011002000400000000f3310000000000000000f00f8000800000010001000000000000f4310000000000085004900490021001f0021004000000000000f5310000000000040003f000000000003000c001000600000000f631000000000000f80340044004200420042004000000000000f73100000000000010001004100410021001d000300000000000f831000000000001800040002000400080000001000200040000f931000020022001a0042004f8072000a0002003000200000000fa310000000000040004800770040804000480020003000c0000fb3100000000400050045008500450025001c000000000000000fc31000000000000f0010008000800080006f001000000000000fd310000000000080006f0010000f00f00040004000300000000fe310000000000000000f00f0008000400040002000180000000ff3100000000f00f100410041004100410041004f00f00000000004e000040004000400040004000400040004000400040004000014e000004000400040804080408fc0704000400040004000000034e0000400040004000fc072008200820082008200810060000074e00080408040484037c00240024082408240ce40304000000084e00000808080468048804080388037e040804080408080004094e0000000444044404440444044404440444040404000400000a4e00000004000400040004fe072004200420042004000400000b4e04000400040004000400fc0f2400440044008400040000000c4e000804040402fc010400040004000400fc0f0400040000000d4e04018400840044002400fc0f0400240044008400040100000e4e0000000140017c01480148014809480948084804c8030000104e00008200f20082008200fe00920892089208920682010000114e0000440844084408fc0f440844084408c40ffc0800080008134e000020002400a402fc04a604a404a40aa409a40020000000144e000000080008fc0f24092409240924092409fc0f00080008164e10001000fe0710041004fe05100510051005fe0510041000184e00040004fc072404240424042204e2072204200400040000194e0000f40f1400140394007c0094009408140b1408f40f00001a4e00001804e0040004fe0700040004fe070004e004180400001b4e0008000ac0093e084008400a0009c0083e08c008000b000a1c4e0000040c640254014e084508f40f440044014402040400001d4e20043005ec052205180500043005ac0562051005080500001f4e4000540454065405d4047c04540454055403540440080000214e00000400f40f1400d4071402fc031402d40b1408f4070400224e4000540454065405d4047c04540452055203520c40080000244e0400f40f14001403fc0094021401fc0094081409f4070000254e000ce803240024003c00240024003c0024002c002c002000264e00042804c9050e04f80708040804f8070e04ca0528040004274e000040004c08dc0f4404fe044401440254054409440800002a4e40002000100008000400e60f0400080010002000400000002b4e00000200040004000800e00f1000080004000200000000002d4e0000f801880088008800fe0f8800880088008800f8010000304e00012801280128012801fe0f280128012801280100010000324e0000c0035c0254025402fe0f5402540254025c02c0030000344e0000fc030000fe0f0000d80f46045404d40754044404c40f384e0008280448024801ff00080308010800f807000800080006394e40084006fc01440054005400640864084408fc07400040003a4e000010081204140290017e001000d0091009100cf00300003b4e00088808880888088a08fa0f8c08880888088808000800003d4e00000400f40f94001408f4070400f40f94001408f40704003e4e48002a026e0258024902ea0f480248021e022a0248000000434e0008040484037c0004000400040474084c084008c0070000454e00008008600810040e020a018800f8000803000400040008484e000040002004100608058604420420049804000500060008494e000804081c04600282020e018002600218040408000800004b4e0000000808040802080509098e084c0828081808080800084c4e00020002fc028402840286028402a40aa40a9c08800700004d4e0000600010000c000a00f80f4801480148014801480108004e4e000080008c00bc0884088408fc078400c200f2008a0080004f4e000000082404240224062c092409a408a208620822080008504e000440047c03440144084408f40f44004400420142020004524e000000090009fc051405140114011401f201120114010001534e000000010001fc011401140114011403f203120514090009544e000090009408540434031c001400320f5200920090000000564e08024c014c01ec030c00fc0f0c000c00ea014a022a024801574e00004c094c05fc054c03fc0f4c034a03fa054a0948090000584e08092c05ac04ec020c01fc0f0c01ea022a052a0588080000594e00000403840444042404140414040c0404040004000300005d4e00081008100690017e00100010001000f0070008000800065e4e000030000804270a2509a4086408240824080408040600005f4e000040002000fc0720081008fe0b100810090809f8040000604e0000000004021402140124012401840884080408fc070000614e0000000890089008d804b404b20290028801880040000000664e00004000480048004800fe0f4800480048047204c4030000704e0004a408a404940494028401f400840284049c0484080000714e1000940f9204fe04920492070000fe070008000800080006734e04012c012409aa0f62012c010000fe0700080008000800067e4e0002f402b402be0fb402f40010042e0ba808680828080806804e0000e407bc02bf02be02fe07be0abe0abc0abc0ae00b0006824e0000c40f4c00fa05f207d600d60f0000fe07000800080006864e000000000400040804080408e407140014000c0004000000884e000020002400240024083408f40734002c00a40064002000894e50005001580156095609f40754015c015401f001400040008b4e00008400bc02bc0abc0afe07bc02bc02bc02fc03840000008c4e0000000408040804080408040804080408040804080400048e4e000040004400440844084408fc07440044004400440040008f4e000020002400e40124012409240924092409240720000000914e0000200024042407a404640424042404a4042405240e2008924e000004080408c4093c09240924092409240fe40804080408944e0004040444044407fc04440444044404c407040400040000954e800888088806fe018800880088008800fe0f8800880080009a4e00002404c4040404fc0704040404fc070404c405240400049b4e40087c0840097e094809480900093e0948094809440920089c4e0008e40924092409fc0f24092409fc0f24092409e40904089e4e0008e409240924093c0f040804083c0f24092409e4090408a14e00000800f807080808080e08080808080808080808080000a44e440824041404540284020601840254021404240444080000a54e0000040924052405b404ac02670224011403c404440c0408a64e0801880968040802f8010a080a08f80f0800680088010000a74e000ce4032400340034002600240034002400240020000000a84e04008400bc00ac08ac08ae08ae0eac01ac01bc0084000400a94e00000400f40f94049404f707940494049404f40f04000000ab4e04028402f402d40ad40ad607d403d403d402f40204020002ac4e00040404f402940894089607940094009402f402040c0000ad4e0000c40144007c016c096e096e076c016c017c00c4010000ae4e00008409bc08ac07ac01ae01ac01ac07ac08bc0884050000b24e0000400048055803780b4a09cc0748016805480548054000b34e0000c4027c036c036c036e076c0bec0aec0a7c0ac40a0000ba4e0008000400040003c0003c00e00000010002000400080000bf4e20001000fe0f0000040384044404240414040c0404030000c04e40002000f80f0600200020002000fe0f2000200020000000c14e40002000f80f060000040804080408040804080408040000c54e60001000f80f060000083c04c4020401c4023c0404080000c64e40002000f80f060000000000fe0f00003000400080000000c74e40002000f80f0600100c1003fe0010001000f00f00080006ca4e00002000a00090008800a400a200a4088806900120004000cb4e200020081004c8030400020002000400c80f100020002000cd4e00002000fe0f0000040ffc00040004083c08200ce0030000ce4e0008000cc0033e004008800c0002c001fe00000300040008cf4e40002000f80f060000048007780406040004c00500060008d14e000020001000d00708098408860848085008100620000000d34e000040002000f0072808240826092809f008100820060000d44e40002000f80f0600400044084408f40754004c0044000000d54e40002000f8070600200420042004fe072004200420040000d64e40002000f80f06004000fc0720081008fe0910080809f808d74e20001000fc0f020008086804880288037e02080408040808d84e40002000f80f060010005000900910081008fe0710000000d94e40002000f80f0600f00f00040004fe0700040004f00f0000e34e40002000f80f06002200200020007e00a003120414081406e44e0000100010004800480144025302440e4805c80050001000e54e00000004fe03000200090c0910040002e0011e02000c0000ea4e40002000f80f060000083c04c0040e03800270040c080008ec4e00002000fc0f0200f00f06000800020002080208fe0f0000ee4e40002000f80f0600000cfc036408a40524062405e4080408f04e00002000fe0f0000fc0302020000fc0f04000402fc010000f24e20003000fc0f0200f80188008800fe0f88008800f8010000f64e40002000fc0f0200b0008e008800fe0f8800880088000000f74e40002000f80f0600100cc803040002000400c80f10002000fb4e60001000f80f0600400844084408fc0f4408420842080000fd4e40006000f80f060060085806c40140084408980720000000ff4e40006000fc0f0200080c0803f8004a084a084808c8070800014f20001008d00f080808080408f20f840888089008200820080a4f20001000f80f0600900c9402fc01940094009400fc0110000d4f40002000f80f060040044406f4054c044404c407040400040e4f20001000fc0f0200280c6804a8033e022803e804280c00040f4f20001000fc0f0300100c100290017f009001120214041008104f40002000f80f0600100c10043e02d0019206540854081006114f40002000f80f0600100690015000fe0f5000900010030004174f000020081006c8012801080b06080807c801100220042008184f40006000f80f0600100c90037e001000d00f160810060000194f40002000f80f0600400838040003fe0000034004380800081a4f00002000a00890088806a405a204a40488049006a00820001d4f20001000f80f06002008240ee40924082408240b240420081e4f10010801280144010401f20f0401440128010801100100001f4f40002000fc0f0000a800a800a800fe0fa800a80488030000204f40002000f80f06002000a400fc02a604a40aa409a4002000244f40002000f80f0600500848044e03e80048084808c8070000264f40002000f80f06002000d0070809860888085008100620002a4f40002000fe0f0000140cd0033e0090081009100cf00300002f4f40002000fc0f0200f80f88048c048a0488048804f8070000304f40002000f80706001000900f9004fe049004900490071000344f40002000f80f060020012c012001fe0f2001280124010001364f20001000fc0f03001000480154025302540dc80050001000384f40002000fc0f0200f80328012801fe0f28012801f80300003a4f40002000f80f06001000d40754025402d40b0408fc0700003c4f40002000fe0f0000fc0700023c080006c0013e03000c00003d4f00002000fc0f0200e8071e00f80f0000fc0f0404fc0f0000434f40002000fe0f0000fc0f44044404fc0744044404fc0f0000464f40002000f80f06000008fc092409240924092409fc090008474f40002000fc0f0200580048084808ca074800480058000000484f40002000fc0f02004800e80358004e00e80f48004802c8014d4f20002000fc0702000804680488050a040806e805080400004e4f40002000fe0f0000fc0b240a240a240a7c00a207220820064f4f60001000fc0f0200880888088a08fc0f8c08880888080000504f20001000fc0f02000803e8085e084808c80f480848080808514f20001000fc0f02008800e80f5e04490448044804c80f0800534f40002000fc0f02000801c8002802fe0f3802c80008010802544f40003000fc0f0200800f80048004fe0488048804880f0800554f40002000fe0f0000e40324012401e40904080408fc070400594f2004a004b002a80aa408e20fa400a802b0029004a00400005b4f40002000fc0f0200e808a806fe01a800fe0fa804b80300005c4f20001000f80f0600300008000e00f80f2801280128010801604f40002000fc0f02001003ce000808f80f0800c80018030000634f40002000fe0f0000fc0724012401fc0f24012409fc070000694f00002000fe0f0006fe01c201ea0f3a00aa034200fe07000e6c4f40003000fe0f01002403a400ff07240934092c0922050000734f20002000fc0f0200200924092409bf0f2409240924090000754f60001000fc0f020088088904fa0388008800fa0f890088007f4f40003000fe0f0000f40a940a9404fe0794089408f4080000834f40003000ff0f00003e0ca2032200a20f2200a2073e080000844f00006000f80f0600200934092c09a40f2409340944090000864f88088804680408020801fe0f8801c8026804880488080000884f20001000fc0f02002809a4049404560554024c01c40000008b4f40002000fc0f0300600c9e02f2010000fc090008fe0700008d4f40002000fc0f0000a800a806a800bc08a808e807a800a0009b4f20001000fc0f0300880cfe02880088008800fe02880488089d4f20002000fc0f02008808c80f28043a04c800480368042008a04f40002000fc0f02008808a8048802fe018802b80498080008a14f40002000fe0f0000e40f2404fc072404fc072404e40f0000a34f20001000fc0f0200c00f5e045204520452045e04c00f0000a54f40002000fc0f0200a808a404a603bc00b40fcc08cc082004a64f20002000fc0f0200f00910041002de0114041404f4050008a74f00006000fe0ff804e4030400fc0e0000f8090008fe070000a84f40002000f80f0600500c34031c001400320f520090000000ae4f00004000f80f0400d003ac02a802e80ba80ba806e8038000af4f00006000f80f0400100954055403d40154035c0550091009b54f20001000fc0f02006008ae08ae05ae06ae06ae05ee080008b64f20001000fc070300c0075e045204720452045204de070000bf4f00002000fe0f0000fc08ac06ac06fc05ac04ac08fc080008c24f40002000fe0f0000940c9402ec00a40f92008a02e20c0009c34f40002000fc0f0000bc0724042404e40f240924093c090008c44f40002000fe0f00002409fc0fa4002004fe022005ac080806ca4f40002000fc0f0200480a28099e058806f806cc0598081008cf4f20002000fc0f0200f00f160050015e0150091009f60f0000d04f00006000f80f0600a401fc0fa4000000f8090008fe070000d74f20001000fe0fc000cc0fa20899089808a208c40fc8000000d84f00002000fc0f0200280124012409aa0f62016a010a010000dd4f60001000ff0f00009e0c92029201f20f920192029e048008de4f00001008d007d802d40ad4071200d4031808d00710001000e04f40002000fc0f0200880968040803fe018802680488080000e14f40002000fc0f0200a80ea80aaa0aaa0aa80aa80aa80e0800e34f20006000fc0f00005c0954055403d401540354055c090009e94f00002000fe0f0000f40f1401fc001403fc001408f4070000ed4f00006000f8070600900428052404a6042806900520042000ee4f40002000fe0f0000fc031008480ab60a64093c05a4042402ef4f00002000fe0f0000fc070400f40f86002408f40f24000000f14f20001000fc0f02000009fe05560556015605fe0500090000f34f20001000fc0f020028092805fe030000fe0f280128010000f54f40002000f80f06005009540fd408fe085403540554094008fa4f000040003000fe0f0000fc03a602e507ac0af40b24084404065040002000f80f0600f00f94011402fc0f94011408f4070000095010081007e800b80ebc0eba0abc0ab80ab00af00e300000000b5040002000fe0f0000fc0f0404d405740554058404fc0f00000d5020001000f80706002000ac0fa404a604a404ac04a40724000f5040002000fe0f0000fc03000848093605a40334054c094009115080004000fe0f0000fc0f54007c0000007c085408fc070000125000002000fe0f0000bc04a40794020002fc080008fe070000145020003000fe0f0000fe070a00ea0e8a08ea0f8a08ee0e0000185000006000f80f0600e00f2c00a003be02a00b2808e4070000195000006000fc0fe0010008940854055405d40354055c0910091a5020001000fe0f0000b407b402ac02ae0b2c08f407340000001f5020001000fc0716001400de075405540554055e05d4070400215040002000fe0f0000fe076a056a056a056a057e05c0070000245020001000fe0f0000f40f0404fc055e055c055c05fc050400265080004000fc0f00005401d40770095c09500dd40f54094002295020001000fe0f0000fc0fbc02bc02be02bc0afc0f140000002a5040002000ff0f0000fe08920791008000920f9208fe0800042b5040002000fc0f0200d00f4801d40f5201d40f4801d00f1000365040003000fc0f02000009fe05aa05aa01aa01aa05fe0500093a5000001000fe0f0000dc0b5c085c065e015c045c04dc0510083c5010001000fe070000fc075c055c055e055c05fc07040400003e5000006000fc0f0200f8030000f4091404dc031408f40b0008435000002000fe0f0200f8070408bc0dbc0dbc0abc0bbc088408475000002000fe0f0000fc0fa4021c0ac00854055407dc080000495040002000f80f0600f007b405be05b40fb405bc05f00500054e5040004000fc0f0000fc00d40fd408fc09d402d406fc0880084f5040002000fe03000efc0194075401d6075401d4075c01c0075a5040003000fc0f0200c80f7e04c00f3008ee048807780800005c5000002000f80f0600c000fc00ec08ee0fec007c00c4000000655040003000ff0f0000fe0702042809aa09ff0baa09be090808745040002000fe0f0000fc0d5401fc0d0000f8010008fc070000755020001000fc0f0200f80ba806a806ae02ac06ac06fc0b0408765040004000fc0f0000fc0fd400d402fc03d402d408fc070000775000002000fc0f0200e80fb402f40f1200d4030408e80708007d5040002000fc0f0201880cca00b806ae00a80ab809e00880077f5000003000fc0f0200980cbe06b805be04b805aa079a080000805020002000fe0f00007c0c54025401fe075408540b7c0b0004855040002000fc0f00007801780578017c0978097c0f780100018d5020002000f80f060050085406d40156015409540754000000915040002000fc0f0200080976050c01b00f2c017e0524090000985010000802b802f4020202f20f0402b802a802080210000000995040002000fe0f0000f4071400f60fb402f40fb602f40f0400a25040002000fe0f1c004c03bc0a7e099c079c0054014c060004a85000002000fe0f2000e6070000d40f7e0554055c05d40f1200ac5040002000fe0f0000cc00f80fa80aae0af80fa80aac0a2008b25000004000fc0f0004a803fe098807c000f40c0a03f8040808b35020001000fe0f0000bc02bc06bc02fe0abc0afc0fbc030003b55020001000f80f06001008fc0bfc0afe02fc06fc06fc0b1008b75020001000fc0702004805fe02fc01fc02fc01fc04c4030000bb5040002000fe0f00003c0a740b740b2e056c0d640abc088008be5040002000fc0ff80110020409fc07ac06ac02ac0afc0b0000c55020001000fe0f0000f40ade0adc0afc0fdc0ade0af40a0408cd5000002000fc0f0a006c09fc076a054a0c1003fe08f0070000cf5000002000fc0f0200b8056e05ee02bc092c07a80138020004d15040002000fe0f00009c0ffc03dc05dc05dc07fa08aa0f2800d55020001000fe0f00006a0978056e03e8016e0378056a050009da5010001000fc0f02001004f402bc08b60fbc00f40214042000e75000001000fe0f0100fc0f6d0566057c056c05e70f3c000000f55000004000fc0f0000fe0fd60fd60ffe0fd60fd60ffe0f8208f95040002000fe0f0000fa0bea07fe07ea03fe07ea07fa0b0008fb5000006000fc0f0002fc0fa404bc0700005801cc0f68014800005140002000fc0f0300280bab0f6a033e09aa072b05aa092009025100006000fe0f0004fc03ec0ffe05ec01fe03ec05fc094000045130000800ff0f0004fa025a015a0d5b095a0b5e09fa010a0c0b5120002000fc03130ef8010e04db07ca07ce07da07e8076800125100002000fe0f00007a0f4a01de0f4a015a0f6a01480f0000185180006000fc0f8300a80daa0aaa0fff0aaa0faa0abe0d88091f5140003000fe0f0100cc0bff0bec0bee03ec0bfe0bcc0b0000215140002000fe07800ffe07ea03be0f6a05ea077e05c00700002a5120001000fc0f0300a20a3e09be07be05be05fe0722056008325100002000fc070200580f5a050006d400fe075805d60700003f510008000c0002fc01000000000000fc0700080008000800064051040804040403fc00040004000400fc07040804080408040641510008400820043002ec0122002000e80728083008400800064351000020082404a403640024002400e40724082408240820064451000000087c044402c40144004400c40744087c080008000645510000080848086804d8034a004a00d807580868088808080646518000040998048002fe0100000000fe07400890088c0800054751000000087c044004d2034c004800d6074208f808000800064851400850084e04c80348007e004800c80748084808400600004951200822042c02e00120003f002000e00728082408220820064b5100080408f408940694019e00940094079408f408040804064d5100003008f808940496029401f4009c0794089008f00800065051000000087e080006fe009200920092069208fe0800080004515100000008f8088a048c03880088008c078a08f808000800045251000000087c085404d20352004000d40754087c0800060000545100003008f0089c0496029401fc079408900a900af00a00085651000024089408d404a403a5008600ac07cc089409240924045a51000038080a08ec04a803ae00a800a80fec080a08380600005c510008f804440400027c01560055007c0680087c080006000062510000f40c94039e00f4070002f40894079e00940ff408000665510000000800040402840174003c00c000000300040008000867510000f00f10001201d2003e005000900010091008f00f000068512008100908092c092209e20f220924090809100920080000695100000000f40f1400d4011400fc0f1400d4011408f40700006b5100080006c00134000400040004007c0080030004000800006c510000200410040c06820560042004000482040c07100c20086d51100810041003900010001e001000900010011006100800006e51200010001c00f200900890089008930c840318002000000070511004900492049404900490049004980496049004100400007151800888088804fe028802880088008802fe0288048808800873510000400448044a044a024801f80048014f02490248044004745184089808a00480028600980080008002b0028804840800007551000000090009fc051405140114011403f2031205140900097651000004090405fe055405540154015403fe03040504050005775100090005fe05560356035601560156035603fe050005000978510009fc0524052403fe0324012401fe0324032405fc090009795100008808c806ba058c04080e8800c804bc078a04480608087b51000020013809ba04fc0338003800fc0fba003801280100007c51400858055a055c03f80f58015801f80f5e03f805480800007d5100008000fc0fd505d605fc05d405d605d505fc0f80000000805100028c0afc0abc07fe06f002f602fc06bc07fc0a880a000285510000f80f080008038800c8003e00480088090808f80f000086510000fc0f4400440044007c004400440044084408fc07000088510000fc0f040014022401c400c4003401040a0408fc0700008a514000fc0f44004400fc0f44004400fc0f44004408fc0740008c510000400cfc034408fc07400cfc0344084408fc07400000008d5100000401f40f54015401fc01540154095409f40704010000925100000600f2075e055e055e055e055e055e05f207060000009551800880088c0be40aec06ec03ec06ec0a8c0a9c0b00080004975100081c080404e4032400240024002400e40704081c080006995100000c010401640154015401540954095404c4030c0000009b51000004029402f40294029402d40f9402940284020c0200009c5180008c004408c40734040c0477028400440124022c040004a0518008ac04a403a400a4070408440944094408e40b4c080004a45100006c08f4092c052c03ec013c072c09240be4090c080004a551000506097a055a035a03da01da015a035a037a050e090009a85100000e00820ffa0ada0ada0fda0ada0afa0a820f0e000000ac5100002001900088044c045605240554094c09440880008000af510000040698010000040174014401440944097c0cc0030000b05100000407c40010061001f0080008fe074000a00118020004b25100040606d8010000f80188008800fe0f88008800f8010000b3510000040688019008000448024801fe00c803780440080000b55102040603c80000087e044202c2014200c20742087e080006b6510204040388002000b00fac04a204a004ac04b00720000000b751020402028c01200098008400920f93009404840488071000bb5102040c038000040464035c094708f40f4400440144060000c051000004049803800010005c095609f4075c015401f0014000c451040c840314085c095c0bdc0d7e055c075c097c0934090000c65102041c03c0001000fc0faa04a804aa04fe07a804a8040804c95102040c0390000404f40294089408960f9400f40204040000cc51000084071800400a540a3409b4069e04b406b40514080008cd5100020c03c0000404fc04ac02ac01fe0fac01ac02fc040404cf51040e1801000cf8030800a807a802080d7e028805ea080006d15100000206cc0100047c051c055c03de015c053c055c055000db510402840148000005fc05cc01fc05fe07fc01cc03fc030405dd510404c40300005e093405f2032a0c00074c04cc0f5c094409e051000800080006fc010400040004000400fc07000800080006e151000000080007fc000400640084000400fc07000800080006e4510000000efe01020452049202920172060200fe0700080006e651c0083004ce06880378040005fc0804080408fc0b00090000eb51000800083c04a403ac00ae00a400a40724082c09e0080004ed51100810083e048003d400d400d400fc00d207520852080006ef5100003c0f30053e053005fc01000cfc030400fc0700080004f0510000000cfc030408f40af40ff40af40a2400fc0700080006f15100087c09b804be04b807fc0d0004fc030400fc0700080007f351000890089204ba03fe01ba01b801fc01ba07880894081006f6510000f80700040405880450043004480486050004f8070000f8510000e00f200420043c04040404043c0420042004e00f0000f9510000fc0f040404047c0440047c0404040404fc0f00000000fa510000800f3c0420042004fe072004200420043c04800f0000fb51000040004807480448044804fe0748044804480f40000000fd510000f8070204920492064206fa074a04a6050204f80f0000ff511000f007f40710045e05d00550055e051004f40ff00f10000052000004080404040284017c00040004080408040cfc0300000152000000000402040184004400440424080408040cfc03000003528008c40834040402c4013c00040804080408040cfc03000006520000200810080c042203e000200822082608c80710002000075200002000fe0310029409040484037c0004080408fc0700000852040408023001c000380106020000f80500080008fe0700000a52400044004400fc0f440044000000fc0900080008fe07000011520008440cfc0344004400fc0f44000000fc090008fe0700001252100810043e02d0039604540810060000fc090008fe07000017520000c40824089c041403d40034000000fc010008fe0700001852080828044a02cc01380208040000fc0100080008fe070000195200000008fc080406f4010404fc090000f8090008fe0700001a520000fe0f0202b201fa090208fe070000fc090008fe0700001b5200001000c80724082609c80810060000fc090008fe0700001d5208018800ee0f98004809000484037c0004080408fc0700002052400cfe034208fe07fc0f4200fe0f0000fc090008fe07000024528000ac00a000fe0fa000ac000000f80100080008fe070000255200083c06e401a408a408bc070000f80100080008fc07000028522000f007ac08a808e8090809f8040000f8010008fc0700002952120292015200fe0f520091010000fc0100080008fe0700002a524000fe0f4200fe0f4200fe0f4200fe0f0000f8090008fe072b520008bc08a406a401a408bc0700000000f80100080008fc072e521400940f9204fe049204920710000000fc090008fe07000030520408b404ac04a407a4049404a4040000fc010008fe0f000036522000ac07aa00a800fe0fa800a804a8030000fc090008fe073752e00f1c00d4075400f40f5400dc070000f8010008fc07000038522001aa08ea08ac04b802ae01a808b808ac06ea01aa0020013952500454035408c8074c00520152060000fc090008fe0f00003a52000474061401fe0f1401f4020000fc0100080008fe0700003b5200002409b404af0264021403c4040000fc090008fe0f00003d522000900c8806a405a6048806b0080000f8090008fe070000425244085404540336003400ac0f24000000fc090008ff07000043520004e804aa02ac01f80fae00b8070000fc090008fe07000047520008fe052a052a012a01fe0d0000fc0100080008fe0700004a520000f60f50015e095009f6070000fc0100080008fe0700004d520000e80faa02ac0aa80ae8070800e8030e08e807080000004e520000520452034c00e40f4a026a040000fc090008fe07000051521000580884051204d3040407c8020002fc080008fe07000054520001be04ea02aa0daa03aa08be070000fc090008fe07000056522400ac0fac04a604a404bc04ac070000fc090008fe0f00005b520000fc0f0c03e4031409fc070000f8010008fc07000000005d520000c000d80a560ad4077400cc060000f8090008fe07000063521008f004bc06f201b402e40c0000fc0100080008fe070000645200002408ac079602ac02a40f24000000fc010008fe0f00006552a0022a0a2a09ea0f2a01be02a0060000fc090008fe0700006752c0073e00aa07aa04fa04aa04ae070000fc000008ff070000695288086c046c020c01fc0f0c016a0228040000fc090008fe076a5200057c053c053e05bc03fc010401740506057405040300006f520200de0f5605d60756055605de0f0000fc090008fe07000070520000ac04fc02ac01fc0faa02fa060000f8010008fe07000072528c00bc0fb405b405f605b407b4078c070000fc010008fe0775521000100ed003f805f405e405e8070000f8010008fc0700007f520008760570057403fa0f7803700376050000f8090008fe0783524804fc07fc07fe07fc07fc07fc07fc070004f8010008fc078752000ef8011804d8067e036c0f6c020804f0010008fc0f0000885280007c08f409b409b405f80354015c09f6095c0954070000895200009c09ca0bc909b007ce0542050e04f8010008fe0700008d520808e804ac02ea004b08a206e4040000fc010008fe07000091523800480cf4038c029602bc02cc0f2000fc010008fe0700009b52000010081004100290017e00100010081008100cf00300009d52000414026401e4001c09000488037e0008080808f80700009e52000088096804080288017e080808080cf8030000e00100009f5204020402fc010409040910041003fe081008100cf0030000a05208080806fe0108080808f8070000fc0f04040404fc0f0000a1524008500948092c053603a401240934094c09440740000000a3522808a808a408a204a0039e00900888088208840708000000a85200002404e4032402a402240300081007fe001008f0070000a9520004fe0392049202fe0b00041003f0081f081008f0070000aa52000844095c09660524035c014401340924095c0744000000ab5200004807c8047e02480240071000100ffe001008f0070000b152000efc01140cf4035408d40704001007fc001008f0070000b2520000a408a4049407ac04a4043000100efe011008f0070000b3520008b408940496049403d400940894089608940734000000b4520008b8088a048a048802eb01880888088c088a0738000000b9522808a804a8020c01a802080850041003fe081008f0070000bf520000140854097e051405c00334011e0904093c0740002000c1520000b4048404b4078404b40c04041003fe081008f0070000c3520000340214095e079401340900041003fe081008f0070000c7520008020afa0aaa06aa02fa02aa02ae0aaa0afa0600000000c9521008f8049603f4009c07f008180a98097e08080af8090004cb520008ee092a04aa032a08ee0b00001007fe001008f0070000d2520000e402be02f40fbe02e40804041003fe081008f0070000d55200007c097c09fc077a0d0804180290017e081008f0070000d85280008207ff05aa04aa04ff05820c0802ff010804f8030000d95200002a03aa08ea073600e00948072e01340934092c074401dd52000cfe039208fe0780016a093807ae0138096e09aa070001de5212089208a804ae04a002a201a408a808a608280772000000df5200024401fc057e037c037c017c057e05fc037c0144020000e2520000ac09ac09ee05ac058003f80118090e09780680006000e4520008f409d605f407d605f405000c1003fe081008f0070000e75200002001ec0fb807e807a807a80e0006fc011008f0070000f2520001fe0dfe01fe01fe0dfe01080b98087e000801f80c0000f35204087d056d01ff04ec02fc02000688017f040804f8030000f552000cfc03cc0ffc01ec03fc0bcc0f000cfe031008f0070000f8520001fa0fbb078007bb07ba07000c0803ff000804f8030000fa524000600010004e0048008801080108080808080cf8030000fe52400060001003ce022802080148098809080a0808f8070000ff524000200618018e0078080806880178080808080cf803000000530000600010044c024a024802480908090808080cf8030000055320001000c8072e0928092809e8090808080af809000400000653400060041002ce0168089804880378090809080cf8030000085300007000e8030602e5028402f4020402c40b0408fc070000155300000000fc07200820082008200820082008200800060000165340002000f80f060002000000fe072008200810080808000617530000100410021002fe0f00000000fe07200810080808080719532006bc013c02fc03bc04bc040004fc05100610060806880520530000fe0f0208020afa094a084a084a08ca0b4a084208020823530000fc0f0408f40954095409f40b54095409f409040800002a530000fe0702042a052a05fa050204fa05aa04aa048a0400002f530000fe0f1208860b2208fa0baa0aaa0afa0baa0aaa0a000039530000fc0f0404c4043c04040404047c0484048404640400003a530000fc0f040414052405a4044404a40494040405040400003b530000fe0f020422052a05aa047a04aa042a052a05220500003e530000fc0f040cf40b5409d409d40bd409d40bf409840b04083f530000fc0f0408540ad40f740d740d540d540d540f5408000840530000fe030204c2055e05d6051604d6055e05c205020400004153000020002000200020002000fe0f20002000200020002000435340004800480044004400fc0f4400440044004200400000004753480848084806fc014400420044004000fe0f40004000400048530000500050004e0048004800f80f480048004800480040004a53000122012e0120012001fe0f200120012e012201000100004e530000100108017c010201900f3e01480148014401240100004f5300001000fe0f1000c009080488037e080808f8070000e0015153000000027c035403d4027e025402540f54027c0200020000525340014401340124010401c60f240114012401440144010000535300000002f802a802a802ae0fac02ac02ac02fc0204020000545300001000fe0f10008006a4019c070600a406a4019c0f0000555300000002f802aa02ac02f80fa802ac02aa02f8020002000056530000100954099409b4051403de011405140514097409100157530400f40f1400b40294029e0f9402d402940a1408f4070400585300000002fa02ac02a802fe0fa802a802ac02fa02000200005a530800ff07080002017e01560356017f095609d7077f0100015c530000000000000000fe0f2000200040004000800000000000605300000000c00f400440047e04480448044804c80f08000000615320002000200020002000fe0f280028012801280220010000625300080004f003900090009e00940094009400f4010400000064530000f00f1004500550059e04d404340534051404f40f000066532004a404a404be07a404a404a0040000fe0f20004000800067530000fe0792049e079204f2040000fe0730004000800000006b5300000408040804080408fc0f0408840884087c080008000070530002f8032402240222010000fc0f040004020402fc030000715320083004f8031400d607540854085c0a500ad0091008100473530000fe0f5204520452077e0c0000fc0f04000402fc010000745300004807c8047e02480248070000fc0f04000402fc03000075530001fc0924050203fa000000fc0f040074020402fc01000077530001a800aa00ee07b808ae0aa80aa8096c08aa06a800200178532804a8072604fc07a404a4020000fc0f04000402fc0300007b5300009800c40fb2049004260f4000fc0f04000402fc0100007f530000f8090407f2010004fe0356023e00fc0f0600fe03000082530000000cfc0304000400040004000400040004000400000084530000000cfc030400f4071408140814091409f408040804068553000cfc0304001400140014081408f40714001400140000008653000cfe030208220822042203fa0022082208220ce203020089530000000cfc0304081407f4009400940894089407140000008b53000efe010204420442044204fa07420442054205420400008c530000000efc01040824042402a4017400a4012c02240424089553fc070200fa090a04ea030a04fa090200f2090208fa07000098530000000cfc030408fc0aac0aac0afc0fac0aac0afc0a04089a5300000006fc0114007c057c05fc07fc017c017c01040100009f530000000ffe007202aa0aaa08ae07aa00aa02fa0202040000a253000ffc0004022401f40fa4000400f40f54055405f4070000a553000cfe0302089609f2071a0182090a06d201120672080000a6530000000efc010408fc0afc07fc06fc06fc0afc0a0c080008a853000cfc030408ec0aac08ac066c04a4002408f40724000000ad53f8070400f403fc027c07740584072404fc03240114020004ae530006fe010204fa015a03fa01020cfa034a00ca0f4a000000b253000efe010200ea0fea01ea05e207ea05ea05ea090a0f0200b353000ef8010e04f807b806ba06fc0f0800e80c2c03ea052808bb534000480c48064805c8047e04480448054806480840000000bf53000080008004fe06aa05aa04aa04aa04aa04fe0680048000c1532001a808a80aec0aba0aa80aaa0aee0aa80aa80820010000c25320012801a8086c0aba0aa80a28096a04ac04a00020010000c35300000001b000a409760ba50a140a26097604a00430014001c8530000000804081c04640484020401840264041c0404080008c953000804083c04440494021401940244043c04040400080000ca530004040684017c082404c40404031c039002700410040000cb53000408040803c8087e04a80428032803a804680408080004cc53140834044402e4011c0a00087c048403c4023c0400080000cd530000000cfc032408e408240524022406a405640804080000ce530002f80100010001fe0f00001408e4040403c4043c040408d153000410021c0b9008f0085e0550065005d608500810080000d4530002a0012008fe0f2400a00b04087c068401e4021c0c0008d6530404fc07940494049402fc0f0000680888050803e8041808d753000074081c04dc0454055c025c025205da041a0430080000d8530008a40894088409bc0686048604bc068409940824080008d953500658015408f20f5400540304087c048403c4023c0c0000db530000ac08a006fe01a400000efc01720c92039202720c0004e0530000e8087608560f560f460f560f5e0f560f7808c8080000e1530000a800d807bf07da07fa0790000c0cf40284017c060004e2530800aa04ec07f807fc07e80fe800fc07ec05ea0788098008e35300000000fc0f040404040404040404040404fc0f00000000e45300000800880f88048804fe04880488048804880f08000000e553000060001000cc072a0228022802e80b0808080cf8030000e65300008008bc04a404a403e400a400a408a408bc0880070000e8530000fc030401fc090008040684017c040408040cfc030000e9530000fc0304010401fc010000fc0f040004020402fc010000ea53000000087c044402440144004400440144027c0400080000eb530000fc0304010401fc010000fc0300010001fe0f00000000ec5380004400440f240914090c094409440944093c0f00000000ed530000fc030401fc01000cc0033c0000007c008003000c0000ee530000fc030401fc010000040004080408fc07040004000000ef5300000400f403140114011401f40104080408fc0704000000f05300002000a00f980496049104900490049404980f20002000f25300087808480548064802c8057e0448084808480878080008f353000188008800e80f5c044a04480448044804c80f08000000f6530000fc0304010401fc0120002000fe0f2000200020000000f753000040005c01d4015401540954095409540d5c0340000000f85300001400d4075402540254025402d40314080408fc0f0000f9530000fc030401fc05000c1c046402840144023c0404080000fc530000fc030401fc0100000401840044083408040cfc030000fd530000fc030401fc090004fc0304000400fc0700080006000001540000fc030401fc010000440044084408fc0f44004400400003540000fc030401fc01000010040e0ba808a808680828080806045448004800240fa604ab0492049204aa04a604220f4000400006540000fc030401fc01000860045807c6046004100700080000085420002000900f8808a408a208a208a4088808900f20002000095400002400a40fa404a404bf04a404a404a404a40f240000000a5400008007bc00a400a400e40fa400a400a404bc04800300000b540000fc0304010401fc010000d00010091008fe07100010000c540000fc0f0400d407540254025402d40314080408fc0700000d540000180188008c00d307630452044a0446044004c00f00000e540000000efc011400940f94049404920492049204920f10000f5400000408f40894069406fe059404940894089408f408040810540000fc030401fc01000420042004fe07200420042004000011540000f80f0800e8032c012a012801e80908080808f807000013540000fc030401fc01000004000400fc0f0400240044000000155400000000bc0fa408a408a408a408a408a408bc0f0000000017540000fc030401fc01000074014401440964095c0cc00300001b5408020801aa00ea0fba04ae04aa04aa04aa04be0f080000001d5480004400440f4c0554052605240554054c05440f440080001e5420022401a40f640924093c09240924096409a40f240120021f540000fc030401fc010000b0008800a608a40c8803b000200020540000fc0304010401fc0900042003fe002003260428080000265420002400a40f94049404bc04840494049404a40f2400200027540000fc030401fc010000fc07440844087c0844084408fc062854fc030401fc010000e80108010801fe0708090809e80b080829540000fc030401fc01000860045802c60140084608980720002b5410000800280f28092c092a092a09ac096809280f080010002c540000fc030401fc0100080006fc0124002200e20f220020002d54fc0304010401fc0100080804e8032a002a00e807080808062e540000fc030401fc0900043006ec012200e80f2808300820062f540000c00f3800a80fa804ae04a804a804a804b804800f000031540000fc030401fc0900086804a8053e022805e804080800003354000000097c0940055c05d403540154035405dc05000900083454000040095c0954055407d4015403540554055c094009000035540000fc030401fc01000878080004fe04000288013000000038540000fc030401fc09000484037c08840424073c05e004000839540000fc030401fc0960081e040803f80008030804780800003b540000fc030401fc0120009c096a041803f8080804f80300003c540000fc030401fc010008f40f4c000000fc070008000800073e5420002200aa0faa04be04aa04aa04aa04ba04a20f2000000040540000fc030401fc0100043a022201a2086208fe07220020004254000000009e0792049204f2049204920492049e07000000004654000880089e0492029201f20f9201920292029e0480080004485400008008bc0aa40aa40aa40fa40aa40aa40abc0a800800004a5400002800a70fa504a404a404bf04a404a404a40f2400000050540000fc030401fc010000f00f1003f0005e009009f007000055540000fc030401fc010000fc0704043405c404a40414050004585400000008fe0532043203b200320232023204fe05000800005b540000fc030401fc011000c807240822092409c808100610005c540000fc030401fc0100007c014401460164096408dc07000062540000fc030401fc090004fe031200d207920892085e06000066540000fc030401fc001003ee0220090806fe010808f807000068540000000efe010200aa07aa02ba02aa0b2a080208fe07000073540000fc030401fc01000448024801fe0f480148024804000075540000fc030401fc010000f40314011401f4090408fc0704007b540000fc030401fc010000fc0324012401ff0f24012401fc037c540000fc030401fc010000b4088408fc078200b2008a0000007d5400001000d00758025802d4031200d40f58004802d001100086540000fc030401fc013000f80396049404f4050405fc0400028b540000fc030401fc01100008000e00f80f28012801280100008c54000294015400fc0752000000fc07040204020402fc0700008f540000fc030401fc040002d4011408f40f840040012006000490540000fc030401fc016000fc0f0200d00010091008fe071000925400081c081404d4035c0040005c005400d4071c080008000695540000fc030401fc010000900f90049004fe049004900f100096540000fc070401fc0c0002fe09080cf003fc0f0404fc0f000099540000fc030401fc09000490037e081004f2079608540810049a540000fc030401fc01500048022e02b50434054c0944004000a6540000fc030401fc010008ec04ac02fe01ac02ac04bc090008a7540000fc030401fc014008bc0494036000f8090008fe070000a854200011008a0fa004ac04a30492048e049204a20f2e000000aa540000fc070402fc030008ac072000fe0f2000a803240c0000ac540000fc030401fc0100082808a8040a03cc05080468084008af540000fc030401fc011001880f5609650974095c09840f8000b1540000fc010401fc010000f807a802ac02aa02a802f8070000b2540000fc030401fc0900084e044c02f8014c024e044a080000b3540000fc030401fc0100082405b4046f022402940544080000b854000cf8030800a807a802a80a080bfe080807ca082c080006bd540000fc030401f800fe0f02042205fa04a2050204fe0f0000c054000204017401540fd4045504d60454015402740504050008c1540000c00f40045e04d2071200d20f52045e044004c00f0000c4540000fc030401fc0100088804fe0288008800fe02880c8008c6540000fc030401fc0100082809a404960454024c01c4000000c7540000fc030401fc01000824092409be0f2409240920090000c8540000fc030401fc016000300fa804a604a804300f60004000c9541000d40754025e025402d409100cfe021003920454080007cd540000fc030401fc010000f80f0800e8032e01e8090808f807ce540000fc030401fc0100082408ce0404030405ce0424080408d1540000fc030401fc0540040404fc070404fc070404e4040000d7540000fc030401fc0100007c010201900f3e01480144012400df540000fc030401fc010004fc0582041002ce080808f8070000e15400000008ff0bad06ad06ad02ad02ad06ad06ff0b00080000e554000044007c076c056c056c056c077c004408fc0f44000000e6540000fc030401fc010008fc0f9200100cfe03900556080006e8540000fc030401fc010000f60f50015e0150095009f6070000e954fc030401fc0100007c0954095409fc0f540954097c090000ea540000fc030401f80c0202fe099208fe07fc0f0200fe030000ed5480089e08920892049e03c0009c039404d404dc0880080000ee540000fe018200fe0080016a012a09bf0f6a012e012a010901f25400001200b20fbf048a04a0049e0489048904b90709000800fa54fc030401fc010000e80fa802a802fe0fa802aa0aec070000fc540000fc018400fc000000bc08ac08ae0eac01ac01bc00040001550000fc070403fc030000a80ea80aaa0aaa0aa80aa80e080006550000fc030401fc09400828099e068804fc06cc055808400807550000000ffe00220eea0aaa0a6a0aaa0aaa0a2a0d2201000009550000fc030401fc01000828092e05ea0328052e092809000010550006fc0104005c075c055c05fe055c055c057c071400000014550000fc030401fc010000aa07ba04ae04aa04ba04a207200020550000fc030401fc01000894049602d4099408960c340300002455fc030401fc010008f80494029601f4019c029404f404800827550000fc030401fc010004fc0754023c00f80f0400fc0300002c550000fc030401fc01000cf80328083e076c006c074c0800042e55080008007c0f5e055c055c057e055c055c055c0f440000002f550000fc030401fc010000fc0faa04a804fe07a804a804000031550000fc030401fc010000fe076a056a056a056a05fe07000037550000fc030401fc010008f407ec00e602650a640af407240038550000fc030401fc0800062800a404b209340af400240608083e550000fc030401fc010008d40a140afc0f140ad20a500a100843550000fe018200fe000800ee0fa802af02aa0aaa0aea0f000044550000fc030401fc0120049402540a2c09c407640094030004465500000000f40f14007c071605340554055c071400f40f00004a550000fc030401f800fe0f3200cc01e4031401e408fc0704004f550000fe0f2a00aa07be028002be02aa032a082a08fe0700005355c2003a00aa07aa04aa04ba049004ce04b40434074c0084005f550006fc01aa07aa02aa02ba0320047e028801e8021804000061550000fc030401fc0100002801fe0f0000fe0f2801280100006455fc030401fc0100007c02d402d4027e02540f54027c02000065550000fc030401fc01100048074405f205540544054807500066550000fc030401fc01000cfe030808600889090a0ee80900006a550000fc030401fc018008fe074000f80f8c048a04f80f000070550000fc030401f8098e0952087e0552025e01d2015e0000007855fc030401fc01000cac032c062c01fe0f2c012c02bc0f08007c550000fc030401fc0100006c07a400a60fb400a404a403000080550000fc070402fc030000a40fb40956095409a40e8c0000008255fc030401fc010000fc00d40fd408fc09d402d407fc09000083550000fc030401fc00e00f1400b4029e07d4021408f4070000845500014401540f560b540bfc0b540b540bd60bd40f4401000087550000fc030401fc0c64029e0ff40194026008f808fe07000089550000fc030401fc016000f80f060050095405d4035c0550098a550000fc030401fc0cf0030807a802080d7e0288056a08000694550000fc030401fc0c0002fc093408f40ab40fb40abc0a00009855fc030401fc010000bc0fb000b00ffe00b00fb000bc0f00009a550000fc0184007c08f0055805360394033c055005f00900019c55000104017c0fdc0b5c0b5e0b5c0b5c0bdc0b7c0f040100019d550000fc030401fc010000be06aa04aa05aa08aa08be070000a7550000fc030401fc010808f40bb40ab60ab40ad40b1c080000aa5500008408bc08ac0fbc088408fe098402bc04ac0abc0a8408ab550000fc030401fc0900083e053403c0033c0504097c090000ac5528002c009c0ffc00dc07dc05dc05dc05fc079a08a80f2000ae5500000004fe055a055a05fe0f50055e055a05fa050e040000b2550000fe030201fe01180ce702900050068e000808f8070000b3550000fc030401fc010008d40bac0aae0aac0ad40b14080000b555fe018200fe000000f00f92049704f20790049704f2070200b655000018000a077c055805de05580558057c050a0718000000b755fc030401fc010008d40b54085406560154045408d40b0008bb550000fc030401fc011800d80fb402f20f94011808c8071000c5550000fc030401fc0100087c055c055e035e03dc057c050009ce550000fc030401fc01000cfe00aa06aa00fe04aa01820f0000d3550000fc030401fc01000852057603860f9603520530050008da550000fc030401fc090004fc00d40ed600d405dc08c0070000dc550000fc030401fc01400034077e07d407dc07d407d4070000e155fc030401fc010004c802540aa20710005202740ae4070800e3550000dc0fd407d40fdc0f84015402d40b0408fc0700000000e455fc010401fc010004e0076c067806ee0768066806ec0f2008e6550000fc030401fc01000c5401f4095e071401940530080000e8550000fc030401fc00000e44009003cc02a80ba80ae8070002ef550000fc030401f8003e0162026a045a055a0442017e030002fd550000fc030401fc042402fe0f540174091006ce010806380800560000fc030401fc010000f40f1402f60554055c071408f40701560000fe018200fe0ef8018404f407140087047c03850674020656fc030401fc010008f40ad40ad606f403d406d60af40a000009560000820ebe02ee0aae0aaf06ae0cee0aae0abe0a820e00000e560000f8030801f00504057c05fc037c037c05fc057c070403175600000c00460fd60bf40bf60bf40bf40bf60bc50f9c0000001b560000fc030401fc08f8070401f40f26028401f40fa40004031f560000fc030401fc00800f7e055005880ffc070400fc03000031560000fc0184007c080007fc0eb401dc05fc07d401dc0f000032560000fc030401fc037c02ae0f7c02fe079200fe0f0000000034560000fc030401fc011004d803ee02f407f002ee02d407100036560000fc030401f800040dfe015401fe0dfc032400e20f220039560000fe038201fe01000cfa015609530f5601fa01320c00003b560000fc030401fc0100007c0fdc0b5e0b5c0bdc0b7c0f04013f56fc018400fc0000085e0556015205fe095a0152055e00000e41560000fc030401fc00200d5401dc07040bdc0b54097401000d62560000fc030401f8097c080c0564037601240344057c0900006856000040025c0f5409d4097c0f60004c0ff40974095c0f400269560408c40bfc0afc0b4408fc0f4408fc0bec0afc0b040800006a560000fc030401fc09c005bc05f403940ff40fbc03e005000874560000fc018400fc041004f407f402f602f402d406f407100887560000fc030409fc07e40b3f08e40f240de403ff0f2400a0038e560000fc030401fc0140083c06bc06be03bc0fbc03e4040000a35600008807ee05ae056e0758006e076e05ae056e0588070000b456000ee001bc04f407f407ec0fb801d4097406fc0560080000b7560000fc030401fc05000cfc0fec09fe01f407ec05fc090000bc560000fc030401fc010000f40ff205fa0c3201b908b5078000c25600000802fe07fe07fe07fe06f800fe06fe07fe0708050001c9560000fe0182007c01f706a5020703fd0f5705f50757050000ca560005b403fc0bfc07fc059e05fc01fc03fc05dc0794070000da560000fe0f02040205820442043a04c20402050204fe0f0000db560000fc0f0404c4053c04040404047c0484040404fc0f0000de560000fe0f0204f204920492049204f20402040204fe0f0000e0560000fe0f020422052205a2047a04a20422050204fe0f0000e2560000fe0702049204520452053205fa0512040204fe070000e3560000fe0702040a046a040a050a05fa040a040204fe070000e456fe0f0204520492049204fa059206920652060204fe0f0000ed560000fe0702042a05ea042a04ea052a052a050204fe070000f0560000fe0f0204a2056204fa056204a20422050204fe0f0000f1560000fc0f04044405240557059404740514050404fc0f0000f2560000fe0f02049204fa0592049204fa0592040204fe0f0000f3560000fe0f02065a074205ca04c20432050a050204fe0f0000f4560000fe0f0204aa04aa04fa05aa04aa048a050204fe0f0000fa560000fe0f02041204d20552057a055205d2050204fe0f0000fd560000fe0f02042a052a05fa052a056a052a050204fe0f0000fe560000ff0f010429052d0515059505ad0625060104ff0f000003570000fc070404f405f404fc04fc05f404f404f4050404fc070657fe070206de0656065605560556045e06c2060204fe07000008570000fe0702043e04fe053a06ba067a063a050204fe0700000b570000fe070204ea05aa054a047a058a056e060204fe0700000d570000fe070204fe057e057e05fe057e057a050204fe0700000f570000fe0702046a04ea05fa06ea06fa066a040204fe07000012570000fe0f020cea0d6a0b7a0b6a0b6a0bea0b020cfe0f000013570000fe0f0208c20bfa0bea0bea0bea0bfa0b0208fe0f000016570000fe070204fe07f607f607f6077e06e2070204fe0700001857fe0f0204fe04fe05fe04fe04fe06fe07fe040204fe0f00001f5700042004200420042004fe072004200420042004000400002357400844084c092c093409a40f340934094c0944084008000027570000000cfc03040844084408f40f44084408440804080000285708018800c80f38008e0888088808e80f88088808880800002d5700082409240924092409bf0f240924092409240920080000305700021002fe0110014000fc0720082008fe0910081009f804335700041002fe031001000cfe0300000000fc0700000000fe0f3a5700021002fe03100100012209f2042a02e609220ce00300003e5700041002fe03100a000484037c08840424073c05e0040008405710021002fe0110010008f00f00080008fe0f200820082008425700021002ff0190040006fe01320cd2021203920272040208475700021002fe01100130000c022a012809a808080cf80300004a5710021002fe011009000c0802f8014a0848084808c80708004e5700021002fe011001400834080a06e80108024804380800004f5700021002fe011001440144002400fc0f04002400c40080005057200890088e08b0088008fe0fa00890088e08900820080000515700021002fe011001000ce8032a002a00e807080808060000575700021001fe019000800808044803fe00c8014802780440085a5700083e08000900097e09460f2a0912092a092609400800005b5700021002fe01100100042406a40564042404a405240e00085d5700021002fe0110010008fe0902040202fa0102040204fe095e5710021002fe0310010002fc0284028602a60aa4089c0700005f5700021002fe0110018009080478048a038c02780408080804605700047e0502053e050205a00730050e051005200540040000615700021002fe031009000cf803c8097e064806c8095808000064571002fe0110010000fc0324012401ff0f24012401fc030000665780001001fe0090000004fe049204920492049204fe0400046a5700001002fe0310010200ba008200fe0f8200b2008a0000006f5700041002fe031002400944082408fc0b2408440884080000775700021002fe0310010400f4031401f4090408fc0704000000825700004002540af40b540a540afc0f540af20b520a40000000835700021002fe01100100042804c8050a040807e8040804000084578808880a680a180a4c0a480f780aac0aac0a880a480800008b5700004004ca043e040a057e050a0700051e0540057e04000492574008680948096c090a09080f68094c0948092809400800009b5700041004fe0310020008a0049e02c20f8201be02a004a008a25700021002fe011001000efc01940f540454045204d20f1000a35700021002fe0310090408f40b540a540a540a540af40b0408a65700000008fe0aaa0a2a0a2a0f6a0aaa0aaa0ade0a800a8008ab5724049405fe0514050005d40734051e0504057c0480044000ae5700041002fc0310028000a802b803ac0aa80a980aa806a800c25700021002fe0310090009fc07ac06ac05fc08ac08ac08fc00c35700041002fe031001400828092e05e8032c052c0920090000cb5700021002fe01100100087c0954095409fc0f540954097c09ce5700001002fe01000cf8032800280ac8097e0488076e080806d45700021002fe0110010000e80fa802a802fe0fa802aa0aea07df5700001002fe0110014000a802e80a08047e0288056a080c06e05700021002fe0110010002fc02b402b60fb402b402fc020002f75700009402d4029e0ff40210084806fe0108010800f807000cf95700011002fe0100012400a407b404a604a404bc04ac072400fa57000048014805fc047805780778057805fc04480548010000fc5700021001fe0110010000b407b402ae0b36083408f40f3400005800000801ff000006ff01050e75044504f5074504770700000258000038080a0aec0aa80aae0fa80aa80aec0a0a0a38080000055800047e055605760556055e0700054a0532053a0546044000065810021001fe0180003000fc0faa04a804fe07a804a804000015580008fe0a0a0a760a000a7c0f3e0a3c0abc0afc0a040800002158100010047e0500055e053a071a057a053a055e0550040000245810041004fe03100a8008be06aa04aa0faa0aaa0abe0a80082a5800001004fe031003040ffe09540b540b5409fe0d040900002f58000098099c097c055c030e015c015c077c095c0958050000305800021001fe011000fc0f0404fc067c077c05fc057c0440003158000054017401de0774010000fe0f6208b2043203ee0c0004345800020802fe0108004009fe056a036a056a036a097e070000355800021001fe011001d4005400de07740550055805d60710003a5800010801fe008009be04aa04ea033e002a00ea0fbe0100014158000840097e0b6a0b2a0a3e0f2a0aaa0a6a0b7e0b400900004a5800041002fe03100100017c085607d500fc075408540b7c0b4c5808010801ff0108014000df015505d50795015509df0f0000515800006808cc0a780a4c0a280f800a7c0a540a540afc080000545800021002fe011001440024072605540554052605240744005758da08020a8a0aa80a2c0aac0eaa0afa0a2c0aac0aa8080800585800020801ff0108010006fc011c065d05fa055c057c0714005a5800021002fe0190050605aa027a0a8a093a06ca00260700005e580000840ab40ab409f40ab40ab60ef40ab409b40a840a0000695800011001fe0110053804f607d407d404d407f404840700046b5800041002fe0310010008fc0bbc0abe02bc0afc0b040a000075580000000cfe07ea04fe056a056b077e05ea05ea05fa0400007e5844087c097c0bfe0b7c0a000f880a680a1e0af8080009c008835800020802ff0188080808fa055e035b015e0ffa0908040000855800087e0b6a0bfe0b6a0b7e0f100a920afa0a160a720800008a580000ac08ac0aee0bbc0a880fe80a3c0a480af8080009c008935800014405fc047e057c057c057c077c057e04fc0444050001975800021002fe0100017c00d70fd40afc0ad40ad70afc0f0000995800001003fe0190000400ec07e407fe06e4066c05e40700009c5800007e048a067606000656073c05b405f4051605640480009e5800001003ff0180003c00e60f74057c056405e70f3c000000a858000420047e053a057a053e077a053e053a057e0520040000a9581004fe0310037002da0adc0ff803000afe048803780c0000ae580000fe08020a7e0a000af60f3b0a7e0a7e0ade0a7e080808b35800021002fe0110010408d407dc07de03d403d407d40b1008c15840007e046a056a056a056e0734053c05760534053c050004c75800001001fe0100017c04cc07fc07fe07fc07cc077c040404ca5800001002fe010003f40ad40ef409de05f402d406f4080008d358000cfe03ca01fe06fe06be07c2071207fa06f206b4040001d55800001002fe0110004405bc06bc03be0bbc07bc01e4060004d858000470057e057e057e057e072e057e057e057e0570040000de5800001002fe0100005c02ac0e3c096e093c02ec06fc080000e25800001004fc030008fc070400f40e6408040ef40aa40a0000e45800001002fe0100057c04ec0dfe0bc601fc07ec05fc090401eb5820002004200420042004fe07200420042004200420000000ee58000218020001fe0f000020082008fe0f2008200820080000ef5880089e079000fe0f0000200820082008fe0f200820082008f0580000040cd40354015401de01540154015401d40304000000f2580008c4085408540654015e005400540754085408c4040000f3580008c40854085404d403de00d400d40754085408c4080004f6580000c408540a5408540f54085e08540f5408540ac4080000f95800003404bc057c057c057e057c057c07fc05dc0514040000fa5800006408340bb40af40e3e08f40eb40ab40a340b64080000fd589400dc06fc06fc06fc06fe00fc04fc02fc0adc0fd4028000045980086008de040803e80218040008fe0b2008400880080000075940005000480fac0ab60aa40fb40aac0acc0ac40f400040000959040a440a34098405a4069e04c406fc0684099408240800000d5900000808080a7609de075c055c055c055c0b7c09040800080f590008040a7c097c05fc077c057c057c077c097c09040800081559000040002008100848044e048a020801880068001800000016594000600850048e028801680010002000fe0f8000000100021a5900005008480944093405a60494064c024401c000400000001c5984004400f40f040044086604b403140394047404140800001f592000f0032c09e8090808f8070000a808960454024c01c00020590809a80476055402cc011000cc032a01e8090808f80700002259c4007c0a6c0a6e0bfc0b6c056c0576036c017c00c400000025590008fc04d402fc0fd402fc0010084809d606b4048c03800027591008100410021001d0003e00500090011002100410080000295940084408440444024403fc004401440244044408400800002a591008100410041003d0023e045008900110021004100800002b5940084804480448024801fe004801480248044804400800002d59000040084408440444044403fc00440344044204420840082e5900008008f80888048803fe00880188068804f808800800002f5980004808c808a8049803ce008808880898082807480088003159600870044e044802c8017e00c80148024804480440080000345940044808520454044402c0017e0040024002400440080000375900000408ec04ac04ac02fe01ac03ac04ac0abc0a84090000385900002800a800a802b803ac02a80aa80ab80aa806a80028003959000080088808a80888048803fe0088038804a804880880083a590000a800a800a80098068c008a089808980fa800a800a8003e5908098808680408040803fc00080388046808880808090000445948002800e807b802ac02ea07a80aa80ab80ae80b48080000475900003400b407b402b402ac02ae032c083408f4073400200048592804a80ca8029808ac08aa07a8009802a802a80c2800000049590000a000ac026c022c02bc02ae0fac022c026c02ac02a0004b5940004400e40f54054c05c6074c0554056405e40f440040004e59140454044c055c055605750754055c054c055405140400004f59900054085c057c055c03de015c035c057c055c095c08900051590000540954097e0954054003420322051e0942093e0900005459200124091405ac0324012601750124018c0f140124012001555924095409440924051c05060306017c05040514052409000856592009240910097e09000548034403260524091c09040900005759200024011405fc0774057605740574057c05140d240920005a5900098409ac056405b403aa016203520342054a0500090000605900000405fc05ee05ee05dc03dc03ee05ee05fc0504050000625928012a01aa00ae0fea0abb0aaa0aba0aa60aa60f2a002a006559000000097c090c056405760324034c0504057c0900090000675900097c0904056c056c052c037e012c032c038405fc050009685900002e0920097e0500052403920116039105fd05150910096a59000054013401fc03f407f601f405f405f403fc01940114016e5900001a009a0ffe0afe0afb0ffa0afa0afe0afa0f4a0000007359000010081009d00830091e0512021002900570041008100874598808f8040e03c8013808000c3404c403c4023c040008000076590808f80c0e03880370080407fc0004043c082408e007000078590000f8080e058803780c000044004400fc0f44004400400079590008f80c0e03880178060000fc071008fe090808f80800067d590008e80c1e0388037804000044084408f40f4c0044004000825900000808f8080e05e8031000fc0f040404040404fc0f000083590008f8080e05880378040000c407440844084408fc080006845980088408bc0aa40ba40aa604a404a407a408a408840800008659000018038000fe0f0000900870091e061003f0041008100887590808f8040e038801780000044404440444044404fc0f000088590008f80c0e03e802180470014401440964095c0cc003000092590008f80c0e03e803180cf00348004a004a004800f800000093590808f8048e02c801380200086804a8053e02a8056804080896590004fc040703c4023c00000c2202a2017e00a1012102200499590000e8089e06c801380200083c048004fe0200028c0130009e591008f0040e03880378000808e00f5c084408fc0f40080000a559000044085406c40764066c0244026205f2044a0440080000a8590800f8090e05880370040000080ff8004e084808c8070800ae590008f80c0f03f808000cfe031200d207920892085e080006b3590000d0083e051003f8040000d4030a08f80f0800d8010802b9590008f8080e0588037800000c48024801fe0f480148024804bb5914095c095c0b5c0bdc057e055c055c075c057c0914090000c6590008f8090c06f8050000fc0744045405540c440cfc074004c9590000e8081f07c8013806c00124002400fe0f2400e4030000ca590808f8080e07e80110067800440fc400fe0f4400c4070000cb590000e80d1e03880178020000b00fae04a004ac0430074000d0590000f8090e06e8031008fc0f240924092409fc0f00080000d1590000f80c0e03880378040000900f9004fe049004900f0000d3590000e8081e05c803380020089c089008fe0f900890080008d459a808ac08ac0b9c0acc06fc048c029a05aa04aa08a8080000da590008f8040e03f0080c098004fe030000fe0740089c088406dc59a008ac08ad0aae0bac06bc04ac06ae05ad04ac08a4080000e5591008f0041e03900378040001a8077e092809380928052400e8590008f80c8e0370040400ec0cac02fe01ac02ac04bc090008eb590000f40c8f02e4011800fe0f920492049e079204f2040004ec590008f8040f03e8011000fe070204f2049e079204f2040204fb590000f80c0f03e8011002fe0f0205e204ba050204fe0f0000ff590000a208940ad40bc006a60494048c069405a408ac080000015a000ef8010804d8057802d8030808fe040803ca042a080006035a0008f8080e07f804000024092409be0f2409240920090000045ac808c808ae0a980bd806fe0498069c05aa04ea08c8080000075a0008f8040e03c80138065000340f1c001400320f52008000185a0008f8040e03f8060000fc0f54045604d4015403bc0480041b5a0000f00d1e03f800040870095c07e40164037c05c00900091c5a0000f80c8e0378080206fe019208fe07fc0f0200fe0300001f5a0808f8080e05e8031800c00fbc02b402b40ab40afc0f0000255a0008f80c0e03f802000a9408fc0f1204fe02900556080006295a0008f8080e05c8033808f80894049603f40f9c08f0080004315a0808f8080c05880370080c095407d401540354055c090009345a0000f80c0e03f800f20f0400a001fa07a2000208fe070000365a8008c208fe0ada0bfe06a206c806b4059404ac08a4080000465a48086a090a0b600b1c054c055c052e052c075c0944090000495a0000f80c0e03f80000084c0c34034600f4071408f40900045a5a0000e8049e02c8013000be076a056a054e059a0729002800665a0000e8089c06c80130068403bc00fc0fbc00bc04a0030000745a40005e094209320b8e0500055e05420732094e0900010000765a0804f8048f0378020000f4035401f60754015401f4010000775a0000f0088f077c0c80057c006c096e0f6c017c00c40100007f5a0000f00c0e03fc040800a20fda00de026a0b6a0aea0f2200925a0004f8040e03f80200008406be01ec07ac01be02840400009a5a0008f8088e0778000007fe00ca0fae0aaa0aaa0aee0f00009b5ac808be0488037008040e5c01f405dc06d206da0552080000b35a0000f0091c06f001000cfc015409560355015405fc0d0000bd5a0000f0088f057c02000cfe00aa0eaa00fe04aa01820f0000c15ac808be048803780200005405b4027609b407d40054034004c25a0000f80c0e03f802000abc08ac07fe04a006ac05bc080000c95ae8081c05ca033002880cfc0304089506f601940694080000cc5ac8093e058803780800085c05f80f5801f80f5c03f8054808e15a0000f8080e05e8031800e00f1c02f60554051c02f40f0000e35a0000f0088f057c020008fa01a209be03aa0baa09a2070000e95a0000f80c0e03f0042402fe0fde0f6401700c8e0378040008095b0000f8080e07f00404007c0fdc0b5e0b5c0bdc0b7c0f04010c5b0000f8048f037c020000960ffe03d605d607fd00950f2400505b000040004400440044084408e40754004c004c0044004000545b800084088408f40f4c0044000000fc070008000800080006555b4001420132012e092209a2076a012e016801480138010000575b00008c00840094089408d607b400b400940084008c000000585b00018800c80f38000c0128092809a8076801280108010000595b80008408e4075c0044000001f0080008fe0f0000700080015c5b000042084208f20f4a00260830046f048803c802380408085d5b000090005401540154097e095407d4015c015401120110015f5b000000001004900792049207ba0496079204900700040000635b900254025402b40a940abc079403b2025202520290020000645b80008408f4074c00000ffc00040efc050406fc080203000c665b000038010a012c0128092a09ac07680128010e0138010000695b84088408f40f4c0000082805b8046a022c038804480800006b5b84004408f40f4c00c4049402ec00a40f9400d20404050000755b0000fc0b7407f000fc0ffc0108002409aa0f62012a010000785b0000e0023c02bc02bc0ab00ab606a003bc023c02e00200007d5b0200fa02be02bf02ba0ae00ab00eb703f602b60236020000815b00005800480048084808ca07480048004800480058000000835b000018000800e80788088a088e0848082808080818060000855b00000c0124012401a400e60794089408940884089c060000875b00009c00840094089408f60794009400940084009c000000885b00002c00a4002403240026082408f40f240024002c000000895b00002c082405e405340526022403a4026404240c2c0400008b5b00085c0c44044403c400f60fc4004401440244045c0800048c5b00009c08840894049403950096009407940884089c0880048f5b00002c042403e4083408e607640424042405240624080800975b00009c04840294029408960f94009400940284029c040000985b00001c000400f4075405560554055405740504071c000000995b00000600f20f92049204fb07920492049204f20f060000009a5b00081c0c840334023404f60fb408b408b40884081c0800009b5b80008c0844043403a4014600e407240824092409ec0400009c5b00001c040404f4075405550556055405f40704041c0400009d5b00000c08b408b408b408f70fb408b40ab40ab40a1c0800009e5b000018094809080928050a03ec01080308050805180900009f5b00000c095c095c055c03fe015c035c055c055c091c090000a05b00082c0c2402e40134042602ec072c09a408a4082c040000a15b00000c00e40354015401f607540154015401e4030c000000a25b80022c012401a40fb40956095409b409940f84010c018000a35b00001c080408d40f540d560d540d540dd40f04081c080000a45b00000c08840a940af40ad60f540a740a740ac40a8c080000a65b00000c00f40f540954095609740f54095409d4091c080000aa5b0000cc08c408b404a403a600f600a407a408a4088c080006ab5b00001c00040774055405560554055405740504071c000000ae5b00001c00040774055405d60554055405740504071c000000b05b00008c008402d4029402960f9402d402940284028c000000b35b00001c01440f540b540bf60b540b540b540b440f1c010001b45b00000c090409740b740df60574057407740904090c090000b55b00000c08ec072c00a402b602a402a40a3409e40f0c000000b65b00005c0544055c03bc0a5e099c079c005c0144021c040004b95b00002c022401940f4409260924094409940f24010c020000bd5b00000c08dc0b5c087c045e035c047c085c08dc0b1c080006be5b00000c090405f40554054e014c01cc054c0544050c090000bf5b80004c00e40714000400d6075405740554055405d4070000c25b00004c034408f40f5400460b140874049403d40434080008c45b00008c00c407d405b405b605b407d400d408c40f8c000000c55b00080c08e40bb406b406f603b402b406b406e40b0c080000c65b00000c01a4078404e4044e07a40494044404140f64000000c75b40085404d4035400d40756080408740b540bd40854080004cc5b00000c008407fc05dc05de07dc05dc05fc0584070c000000d25b00008c04bc02bc01fc04be08bc0afc08bc09bc028c040000d35b0000840ff400f402f402f603f402f402f406f40484070000db5b00080c08c40bd40bf407d603d403f407d40bc40b0c080000dd5b00002c010401fc03c4097e087c0b7c057c057c0bcc090008de5b00000c0ae40af40af406f603f402f406f40ae40a0c0a0000df5b00004c096405b401f409860f9401a403d40334059c080000e15b00008c008405fc05fc03fc03fe01fc05fc07fc018c028000e25b00096c074401f40f0400f609f40bf405f407f408ac090000e55b00015c095c09bc0a9c0b7e074406bc047c057c010c010000e65b00001408d407fc07fc03fe03fc03fc07fc07dc0714080000e75b00000c01c4035403d40b6a0bec0f64034403d4030c030000e85b8004b402b40ab40bf402b60eb402f40ab40bb40a84020000e95b00014c01640ff40b540b760f540b540bf40b540f44010001eb5b00000401f404f402f400e602c401f400f405f40484030000ec5b00080c08c40bd407d407d603c403d407d40bc40f0c080000ee5b00008c084408d403f40ad60ed402f402d40b44088c080000f55b00005408f407d401f40ad4070600f407740b740b740e0004f65b00041608d607de07d603c703ee03ee03fe07ee072e080000f85b00000800280068008801080808080808ff07080008000800f95b0008240c440284017c020002d00010091008ff0710000000fa5ba000a800a800a806a804bc00a808a808e807a800a800a000fb5b0000000144015403540354015409540954077c0100010001fc5b000000013c015403540554015409540954075c0140010001fe5b0008280c48028e01680608045000d0011008fe0f10000000ff5b4004440554035401f4055e0154095409d407540144010000015c0000a404a404bf07a404a4040000d0091008fe0710000000025c000002017e01560556017f0956095609d6077e0102010000045c8004fe04aa02ab09aa08fe0f0800e8040804ff0308000000065c000008019000fe0f00008402b402b6089408cc0f84000000075c80089e079000fe0f0000d800c406ae049608cc0f84008000085c00028402bc02bc06bc06fe02bc0abc0afc07bc0284020002095c000ffe000a02aa08aa0faa00860210089008fe07100000000a5c00000402f4039607bc079403bc0bd40bd60ff403040200000b5c000020033403fc02bc061c02fc0abc0abc07bc02e00200020d5c140458056e05d0076e0554051400d0091008fe07100000000e5c9002960270028406fc06fe02fc0afc0afc07fe02840200020f5c00000001e000100000080008fe0700000000100060008003115c40082008180800080004fe04000200028801900020000000145c000020021001cc000a080808f80f08004800c80018010802165ca008b0088c0880048003de008003840484049808a0080000185c0000200810090c0900090009be0f000904090c09100920081a5c00000000e40f2800a007bc02a002a002a0032808e40700001d5c00009804ba0cbc0bb808be04b804b804bc06aa0498080000245c0008100810041002d0013e009007120814081408100600002c5c0008e8071e00f8070808080ae80904080608e80b08080004315c080478035808dc075800b8090004f0031e00d0071c081806345c0000e80f1e00f807000c9c0fb80f900c8c0fa80ca80f080c385c0008000cfc032400240024002400240024003c0000000000395c00001008940494049403fc00940094009400fc01100000003a5c00080006fe012200220022006200a20122023e04000800003b5c0000000cfc0314089406f40194009400940714081c0800063c5c0000000efe011200d20392049204920452045e04000300003d5c000280017e001202520492049204320852089e00000300003e5c0000000cfe031200d202d202d207b20ab20ab2099e0500003f5c0000000efe01120452039208d20f9200920152025e040004405c0000000efc015400540754055405540754085c08c0070000415c0000e00f1e00d20f920892041200d207120992085e080004425c00000006fe010a00aa04aa07aa04aa04aa04aa06ae0c8000455c0000800f7c00540f54095409f40954095409540f5c000000465c0000f00f0e00ea0f0a084a0a4a0aea0b4a0a0a08ee0f0000485c0000000ffe000a0eea088a088a08ea0f8a08ea080e0e0000495c0000000cfc031400d40f9408d40b940a940ad40b9c0800004a5c0000e0071c00d40754055405d407540554055405dc0700004b5c0000000cfc031408d40ad40ad40fd40ad40ad40a5c0a00084d5c0000800f7c00140bd406d4025401d407540954095c0900044e5c0000000efe01120cb2029200d20f9200d202d2029e0480084f5c0000000efe010a083a05fa032a012a01fa0f3a012e010001515c0000000cfc031400940fd403f4039403940bb40f1c000000555c0000000efe010a08aa07ea04aa04aa01ea02aa05ae0580085e5c000efc011400f40ff405f405f407f405f405d4091c0f0000605c0000000cfc031404540f540ff40f540fd40f540f5c010001615c0000000efe010a08ea0b4a0dea054a054a07da05ce09c009645c0000000cfc031400f407f407f407f407f407f407fc000000655c00008006fe01ca073a002a0afa06fa07fa05fa07fe0500046c5c0000000efe0116087e0bf60bee07e607fe07fe08e60700006f5c00000800e80108010801fe07080908090809e80908080004715c0000f00f000400040004fe070004000400040004f00f0000795c0000f803fe030002f803000018062e09a8086808280808067f5c0000f003fe010002f0030000740148014809480cc8030000815c000000088e098808680858074f0448024801c8004e000000825c00000c002807280928092e09280928092809e8090c040000905c0000f807fe030002f80b0008e80828053e062805e8080808915c40004c002801280158015e015801280d280348014c004000945c0000080044074a0438048a070a044a043204040708000000965c0000f003fe03f0030000fc0f0408340bc4083409040a0000975c0000ec0f2800a802a8022e012801e802680a2808ec0f00009a5c0000000cfc031800d8061e01980158061800f8070c0800069b5c000000077c044404540756044404540f54084c08c0070000a15c0000fc0f0400ac0724022402e40324022402ac0b0408fc07a95c20022e01a800e807a804ae04a804a804a804a804ae072000ad5c0000fc03fe030002fc0310004800440253024405c8001000b15c100008007c0702040804ce07180428044a044a0f28000000b35c400040007c0f54045404d407540452047204500f40000000b85c000ce0032c00a802a802a802ae0fa802a802a802ac022002e15c0000f003fe030002f805000cb8048803fe018802a8048808e65c00002400340704043c04860704047c040404940f24000000e85c0000f003fe030002f8030208fe0f1000fe069005560c0000ea5c0000f8030002fe030002f807c000a60f9208b008c60f8800ed5cf8030002fe030002f8030000ee0fa002be02a00aec070000f05c0000f807ff070004fc07000024055705da0f560552051004f65c0000000efc045c055c075e055c055c055c015c0940070000fb5c0000f803fe03f803000028058c05ca0288022e0568040000035d0000f003fe03f00300005403c400fe07c400540144020000075d00097c051801580958095c0f58015801580518057c0900000e5df8070002fe030002f8030000b403ac02ae0b3408f4072000145d40002c00e80f580558055e05f8075805580558055c050004165d000cfe030c08ac0aac0aae0aec0eac0aac0aac0aae0a0808175d00000000f60f140054067606d607740674061408f6070000295d00000c0cec03a809e80f0e000808e807a802a80aec0700002d5d08016b015a01ca074a014b01020cfa034a00c60f470000004a5d0000f003fc03f0030c00ec060c01fc0f0c016c02aa0400044b5dfc030002fe030002f005fe03ca0faa0aae0aaa0aee0f00004c5d2000ec0f28052805e80f0e00c80c2802a8012806ac086000505d0000e60f1c00dc095c09fe0f5c0d5c0d8c08fc0706080006695d1000960ff400f400f407f405f605f405f407f408960f10008b5d00000000f007fe03f009fc045c0d5e035c0b5c0940070000ba5d20009300aa02aa04b2070700fe05ae05ae01ae05ff050008cd5d20097c0b78057805780b0e00f804d803f803dc06d006f002dd5d0008000cfc03000000000000f807000000000000fc0f0000de5d000070080006fe0120000000fe07000070000000fe0f0000e15d00084408c8070004f808040b70088c09200ad808040b0008e25d00000005fb05a803aa03fd0fa801aa03ae05fd0500050000e35d00000009fe05a805aa03fc0fa801a803ac05fa0500090000e55d00040404040404040404fc07040404040404040400040000e65d0000080c0803c8087c084a084808c80f4808480848080808e75d04020402fc030401000104007c0444084408440cc4030000e85d00000000fe0f920492049204920492049204f20502040000e95d04020402fc0104090004fc03040074000400fc0f00080006eb5d00058404740484040404fc07040584047404840404050000ee5d8008a804aa03ae08a809f809a80fae09aa09a80980080000f15d00000000e4072408240824082408240824087c0800070001f25d00000400f407440844084408440844084408fc0800060002f45d00000000fc07440844087c08440844084408fc0800060000f75d000020012801e807be0aa80aa80abe0ae80ba80820050001fb5d00002001aa00ec06b80aae0ab80a280b6e08a80420010000fe5d0000f8030800080008000800fe0f080008020802f8030000015e00000400e40324002400fc0f240024022402e20302000000025e00000800e80328002800fe0f280028022802e80308000000035e000088018800e8075c004a00e80f480048044804c8070800055e0000fc080006fe010000f80308000800fe0f08000802f801065e0000f8010800fe0f0800f00dfe0322000200fe0f00080007085e0000f8080006fe010000f40314001400fc0f14001402f4010c5e000028012a01aa07ec00b400a40fac00aa04aa0720000000105e0000fc00ff0f0400fc010008ff0720046800a60321042004155e0000f8030800fe0f0800f803f00f88048e048804f80f0000165e0000f8030800fe0f0800f803800f40047e044804c80f0800185e00000c00c40754004c004e00e60f44005404c4070c0000001a5e6000ae07ae01ae01ae01ae0fae01ae05ae052e03600000001c5ef8030800fe0f0800f80300087c064401440044037c0c00001d5e0000e400a407bc00a400e60fa400b404ac04a40764000000255e0000f80fac04aa04b8070000f8030800fe0f0800f8030000265e00006400a407ae00a400ee0fee0fa400a4042e07640004002b5e0000f80fae04a904b8070200f2031200fe0f1200f20300002d5e0006fc010400140774015401d607540174051405140714002e5e0000d400d4067e015401540f00017e0102055e03620000002f5e0000e40024073e013401fe0f340134053e052406e4000000305e0000f8080006fc014000bc07bc00fc0fbc003c0760000000335e0000f800fe0f0800f8010008fe075604d600560356054009365e0000f400b407ae00be00f40fb400be04a404ae0754001400385e000018000a077c0158015801de0758017a050a07180000003d5e0000f8010800fe0f0800f0019e0fc20aca0ac20ade0f0000455ef8010800fe0f0800f801000fbc0aac0fac0aac0abc0f04004c5e0000fc010400ff0f0401f805ef029501f5009507af040002545e0000fc00ff0ffc011004af04bf05af02bf02af05bf040004555e00024401fc077e017c01fc077c017e05fc057c0344010001615e0000f8010800fe0ff80040003c0f940abc0fb20a5a0f4000625ef8010800fe0f0800f8010004f406f406f607fc06f4061004635e00007a0038077e013801ba0f10014e0534055c06c40000006b5e28003c0efc03fe03fc03e80fc003d403e40bde0b040e0000725e40004400440044004400fc0f440044004400440040000000735e80008400b40084008400fc0f84008400b400840080000000745e000030010801e60125012401fc0f24012401240124010000765e800888088906fa018800880088008800fe0f890088008000785e90009402b402d40294029e0f9402d402b402940290000000795e0000fc02ac02ae0fac02fc021000ac00e20fa400880030007b5e00003006ac0562043005100e040004080408040cfc0300007c5e08043006ce034102380b00040803ff0008080808f80700007d5e0000fc072005bc05f005ee06fe071004ec050004fc0f00007e5e0000ae08b904a403800a9e08e0058e06f806b408a00c00007f5e0000000cf8030800080008000e0008000800080008000800815e000cfc0304002400240024082608e4072400240024002400835e0000000ef80108040806c8052c0408048804080508060808845e0000000cfc03040844084508f60f44084408440804080000865e000cfc030408440844044503e60054014406440444080000875e000cfc030400f40f440845040600f40784084408240824068a5e0006fc01040424022401a500f60f6400a4012402240600008f5e000cfc03040094009408d608d407b400b402940184000000905e000cfc0304080404f403340136012c012c01e40104000000935e000cfc0304009402f4029e029e02d40f9402940294020000945e000efc010404740484051504e60404068405740404040000955e000cfc0304000408f40f94049600f40c9401940694080406975e000cfc030400040f04090409f60924092409240f24000000995e0000000cfc030400e40f24092609f40f24092409e40f00009a5e0006fc010404ac04ac04ae02fe01ac01ac02ac04fc0424049c5e000cfc0384004400f40f0400a60024092408f40f240000009e5e000cfc03040824062401f4042604ec072c09a408a40804069f5e000efc01040434022409e605b606a406a405b40424080000a65e0006fc01040494049404f405d602d402f405940414040000a75e000cfc030408440934094409f60f44093409240944080000ab5e000cf8030800e803e803e803ec07e803e803e80328020000ad5e000cfc03040854077406d4050608540af40b540a540a0000b55e000cfc0304005400f407d602d407d40ad40af40b54085404b65e000efc01040424072400f40ea600a40ef4002402240c0000b75e0006fe010204aa02aa0baa08fb07aa02aa06fa0522090000b85e000efc010400f40ff403f403f60ff403f40bf40ba40f0400c15e000cfc030408fc07ac06ac02fe0b0400f40b0408f4070000c35e000cfc0304084c05fc034e014401dc076c09640914050000c95e000cfc03040874057403f40f7601f40f7403f40554080000ca5e000cfc030408f40fb408b406f60c0400fc0f0c00fc070000d35e000cfc030400f40bbc0bbc0ff6030400fc0f0c04fc030000d65e0004fe03820096088e066607bf0662056e0546029e008200df5e0007fc000402f403b403b407b603f6070406fc01ac04fc03e05e000cfc030c00e40fbc02a60bee0f4408f4052403e40c0000e25e000cfc0344002c0bac0a7e0444036c05f407b40914000000e35e0006fe010208ea05fa05fb05fb01fa01fa03ea03ea052204f35e0000800f7c00040b7c0ffe0f2404740d7409740374050000f65e0408b404ac0364040005f40904090409fc09240922092009f75e84083407ac054408000a240a240afc0b240a220a200a0000fa5e0208720c2e03e2040805aa09aa09ff0baa09aa09be090809ff5e000010001000fe0f1004100410041004fe0f100010000000005f400844084406fc014400440044004400fc0f440044004000015f900890089004cc038b00880088008a00ea0f8c0088009000025f000000091e05aa032a012a012a012a01aa0f2e0120010001035f040924092405b4032c01260124012c01bc0f240144010401045f400954095405540354017c0154015401540f5401540140010a5f00097a0938053e0378017a0110012c01b60f34014c0104010f5f080848044804c8074804480408027e0088030a040a080806135f00000000f2009200920092009208920892089e0780000000155f0000c400a408a408a408bc07000000000000fc0f00000000175f00008808e808a806fc01a800a800fc0fa800a804b8030000185f0001e408a408a408bc0700000007f80404048004000700081b5ff20892081e074000fc0720081008ff0910080809f80800061f5f00000004c804aa02ac02a801f80fa800ac04aa04b8030000205f0000f20892089e0700004008fe0f4004d004480146064008255f0401e408a408bc08a0071003cc080808f80f0800c8000803265f0000f20892089e07000048046806da054c042807080c0000275f0000f20892089e07000efe01020efe050206fe080103000c2f5f00000202aa03a202ae02a302a202ae0aa20aee0a02060000315f0004b402540254085c08c0070000f40a540a5408dc070000355f0001e400a408a4081c074000fe075604d600560356054009375f0000e408a408bc070000c8094e09f80748054c05d8051008395f0000f20892089e070000f0035603f00f58035403f00300023a5f0000f408940894071c00c8095409f40754055407dc0700083e5f0000e408a408bc070000fc02b002f60fb002b802f4020000485f000079044904cf030200fd02af02f80faf02ad02ff0200024c5f0000f20892089e070000fa0fd202fe0fd2041203fa0f10004e5f28009e02d403a003ec03fe03fc0be00bfe0b580f34026000525f0000fc080004fe03000044044404440444044404fc0f0000535f000022042c05200520053e05200520052805e60f00000000555f4004540554055402540ad407540154025403fc04c0044004625f2004220efe0122002200fe07220008044404220211019000645f0000400cfe0352004208fe0f40000808c404220210010000655f000ce4032408bc0abc0aae0a6c093c05a404a40224020000665f00000006f20116085a055305b204be021202120110010000695f4c045c024401ea0fc2005a030008880444022202120100006a5f0008f0071000de0fd40194073408000a500a480a240900046b5f000ffc005407fc02d40a5409fc070000980c4402240100006c5f80014800ff0f2800c000ff0f2800880c48042603920000006d5f0408f404b405be04b404b406f4040000580c480226039000705f1002f402fc02f402f60ffc02f4021008580444022201a000715f2004fc027c097c0f7c017c05fc010008d004280424039000775f88004800e40f1200000c0802f8014a0848084808c8070800795fc8004400f20f09004008de04420542024206fe05600818087b5f0000c800e40f02002000fc01100c0403fc080408fc0700007c5f90004800e40f0204f80bc80848097e064806e809780800007f5f90004800e40f0200e808a806fe01a800fe0fa804b8030000805f88004c00e20f1a00800888088908fa0f8808880888080000815f88004800e40f12000008e40f0408fc0f4408440804080000845f90004800e60f10008408a408a408940fac08a408a0080000855f90004800e40f0200a800a806a800bc08a808e807a800a000885f90004800e60f11000008fe0f5208d20152067e05000900008a5f80004400f40f0000fc0f0404f4051405f4050404fc0f00008b5f48002400f20f0200a802ac02ac02fe0fac02ac02bc0208028c5fc8002400f20f0900200b2409fa06a804a406b20520084008905f88004800e40f0200a0069000a808e60fa800b002a0040000915f88004400f30f00003a0942091209ea0f82093e0946090000925f88004400f30f0900200ca4032404ff0f2409240924090000935f88004800e40f1200000cd6031804f00f9808960890080000975f90004800e60f120040017e056a016a096a09ea0f7e014001985f88004800e40f020028092805fe030000fe0f280128010000995f50004800e40f0200200ebc032004fe0fa808a808a80800009e5f88004800e40f0200200c9c030204e00f1c09120920090000a15f00004400f20f1800ac072604fc070400f80f0400fc030000a95f28002400f2070a000805be04fe05bc02bc02bc05bc040404aa5f20002400f30f0000fe070a00ea0f6a057e056a05e9070800ae5f40002300f8070600e8076f00e80324097a04c5033c0c0000b35f48004400f20f0000f40e9400f40e9e08f4099408f402000cb45f80004600f00f0c005005de0750054808f4048a0778080000b55f00004e00e00f3c00b005be03300d3c0470048e03f802080cb75f88004400f30f00027a006a02fa04ef057a046a027a000203b95f00006600f00f1400fc0fb602f40f2008f6048803780c0000bd5f0000c700f00fa603e809ef07680326097c06880378040008c35f00000003e0000000f0070408080810080006600080030000c55f0000800560040002f20784084808200810080806e4000001c65f78000000fe0f1000040684094408240814080c0804070000cc5f0000000f3400540754085408540b540854085c03400c0000cd5f0008540f5400440624089c09040a440844083c0300040000d75f08042807280028072808be082809280828062800080f0000d85f040404033c0024072408a608240924082406240004070000d95f38000000fe0f080000000800f80709040a04080408040804dc5f000cfc03040084070400d4071608140814084406c4000407e05f0000000c78024800480efc08480b48084808780200040004e75f78000000fe0f1000000c1003fe001000d00f160810061000eb5f38000000fe0f0000500840044803fe004801480278044008f15f78000000fe0f1000380808040803fe00c807080838080006f55f0000080c2803280024072a082a09220864042801080e1004fb5f78000000fe0f1000000cfc0324002400e20f220022000000fd5f00045007480026071c08c40a340a8c08840444003c030004ff5f100c88028c00520630081209120a920864080803100c0008006070000000fe0f0000940144002400fc0f040064008401000101608808880e48004807280858090e09380a48088802880c00000e602008300e080006060408fc09540a540a54085403040c000012600000440c5c03260034074c08000b4c08740664005c0e8008146070000000fe0f10000408e40f0408fc0f4408440844080000156078000000fe0f10000000f80f88048e048a048804f80f0000166000001000fe0f08004000e80338002e00e80f28002802e8011c6038000000ff0f00001800480044027302640dc800500010001d600000000f7c00540754087c09540b540854047c0100060000206000080806e800ac06aa08aa0aa80aaa0aac08e802080c0000216078000000fe0f10002000b00fac04a204a8049007200000002560000010088806ac00ab04aa09aa0aae08a804f800000e0008266078000000ff0f0000900082009200fe0f8200b2008a000000276078000000ff0f080030088e088808fe0f88088808080800002860900c8802460064071c0800097c0a8408940494005c0600002a6078000000fe0f0800420926092a09920f2a092609400900002f6040003000fe0f100040084806c8057e0448054806480800003b600004000378004a074c08480948094c094a08780300040000436070000000fc0f10008000a806a800bc08a808a807a8008800466078000000fe0f1800000bec08540b5408140ef409040800004b600400240c940244003c070609840afc0804083403440c00084d6078000000ff0f080022082c06e0013f00e00728082608000650600000440824073c00640760081e090a0902083e0340042004526020001800ff0f04000004fd052505250525052505fd0501045560840894066e0025073c08440900097c09440844037c040000626070000000fe0f1000c80728009e080806e8030804c8090000646078000000fe0f1000f80f0808f80f0e08f80f0808f80f000865600202fe0352025202fe0f0200c000f20704082808c0060000686078000000ff0f10000000fe0f5208d20152067e050009000069600000000efc00d406d408b409bc09b40a8408fc02000400006c6070000000fe0f00003000840fa404fc04a404a404a20720006d600000a000a402640a3e08a40f24003e0264006403a00400016f600008000efe00aa06aa08ab09ab0aaa08aa04fe0000060000706020003000fe0f10004000300fa804a604a404a80f1000200073600000000cfe02aa00aa06aa086a09aa0aaa089e00400d000175600000020cfa02aa00aa0cff09aa0aaa08aa04fa00020e0000766040084a075a0042077e084209420a7e0842085a034a0440007c6020003000fe0f1000c00708044a05cc0428050804e80f000084603c000000fe0f08000000f207540150015e015005f6070000856078000000fe0f10000008fc0492039000920fe4080808100489600000900c94025400b406fc09140a32085a095a03500400008d6078000000fe07080000017e016a01ea076a016a017e010000946070000000fc0f3000b000f003ac02e803a80aa806e80388029f6038000000ff0708002800aa07ba04ae04aa04ba04a2070000a0601000080f7e0000077c0818095e09240954084c03440c0000a3600008e004bc02b400b405fe09b40ab408b404bc00e00e0008a66038000000fe0f080000087806ce014800cc0f4a0879080006a8601008080efc0002064808260a840af408040824034c0c0000a96038000000fe0f00001000ce0f10044605e0040804e60f0000aa600409740554015401fc055409540bfc0954095401740d0409ac602006a000bc00fc00bc02bc04bc05bc04fc02bc00a0062004af6078000000fe0f0800f20f04005003da00320b0208fe070000b26040085406d40254003e060009000b7e0954045401540e4008b46038000000fe0f0800400134010401860f3401240144010000b6600000fe0f2a002a033e0680083e082a012a0b2a08fe070000b86078000000fe0f10000802ac029c0abc0f9c02aa022a020000bc601000ff0f08000000f802a802a802ae0fac02ac02fc020002c5603c000000fe0f0800fc0fbc02bc02be02bc0abc0afc0f0000ca6040003000fe0f10000404f4029408960f94009402f4020404cb6078000000ff0f1800c4083404a4034600f4071408f4090004d160800cf402d400d406f4088409860a7c08c5043601040dc400d56040003000ff0f08000009be04ea03aa04aa03aa08be070000d8603c000000fe0f0800fe070200d60072015a050204fe030000dc6038000000ff0708001000d4075e05540554055e05d4070000df6078000000fe0f08002000fc0faa04a804fe07a804a8040004e06000008406bc00bc02bc04fe05bc04bc04fc04bc0084060000e160840cbc02ac00ec048409840aec0aac08ac08bc0284040000e66000003000fe0f0800800f7c00040f0509f6092409240f0400e7603c000000fe0f08000009fe05560556015605fe0500090000e86078000000fe0f08005008580abc0a5a0518059c0228025000e9602008240ef2000a068008f40a840afc0894049400940e0000eb6008000c0cfc015a015f05f609560d5e095a05fa01080c0800ed6000003000fe0f100064025e02e40f0000fc072200e20f2200ef6078000000fe0f08000008dc095a045e035a08da0b0e080800f0603c000000fe0704001000cc07e601ec01fc05ec05ec072400f16038000000fe0f08000000de0fc0066e05d0064404da0f0000f3600000c80e2800fe062808000afc09540954095403fc070004f66078000000fe0f08008008fc0ad40ad60fd40ad40afc0a0000f960840894045400f6055409540b540b54095605d401140c0000016100004c0e2c00fc062a088209480a60081e042000480e880008611000080ce801e805ec09ea080a0a6c080c01e40508080800096178000000fe0f3800f00fb802f40f1200d6031808c80710000f610008080cfa015e015a055b095a0b5a0b5e09fa010a040000156140003000fe0f10008600aa03ae0aa00aae0aaa068e0000001a610008e0063c00bc06bc08bc09fc0abc0abc083c01e00d00001b610000940a540a1c0ad40b9c05b405120b5a091408300800001f6180087e060200ea06aa08aa0a420a1f09e3041b010a05c200236178000000fe0f10004c085404dc0354015c0954095c0740002461200078000000fe0f80095404540456035400d40514081000276100001000fe0f080000087c065401fe075608540b7c0b00043f6180077c0004075c003c02bc047c053c04bc04bc020400000348610404b402ed00a6069408040ab40aee08a5049400840600004b610808f805770474007605f009ee0a540954051201880c00084c6140003000fe0f0000140874075600540f5400560f540414004e6178000000fe0f1800000afc075c075e035c0bfc0b040a0000556140014401fc007c017e047c077c017e00fc027c0144010001586140003000fe0f0800700b6c0bda0a2405560554029402000062613c000000ff070400f004de04fe05de02fe02de05fe040004636178000000fe0f08000008fe07fa06fe02fa02fa06ee070808676100001c06fc00fe02fc04e005fc04fc04de02fc001c060000686178000000fe0f1000fc0754027c0920064401fc0f440840066e61000ef801080cd801d809de09fc0bfc09fc05ec01280c00007061c0083c066c023c00fc0c7c0a000a68080805fc01080c00087661000cfc036c0dec0a7c0b6c076e077c07ec0b6c0afc084008776180006000fc0f3808fc07440a5505fe0f54055405f40944087e610000620efa00a80672080209180ac608340444009c06000082610000620a7e0b3e0b3e05be05be053e073e09be08220800088b610008fa0e3800fe0618087a09180a470854043c00c40600008e6138000000ff0f04003c00e50f6e057c056c05e70f3c000000906140003000fe0f0800200bea068801be008803da0f8a020000916184046402080080003c037c073c06bc047c01bc02e4070000946178000000fe0f0800000cfc015a01580dfe0158095801080da46120001000fe0f1800f00bdc06f406f602f402dc06f4071008a8618808fa06ba00be06fa08800a880a560864085c0284040000b26100002c08e4057c01fc077a0bfc0d7c097c05e4012c040008b66120001800fe0708001006f400fc07f605f406fc00f4061004be6178000000fe0f1804f0005806b808c80a3e09c8042e018004c2617800fc0f10002004f407f407f607f407f407f607f4072404c76100009208aa066e005a05e408fe0a9a08ba085a02ae0c2009c86140003000fe0f1000f803f6075c01b2067e01e2074e010000c961000efc01240cf4020400fe05fc09fc08fc02f406f4080000ca6120003000fe0f18007c090c056403760324054c057c090000d06178000000fe0f1000e40ad406f405de01f402d406f4080000d26100003000fe0f0800f006fe0f94017008fa0f9c07f4090008e66140003000fe0f0800520f7a01ca0f5e015a0f6a016a0f0000f261000033047c0306005405f708d60a10089e08e402bc040409f66178000000fe0f1000f802fc0f98027c08dc036405ec0b0008f76178000000fe0f10005c04ac0e3c0a6e033c04ac065c0a0000f8610004fc065e00de065e08de0a8c0a2c08f4052200a20e0008fc6120003000fe0f90013c07fc079c07c007bc07bc07bc070000ff6100007409dc0dde095c0d70042402ac0c6609440084060c000062c8081c0e9a005002c404be05600408052e04b80154072000086210001008100410041e02f0021203920454085008080600000f62000014042402c4013c01040210083e04d00392045408100610620000000cf80328002802e8090e0478028a03ea04080808071162100112099208fe0f9200920490043e02d00392045408100612620000880ce8038800e80388080808fe0408038a056c08080616620804e805280528052805e8010808fe0408038a046a08080618620000c00f40047e044804c00f1000100cfe021007d60814061a62000cf80308008809e80fa800080afe080807ca092a08000626620000f402b002f60fb002f60202081004fe022007960810062a6200002001a80fbc07a807a807200cfc0520022405a808000630620000fe035a03fe0f5403ea030e082004fe021007d60810063262c00f3800980bfe0dfc06ec05c4071004fe021007d408280633624600ea0772056e05e2077e057e0500047f0288076a08000634620802fc0afc0bfe02fc0bfc0ae8007e0c8803ca0428080006366200080006fc01940094009400920092009200f20100000000376200080006f801480048004a004c0048004800f8000000000038620008040cf403940094009400940094009400f401040000003b6200000202fa09aa04aa04aa03ea00aa03aa04ba04820800003f620000000efc0114085406d60154015409540954075c00000040620008fc0794009400f208000cfc0324002400e20f2200000041620000e00f1c00d40f5401d60f5401d40f54015409dc07000047620000000efc019400540ad60f1400940454025c0ac00f00004b62000080009400940894089408fc07920092009200920080004d620002080608010801c80028081808fe0708000800080000004e62000088008808fe0f48000000fe07000800080008000800065162000088008808fe0f480048000000fe0f10002000c0008000526288008808fe0f4800480c0003fe0000003e00c003000c0000536288008808fe0f48004800000004080408fc07040004000000546288008808fe0f4800400c0403fc0004003c082408e0070000556288088808fe0f480048080007f804060440048007000c0000586288008808fe0f4800000044004400fc0742082208220820065b6288008808fe0f48004800000404040404fc07040404040404636208018808fe0788000000fc0f0404040404040404fc070000676280008808ff0f4800000c4803ff0088000800f80700080006696280008808fe0f4800000cf80308000a000c000800080000006b6288008808fe0f8800480000044404440444044404fc0f00006c6288008808ff078800000aa20972042a03e608220ee00100006d6288008808ff07880040080208420efe094208420efe0900086e6208018808fe0f8800200850044e03c00042084e08f00760006f6298009808fe0f58000008f80f00080008ff0f200820082008706288008808fe0f880040081004d0033e009007160810081006716288008808fe0f48000007fc00c40404053c0390047008000073628800880cfe038808000efc016404a4052402a40564080008766280008808fe0f4800000848044803fe004803480448080000796288008808fe0f88000000fe0f20040000fe072008180810067c620001880cfc038808000cfc030400f40714081409f40800047e6288008808fe0f4800000810043e02d0031205d408140810067f62000010041003f400040aa40af407ac020c02e40020031004806288008808fe0f480000086804a8053e022805e80428080000846288008808fe0f4800000878080004fe0400028c01500000008a6280008808fe0748000000fc07440844087c0844084408fc08916280008808fe070000fc0702020200fc0f04000404fc030000926288008808ff0f4800000022082a08ea0f3600a60062000000936280008808fe0f4800000efc010400fc0f0200fe00020f0008956288008808fe0748000008de0442054202de05500808080000966288008808fe0f48004800000122014c010001fe0f800080009762000088008808fe074800000ce8032e002800e80708080006986288008808fe074800000efe01220022002200e20f220022009a6280008808fe0f480040080404a4037c00e4072408240820049b6200008808fe074800000fff00f8070009f8080e0af80900049c6288008808fe0f4800000c88037e08a8052802e805280808089e6208098808fe0f8800000cfc0344004400c40144027c0c0008a06288008808fe0f48000000fc0f0408140be408b409040a0008a16280008808fe0f48000000d807840882084408080830062000a26288008808fe0f480040001000c80727082509c80810061000a46288008808fe074800000cf80348004a004a004800f8000000a56288088808fe0f48000000fe0f2200f20c32033205ee040008ab620801880cfe038808000ef801c8057e064805c80458080000ac6280008808fe0f48000000b00fac04a204a004a404980f2000b16290009008fc0750000000b007ae08a808e8090809f8080006b56288008808fe0f48000000fc0f240422003e0ce20722082006b96288008808fe0f8800400408024801fe0fc800480348040000bc6280008808fe0788000000fc01a400a400fc0fa400a400fc01bd6288008808fe070800e00f90049004fe0790049004f00f0000c26200009008fc074000e80ca802fe01a800fe0fa800b8070000c46288008808fe0f88000800800888088a08fa0f880888080808c56288008808fe0f48000008fc092409240924092409fc090008c66288008808fe078800000cfc032200a200e20f220122020000c76280008808fe0748000000fe032202aa0a220a2206fe032002c96280008808fe0f480000042804c8050a040807e80408040000cb6200008808fe074800000ffe00c8070009fe0a080af8090004cc6208018808fe07880002002c012001fe0f20012c0122010000cd6208018808fe0788000000f80f88048e048a048804f80f0000d06288008808fc0748000008bc04a402a401a408a408bc070000d26288004808ff0f48000000fe0f9204920492049204f2040204d36288008808fe0f480008018000e40f5c0444044404c40f0000d46288008808fe0f4800000c88037e08a8052a02aa056a080808d66280008808fe07880020009000ce074808e80b4808e80b0808d76200008808fe0f00003803e602300b1005f0031e08f0070000d86280008808fe0f40001000c8032e012801e8090808f8070000d96280008808fe0748000000bc072004fe0720042004bc0f0000da6200011809fe07980000089804d40392009000d40f9800a000db6280008808ff0748000000a20f9a048604a204a2049e070000dc620000940c9402fc019200030028012a01fe0f2a012a010001dd6288008808fe074800400114015401fc0f5401540104010000df6280008808fe0f48000004fe030001bc0c0002c0013e01000ee06280004808fe076000fe0c88037004fc090408fc0b000a8009e16288008808fe0f4800000ef801080488076e0408050805080ee26280008808ff0f8800000e90017e0c1004f207940854081004e36280009008fc0790000004e802b80aac08e80f880088020804e56280008808fe074800000cfe0392009200fe0f92009208fe07e66280008808fe07880000049204960490049804960410040000e76208018808fe0f88008000180048084808ca0f480058000000e86280008808fe07880000021c09d0047e055002d40554081008e96288008808fe0f48000002a4029c02d40f9c02a40224020000ec6280004808fe0f48000000920f9208fe0892089208910f1000ed6280008808fe0f480000045004d0071004fc011006140c0000ef6280008808ff0f48000009d208220afa0b2608d20812090000f16280008808fe0f480000088804fe0288008800fe0288048008f362a000a8026a026c0b780bee07280328036e02a802a0000000f46200018808fe078800200818092409e20f2409080930080000f76200011009fc07900000002801a803fc0aa80ab80aa8062400fc6200010809fe07c80000088904fa0388008800fc0f8b008000fe6288008808fe0748000000980f8404a204a204a40488073000ff620801c801f801fc05fa05fa03fa01fc01f801f80188010801016390009008fc0750000000a802a802bc08a808e807a8002000026380008808fe0f4800000824092409be0f2409240920090000076388004808fe0f48000000de076405640564056205e207180009630801080dfe03080840085c08c40577064403c4045c0800000e6300011009fc07d0000000a802b803ac0aa80ab80aa806a000116380008808fe0f480000098804fe030000fe0740089c088406166380004808fe0f400004005404540b4609d408540804060000196388024a022c02b80aaa0aec07a80288023e024a02480200001a6300001402d403fe03940b8007b4039e0384033c03400320021f6300010809fe07c8000008a8088806fe018803a80488080000206300008808fe0748000008a404a603bc00b40fcc08ac088004216388018808fe07480000042e0520053e0520052805e60f0000236380008808fe0f4800100058095609f4075c015401f0014000246300008808fe074800000844044c03360024005c0f44004400256300008808ff0700009602d202b2029a02d20f920296020002286380008808fe07480040092c052b03e8032a032e05280900082a630000880cff0300089206fe019208fe07fc0f0200fe0300002b6380008808fe07480020081c096009fe0f20091c09200940002f638000880cff038808000efe01c20f5204d2055201520e00083a6300008808ff0f4800020c3e03e20400082209fe09220922093d6380008808fe0740001008f80894049602f4019c079408f008426348004808fe0f28002000aa07be04aa04aa04ba04a2072200456380008808fc074800e00fa402b402f40fac02ac0ae4070000466380008808ff070000fe0f02045204fa0552040204fe0f0000496380008808fe0f4800000cbc032404e40fa408a408bc0800084c630000880cfe030008bc06a401bc080007f8010008fe0700004d6388008808fe0f480000017e016a016a01ea0f6a017e0100014e6308010809fe0788000000e20fac02a002bc02a00aec0f00004f6388004808fe0f48000004be04aa04aa07aa04aa04be040004506388008808fe0748000000ee0faa02aa02aa0aaa0aee0f0000556308018808fe0788000000e80fa802a802fe0fa802ac0aec075c638800480cfe030008bc04ac05ac06fe04ac06ac05bc0800045e6380008808fe0f4800000894049602d4019408960c340300005f6380008808fe0748000008e0092e042a02aa012a042e08e00b616380008808fe0f8800200498052404a20524040807d00400006263880cfe0340081008f80494029601f4019c029404f4048008636300010809fe0788000006fc04840696048406bc0880070000676380004808ff07480000006a02be02ab0faa02ea02aa020000686388008808fe07480010004c0752057a0552054405480750006e6340004808fe0f48000007fe003207b204f204b204be070000726300011009fc0f90000402d40770095c0d500d540ed4084003766300008808fe0708004009f4095409fc0f5409f2095001000077638000880cff0348080208aa06aa04aa04ff0faa0afa0a22087a6300011009fc0710004004280118094c0f58012801480d40007b6380008808fe0f48004007080024072a082209640828030804806300008808fe070000fc0f1400f40f0000140eea01080638088263c0004406ff01000cfe030200820f8204fb049204920f0200836380004408ff0704006000b507b500f50fb500bf04e0030000886380008808fe07c80060086808a404aa07a204ba066a05000889638808fe0748000002f802a802a802ae0fac02ac02fc0204028c6300001c02cd02ff02fc0afe07fc02fc02ff028d029c0200008f6300010809fe0718008c02aa02e803a802a80a8808f8070000906388008808fe0f48000000d00f4805060544045c05c40f0000926388008808fe0f4800400008012801d60efc07280128010000966300008808fe0788000000e40f1400c6087405a403e4042408986380008808fe070000fe0f0a00ea0e8a08ea0f8a08ee0e0000996300010809fe0788000002ac0aa40aea07a202aa02ea0380009b6380009008fc0700002805be0728050000fc0f4000c0000000a06380008808fe0f88000004f4029408960794009402f4020404a16380008808fe074800000494028401d40f8201b2028a040000a26300010809fe07c0000c04a4029401c40f9401a402ac040000a56380008808fe0748000008a40aac0ba604a406b405a408a000a76300018808fe0f48000c08a4089408860f9408a4080c080000a86348004808fe0f40003000fc0faa04a804fe07a804a8040004a96380009008fc0750000000e803b802ac02ea07a80ab80ae80baa6388004808fe0f48000000d4075e05540554055e05d4070000b06300009408fc07b2003806e601fc0310089208fe0792008000b26308010809fe0708000001be03ea05aa04aa02aa08be070000b76300008808fe074800020ef8014e070000fe0f0200fe030000b86300011809fe0798000002f00352035403f00f5c035203f003ba6300008808fe0748004000580abc0a5a0918053c0458029000c96380008808fc074800000974051c035c0f7c03140534091000cd6380004808fe0f280000085c097c05dc035e017c055c055c08cf6340004404ff0324000000f40f94049704f40794049704f40fd06300010809fe078800000cbe02aa04aa0faa0aaa0abe0a8008d26300004404ff0344000000ea0faa040a04fe070904e90f0000d66388008808fe0748000004ec076c056c056c056c05ec0f2002da630401840cff07c4000006df0355095505550355095f070000db6380008808fe07880008087809360594033c03500570090008e1630000900efc01000cfc033408b40af40ab40fb40abc0a0008e36300008808fe0740001c0fb000b00ffe00b00fb000bc0f0000e96380008808fe0f48000000fe07680540057e056805e4071400ea6340008808fe0740001201fe0f42001a0c0003fe000003380ced6300010809fe0788000000fe06ea04aa05aa08aa08be070000ee6320004808fe0748000002fa02ba02ba02fa0fba02ba02fa02f46380008808fe0f880002045602f209d606d204d90755084008fa6388008808fe074800c0008c0ea404ac04ec07a204b204aa0efd630000880cff0340081e08c00b5e0840075608d40b04080004006480008808fe0740001000b804760434057c09b40ab0008000016400004808fe070000f20f42005807aa02da02020bfe070000026440008808fe0f48000008aa0a980bde049806aa05aa088000056400008808fe0740001a08fc053804ba073808ee090a0800060d6488008808fe0f48000008ec05ec03ec01ec01ec05ec0900080f6480005008fc07900000007803780378017e0978097c07780113648000880cfe034808000cd50356087c09540f570954090000146480008808fe0748000000a6095a095209d60f5a0d560fd20f166400000809fe0788000002540ac40aa60a9e0f8c0a840a00001c648808fe0748000008bc08b409a006fe04a006b409bc0800081e6480008408ff072400800f5a005a075b055a075a00c20f00002a64c0004808fe0748000007fc0074067505f6057405740714002c640000100efc01800cf8037e09f8070000de0d42029e0520082d6400008808fe07480040006e0756055c0564054e0744000400366440004808fc0f2000900f68007807740572057405680710003a640001040dff0784000c08ff05ab03aa01ff05ab03aa0e820044640000880cfc0328088004bc06bc01bc05bc06bc06a4090000466480008808fe0740001c05540d5c0bd4095c0554055c090000476480008808fe0748000006ac04a404ea07a204aa04aa0e00004a6400004808fe0f3802c80138013000fe0fa804fe07ac040004546400008808fe07800088020402b402ee0ec4020402b4028000586480008808fe070800e00f14005c07f6055c071408f4070000676400004808fe0f48004c00e80768056e05e80768056c0500006964000cfc030400b403b40bb60b8407b403b403740374035402786480004808fe0f4800000974097607f40174037605740904097964000144037c03fc037e0bfc0bfc0f7e02fc027c034403000183640002fc03fc03fe0bfc0bbc07d803d6035203760354028002876400008807fe00f00f5e00fc077000f4073a06c5013c060004906490009008fc0790001808fc0bd806de06d802fe0f98020002916480009008fc0700009803fc0bd80bdc07d803fc031803000092648808fe0748001000f40fbe02b40afe0f1008ee068803780c956400009008fc070000fc0d5801fc050000f80f2400e40f24009e644808fe0758000008f40af40af40af60ff40af40af40a1008a4644000440cff070000f20fbf02da0f10083804c7037c0c0000a56400000809fc070800a00bbc0ae40e400b2805fc07a8090000a96480008404ff0344000004fa015609530f5601fa01320c0000ab6400019008fc075000000dfc012a01e80d2801e80d2801e80dac6400008808fe0748000203d60f1e033600ae03ad07280b000aad6480008808fe075800d4005407bc05bc079405ba05d2079000ae648000840eff016004e007bf06b506f50f75047503ff056004b06400008808fe07a0004e09f605560540014e05f60556054009b26440004808fe0f4800020978056e03e8016e0378056a090008b56400008808fe07880000045c05de05400f5c054e055c050000bc6400004807fe00000efc012c01dc07ac037f02a40315040003bf6400008808fe070800e80cb402f4041200f20cb402e4040808c16440004808fe070000b40c64030400fa075405fc0754050004c26400008808fe0708009c07cc059c05bc079c05cc0598070000c56400008808fe0740007c04cc07fc07fe07fc07cc077c040004c76400004808fe072000be02fa02be02ba0fbe02fa02be020000ca644004fc04fc07fe07fc0ef80f9007ee06a206e606a8040801cb6480004808fe07480000009a07fc05d805de07d805fe058a07cd640000900cfc031008c005bc05f403940ff403bc05e0090000ce6414003c02be03b803ce0bbc0b840fa803b60394032c034402d26400018808fe078800080ec4019207da05f203b409c40f0000d46480008808fe0f4800180ef801ae0cbc0fcc0fbc0fc80f0000da6480004808fe0f0004f8031800d805fe037c0f6c016c060004e06400008808fe070800600cd403e402be02bc02bc02ec0f0400e6640000080dfe0308092c099401d409be0fb401f4011c0d0000ec6400008808fc0700005e0dd403540c00032c04f40f3c096408f4648000880efe01000cfc034408f40bf40bf603f40bd40b0000fa640000880cfe03c0087607ca0cee070a006e06aa0aae0a0000fe6400018808fe070800c2087e0ade075e075e07fe0bc20a000800655400cc025e024c03e00be60bd407c20348035e02cc0254000f650000980cfe030008e8076602f40f0000de07d40bf40a000012658808fe0748000c08de0b5e085c064c015e045e08ac0b2000146500008808fe070000fe07f6047e03f007ee03f608fe070000186500008808fe074804f803ec0ffc09c601fc07ec05fc0900001c6540002404ff0320008b0f7e01fa027b06fa017a04fb0720001d6500009008fc075000c403fc02fc0f3c00fc03fc03e40720022465000000004808fe0ffe0bf407fe0ef40fae04fa07a80400002f65080828046804a80428033e022803a804680428040808000036650000fc0300010001fe0f000030046e048803e8021804080839650000e401240224017c05600c3004ce020801e802180408083b6504010401fc010409640910046e02880388027804080800003e6500080806f8012a08c8072000100cee0288037804080800003f650404f4030402fc03240264083004ee020803e8041808000845650800c80f48047e04c80f60083c04ca02880378040808000048650808a8048a028c0328044000300cce0288037804080800004c650000920f9204fe049204820f2000140cea028803780408084f654000f8015601f4055405f40360091e04e502c4033c0404085165080268090809fe0fc8000a0960087e048903e802180c0000566500045402d401fe04d404d40340007e06880168021806000457650008fc0554055401fc056000380ccc0288037804080800005865500258095408f2074400640b3008ee040803e804180800085965000254025409de0ff401580936087c048b03c802380c08085b650000d0051804d4041603880830046e0288017802080c00005d650000f60fd001fe0fd001f60f00083e04c903e804180800005e650000ee0fe0017e02a009ee0f40087e048803e80418080000626500000802fa03aa02aa02fe0f0000300cee0288037804080863650000ea0faf02aa02af0aca0720001a0c7502c4033c04040866650802f80ad80adc0ed803780a6008fe040803f804080800006c654400f4035601d409160cf40330086e068801e802180c00087065a008aa0a9807fe0498078a0820083e04c90388027804080872650000f40ff403f6027409f4070000e00c3e032803e80c0008746540005c083c08be0ebc08dc0fd80ab60ab40a4c084408000075650000fa0f0e03fb020e09fa0710003f0cc4037c060408000077650004bf02ab01ff05ab05bf0398083f04c20372020e0c0204786508097c0b7c0bfe057c057c0b60093004ee03780408080000836500005d097e05ff0754035e016800e60356055c056405400487650000080808081804680488020a018802680418040808080889652204120cd20356015a014b014a0156015601d207120012008b656400640f640154015c0fd60154015c0f64016409640760008c65080868048e037c020008d40ff4071000fe031004160e00008e652408240fa4001c025409560f54012c052400a40f240000009065a408ac08ac04ac059e06c0028002be06ac05ac08ac08a008916500002404fc0300082806ca01380200084408fc0f4408000897650002100224012401480108010001fe0f000180008000000099650c00a003fe0fa000ac000002240148010001fe0f000100019c65000458035408f20f5400040320006c010001fe0f800000009f654000c8037c05f804f8057c05000428008000ff0780000000a4650000000efc012400240024002400e20f2200220020000000a5650000000cfc032400a40024012401e40f2402220224022000a76500002008280ca4035601580158015a0f6401640128010000a965040274024e02e40f4401000cfc0324002200e20f22000000ac650000fc02ac02fe0fac02fc0efc0324002400e20f22000000ad65fe0f000494055004ff055004040cf80324002400e20f2200af650809fc0558015805fc01000cf80324002400e40f24000000b0650004a804a402e60fa402a8080004fc032400e20f22000000b7650000fe07e806be05bc07fe079c0af8072400e20f22000000b965080808080804880378004e0848084808480cc80308000000bc650000080efa012a08e8070000100248024604880810001000bd650000080ef8012e08e8070000ee074a08e80b2808e8090004c1650008540854045c02d4015601540954095c09540754000000c56500080806f8012e08c8071800c70f240054018c024c0c0000cb650000080cfa032c08c007100cac032a04e80f280968092808cc650000080efa012c08c8071800a604a404f407a404a4040404cf650008080ef8012e0ce80300088f08b506e401a402a4040008d7650808080efe01280ce8031808fe0574057401f40514090008e0652008240824042402a4017c00e40724082408240820080006e2650000fc0f540454037c070000740e4401fc0f440844084006e56500000000fc0f440444044404440444044404fc0f00000000e66500080008fc09240924092409240924092409fc0900080008e7650000fc0f00000000fc0f44044404440444044404fc0f0000e86500000000ce07540554055405540552055205d20708000000e965000000013e012a012a01ea0f2a012a012a013e0100010000ec65000060001000ce07aa02a802e80b08080808080cf8030000ed650008080efe010800f8070008fc09240924092409fc090004f165000040015e0156015601d6075601560156015e0140010000f6650000fc0724022402fc030000680088090808fe0708000000f7650000fc072402fc030008f80708000a000c00080008000000fa650000fc032402fc03000044044404fc074404440444040000026600040007be04aa04aa022a00aa0faa00aa04be0480030000066600000004be07aa04aa022a00aa03aa04aa04be0480040002076600008009bc096c05ac036c016c012c01ac0f3c01000100010c660000c00f7e056a056a056a056a056a056a057e05c00700000e660000fc0324012401fc090004fc03240124092409fc0700000f6600004000fc0fd40ab40ab40a9c0ab40ab20a520f50000000136600010009fc04d402d401d40cd402d409d408fc0880070000146610001400d4075e0554055405540554055e05d407140010001966000000017e0d6a0b6a0b6a096a056a076a077e05000900001f6600008008be0aaa0aaa0aaa0aaa0faa0aaa0abe0a0008000020660000fc072402fc030008f8088806fe0188028804f8088008256600012203aa00ea0fba0aaf0aaa0aba0aea0faa002201000027660000fc072402fc07000c48024801fe0f48014802480c000028660000fc0724022402fc0310000e00f80f28012801280108002d660000fc032402fc030000a20f9a048604a204a2049e0700002f6600088008fc06d404d404d408d40fd40ad40afc0a800a0008316600008004be04aa05aa04aa04aa04aa06aa04be048004000035660000fc072402fc030008fe071200d207920892085e0800063c660001f0040e04ea07aa06aa06aa06aa06fa074e04800500003e6600048004be052a04aa072a042a04aa072a04be058004000442660000fc072402fc030000a402a402be08a408e407a40020004366000000093e09aa052a03ea012a012a07aa093e0900090004496640005400dc0fdc0ad40ac40ad40ad40ad40ad40f440000004b6600001200d60f52055e05520552055e055205d60f120000004c660000fc072402fc030000f80f0800e8032e01e8090808f80752660000fc072402fc01f00f8a057e040a047e048a04fa0f000053660000fc072402fc030008a804ae039800b80fcc08ac08800455660004e004bc06bc07bc06bc06bc0ebc06bc06e004e00400045a660000fc072402fc0b1008f8049602f4019c0f9408f008000464660000fc072402fc032000aa07be04ae04aa04ba04a207020066660000fe031201fe010000f6034b02da0a4a0a4a06fa0342026866000ce0033c017c097c0f7c097c057c037c057c0b200b00006966fc072402fc0b1008f80494039600f4009c0f9408f00800046e6620002400ec0766057c05640564057c056605ec07240020006f6600042004ae07ae02ae0abe0eae02ae06ae06ae072008000870660000fc072402fc030001fe0fc800000cf8032400e20f220074660000fc072402fc030000dc0fdc02de02dc0adc0adc07100076660000c00740057e05ea072a00ea076a057e054005c00700007a6640005000360fbc0ab40a800abc0aa40aa40aa40f3c0000007e660000fc074402fc030000e802a808ac07a800a802e8020804826600003e00b30fba0ab20ab20a800abe0a920ab20f1100000087660000fc074402fc030000fc0fa4021c0ac0085407dc094008916600004001fc00fc0ffc0afc0afc0afc0adc0afc0f5000000096660000fc072402fc0900044a02f209d606d204d9075508400897660000fc072402f8030400d4075c05560554055c05d4071400a2660000fc03ff0f24012401f8019e0baa06aa0eaa02be0e0000a86620083e08ae0fae0dae0dce0dce0daa0dfe0dca0f6a082000ab6600003e00b60fbf0ab60abe0a9c0a8a0a8a0aba0f09000800ae6644014401fc0ffe0afc0afc0afc0afe0afc0afc0f44010002b4660002a002bc09bc05fc02bc0ebc00fc06bc04bc09a0020000c666000cfc030400bc0fbc0abc0a840abc0abc0abc0f14000000c9660000fc072402fc0b0c09ec07ac010e01ac0fec09ac0d0005d9660000fc072402f8034e03da077e065a06fe06da064e070000dc660000fc032402fc038001aa076a075e07e0075a075e070004dd660000fc072402fc030008bc05fc0ebc0ebc04fc04bc058000f06600000000fc0f4404440444044404440444040404fc0f0000f2660000f80f88048804fe0788048804fe0788048804f80f0000f46600000408fc09ac05ac06ac06fc05ac08ac08fc0804080000f86648007c00fc0ffc0afc0afe0afc0afc0afc0afc0f68000000f96602007e00d60fd60aff0ad60ad60aff0ad60ad60f7e000200fc660008e009bc09bc09fc07bc05bc05fc05bc0bbc09e0080008fd6600007c00d50fd60ad40afc0ad40ad60ad50afc0f00000000fe6600000000fc0f7d0566057c05640566056d05e40f3c000000ff6600002c009c075e054c054c0540055c054e059c072c002800006700004004fe07ea05ea05ea0f6a08ea05ea02fe06c00540080367000010007800d80ffc0afa0adc0afc0ad80f680010000000086700080006fc01240124012401240924092409fc07000000000967800088004800f80fac02aa02a802a80aa80ae807080000000b670000000cfe039200920efe01000cfe0392089208fe0700000d67000cfe0392089208fe070000fe0f6200b20d3203fe0c000814670000e9088a06f8018e00e9080006fe0192009208fe07000017670004fc075404560254037c0c0006fc0124012409fc0700001b67000014045c0556055405c0075e054e056e056e057e0400001d670000fc032c032e0f2c03fc090004fc0324012409fc0700001f6700000809fe0558015805fe01000cfe0392009208fe07000026670008fe079200fe0f10004c05fe037c0b7c077e017c064004286710041002100190005000fe0f5000900010011002100400002a674008480448024801c800fe0fc800480148024804400800002b670804480448024801c800fe0fc800480148024804080400002c6708020801880048023802ff0f3802480288000801080200002d67000288014800ff0f48000000fe07000800080008000800062f67000010041002100190005000fe0f500092001401140210043167400450044e024801c800fe0fc800480148024804400400003467000088014800fe0f2800c8000000fe0f30002000c000800035678008a00490048e028201c20f820182019e02a004a004a0083a67000088034800fe0f4800000efc0104000400fc07000800063d67000088034800fe0f4800000064005c084408440cc403000040670000a004a402a402940a9808c80f98009402a202a004800442678000a004a402940a8c08c60f84008400bc02a004900000004367000088014800fe0f2800c0081c0464028401c4023c0404084667000088034800fe0f4800080040004400fc0f440044004400486788014800fe0f2800c0081c0464048402340384047c0400084967000088014800ff0f280008008008980444022202110180004e672401140154014c0944095e07c4014c0154011401240100004f6748002800a80f98089808be0888089808a808a80f280048005067000088034800ff0f280040020801c8082808ff07080000005167000088034800ff0f480088002000c8090808ff0708000000566788014800fe0f2800c8080004e802880378040e04080808005c67000088014800fe0f4800080420042004fe072004200420045f6700000408f40494029401fe0f940194029404f404040800006067000088014800fe0f2800480400040404fc0704040404040461671000a804a802ac029608d4079400ac02a402a00c2000000065674004440454024401c400fe0fc40044015c024c0440040000686708038800ff0f4800000aa20972042a03e608220ee00100006d67000088014800ff0f4800000ce8032a002a00e807080808066f6788014800fe0f28008c00440024002400fc0f04003400c400706788088806480028001802fe0c1800280c4800880688080800716700000404fc04ac02ac01fe0fac01ac02ac02fc04040400007e6788014800ff074800800438048607600401048e05300600007f6708038800fe0f8800000cfc036408a4052406a40564080000816788034800fe0f4800000c84037c08840534022c05e0080008846788014800fe0f480000009c016a010809c809080cf8030000896788034800fe0f48008800000844084408fc0f440844084408906788034800ff0f48008800000cfc0322002200e20f22002000956788034800fe0f68008008380488037e00e8070808380800069767000088014800ff0f2800280280014800ff0f6800880300019a6788034800ff0f4800a00810046e048803c8023804080800009c6700008004be04aa02aa01aa01fe0faa01aa02be04800400009d6788014800ff0f480088082004a80428053e022805e80408089e6780014800ff0748000007fe00000480037e00800300040000a06788034800fe0f4800000124011c010601840f3c0120011001a26788034800fe0f48000000fc0f0408140be408b409040a0008a36700000401b400940454047e09540a540a940ab40004010000aa6788034800ff0f40001000c807240823092409c80810061000ab6780014800fe0f2800400ffc000406f4010402fc07000c0000af6788014800fe0f48004000100f9004fe049004900490071000b6670000a40894048e028401dc0f8001bc02a402a404bc040004b76780014800fe0f4800000efe01080cf003fc0f0404fc0f0000c46780014800fe0f28000000f40f140094017c0094091408f407cf6708018800fe0f48000000f80f88048e048a048804f80f0000d067000084048404be02ac01ec07ac00ac01be02840484040000d16708018800fe0f48000000fe0f880488048804fe0f08000000d26704096509110512030403c40f1f0324032405240914090000d3678804aa04aa028002a401b40f8e018402fc02c004c004b004d46700095009540534037c03dc0f74031c031405340910090000d86788014800fe0f280028018000f40f4c0444044404c40f0400dc6708038800fe0f48000000fc0f2409240924092409e4090408e06708038800fe0f48000000580048084a08cc0f480058000000e567000048082808a80f580d5c0d480d580da80f280848080000ec6700000408f404b4029401fe0f9401b4029404f40404080000ef6788034800fe0f48000000f4031401f4090408fc0704000000f167000088034800ff0fc800080900088a08fa0f8c0888080808f36780034800fe0f0000fc090205fa020000fc0f0400fc030000f467a004be04a002bf02a401800f9f01a402a402a404a2049004fb67000024081408d40fac0aae0aa40aac0ad40f140824080000ff6788014800fe0f48000000e80328002a00fc0f28002802e801036888014800ff0f4800000ffc00140ef40152085208d20700000468000450045c025001d200d40fd00050015802540250040004056800038800fe0f0004fe034208fe074000fe074200fe0f4000076888014800fe0f480088042002a4092408e40f2400a4012006086888014800fe0f28004008100450047e04c8032a05aa08a0060b6890035000ff0f500004067c014708e40f44004403040400000f6888014800fe0f480040041204960490049804960410040000116800038800fe0f48000006e4011c034000d0091008fe071000136888034800fe0f4000100808092409e20f2409080930080000166888014800fe0f6800fa0f8a057e040a047e048a04fa0f0000176804097409540554057c03d40f54017c035405540574090409216888014800ff0f4800080860041804d8020e01c802280448082a6888034800fe0f6800800410044e03c800fe0fc80148024004376808018800fe0f480000014a014a01f80f48014e0108010000386888014800ff0f480088082004680598044e022803a8048808396888034800ff0f48000000fe0f5208d208520152067e0500093c68c4012400ff0f04004c00e40f67045b045a046604e20740003d68100454025401de0f540154091004fe021003d204140800063e6840086409140504053c03060f44013c030405140524090008426888034800fe0f4800000824092409be0f2409240920090000436880034800fe0f40000c098004fe030000fe0740089c080405456888034800fe0f0800200ef801960754085c0ad00910080004466888034800fe0f28004000fc0f0408540af40b540a540a00084868000094099405b4055403560f5401740394059405140900084c6800000009780558055803de0f5c015c035c057c0504090000506808038800fe0f0000fc0f0400d4035402d4030408fc0700005168900998055e057e031601860f56015a035a05b005800900005368c4012400ff0f24000004fd052505250525052505fd0501005c6888034800ff0f4800ca084208c405710656024005dc044208636888034800ff0f480002042c0520053f0520052805e60f0000656888014800fe0f28008008540434031c001400320f52008000666888014800fe0f480000017c010201900f3e014801460124006868a00494049002be028001a80fa601960294028c04840400006968c4012400ff071400000efc0104042504f507240424040000766880014800fe070800e20f52015a01fa0f56015209f20700007f6888014800fe07480000017e016a016a01ea076a017e01000181684c096009120558034203320f0e01420342053e050c093009856810019000fc0f9000a004d803ac02a802e80ba80ae8078002866800038800fe0f48000009280dfe030000fc0f0400fc030000936808038800fe0f4800000054014401c60f7401440144010000976888034800fe0f0000fc08ac06ac06fc05ac08ac08fc0800009d6800002000fc0f0200f8030000a806ae00940fb400ac02a404a26884014400fe0f24000400f107560150015e015005f6070000a668000012098a045f0446056a0248024a01df0046000a001000a76888014800fe0728002000aa07be04aa04aa04ba04a2070000a86840082a091a057e051903aa0f00011e03400540057f090009ad6880034800fe0f4800400a58091e05ca0698069e09a8080008af6888014800fe0f48000004ea04ac02f80fa800ae04b8030000b06800038800ff0f4800800ce8038800e80ffe040807ea082004b36880014800fe0f4800000cb4032c00a70f2400b40f20040000b568000034080c04de034c01540140024c00de070c0814082406b66888034800ff0f4800000ffe000a02aa02ea074a094e090004c06808018800fe0f4000100508052404a2040c06900550040000c46844095405d405cc03cc01ee0fcc01cc03cc03cc0554055409c96884034400ff0f240040009e07aa00aa00eb0faa00be048003cb6888014800fe0f680040090805fe0558015801fe01080d0000cd6890035000fe0f50000000fc0f54095400d4077c0900050000d26888014800fe0f480000006c023c02ae0fac023c026c02a000d56884014400ff0f64004c0644015404d707540044014c020000d8680000f40c1402fe0f1401f40860041402fe0f1402f40c0000da6880034800fe0f0004fe039208fe07000cfe039208fe070000df6888014800ff0f48000004fc04ac02ac01fe0fac01ac02fc04e068000818090a057c055803de0f580358037e050a0518090000e36808038800fe0f4800800814065400fe0f540054057c051008ee680000a4049402d40f8c028c043e048c02d40f9401a4028004f16880034800fe0f4800400a3409d406de049406b40914080000f5680000c4012400ff0f24000003df00f507ff07d5005f034002fa6888014800fe0740001c00fc07f4075605540564050c070000056988034800fe0f08002000b407ac02ae0b2c08e407200000000d69c8002800ff070800e00f0404fc055c055e055c05fc0504040e6988014800fe0f00003000fc0faa04a804fe07a804a8040000126980014800fe0f0800200dfe03280880091c04e40374060c081c6990035000fe0f1000f00938093405f20334033805f80910082d6900009000ff0f0000fe0f1200ee010000f80faf02e80f0000306980034800fe0f0000fc035402fc0f0000fe0f0200fe0300003f6980015000fc070000a800f80f780578057c05f80f780080004a6910039000fc0f90000008fc07d401d405d403d409fc070000536980014800fe03000cfe034200aa04fa07aa044204fe03000c546980014800fe0f00002c097e090c07a0031e0542093e0900005a69000054084c065e035404c00f54094c095e094c08d40800085e6900038800fe0f40001c085404dc0354015c0954095c0740006369c0012400ff0f140080037f00e50f550557055505f50f07006d6908096a056c0578036e01e80f68017e036c056a0508090000756988034800ff0f0800e209a208ee08fa0b42089209720a0000776980014800fe0f48000000bc0fa80a800abe0aa40aa40f14007c6980014800fe0f28008808aa0a9807de049806aa05aa0800007d690000a404a4048002fc01d607d401fc018002ac04a2040000826900038800fe0f0000fc0754027c092004c4037c0f44084404846900038800ff0f40001e08c0095e0440034e06d40b04080004866980014800fe0f0800f007b802f40f1600d6030408e8070800946900038800ff0f0000fc0756027c070000fc0f0400fc030000956988034800fe0f28000c01940f440926094409940f2c0300009b6980014800fe0f28008008ec05bc03ae0fac036c05240500009c6988014800fe0f080040085c06dc0156095409540954070000a869c4012400ff0f200082004a002600f70fa202aa02aa020000ae690004e204ec04ae02a200a00fb200a802a602a804a2040000b46900038800fe0fc8000000bc0fa20a900aa40f9c0a840abc0fcb690000c8032800ff0f0000fc0fbe02bc02fc03be0afc071002cd69c8002800ff0728000806e8017c077b057c05740574070000d06980014800fe0f08007c0054085607fc00d40754097c0b0008d86908038800fe0f8800000456055400fc0f5402560554050000fd6988034800fe0f48007a00da0fff0ada0aff0ada0afa0f0000026ac004ec04da02c002bc00d607d600fc028802f604e00400000a6a240814097f09140550054a033601410334057f0914092409116a88074800ff0f4801840126090c0db80f0e017e0510090000136a80014800fe0f680000087c0b7c0bfc057e057c077c097c09196a88034800ff0f48001c056c017c096c0f7c016c057c0500051e6a00039000fe0f0000fc070409f40ad40b5409b40a840b00001f6a80015000fe0f50000002f402fc02f60ff402f402f4021002216a80014800fe0f6800000974057603f4017403760574050409236a84014400ff0f4400000d2b03aa083e076a022b05a20c0000296a3803b800fc07b80028008000ec07b807a807a807a80700002a6a88014800ff0f48000808fa095f055a05fa015f055a05fa09316a88034800fe0f00005e093a0b8e0d1c0542057a0b42095e09396a00038800ff0fc800e008b40abe0cf40600049000fe0f1000446a0000c800fe0f0800fa03aa02aa02fe0f78048e03780c00084b6a90035000fe0f1000320fb200f207fe05f207d100b00f2000586a88014800fe0f2800800f5a015a074a05de065a00ca0f0000596ac0012800fe072000da04ba05ba04b504be07da05100400005f6a88034800ff0f4000e60cb803b40adf08a407b80ab408a004616a80014800fe0f48000804b8056c03ee0abc09ac07ac0138026b6a88014800ff0f48001208f2057f057a05fa017f057205f209716a80034800ff0f0004fc034404ac076c070400a408f4072000806a00038800ff0fc8007808cc0bfc0bfe0bfc0bcc0bfc0b0000906a88014800ff0f2800880f7c002707ee05f605e405f4070400946a88034800ff0f40001a07fc05d805de07d805fe0588070000a26a80014800fe0f0800d80cb802f4041600c40ca802e8040008a96a0001c801fe0768007805cc01fc05fe07cc01fc0584050000ac6a00039000fe0f00001406d406f603740b7607540354040000c36a80014800fe070000fe070204fe05fe05fe05fe05fe051204fb6a80034800fe0f08007e092e0bfe0d00055e052e0b5e090000046b80014800fe0f0000fe07ee04e603f00fe603ee0cfe0700000a6b08038800fe0f88013001d40f360f800f360f540f74090000206b400830080c040a0288017800880108024804380808080000216b000004068401080860081e040a03e8000803480438040008226b14042402c4013c03040830040e03e8000803280418080000236b0004fc0314001400f2070200300c0e03e800080138060808276b0000fc0f0405a404d404040d600c1e07f8000803780c0808326b8800c40fa20490049204e407b00c0e03f8000803380400083a6b00000809fc055801fc050001300c0e03e8000803380c08003d6b5008580b5408f207540d000830040e03e8000803380408083e6b0004aa02aa08af07aa00a20230080e06e8010803380c0808476b0001fe07aa04aa05aa08be0700001c0eca010802380c0000496b2404ad02fe07fc03ae01fd04380c0703e4000c03040400004c6b8000bc07ac05bc078408bc07b0080e06f8010803780c0000506b0000fe038204da05aa04da05000c1003ee000803280c1800536b2001ec0fac07b807a807e00c60041c03f0011002f00c0000616b0001ba0fbb078007bb079a0730000f0ee40104037c0c0000626b00040004f007000400040004fe0720042004200420040000636b00040404e407040404040404fc0744044404440444040004646b0008f00f00080008fe0720040000fe072008200810081006656b2008200bbc08a00820082004fe0724022402a401a4002000666b00001008d4071404d40794041004fe001007140814081006676b0008f0070004fe072002080a6808a8053e022805e8040808696ba000a0057c08600820052005fe042402a4012400a40020016a6b2408a408a40e94089408bc08840f940a940aa40aa40a00086f6b1000d0071c04d0059005de059e05b4051404f407f0071000726b080ce80328006c0be80768022e097c04ac03bc04a8082806736b100ed0015004dc02d00fd0005e09f40c5403740554091004746b000cfc0304085408740f1408840f540af40a340ad4080000776b000cfc0304086c08fc0e6c08040f6c0afc0a6c0aa4080000786b00087c075404d6073c0540003c07bc00fc0fbc00a8070000796b000084004408240454049c021401940074001400040000007b6b0000c40864049c061401f4000400fc0744082408340824067c6bc00022089e041203f200000044004400fe0f420042004000836b0000c2083e04920372000008f8088806fe018806f8088008896bc00022089e04920372001000ce07a902e80b0808f80700008a6b800062081e069201720410044e03c800fe0f4801480240048b6b8000e2089e04920372000008a804ff046803650555094004966b4000620c5e0292017000e40f0404fc056e056c05fc050404986b800062085e06920172080209a8052f0718055d0b150ba008b46b0000fc0f1405e404140d400cde0842074206fe0960081808b56b00000002fc0f5202520211094008de0542025e05a0081808b76b000cfe03550955093d074000e0085e074206fe0560080000ba6b000052065401cc0f53010008de04420542027e05e0041808bc6b00006c0c6c03ee00ec0704026008de0442035e03c0040008bf6b0007ff00f50ea500f502a7040004af02a1022f01e8020004c06b00007c095209400754053c0d40087e094206fe0960080000c16b0000fc04d204c007d4043c024008fe054202fe0560080000c56b00005401340bd60a1407c4021008ce054202de0550080000cb6b00002000e0093c052403a4017c0924092407fc0120010000cd6b00002000f0032e02a202aa02aa0a220a220efe0320020000ce6b00004800c40773024a02ca037a0a4a0a4a0efa0342024000cf6bc000c802e803a60294039403d403940a940af407c402c000d26b20012201ea076a056a05ff076a056a0d6a0dea0722050001d36b1000f807b605940cf4070000b40f2c00a60f2400b4072008d46b00000000fe0f200420040000fe0740082008100810070000d56b000040017e0148012801800f3e0148014801440124010000d96b0000400a7e0be407640554035e00e407640a640950094004db6b00002801280128012401fc072409a4089208920890088006e16b24012401fc072409a2081008c00b7e0a480a480ac8090804eb6b0000c404fc05ec05ec03ee07ec0bec0aec0a7c0ac40a0000ef6b24012401fc0792088208280a640a1009ce09100acc0a00040f6c00000008fc072404220422047e00a2032204210822082006116c00000008fc07a404a404a404e404a401a406bc0880080006136c0800f8010a0208020008fe0f92089204f20192069e080004146c20001800460055005400540054005400d403140404080004176c00085809460554025402d405d4045400d403140c040800041b6c10001809840523032a092a09aa07aa002a01ea030a0c0006226c0800a804b605be057c077c05bc05bc051c00fc03040c0006236c1000180944052301aa0f2a012a016a0d2a00ea0702080006276c1000c802c402de02dc0fdc02dc02dc021c00fc0704080006286c08005009580b560b5c055c075c095c091c00fc07040800062e6c1008880ab6045c035c025c045c071c08fc010c06040800062f6c8800a803f603fc06fc07fc01fc03bc031c00fc0304040003346c000010041002900170080008fe072000c000200118020804376c000020042402a40168080008fe072000e000100108020804386c0000400440024801ca080a08fa0f42008401400230041004416c1000220842060401200020002000fe0f2000200020000000426c08042802480248090808fe0748008a004a012a0208040000476c20002406ac010000fc070404040404040404040404040000496c0000200822044c0300080c08740484020403c4043c080008556c1000120ea2010200f80700040004fe0700040004f80f0000576c2000220c4c020001440044004400fc0f44004400440000005a6c000022084406080120002401f401ac08a408a408a40720005b6c2000240c2403080140004400fc0f44000400fc07000800065d6c000010082206a4010008d008380516051003f004100410085e6c500454045403d4081408fc0f9400940154025404500400005f6c1000120c24038800000404040404fc070404040404040000606c00001208220604014000fc072008fe0910080809f8080006616c00002008420c4c0300002401e40924092409240924072000646c1000220c460304002009b2046a022a01e608220ce00300006a6c1000220cac030001440844084408fc0f4408440844080000706c0000120c220284091004100290037e04d008100310041008766c00001008220ea2010808180468028a018c02680418040808796c1000120ca2030200f80702048c057004ce050004f80f00007a6c00001204a2030408400848044803fe00c8014802780440087d6c1000220c4403100048004600540054005400d407040804047e6c0804310e820130040802a701600021042304cc0310000000826c0000120864060401000cfc0324002400e20f220022000000836c0000120622018404200c2402a4017c00a201220222042008856c0000120c6402080920082406e4012400e40f240824082006886c1000120c22038208380488034800fe070808080838080006896c2000220c4c0300090c04e403240024002400e40f0c0800068c6c2000220c4c030000e80108010801fe0708090809e80b0008906c2000220c44030401100490035000fe0f5000900110060002926c10002206a401000820045004ce0444036402e4055c040008966c1000220ca2030200f80188008800fe0f88008800f8010000996c1000120ca2030400600818080004fe040002c801100060009b6c10002206ac010000e80328002800fe0f28002802e80308009f6c2000220ca40324001001ce0128010809c80b0808f8070000a16c1008120ea40100085004ce05420242025e05d00810080000a26c00001204220384080006fe0122002200e20122023e040008a56c0000220e4401000cfe0302082206fa0122082208e2070000a66c0000220c2402a4011000d007080986088808500810062000a76c00001208220684013000e807240822092c09d00810060000aa6c000010082206a401000cf80348004a004a004800f8000000ab6c2000220c4402000948044803c800fe0fc8014802480c0004ad6c1000220c440314081006d0011000fe0f1000d20314041004ae6c00002408440608010008fc0f240924092409fc0f00080000b36c1008220624010400f40314011401f40904080408fc070400b86c0000240ca4030800e008a806fe01a800fe0fa804b8030000b96c1000220c26030200f80f88048804fe0788048804f80f0000bb6c000010042202a4012000b00fac04a204a004a804b0070000bc6c000012042202a4012000a2079a048604a204a2049e070000bd6c00002004240644011000900f9004fe049004900490071000be6c1000220442030400800f80048004fe048804880488070800bf6c00002204220204012000900f8e04800480048e0490072000c16c000010081206a40100083e06e2012200e20722083e080006c46c1004220684011000fe0710041004fe051005fe0510040000c96c0004800cfc02d4015408d60fd4005401d402fc04800c0004ca6c1000220644010000f80f88048c048a0488048804f80f0000cc6c0000100c22030408e00d0004f207840870080808e4060000d36c0000120c22030400f00892081e07c0033e048004000f0000d56c1000220ca4030000480c4806c8057e044805480648080000d76c0000120ca4030000fc0f0405fc0404047c048404fc0f0000db6c000010082206a4010008240424022c05a408a20862080008de6c2000220c4c030001580048084808ce074800480058000000e16c00002408240688012000f007ac08a808e8080808f8080006e26c10001107a2000002fc096404a4043f032403e4040c040000e36c000010082206020108086808880b0e08080fe80808080008e56c000012082206a401000cfe0392071209920892085e080006e86c1000110c2202820108088a088908fa0f8c08880888080000ea6c000010041206a4010000fe0f9204920492049204fe0f0000f06c40014405d40474095c08560f540074055404d40840010000f36c1000720e020142044802ca090a08fa0f8200400330040004f56c1000940c8c04bc02ac092c08ac0f2c012c03bc0484040004f86c0000100822064401000cf00390009e0094009400f4010000fb6c0000140ca40300000c016401540154095409540cd4030000fc6c000020086607280000061c01f0085e0550065405d4081008fd6c0000240ca4030000a402ac029402d40f9402ac02a4022002fe6c2000220cac0300014408a408a408940fac08a408a0080000016d00002408440448030000480f48097e0948094809480f08000b6d1000220ca203020048014e014801f80f48014e0148010000126d1000120ca4030000f40f1404fc0414047c049404f40f0000176d0000120c2403040950084e06c8017e00c80f4808480840061b6d00001208a20704009000c80fb608a408dc08c40f800000001e6d0000240844070000fc0f0400d4035402d40b0408fc070000256d00001a0ca2030000ac02ac02ac02fe0fac02ac02bc020802296d2000240c44030008f808a804a804fc04a807a80a780900042a6d1008220ea20188088804fe02880088008800fe0288048808326d0000120c140344082006fe012000fe0f30004000fe0f00003b6d000012042202a4010000920f9204fe0492049204910710003c6d1000120c22030408200924092409bf0f24092409240900003d6d000062040402a4012000b00fa804a604a604880f100020003e6d10082207a400000efc010400e40f140072009203520c0000416d0000120c22028409200ca4033c00a60f2400340f64084406446d0000320c8403140050005c095609f4075c015401f0014000456d1000220ea4010008a808a8047e04a8035a065809540c0000466d200494049002be0180082808a80f2601160394044c040404476d0000120ca40300012808a404a603bc00b40fc408a00400004a6d1000320ca2030209780888088808fe0788048805f80700084b6d0000220c4c030008fc06e401fc0c0000f8090008fe0700004e6d2008220c4c030008440844073c00260034004c0f440044004f6d2000620e4201080c4a02ea0118020000fc010008fe0f0000516d0000140c640300011400f4029402d40f94029c021c020000536d0000220c440300019801c80f28087e048801880658080000596d00001208220702008808fe0f0000fc072200e20f220000005c6d000009041103d2008008fe048a0289008900f90289048808606d0000120c240304002001ea07ac00a40fac00aa04a8072000666d2000240c4c030000e80fa802a802fe0fa802aa0aea0f0800696d00001204220284012000ac07a804be04a804a804a80720006a6d10002206a4010000fc0f54045504d6015403bc04800800006e6d1000220ca4030000280124092c09a40f62016a012a010000746d00000904110381002400930f480444044904920724004000776d2000240c2c02a0009007cc02a802e80ba80aa806e8038802786d0000090c92030200e0082e04ae05ae02ae06ae05ae040008826d2000240e4401040510048802a408e60fa800880090062000856d2008240c4c0300087c0954095409d40f540954097c090008886d2008440648010000ec0fa002a002bc02a00aa00aec0f0000896d10001106a30101001009de041004ff0212019200520000008c6d1000120ea4010400f00f56015601fa0f56015209f20700008e6d0000120c26030008a2053e07c008e40bfe0bfe0b220a020a956d10082206a4010008e804ae02a801f80fa800ae04b8030000996d200c4c024009040cf40354095405540754015407740900099b6d000022084206040140045402d4017e055401540f540100009d6d0000220cac038008340894049603d4089408960cb40300009f6d2000660e40010e08e00704043c092609f40b240924090004a16d0000220c42030000de0f52005203f200520b5e08c00f0000a36d00001204a20304009008f8049602f4019c019402f4048008a46d1000220ca4030008a806a8029608d40f9400ac00a0060000a66d1408a4070000f20f060050025402f403540a0408fc070000a76d00001008b2070200fa0f0200f8034a02fa030208fe070000a86d1008260f0000f20892088e072000fe072004e80126022004a96d10001206a40100082c08a00f1208ce0f020922091e090000ae6d20082c0f0004fc039403d40fdc030000fc090008fe070000af6d2000240fac00000efc01040854095409740f540954094408b26d1008260ea0008400f40f0400c408360564062405e4080408b56d10001206a4010000fa0712048206fa07a6040204f80f0000bc6d00002408440608010004e802a808ac07a800a802e8020804bf6d000022084c0700010404d402540bac08c4074400a4011406c06d2000240c440300093804b8032804ee0f2809280928080008c46d1000220ca2030800de0f40094c09d20f42094809d60f0000c56d0000310f420008038800ff0f0000fc072200e20f22000000c66d2000220c8403a0006c00ec0fec02e402ec0aea0720000000c76d1000120ca40300080405fe05540554015405fe0504090008cb6d0000240f4c0000069001fe0f500000079000fe0f90001003cc6d2000220c44030800e00f2c00a003be02a00b2808e4070000d16d0000220f2400a0032008ff0fa4003c0cc403e4041c080000d26d0000120ca403000054095c0bdc057e055c077c0934090009d86d2000220f2400b0008c02aa02e803a80aa80a0808f8070000da6d080691015204000ffe00150895049502d5019502ad048004e16d1000220ca40300082809a4041002ce0110022004ac090008e46d100c920322080807fa002c08c00710004c028604b8081000e86d0000220c4c030000a802a40aa40aea07a202aa02ea038000ea6d1000220ea4010400d00f5801d40f5201d40f5801d00f1000eb6d1000120ca4030400500954094209ca0f220932092a090000ee6d0000320c8203a4003000fc0faa04a804fe07a804a8040004f16d0000220c4c030008a40494029401c40f9401a402ac0c0008f36d2000220c4c0300008402f40ad40ad606d403f40284020000f56d000009079200000eff01a800af072000af07a800ff070000f76d1000220ea4010004be07aa04aa022a00aa03aa049e044002f96d200822060c016000f403ac02a602e407ac0af40b24084404fa6d00001008210ea6032409e7051c075507250b220b14098000fb6d1008260e20010404540334089c0f14003203520052070000056e1008120e84011000fc0fbc02bc02be02bc0afc0f14001000086e0000220c2c0280092408a407ac029602ac02a40f24002000096e0000120ca2030400d0081c041005fe0414025401540000000a6e00001107a200000efe010403e000fe07a8000000fe0f00000b6e1000220c44030808a0083c0520043e002805a804a8080000106e1008260f00007c024602f60f4401000cfc032200e20f2200116e2000240c2c030000fc03b402b402f407b40abc0ae00b0008146e1000220684011004f80554055605f4055c055405f0050004156e120ca20302004a084a06f8014b060100fc090008fe070000176e00001004a20304005000580abc0a5a0518053c02580250001b6e0000220e4401000cf8032807a802280dfe020805ec080c061d6e0000220c24030008e807b802f40f1200d40b0408e8070800206ea404a60496028001be01ee07ae00ae01ae02ae02ae04a204216e1000120e2401000cfc031408f405d602d406f40594080000236e00001206120184041004d407ac06ae06ac06d40714040000246e110ca20300002a05aa04af07ea002a0480037f00f8070000296e1008220ea4010004be07aa04aa07aa04aa07be04800700042c6e0000240c24030008fc055401fc0d0004f8010008fc0700002d6e2000220c240380003e08ea07ea00fe026a036a0afe0700002f6e1008160ea001840054007e0754095409fe09540894068000346e00002208420704018006be04aa06aa05aa08be0880070000386e100c2203ac080006fa012a0cc00310082e09e807280108013a6e0808930f0000ff074902ff0b000818047f020001de0000003e6e0000120ca2030000fa02ba02ba02fa07ba02ba02fa020002436e0000240cac0300089404fe03940000025402fc0f54025402446e0800890751000003ff000500f50f570555055505f70f00004a6e000010049603000874051c055c03de015c053c04dc049000566e1008a2070200c80748027e02c801000cfe039208fe070000586e0000a20f26000403d000fe0f0000fe0f92049204fe0f00005b6e1000110c260280008207ff08aa0baa08aa0bff0a820a00005f6e00002208220684010008fc0ad40ad60fd40ad40afc0a0008676e1000220c44030008fa0aaa0aaa06fa02aa0aae0afa0600006f6e0000440844070800800afc05d403d40dd403d409fc0780007e6e10001106a60100002a03a202ae02a302ae0aa20aea060a007f6e2008240f480000097c0b5408540f5408540f54087c0f0009806e0000120ca4030000d40f5e02f40354025e0b5408d4070000836e000020082e0620013c08f40974047e0374007404fc092008856e1008a6070000fe0efa010200fe0250087f04c8074a098004896e22084c070000fc07540254017c0860064401fc0f44084006906e1000120fa600000efe010204fa02aa08aa0faa00fa020004966e48016201020108017c015e075c017e015e015c01440100009c6e2008240448030000bc0fa20a900aa40f9c0a840abc0f00009d6e1008160f80001402fc0fbe02bc02fc03be0abc0afc0f1402a26e1000120ea2012808ab0fa80f8808ac0faf08a90f28080000a76e0000120ca6030408b004aa02be00aa07be00aa02ba028004aa6e0000100c26038008240abc0ae406a403aa06820aea0a000aab6e20084404480300087c0f4409540f5409440f7c09000f0008af6e1008a2070200ca0ef8018e00e900000cfe039208fe070000b66e1000120ca203000024019407440526054405940724030000ba6e2000240c44030400740b540adc070000740b540adc070000c16e1008960f0000fe0f1200ee0508064400f20f540044070800c46e1000920742000a07e40072067a0579057a05720504070800c56e0000220e4401000cf8038805e80b880cfe040807ea080006cb6e0000100c22020209e80c0a0bcc08480ee8080c0fca0e0808d16e0000240ca40304006000fc0fe402fc02ec0afc0f20000000d36e0000120c2403000094029402d402960fd402b40294028000d46e10041106d2010000ca0fa204a2040a04a104a904e5070000d56e0008fe079200fe0f0001ea043800ae0f28006a05aa048000da6e0000620c0c03200014024c0fec0886086c014c0614052008dd6e1000120ca4030400f403bc02b402f607b40abc0af40b1008de6e1008120ea2010200e807bc00b800fc0fb800bc07e8000000e16e0000220c44030400d40f5402f6015403f6015408d40f0000e46e00001207a600040ef007180134035f045a054a002a030000e56e0000220cac030008bc0fbe08800fb0088c0faa08a80f0808e66e00001206a4010404b40484029c01c60f9c018402b4042004e86e20002206ac0100080c05f40554055601d40354035c0d0008e96e0000b20706003407c4003c031000fe0fa804fa07a8040004f46e0000120824070400f40f14025605f6055c071408f4070000fe6e10049203220008017c015c07d604d4045c013c038c048404ff6e0000220c6e030000c40f5e015402f40f54015e0ac4070000016f1008220e04012008f8055401560df4015c0d5001f0060008026f2000220c4c030008f405d401fc09d40ffc01d405f4050009066f0000620c04032400940454034c0a5e0f4c025405540480000f6f0000090fb1000006ff01950fd502f50fd5025508d70f0000136f1000220eac010000f40fc400d403d602d402c408f40f0400146f10001206a4010008e407b406b402f603b402b406f40b0000206f2004a2072c000009740574057603f4017603740574050409226f2008260c40030408f40ad60ad406f403d606d40af40a040a296f10002203ac080006fa092a0cf80fb0032e04e80f280968092b6f0000110ca2030200f004de04fe05de02fe02de05fe040004316f2204a603840030065401fe0f7400100fce000803380c0000326f1008a2070200f00892081e074000fe0f5604d6055601420e336f0000220c240384001002f402fc02f60ff402f402f4021002386f2008a6070000fc02ac02fe0ffc020008fc072400e40f22003e6f0000310c860320082a052b02ea08fe0f6a022b05aa042008476f000024048c032008740776027400fc0f7e027404240f04004d6f0000320684011004fe0259020000fe0fa804fe07ac040804516f0000640e08012000a40bb40aec06e000220bec05b80b2409546f0000120c260300089c059e01ec09a40f5c010405bc09000a586f0000220c26028000d407bc059405bc079205ba05da0750005b6f1000120784002000ee075e057a057e055a057e05ea0708005c6f10001206a4010000ec075e054c0560056c055e05ec0728005e6f1004b60320088c0f1408f4079c00080fd604b404cc0f40005f6f2008220eac010008fc06d400d206c000d405d40afc070000626f100c1603c4001008f40bb406be02fc03bc02be06f40b1408646f00001408b4070000fc0f1c005c05c0075c051c00fc0f0000666f0000320c8403a808200cf4015c09560f5c01f401240c00006d6f20002207a4000002fa03ea03fe03ea07fe03ea03fa0300026e6f2408ac070000f802bc0fb802f800000cfe039208fe070000846f1004120384002004d204ba06b604b004be06d80464044000886f00002e0ca0030400dc0fb602d40f2000fe0c8803780c00008e6f220846070800000af40abe08b40ec40010088804460200009c6f2008440f0400f40f9405d403fc067c03d40b1408fc070000a16f0000240c44030808e005bc057403140f7403bc05e0050008a46f0000120682012000be02fa02be02ba07be02fa02be022000a76f2000220c440300087e08ea0fff0eea0aff0eea0f7e084008b36f00001004260600017c080c05640376012c0344057c090000c06f1008230e8000be04aa03eb01be073804e70284037c040000c36f1000110fa2000006fe01b604ff07f604ff03f602fe02a004d26f320486031000dc091004ff02d001fa07ee010a02fa040000d56f20001206a40100085e05ea019a0d1a007a0dea019e050009df6f110ca20302003a04ea03f20146015b017e01ea0714000000e46f0000120ca4030000dc07fc05fc07fe02fc0efc0fdc021000eb6f1108210700017f04d507f704dd078004ae07a504a4070404ee6f00001206a4012000fe0f63057803ee017e0578052a090000fe6f0000810741000003fe0cfa015e05eb075b075301f703000411701000240f24008005bc04fc0ebc0cbc0efc02bc04bc0980021f701104a60300000200130cba033a03f80f3a01bb07ba03ba0f2c70100ca203840036065401fe072601f2046e056a01fa0500044c700000220844060403740ed40f360f840f760f540f740f0000517000002206ac010004ea03ea07fa05e201ea03fa05ea05000463701000260f400017024d03a0039c03b60bfa0b5c07120240006b70000860081804000280017e008001000240043808000800006d7000000208420432040202c2013e00c20002036202120400046f70400870040002fe011002040004080408fc0704000400000070700402840174000e08e40424020401f40004016402240c0000757000080009aa082a042a02aa012a022a042a05be080008000076707004000efe0100011805000420042004fe07200420042004787000004008480a280924041602d4011c022404a009200840087c7078080006fe011001000630008e0088080809080cf80300007d7000080c09d20400040803d600020308040c05d208000800007e70000098088808680408020a01ec0008030804c804180800007f7038080006fe0100030800f00700040004fe0700040004f80f897070080006fe0100023808020cf203920092009200f20100008a707000000cfe030002180830040e02e80108032804180800008e70000040082809a40420041803c60118022004a4052408400892704000300efe010001180a400838040004fe02000298012000957038080006fe0110020008e8072a002a00e807080808060000ab7038080006fe010003080048046806da054804280708040000ac7070080004fc0320020000fc0f2409240924092409e4090408ad70000cec032808a809a8042e06a801280228042809ac082008ae7070080004fc0330060000f8072e092809e80b080af8090004b37018080006fe0100021800e00f14009c017c0094091408f407b8707008000efe010002280430000e00f80f2801280128010800b9700000000ce002a000a006be00a402a404a400e40204040000ba700001880c8a02ca00b806ac00aa02a808b80ae00880070000bc7038080006fe010801100474035e08f40f4400440344040000c17078080006fe01080310003c07a4002408f40f2400a2032004c27078080006fe01000118010004960490049804960410040000c870200912070e03ca006a0c1a0000047c0900010005fe050008cf700008000cfc0154015405540156055401540b5c0940070000d87038080006fe01100280088804fe0288008800fe02880c0008d9702008100efe0100035800480fae04b404a404b4044c0f4000db7040083006fe0110060004f8088808fe078804f80600080000df707808000efe011000fe0f02042205fa04a2050204fe0f0000e470f008000cfc03000410050001a803fc0aa80ab80aa8062400e670200418040003ff0008030008f9040902ef010904f9050008e77078080006fe01000290088404a603bc00b40fc408a4088004eb7000088a08620a140900042a035a042e049a088a0a78080000ed700000240424037f001406800064003f0704007c0280064008f9700000220822063e0036053601b700760276043e00220202040971000010081404f40154095c035c015c035c095c09140700000a713c04000efe01080300005e015601d60f560156015e01000015712008100efe0110028008f8049602f4019c02f40480080000197138040006ff0108032000ac07a404a604a404bc04a40720001a710000240a140bbe040c04a40330020c047e050c051408200421712808280dfe012501fc0d2401fc052409fc0124052008000026711008100cf8015e01580d5801fc015a0d58015801080d0008307178080006fe0100023800d00f4805060544045c05c40f000036718808a8066e026e0014050c01800068061e0068028a0e80083c71400838040002fe011008a404f403a600a40ff408a40800044c7178080006fe0100029008fc0ad40ad60fd40ad40afc0800004e710409fc045d045e015c0dfc000400760c0501fc01040c0000557100000008fe04b200ce02ba0c0000fe04120912039e0f00085971f008000cfc032008f40a940afc0a940efc0a940af40a00005e7100001809560554015c0df40100001c0dea08c80238050809647138040006fe01000110048404be02ac01ec07be018402000467710008fc0d94009400ec0c1400cc01440554095401cc0d0008697138080006fc0110020008fc0bac0aac02ac06ac06fc0b00086e710000300e3400f40174057e01740574057801f401120c00007d710000100efe01100efc03ac046c00ea07aa046a02fa0f000084713c080006ff010802000cfe00aa06ab08aa0aaa00fe0600048a7104047c073f00bc00be06fc0000026704aa008902440c00008f710000080afa0ada02da0afe03da0afa0ad902f90a080a000094711800200cfe0310042401940f440926094409940f24010000997100040006fe009200ee06ba0000007e06920492009e0240049f710408bc0cbc01fe01bc0c180088057e080800f80400098000ac7100019c087c045e015c0ddc0010000805be0cc800b8040809b17100004c095c05ce015c0d2c010801980c7e080800f8058008c37138080006fe0108093004ae00740e0c00c80e3e00680e8a00c87118040007fe0028015204ba05ba04b504b607fa0518042800ce713c080006ff010800220cfa015609530f5601fa0522040000d27118082006fe0110020c08ac09ec07ee018c0fec09ac090005d57100002409a404e4010e00ec0d2c01ee050408f40024059008df7100006e002407e705e805e405e205e805ee05280774000000e571f0080004fc032008c009bc05f403940ff403bc05e0090000e67118080006fe0110061000a8053e01c40f200194052c050000067270080006fc0110028000bc05fc00bc0efc00bc05bc058000107230080006fe01380ef8071800d80ffe0ffc0ffc0b1c0e00081b721800000efc010000fc0ffc047c03f0077c03fc0cfc0f00002a7200080006fc0104000400fc0f0400020002007e008203000c2c72000cfc030400fc0f0200fe01f80224053c052409bc0800082d728000a402ac02a40aa40aec07a402a202b202ea03800000003172000014085404d403540b540b5405540d540b12083008000035720004fa07ea05ea05fa05ee05ae08ba02a908ed0fb90000003672100810080c04620480020001800272040404180810080000377200002400140052005500d80f480059045604920324002000387220002800e407660956095809d0095a095609a409280c2000397214005408d40ab20a68096805ac04900292029401140000003a7200005404d407d406d206d80f0800da0f5200d405540210003d720000040954059404240284017e00840124029404540504083e7200001400f40f14005402fc0f14005403540b1c08f40f140046729c0e9001fe0f0000b407ac04a407be07a407ac04a4070000477200080006fe019000900090009e009000900f1000100000004872000cfe0390009e00900f0004fe03320cd2051203f20402084c720008fe0790009e0f00017c015401d4017e01d40754017c014d720008fe0790009e0f1000b40994051e03f4013405100900005972000000046404540244024401c4084408fc0f4400440040005b720000a00090008e0088008800fe0f880088008800880080005f7200000001080168014c014a01e80f48014c01480150010001607230018e008800fe0f88000000fc071008fe090808f8080006617230010e010801fe0f8800880820082008fe0f200820082008627200004c014401340124012501f60f2401240124010c0100006772b0008e008800fe0f480040081c04ea020803c802380408086972b0008e008800fe0f80001008ce0c3802e8091804f8030000727230010e010801fe0f880020089c089008fe0f900890081008757200003402b402b402b402ac02ae0fac02b402340264020000797230010e01ff0f840010009202920292029f08f207920000007a7290008e00fc0f0000fa0f8a057e040a047e048a04fa0f00007d72000014025403dc037c035e075c0374035403140334020000807200000007fe03aa02ba028a02da078a02ba02ba021e020000817240002a029a02be029902a90f80029e02c002c0027f020002a07260021c01fe0f88000006d40ed6077c0254075606540b400aa77210010c01fe0f8800a007bc0efe0e9c0ddc059e06bc09b40dac721008100410021001d0003e005000920112021404100c0000af72120994084808f60702000000fc070408440844087c080006b67200011c018000ff0f0000100e90017f0090011202140c0004b972200116099808e6070000100ffe001000d00f160810060000c072800c9e039000ff0f000810041003ff009001120614080000c272100196084808f6070000440444044404fc07440444044404c472100192084c08f2070000380c80037e0080012002180c0000c872000092094c08f2070000fe0c0202fa0102040204fe090008d072100136098808f607000efc01040efc050206fe080203000cd772100196095808e6071000cc032a012801e8090808f8070000d972200214099808e4070000fc0f240924092409fc0f00080000de72100114098808f607020058084808ce0f4800480058000000e072200122099c08e6070000fe0f5208d20452035205be058008e172100034099808e6070000680888040a030c05a80408080000ec72000012098c08f2070200f8048804fe0788048805f8070008ed72200116099808e6070000a80c8802fe018802b80498080000ee72000012098c08f607700efe01e0031400fc0f1400f4030000f072100196094808f607000058095609f4075c015401f0014000f172000012098c08f2070000ee07000210081007fe009003160cf872000194094808f60700007c095409fc0f540954097c090008fc72000192094c08f2070000fc0f54045604d4015402bc0580080e7310008a094c08f2070000d4075e05540554055e05d40700001673100112098c08f2070000fe076a056a056a056a05fe0700001773000092094c08f2070000b407b402ae032c08e407200000001b730000240b9808e40f000ea409a40f74092c0f2409200f00081c73100196084808f6070000fc0fbc02be02bc0abc0afc0f10002973000112098c08f2070001be08aa0aaa0faa0aaa0abe0a00082a7310019a084c08f20780005400d4077e0554055c05d40712002b730800cd042604f8030200f20f9704f20792049704f20f02002c73080099054604fb030000ff07b502bf02b502b50aff0f00002e730000f40ff4009e0fb400f40f00041003fe009003160c00003473000034098808f4070000fc0f0000540dd4035c055409000036730000c9042604fb03e00f17057c0514053c055705f40700003e73000084095808e4074000fc0fec02fc02e40afc0f200000003f73000016099808e6070000f40ab40fbe04b401b4067405100944731209cc08f2070000580f5a0558070000100ffe009003140c457311098e08f307f80faf041807e2011200fe0f1200f20300004e7350093e0518057f051003b4013a031f03da0376051205100968730000940b4808f0074c00f4057c05f4077c0df40cfc0700007273000096095808e6070000f409fe0bf405fc05fe0b940904087573000032098c08f207e40fda0bd000be0fd209900efe0c000078730000fe07fa05fe05f405ea0f060c1003fe009003160c00007b73d00f2800be0ffe07ec0fdc07000c100efe011003140c00008473080828084808a80618058e0448042805280608040808000087738002b40204029402ec02a60e9402c4021402940284020000897300084408440844084408fc0f440844094409440a000800008b7300044404440444044404fc074404440444044404000400009173000024042402fc0324020008fc0704000400fc0700080006967304022402fc032402000970040e02880168009803000c00049b7300062402fc032401000004017401440144097c0cc0030000a97304042402fc03240a00092404e4032400e40f240824082006ab7304022402fc032401040930046e0488038802780408080008af7300042402fc0324028000c4002400fc0f0400640084000000b07304042402fc0324020008fe040202fa0102077e0800080006b27300022402fc0124010000300048025402460dc80850001000b77304022402fc0324020400800f8004fe0488048804880f0800bb7300042402fc032400000cf803c8097e064806c80918080000c27300042404fc0324020000f4031401f4090408fc0704000000ca7300002404fc0304024008fe074200fe07fc0f4200fe0f4000cd7304022402fc0324011001480824059204c404480210010000e07304042402fc03240200005c064801fe0f4801480240040000ed7300004404fc0744040002f0080004fe030008fc0f44080408f27300002404fc0320020c008c02f4029402d40f940294020002fe7324042402fc03240a0008fc0554035401540f5409fc090004037400022402fc0324010c0368020808fe0788000a036a040004057404022402fc0124010000fc0f54045604d4015403bc048004067400042402fc03240200097c085409d40ffc0f540954097c09097400042402fc0324020008b4072c00a60f2400b40724080000107400042402fc0324020008f40914041002de0110041408f40b227400042402fc0324028000d402d409bc08c407640094030004267400022402fc0124010000b407b402ac032e08f40f340000002a7400042402fc03240200080805fe0558015801fe0508050008337400002402fc0120038800fe0f48000003c800fe0f48008803347400005a005a015e017a015a0158017a055e035a015a0090003c7400084404fc0744060000e806a800ac0fa800a801e80308044b7400002404fc0324020000f407bc05b605b40fbc05f00500055b7400022402fc0120010404f60494029001f00094029602f4045c7400002404fc030408f007b802f40f1600d6030408c80710005e7400042402fc03240200003c00b00fb007fe00b00fb000bc0f5f740000940e54087c045406940a40095409bc045401540600006a7404022402fc012401000cfe00aa06aa00fe06aa01820f0000707400042402fc03240200087c045402d401fe075608540b7c0b837400022404fc0324020400740f6403d60564034409740f0000877400002404fc03000cfa032a08c00716072a04e80f280968098b7400002402fc0124000002f402f402f60ff402f402f40210029e7400022402fc0320010a0468057e03e8016e0568056e090000a77480007c08740bb40bb40bfc0b000f540b760f540b54090000b07400022402fc0124050004fe04be07ba01be02ba027e051005ca7400042404fc072002080cfc0ffe07ec07ec07e80be80b0008dc7400080006fc0104000406fc05020482073e08c203000c0000e2740000740dfc01fc0f7401000efc010406fc050402fa0f0000e37404004d0de603000dfc07fc0b0208fe075801e70f54010000e4740004fc05fe0ff409ec01f00dfc03040efc050406fa0b000ce67400000404040ee4091c08d40414051400f407040804080406ee7400005808480ee4077207680762076a01720f640848084804ef740000fc070405b404e4041001020cfe0b9200f20f02080006f6740000880cfa038800fe0f8a000008fc0f9400f40f04080404f77400004208540cc00b6809640b56014c01540f640860040000047500007c097c055c076c053c00800f7c089400f40f040800061875000008000800fe0f8804880488048804fe0f0800080000001a7500000401040ffe095409540b5409540bfe0b0409040900001c750000920f9204fe0492070000fe0f880488048804fe0f08001f750000200890088e0888088808fe0f880888088808880800082275000ce4032409b40abc0aae0aac0fbc0ab40aa40a240800002375000ce4032408bc0aa40aa40aa60fb40aac0aa40a20082000257500002b022402ff0124010008be06ea01be04aa04be03000028750000000cfc03240124012401fc0f240124092409fc07000029750000000cfe0392009200fe0792089208920a920afe0900042b7500000800e80fa802a802a802fc0fa802ac0aec070800000030750000fc0f440444044404fc074404440444044404fc0f000031750000f80f880488048804fe078804880488048804f80f0000327500000000fc01940094009400fc0f940094009400fc01000033750000fc03240124012401ff0f2401240124012401fc030000357500000000fc0324012401ff07240924092409fc09000800063775000000097c0954055403fc015409540954097c0900070000387540002000f807ae02a802e803a802e80b0808080cf80300003a750000fe072202fe032202fe03000008080808f807080008003b750000f40f0404f40554055405fc0554055405f4050404f40f45750000f801fe0fae0f78002209f2043a02e609220ce00300004c7500000001be08aa046a023e002a006a0faa00be00000100004f7500008008fc0fd408d408fc08d403d404d406fc0880080000517578080006fc0100061000fc0f44044404fc0744044404fc0f54750000fc072402fc032402fc038000a800fe0fa000ac008000597500003c00a40fa20a920aa20a800fbc0a840a440f3c0000005c7500004400d40fd40afc0ad60fd40ac40aa40aa40f2400000062750000a000ae02ee02ae02ee07ae02ae02ee02ae028000000065750000fc07fc032402fc039000880fd608a408dc08c40f400066750000fc07fc032402fc03000828092809be0f2809280900086a7590009400dc07b4059405bc079405b205da05da07900040006b7548007c04fc07fc07fc07fe07fc07fc07fc07fc074804000070750000000abc0aec07ac06bc02ac02ac06ec07bc0a000a000074750000fc072402fc077406ac03f4035e0d540d5409540700017675000038000a0fec0ba80bae0ba80fa80bec0b0a0f380000007875fc072402fc032402fc032000b403b402ae0b3408f40720007f754000e6075905d4075805ff0fe00476037907b40852084006867500007405540f5c0cc0070400fc0ff40efc0ff40efc0f44088a750000f009fe08fe0ffe0ffe0fae0ffe0ffe0ffe08f00900008e750004e4070404f4034c020408f4049402fe0f9402f40c00008f750004c403f4034c020008a4073c00a60f2c003c0f64084404917500096e095405d4035201080da2032a04ea0f360962092008977538098004fc030400240024082708a40f6400640024000000997530090005f80308004804280aac09a809a808a808280400009a751809800cfc030408c40834042602a40164020404040800009f7598088006fc0104008400f407950496049404940494048400a47598048002fc010400f4039404f60494049404f40404020000ab758808b00efc0104084408b40596069406f405c40844080000ae758c084006fe0162002200f2072b082b092a09f20812062200af753801800cfc03040cf40314009602d4031400f40704080404b2759800800efc01040ef4015404d60574025405940434080000b975b8088006fc014400240a940a56091405a404240244010000bc751809800cfc0304002405b404d608d40ab40a940004010000be759808a00efc0104088404b404a602e401a402a404a4080004c57598088006fc010400d40f54005603f40054035408d40f0000c77598048006fc010404d40714041604f4079404940494040000ca7598048006fc010404240514055605d4075405140524052404d27588089006fc010400a402b402a602e40fa402b402a4020400d57598088006fc010400fc0fac04ae04ac01ac067c0504090000d87538098004fc030408d409540b56095409540dd40914080000db759808800efc010400ec0fbc02be02ec0fbc02ac0aec0f0400de7598048006fc010400540754053605f4051405540554075400e2751801800cfc0304065401f40f46010400f40b0408f4070000ea759800800cfc030408e40554055603d4037405c40504090000f075b8088006fc010408940944042602b6012402440454090408f4751801800cfc0324089404f40396020400f40f14041404f40ff97500001801800cfc030408fc05ac03fe01ac01ac0ffc0104010b769800800efc05e403f40076057607f405f400f407040c00001f763801800cfc030408f40f9409b60fb409940ff409040f000824769800800efc010400bc0fac0aa60a8c0fbc0a8c0abc0f000026761801800cfc0334086c0b460df405640d6c0b7c090408000029760c01800c7c038407d405b405b605d405dc05bc06940014002a763801800cfc030400f406f40df60df40bf409f40af40a04022b768808900efc010406940174032600f6075405f4075405000438760801900cfc030400540fb400f6058605bc05ac08bc0704003e765c00c00f3e00fa073600ce041302ea07ea05fa066200020742760c01800cfe0302084a04ea01bb0aaa0eba02ea0b4a0840004c761801800cfc0384007c05ec042e06ec046c057c05c405000052769800800efc01040cf401f405fe085c0a1400d406140800005e769800800efc017406b401fc0fb401760ae407b403f409000861769800400efc0104087405f403760804077404f40f5409540962769800800efc01bc00fc0fbc0bfe07fc07fc07fc05bc08a40063769c00400efc011404f405fc055e05f603ac02e40fb40224026e761801800cfc03f40f6c029c09a603ec0fec0fec0bec0f04007a768000500954096405dc0344014001c80754097009480540007b76000040042a0492055a07560550055c0792052a04480400007c7620002400b40bb40aec060400700b1c05f0079809a80000007d7600000000f80f480448044e04480448044804f80f000000007e7600000200f20f920492049e04920492049204f20f020000008276000000017c015401540756095409540954097c090001000084760000f80f4c044a04f80700001c00ea080809080cf8030000867600002000fe076405640540055e0564056405e60710000000877600000008fc0ad40ad40ad40ad60fd40ad40afc0a800800008b7600008002bc02bc03ec02ae0eac02ac02ac03bc028002000293760000f8074e02f8030000500f4c0948097e094809480f4800ae760000000cf8034808c80848097e0648064809c80818080008b1761804940493049a04f60f0004fc0bf40c1f039404740c0000bf760004fc0704040404fc0704040404fc0704040404fc070004c37620002408a40f9408940fbc08840f94089408a40f24080000c576000000003c08240f240f7e092409240f24093c0f00080000c67600001008880f9409720f1009920f96096409080f10080000c87600000208720f0e096a0f7a09020f1e099209900f70080000ca7600098808c90fbe08880f8808880f9c08ab08c90f88080009cf7600009808980f94095e0f7409560f5409b409b40f14080000d0764808280fa808be08a80fa8088008be0f88089008900f2008d17600003c08800f8008be0f80089c0f8a08a808a80f08080000d27620003008d00fb809b80fb609b40fb809b009d00f20080000d47600002408940f8e09540f4409340f44095409940e84080000d67600008008a80fac09a80ff809a80fae09aa09a80f80080000d77600004208240fa009880f46093c0f34094409540f4c080000d8760000a008a00e7c09640f7409260f2409a409fc0f20082000db76000060041c075405540724054e0734056605940644040000dc76000008086a0f0209580f4609240f1c092409440edc080000df760000fc08540e54093c0f40093e0f2a092a097e0f00080000e1768802aa08aa0eaa0aaa0fff0aaa0faa0baa0abe0c08090000e37600007e04da07fe04da07da048007ce04c804c80748040000e476900070081c0f3409960ffc09ae0f52095209760e98088400e7760000c00f3800980fd80bde0ffc0bfc0ffc0bec0f08080000ea76000008046a07020550073e057e077e053e05be0650040000ee7600000000fe0f920492049204920492049204fe0f00000000ef760000fc075402fc030000040004080408fc07040004000000f1760000fc079401fc010000440044084408fc07440044004400f27604000400fc07740574057605740574057405f40714000000f4760400f40f04040404fc055c055e055c055c05fc0504040000f876000088014800ff0f48000000fe0f920492049204fe0f0000f976fc075402fc030000e80108010801fe0708090809e8090804fc760000fc079401fc01600c1802c401400044085807e0002000fe760000000cfc031400d40fd40afc0ad20ad20ad20f100000000177000050004800c40fc00aee0ae00ad00ad40ac40f08000800097700000006fe010a00fa0f5a055e055a055a055a05fe0f00000b77000194005c00fc0fbc0abc0abc0abc0abc0afa0f100000000c770004fc048003be01ae00ae00ae07ae00ae02be028004000019770000fc0754025402fc030000b00fac04a204a804b00f20001f77000a040afc0bbc06bc06be02be02bc06bc06fc0b040a000a20770000fc039401fc010008fe0f92089208f20192069e08000428770000fc075402fc01200c280224063409a4086208240800002f770000fc075402fc032008bc072000fe0f2000a8012406000036770000fc0f5402fc030000fc0f0408540af40b540a540a000037770000a000a800ee07a807bc07aa07a807ee07a800a00000003a770000fc075402fc0b08088006fe010000fe074008980988043c770000fc0754025402fc030000fe0f5208d2015206be0980083e7700043e02b20132013e00f20f32003e06b20132021e0400004077000194005c00fe077c057c057c057c057e05fc071400000041770000fc075402fc03100058095609f40f5c015401f00140005b770000fc075402fc030000dc0f5c035e035c0b5c0bdc07140061770000fc075402fc034008f4095409fc0f5409f20950010000637700002800e40fbf0aae0ab60ab00ab60aaa0aea0f1600100066770000fc035402fc030000340534059e0734053405540500006c770000fc075402fc0300005407c400ec07c40052014a06000079770000fc035402fc0380005400d4077e0554055c05d40712008477fe072a01fe010000f40f94049604f40794049604f407040085770000fc075402fc071003fc0f9600b0080006fe01000738088e770000fc035402fc03000074077405f605740574057407400092770000fc075402fc01900f5400f6015404f4035608d4070400a57700007c003807fe07bc07fa079007ae07b5073c0744004400a7770000fc075402fc033008fc055a01580dfa01580d5800000eaa770000fc075402fc032000fa053e0730053e07d40764040000ac770000fc075402fc0380095405d4031c00d203da0f52020000ad770000fc075402fc01600cf4016c09660f6c01f401440c0000b377fc075402fc030008f40b740b740bf60f740b740bf40b1008bb770000fc075402fc01200cf8031608b40f940fbc0fd00fd000d7774008e407fc06fc06fc073c007a0f7c0ffc0e7c0f640f0008db770000200224022c01ac087408f4072c002c01a40060002000e27750085808470445024403fc00440144024404440840080000e377000948093c092a052903e801280326052409280908090000e577100848084706fc0144060000fc0f040404040404fc0f0000e977000052084c06f80148060000fc0f240924092409e4090408eb7758084706fc0144020008540c34031c001400320f52009000ed77000050084c06f80148020008f40a940a9408940af40a0408ee7758044703fc0044034000540ab40b9406bc04b206d205d208f377000104018400e40f5c044404440444044404c40f04000000fe770000c200fa0f2602e20b0008fe0722004200fe0700080007ff778400f40f2c042404e4070000fc0f0400070004000400040000788400fc072402e4030008a60c76023601ee08260ce003000001788400f4072c042404e40700007401440144097c0cc003000002788400fc0724022402e4036008180480047e020001980020000c788400fc0f2404c4071000fc0310090404fc030408fc0700000d784200fa0716021202e20318080707f400840124021c04000014784200fa0716021202f0030208fe0722002200fe072200000015788401f4072c022402e403000074010e01840f3c012001100116784200fa0716021202f203000052017e025302520dd20012001a78c400f40f2c042404e40700007e0e0201fa0f0208fe08000630788400f40f2c04e4070000b4008400fc0f8400b4008000000032788200fa0726042204f20338079c089808f8080808f809000434788400f40f2c04e403000cf803c80848097e064807c8081808387800008400f40f2c04c003fc0fe4081408f40b1408f40900003e788400f4072c042404c4073c0044034408f40744004203400440788400f40f2c04e4070000bc0720042004fe0720043c04800f45788400f40f2c042404e407000028092809be0f280928092008557800004200fa071602f2030008fa040a02ee010a04fa0500045d7800000401f40f4c04840ff0071c0050015e011009f40f00006b7800008400f4072c04e4070000b40f2c00a60f2400b40f20046c788400fc0f2404e4070000fc08ac0aac06fc05ac08ac08fc086e788400f40f2c04c4071000f80f5601f40f5c015409f00700007c788400fc0f2404c00bfe079200fe070000fe079200fe0f000089788200fa072602e2030008fe070200d207fa020209fe0700008c788200fa0726022202e20300006a022a09ea0f2a01be02a0048d788200fa0726022202e20300015f0355035509d50f5f0100018e788400f40f2c04e4070000640114012401c60f34012401440191788400f4072c022402e4037c00d4017e015401d4077c01000197788400f4072c04e007c400340ca4034600f4071408f409000498784200fa071602f2010004fc0ca402ff00a400ff02a404fc009f788400f40f4c04c00708007c0d4803fc0f68037c0548090000a7780000ca04ea02fe0fea0a800afc0ad40ad60ad40efc000000a97800008400fc072402e40b0008fc07ac02ac02ac06fc0f0008b0788400fc0f2404e00788000e09fc0f0808fc0f0a08c8090000b1780401d40f2c04c40bf0070800a80f08077e0288056a080006b3788400fc072402e4030008ac0768002e0da8032804ac092000b4788400f40f2c04e4070000a80bd80adc0ad80aa80b28080000ba788400f40f4c04c4074c00e40f5c095609f40f540954094c09bc7800008200fe072202c0077e03aa04aa00fe06aa01820f0000be78c200fa072602e2010004fe038a08ea07aa01ea02ae040000c1788401fc0f2404e4030c08680f8e08e80e4808a80fce08280ec5784400f4074c04c407000074085c06dc017609540954070000ca7800005202d2077a056e056a076a02ea076a057a0542074000d078500550053c03540f160b7c0b080b660b520bbe0f98018001d57800004400f40f2c04e003c80ffc0fce08cc0fec08c80f0008da788401f40f2c042404c407fc02dc06dc0efe0adc0ffc020403e878000efc010404b404b40eb40b960a840ab40ab40ab40e9400f4784400f40f2c04c40720009a09da0fd608d60c9a0a20080000f7784200fa071602f20380087607cc015f00cc01f50754010000fa7800008200fe071202e0034a08ef04ea02fa00ef02ea02000c017900004200fa071602e201080cff00ac06fd00ac062c0000070e798400fc072402c40b14084c045e07d00f4c095e0954091008197900000401fc03e40b0e085407d40140080c07ec0f2c0964003a79000020042402a40124082408e40f24002400a401240220043c79000088018a00ee0f580088010000fe0700080008000800063e79000008018800ce0fb800080920082008fe0f2008200820084179000088004a00ec0f580088000000fc0f040074028c010000427900018800ca0f780088002000fc072008fe091008f8080006487908018800ce0f780088090004fc0324002200e20f22002000497908018800ee0f580088080008f00f0008fe0f200820080008507988008800ee0f580008018000f80f4e0448044804c80f0000557988008800ce0f7c000808e00c0002f207c40830086c068000567908018800ca0fb8000008fc0f2409240924092409fc0f00085d7988014800ee0f580080083c042403e4002400e40f3c0800065e7988018800ee0f5c008000f80328012801fe0f2801f80100005f79000080049604b402b400be07b400b402b402960480040000607980004900eb0758008200ea032a012a01ea090208fe070000657908018800ce0f7800080040014a014a01f80f4a014a010801687904097405d405d401fc09d409d407fc01d405d405740d04096d791000100198086e044c0174094809460f5801640354038c0c777908018800ca0fb80000045402d4017e035409540f44010000787908018a00ea0f98000000dc0f5401f400540b5408dc0f00007a7908018800ea0f580040080809fe0558015801fe050809000080790000040afc0b8c03fc0bdc0bde0ffc038c07fc07040a00008179000014094c055e014c094409500f4c015e050c0534092000847988008800ce0f7c00080042042a022a09ea072a01be02a004857984004400e60f5c000401f001aa01f807ac01aa01f80100008d7980008800ec0f1800c00f7c00c407f402d4035408fc0700008f7988004800ee0758008200fa0f6a056a05ea076a057a05c207a67900002405b3058005eb01fe01da078001be0382033e050005a77900018a00ea0f900004007c0fdc0b5e0b5c0bdc0b7c0f0401aa79c4002400f50f2d004002ff02ad02ff0faa02ad02ff020002ae7988014a00ea0f98000008fe0bff0aea0aff0aea0afe0b0008b17900018a00ea0f9000c40ffc05fc07fe06fc02fc0fdc020000b9790000840fbc00ac04ac04fc07ac04ac02ac0aba0882070000ba790000800ffc00d402d402fc03d402d402d408fc08800f0000bb790400040f740164056407d605540554034409740904070400bd791000080fe801c4019405b207ba05b2078409e80f08000000be79200424022401a4006400fc0f6200a2002201220220040000bf79000090085408540434037c00340034075208520890048000c07988084c082c049c038c00bc008a0a9a092a094a0748000000c179000292015200fe0f520052040007f8040604c004000f0008c37900005008540854043403bc00940034075208540850060000c679000018039800fc0f9400000144004400fc0f440044004000c97900002804ba04ba02ba01ba01fe0fba01ba02f90228040000cb79000092035200fe0f52000008380480037e00800330040808cd7994035200fe0f52000200f80188008800fe0f88008800f801d179000094035200fe0f5200100142014c010001fe0f00010001d279000094015200fe0f12008008380480047e020001d8000000d57912039200fe0f52000000fe0f20040000fe07200810080806d87912039200fe0f520080096004fa07820860081e08e0060000df7914039400fc0f540094090008fc0f24092409fc0f00080000e479000014039400fc0f90008400b4008400fc0f8400b4008400e6792001ac086c04ac03bc03ae0f6c012c036c04ac0820010000e779000014039400fc0f92000008f8088806fe018806f8088008e97994035400fc0f5200920810044e024801fe00480348044008eb7992035200fe0f52009202000690017000fe0f500096011006ef79000094035400fc0f520000087c064401440044017c0e0008f07992035200fe0f520092021002cf010408fc0f0400ec010402f87914039400fc0f92001a00480f480948097e094809480f0800fb79000094015400fc0f52000209a804ac0456057402cc014000fd7914039400fe0f530000099e09500870055f065002d0015e00007a10039200fe0f12000001ea07ac00bc00a40fac00aa04a803057a12039200fe0f42000808f40492039000920fe408080810040b7a000018039800fc0f00013c08a40aa40aa40fa40abc0a00080d7a92015200fe0f52000000f207540150015e015005f60700000e7a000094035200fe0f0200380cca034800cc0f4e087a0800061a7a000094015400fc0f52001000fe0fa804fc07aa04a8040000207a18039800f80f9400000cfc030400d407f402d40b0408fc07237a1000f8055605f4055c05f4062007a400fc0fa400220700002e7a0000ca012a00ff030008fe0aae0afe0fae0afd0a00080000317a14039200fe0f92000002e80fa402a402ea03a20aba0ae207327a14039200fe0f52001200c00f1200c20f5a054205da0f0000337a24022401fc0fa200000658005605560b54095c01f0050008377a94035400fc0f520000097e099605d606be06560556085e003b7a8a014a00fe0f49000000ca07aa0481042d04a104ed0700003c7a14039400fc0f520040055c05b4027609b406d4005c0340043d7a14039200fe07920010007407ac07ae07b407b607960754003f7a8a034a00fe0f4900800f5e00560f560557075e00c20f0200427a14039200fe0f520080067c00ac0cac09fe0aac02ac06fc08467a12039200fe0f52008008bc0c2c052c05ee062c02bc0280004c7a100cf801560df4015c0df0020406a401fc0fa400220700024d7a98015800fc0754001004fc05fc05fe01fc01fc05fc0510044e7a0004ce02d401d40fb4018008fc07ac06ac02ac06fc070008577a12039200fe0f9100000e7e005609560bff0b5605d60f7e01697a12039200fe0f9200000cf401f205fa0bf209f901f50da0086b7a94035400fc0f12003408f409fe07f405fc05fe07b4090408747a000038080806c80108000e00080048008801080638080008767a0000ac08a40894049c02c4018600bc00a40724082c080006777a0000ac08a40894048403e600840894089408a4072c000000797a00000c0004039402ac02a402a60abc0ab40af406140200007a7a00000c08a408a4089408870f94089408a408a4080c0800007f7a00083405b4052c052c03260b2c09ec073401340124010000817a0000ac08a40894048c048e03e6008c03cc04940884080000837a0000ac08a4079404940206084406d40154085408d4070000847a0000940054004c002c00e60fa402ac02ac02b402340000008d7a00006c04e407540214024600c4015409540964096c070000917a000094009406b404ac04ac04e607ac04ac04940694000000927a00001408b40af40aa40aa60fac0aac0ab40ab40a04080000937a0000ac0ca40294006c064408460b7c0874084c034c040008967a0000a400d40eb40aac0aa60af40aa40ab40ab40e94000000977a00001400d4072c06640676056405ec062c04d40714000000987a00004a045a035a0fd60b730b530b5e0b5a0bfa0f4a0040009c7a00002407d405b405a405a405f60fa405ac05f405140700009d7a0000140f0c017c055c05d6035c035c057c090c09140f00009f7a0000140ff400b40aac0aa60aa40ebc0ab40af408140c0000a57a0000a604a202f601a6020708f2051604d6031604f6050004a97a0000140ff40134012c07e60764077c077407f40914070000ae7a000af407f406f40eec0ae6070600bc03b40ab40af4060000bf7a0000f40fbc047c030c08c60af40ea40fec0fac0f8c080000cb7a000008040804680488050e040806c8052804080408040000d67a00087e090009000b7e090009c6092a09320d2a0946094008d97a00000802ea028a0368010000800ffe0488048804880f0800dc7a00001400f403bc02b402f607b40abc0ab40af40b14080004de7a10081408d409540554035601540154075409d40910040000df7a00001408f40bb40ab406b602b402b406b40af40b14081004e07a00000a04fa055a055a055b0f5a055e055e05fa050a040000e37a2804c9048a03600208082c09ab068804aa07ac0828080000e57a00001408f40afc0af40af60ff40afc0af40af40a14080000ed7a2804c9050a040803c8001e06aa04aa05aa06aa08be070000ef7a0804fc020803e8020c00b00fb007fe00b00fb000bc0f0000f67a0008d40edc01d607dc041400c0095c075601540fdc090004f97a200030000e00f90f0800200010000e080808f80f08000800ff7a080124012e0124012001e80f26012e012401240104010000067b00000800e6072c0924092009e80926092c09e409040400000b7b48004408560554055403f001560156015401f40344000000117b8808a404a604ac02a403e000a60194029404940484080000147b0800a802a602ac02a402e407940a560a5409540904050000197b00002804a604ac04ac04a404f007a604a604ac04a40404041b7b00001800c60f5c054005f807460544054c05c40704000000207b1000580846085c09400a7808460c450b5c08440804080000247b0800880056065c053c051005160554055405340704000000267b10018800e60f0c0044005001480246084c08e40744004400287b280226022601ac026002f80f2602e4022c012402240200002c7b00000004d60554055403f4075401560554057405040304003c7b5008480846064c01e4044004d807460a6c09cc09c4084004467b58024603ee03e403ec03fc07e603e403ec03e40344020000497b40015601560554055001780956095609dc075c01440140004b7b0000080ce6036c09e00f0800460ce4034c084408c40700004f7b08018800e60f0c0044084c046804c6034c066c0964084406507b00000000f60f1408b40ab00af40bb60abc0abc0a14080000517b000028022802e6032c0a0004e80326002401ec0704080404527b00000800f60f1c005c0750055805560554071408f4070400547b88004600460f6c0964095809560966094c094c0f44008400567b00001004d605560454025001f80f56015402d404140400005b7b0800e8090604ec030c00c40750005600f60f54005404d4035d7b8c00a200b302ae0aaa0ae807ba02a302a602e60382000000607b48044404e6030c02c4022000b802a60aac0a2408e4070000777bc8010800e60f0c0054088404a002f601a400ac03e4048408797b84048c04ab04aa03fa06ae06ac06ab02aa0eaa028a0280007e7b000058084608260b24085008580b5608240c2c0b44084408807b0800c80f1600d407500558055c05d6071c00f40f040000008d7b28012409f60f0400f00f1808d60b5608d40b5408d40b00088f7b82008a02bb02aa0aaa0ae807a802ab02aa02e60382008200957b0000100a160afc07b406b002b602b606fc07140a140a0000977b0800080ae60afc06f403f002f802f602f40ffc0204020000a17b000070001600d40f540b540b500b560b540b940f34000000a97b080074095609d404f406d806d404f602d401d40074000400ab7b2000700e7601740c7400f807760076067400740f24000000ad7b10001400f20fbb02b20af2071000d3031a081208d2071200b17b000058064601fc0f54010400f40756055c055c05f4070000c07b00000408f40fb608b406e00c0800e60f14001404f4030000c47b0800e8057605f40f7405f4050400f60714081409f4080006c77b0000800f7600540fd402dc0fd802d60fd402d40af4070400c97b00005409540576050403880f660176035405f40584054409d37ba809a409760b240da405f005260524077409a409a4090000d97b0000940ff400f600f407f005f605f407f4009408940f0000e07b80004800fe0fcc01000890057603540f7403540554090000e17b80028402fb01fe04fa06f804fc04fb06fe04fa0982020000ee7b00000008760f04096c0f0009360f2409ac09ac0f24080000f17b0800140fd601d405d407d805d405d6039409d409140f1400f77b84089404a6070c08c40ad00bb40bb60bb40bd40bc40a0000077c08082806ee01a40cac0328081c055605d403540354051009217c0200fa073b00fa077a0540057b05fa073a003a08fa070000387c240af40be602e406f40f0400e40fa609f406a406a40900003d7c00002808a6055c055405e809b00856056405ec05240800003f7c4400540606010400f401f007f405f601f407f401f4010401437c0400fc095b0fde0b5a0f7c0b6f0e130a960a920e920810004c7c08024802d60ffc0ff40ffc07f40ff60ff40f7c07540604024d7c0000b404b402f60fb4010000d00ff60ad40af40ad40f0400607c00005408f407d601fc0ad0071000fe07740b740b740e0404647c0000e00ad60bc6074c04e407e00f7604c4035c0744084404727c2800e80ff6073403fc0fe403e80ee609f40af402f40b0008737c4008440458024001c000fe0fc000400150024c04400800007b7c480948092a092a051803be0118031a052a054809480900007d7c2c03a000fe0fa0000c01400044084408f40f4c0044004000897c2c03a000fe0fa0002c0960045806c4014008460898072000927c2c062001fe0fa0002c0100086808880b0e08880f68080808977c08002003fc0fa0002c010008fc0f240924092409fc0f0008987c00002e03a000fe0f2400800f8004fe0488048804880f00009e7c8c032000fe0f8401fc0f1404fc051404fc041405f40f00009f7c04097405d405d4057c03540f54017c035405540574050409a47c00008000fc00c403d602d602d40af40ac40efc0280000000a57c0000f20892089e073c03fe0f28000403700892089e070000a77c2c07a000fe0fa800000cf80308084808ee0f480848080000aa7c0000280aa80aaa0a9c0bbe02880298069c07aa0aa80a280aae7c2607a000fe0fa0002e010000fc0f5404d60054037c040004b17c6409110541058c032001920f2e014203c2057e050c053009b97c0300d001ff0f500093018000ba008200e3079a009200a200bd7c0006b801fe0f200008030408a406a700a40fa4008c02800cbe7c02002c07e000be0f0000d40fdc02dc02de0adc0adc0f1400ca7c0c002003fe0f2c00800f7e04c803000cfe039208fe070000d57c0600a003fe0fe8000008a806aa00ac0ef800ac0caa00880ed67c0600d800ff035800100ffc007403f402f602f402f4032000d97c0c00a001fe0fa80024094004dc070008ac0bbc0aa80aa80bdc7c000efc0104081c05bc052e03860f1c03bc031c052c050000df7c0600a001fe0f8c003a00d60fff0ad60aff0ad60afe0f0000e07c03009001ff0fc202ff0101025501ff07d7033d0191028102e77ca801fe0fa0002808e00bfc0bfc0bfc0ffc0bfc0bdc0b0008ef7c0300d000ff0fde018d07bd00a507ef00a507ad00bd070000f87c8004840498039401e300d00f480044017401400280040000fb7c000000049404d402dc08b408940f52004a01420282048004fe7c0000900edc00b20c88020000fc03000100010001fe0f0000007d000048077c00d20f48010000e4072408240824087c080006047d48077e00d00f4c00000310004e0088090808080cf8030000057d000048077600d00f4c00e00a04080408fc0f0408040800080a7d00001408540554057c01f409560f54011c059409240a24000b7d48076e00d00f4c00e00a08083804c8020e03c804380408080d7d48076e00d00f4c000001f80f0801c8003e00c808f8070000107d100e9c00f20ec80080020408440cfc0b4408fc0f40080000147d48076e00d00f4c010000e80308010801fe070409e4090004197d48077600d00f4c0064010004fe072204fe012206210c00001a7d48075800f60f6000400b0407fc00840424053c03e00420081b7d48077600d00f4c00000b70084e06c00142084e08d0072000207d20002a096a056a03ea0bff096a072a01aa05aa09200b2008217d48077e00d00f4c00c40a00080807f8002e082808e8070800227d0000340814055405f4015e09540f3401b405140534090000277d00081e098005de01c009a209920f5e0152051e05220920002b7d10091c0950055e05b401900f4e01140594051209080a00002f7d000000083e056a05ea017e096a0f2a01aa053e0500080008307d48077600d00f4c01c000fc0f44044404fc0744044404fc0f397d48076e00d00f4c0000032000a20f9e048204a2049e0f0000427d48076e00d00f4c00800288004e04350534054c0940000000437d100edc00b20648004007480068065a05cc042806080c0000447d48076e00d00f4c0000030008fc0f240924092409fc0f00084c7d48076e00d00f4c000003420826092a09920f2a0926094008507d48076e00d00f4c00a0030400a40fa404bf04a404a40f2400557db00dec00a20498020000f40734092c09e40934092c09e0055e7d48077800d60f5000000b280898041803ce03080428082800617d48076e00d00fcc00c4039000c80fd604a404dc04440f8000667d48076e00d00f6c012000900f8c04a204a4048804900f20006e7d00002c082c059601d409cc09800f5e01520512051e090000717d480f7600d10f4c0000090404bc0327002c00bc0f04080004727d0000900efc0092064802000058037608d00f4c00e0020004757d48077600d00f4c00000b10088806a605a4048806b00c1000767d48076e00d00f4c010000f80796089608fc089c089408f006937d900cbc01e20cd800000a3a0842091209ea0f82093e094608997d40076e00d00f4c000001fe0f0004a804fe05a0042c0500049a7d000048077e00d00fac038009540454035e005406d40804049c7d300eec00a20c980200008c0ca402a700a40fa400ac02800ca07d300eec00a20298040004da025408d40f74004c0280040000ad7d48076e00d00f4c0040031000fe0fa804fc07aa04a8040000b17d4e077000ec0f4001fc0fec03e4032402ac0b2408fc070000b27d48077800d60f8002fc0f0c00bc03e404b4040400fc0f0000bf7d48076e00d00f6c010000be07aa00aa00eb0faa00be048003ca7d00013e052e05be05ee01ae07a2015a031a03260542050000cf7d48077600d00f4c0000015e044000fc0f6409710846038804d17d48076e00d00f4c0000052004aa022a08ea073e01a0060000d27d48037600d00f4c00e003840094077e0554055c05d6071000da7d48076e00d00fcc00c0059c02ac092c08ee0f2c03bc040004e07d48077800d60f48010800a00794009c00d60f9c00b4070000e37d2008bc0ce202d802800420047e03b40ab407bc0120060000e87d48076e00d00f4c00000ffc07ac02ac0fac02ac0fbc02840fe97d48076e00d00f4c00400914045c03f409d406d206dc055408ef7d48075800f60f60020004f405bc07b605b40fbc05f0050004f47d48077800d60f48000002fc04ac02ac01fe0fac01fc020404fb7d900edc00b204c0019c04d40794040400f00c0e03f8040008017e48075e00f00f6c00800220046a03aa0a6a07be0020070000047e44035f00e80f26000001fc07bc02bc02fc07bc0abc0afc0d237e40027c017c00fc07fc00480218017c04d4035400d0028000267e48076e00d00fcc004002f60f98071604f00f9608100800002b7e100ede0071046c0301087606e0092c08bb0afb0b260a00082e7e40077e00d00f4c014000ec0f0400d60774055405d4070000317e100ede00b10ccc020000f70f0004ce030104e807860898083d7e900edc00b20c8802000cfc0284069609a40b8400fc0600003e7e48076e00d00f4c00000afc08fc05fe05fc01fc05fc091008417e0008300abe0a3c0bfc033c0f88025e0664075c0a840a00004a7e40074e00f00fec01c007f4071e04f4039006fe07900c1602547ea0032e00f007bc001000fc07b602d80f3f03d004160e00005e7e900edc00b20488020008aa09ea07af010a0fea09aa0980056a7e000778009406520108003407f205fa05d205f405f40704006b7e00007e0a7e077f07fe0f7e0b1807f602d20a7e0a980a8008707e48076e00d00f4c010004f002de01fa07ea01d602f0040000737e900edc00b20208093e0ceb03eb09be07340c8b03780c00007c7e100edc00b2064802fe0f3408ba0f38093e08ac0f100b00088c7e980ef600910648011208ee07fe07ef03fe03ee07fa0700088f7e800edc00a2065801000cfc03f409fe0bfe0efc0bfc0b8409967e50077c006a0200097604f5071004f60f3004fe07d00c1602a07ea004b0056c05220590040000fc01000100010001fe0f0000a27e00003009ec04a2049806000004040404fc07040404040404a47e00003009a80566051005400044004400fc0f440042004000a67ea004b805e4049204800230008e0088080809080cf8030000a77e2005b805e6049002100c84037c0884053402ac0560080008aa7e00002005b805660510050000c407440844084408fc080006ab7e00003005e805a6049002000874040403fc08040cfc030000ac7e2005b805660510040002a800a800fe0fa800a80488030000af7e2005b805670510050004f40104010401ff070409f40d0404b17e00003005e805a6049002000878080004fe04000298012000b27e00009805d704b1040000fe0f0200b201da010208fe0f0000b37e00003005ce0522050000f00f1003f0009e081008f00f0000b57e00003005ec05a2049000000efe01000c0003fe0000070008b77e00002005b8056605000160085804c40340084608d8076000b87e2005b805660530050000fc0f44084404fc01440642084006b97e00003005ec04a202980a00083804ca020e03e80418040808ba7e00003005ac056205180100080807f8004e084808c8070800bd7e00003009ac05630518010208420cfe0b4208420efe090008bf7e0000b805e4049202800a100850047e04c8032a05aa080004c37eb804e404b202000054067c015608f40f4400440104060000c47e00002005b805660510010008fc0f24092409fc0f00080000c57e00002009b80566050000f80328012801fe0f2801f8010000c67e2005b0056e0522050000fc0f44044404fc074404fc0f0000c77e2005b804e604900200087c0644014400440044017c0e0008c87e00003005e805a6049004100048025604240554054c088000ca7e300aac096209100500002c012001fe0f20012c0122010000cd7e30059c04f20288022000a20f9a048604a204a2049e070000ce7e2005f805a60490040400ac02ac02940fb402ac02a4020000cf7e200db805e60490000008a408a408940fac08a40820080000d17e0000380be60990010008280dfe030000fc0f04007c028401d27e20009804e402b20208004006e80108087e0488076a080806d37e3005ec04a20298020000a407a404a404bf04a404a4070000d57e2005bc04e20498020008a404a603bc00b40fc408a4080004d87e3005ec05a20480022008900eac09a60488069004a0080000d97e2005b804e60280022000a00fb00fae04a804b00f20004000db7e2004b805660512024000a802a802ae02940fac02a4022002dc7e00003005ec04a20290021000480fb604a404b4044c0f4000dd7e20059c04e20498040000f80796089608f4089c08f0080006de7e2009b805660510014008380898050a02c805280848080000df7e2005b805660592041002400868075e00480f680848084806e27e00002009b80564050000e00fbc02b402b40ab40afc0f0000e37e3005ac04e20498020008ac049c038c00bc009a092a070000e57e3005e804a602a00208084405e4066a02c2055a0c40040000e77e2000b805e604b0020000f8070404a004fe056004ac050000e97e30059c04f202980a0008dc055c045e035c005c04dc091000ea7e00009804f602920200025400d4077e0554055c05d4071200ed7e2005b804e60490020000b40814051e03d401140570051008ee7e0000b005ec04a2043800a007b402ac02ae0b3408d4073400f07e20059c04e20498020000f802a802a802ae0fac02fc020002f37e0000b0056c0522050000fc03b402f407b40ab40afc0b0000f47eb004ec04a20298022000fc0faa04a804fa07a804a8040000f57e20009805d604b1020000be07aa00eb0faa00aa04be030000f77e2005fc05b204000cfe039208fe07000cfe039208fe070000f87e0000b005ec04a2020008fc070400d407f4020409fc070000fc7e00002005b8056605000518008802aa08ac0fa800a8028004fd7e00003005e80524050001280ca8032804ee0f280928090000ff7e0000b80564051205880040042a022a09ea072a01be02a004007f0000380aa40b7309000caa089a060409a00992069e0ba208057f0000bc05e20499020800e2071204f2075e05f207f2070000067f0000d8024e0279010004ef043f02a00128032604ec0504040e7f00003805e60491000002fc0f52020008de054202fe056008137f2005bc04e3049802c00c5402f209d606d106dd0555080008147f1005ac05620518050000b4079c00d60f9c009404b4030000157f00003805e404b2040802a008aa0b9806de0498079a04a808167f0000b802e40292000006fc019407d603d4075401dc070000187f2004bc056305190000056c056b05aa0aaa07be0120062004197f9004dc02a30298020200ea0f62057e057e056205ea0f20001a7f2005b0046e0520050000780178057c017809fc0ff80100011d7f0000dc05b30488002208e0070408af0aea0bae0aa20a0008207f00003805e4051201000cfc037408ae0afe0fac0afc0a0008247fb8049602f102080806048204fa02aa00eb02aa048e080000287f000aa009f809a60100085e093a0b8e0d0c057a0b42095e09297f2001b804e60200028c00e40f1400d60774055405d40700002d7f1805d605b1048c00200cfa015609530f5601fa0522040000307fa002b802e60290000404fc07fc07fc07fc07fc07fc074404347f1004bc04e3021800be0ceb03ea09be07340ccb03780c0000367f00005000480f47044404fc07440444044404440f40000000387f0000a8072604fc032402a40700000404fc070404040400003a7f0000a8072604fc0724040407c000c80efe01c802f804c008507f10000807fe0724070401340ffe0f140fe40f3e0f340f0400517f0000fc0f04002403e40004042406c401340b0408fc070000557f00000401540154015401c40f4c014c015401540104010000577f00001e09920852087e05520652025e025201d2001e0000005a7f00009e00b208b20f1e0412041200de0312081208de0f0000627f00005c09540d540b5c09d40954095c09540554055c090000697f00001c02d403d403dc03f407f403fc03f403f4033c0200026a7f0002bc0ab40ab406ec0114001400ec0fb402b402bc0200026e7f2000dc0734043404fc07f407f407fc07f407f4073c040004707f2000fe07fa05fa05fe05fa070a00ee010a080a08ee0f0000727f2001ae00ba00ba077e057a057a057e057a05fa073e002000757f00080e04fa00fa01fe07fa00fa02fe00fa02fa049e030000777f00005c08f407f401fc0a94077406bc0ab40ab40abc0a0000857f00006e0dda014a0d0e054a00fa0fae0aaa0aea0fae0aa00a8a7f000148014a014c014801f80f48014c014a014801000100008e7f400858095a095c055803f80158035c055a05580940090000947f8008a806aa00ac00a806f800a802ac04aa00a802800400009e7f2001b804b8047c047805f807780578057c05f80728040000a17f50045c029c021e009c055c045c035e025e04dc0550040000a47f0001a801fa0fae04aa04be0708014a01f80f48014b010000a87f20092c0cae022e082c09fc04ac04ac03ae04ac08a40b0008a97f4003c40bd40bd60fd403fc0b54095607d605540b40090004af7f000028012a0df8032e010001be036a046a056a097e08c007b97f300afc0bde0bde07fc07dc03fc07de07de0bfc0b540b500abd7f1402240124098408fc0700001402640104098408fc070000c17f4804c40452025a0ad80f10005804da02520a440ac80f0800c57f2808e8043f03e8040008920a820afe0b0808420cfe0f0008cc7f44082c092409040d3c0980092c092c0d540944097c090000ce7f100048026706e409480002019208fe0700009208fe0f0000d27f40002800a40fe40ac40afc0a800aac0aa40a840f7c000000d47f28092a07f801ab00010230090208fe0710018208fe070000d87fa808a806be01b807c40880084c0afc0b0808400afc0f0002e07f00022a02ae02ae02ea02260fb0036402aa02aa022e020002e97f0008fc0fec07ea0fea07f80eb201fe079801fe0f00000000f07ffc02ac02ae0fac02fc020002580af40f4200140af8071000f97f0009a807ec010e076c090409900bfc090008540afc090004fb7f4000d40fb205be07ba05930700019208fe07b801fe0f0000fc7f0000020bee07ee07e203ee03e003ea03ea07e2070e0b000000800004f0033e00e00330020800a4079c078807a407bc0700000180000020012801a800a8077e0928093809a808a808240620000380000090009400d40254017e01540954095c09540712001000058000012001a800a80fa80afc0aa80ab80aa80aa80f240000000c800400f40f14001400f40f1c001400f40f14001408f40704000d808208ba088a0a8a0bba068e048a04ba068a058a04ba088208108000000000f40ffc03f403f40f0000d0011008fe0710000000158044065401fe0fd401d40200088806fe018800fe0f880000001780000054065401fe0f540100002401fc0792089208920880061880000054065401fe0f5401540100042407e4042404240724081980000044065401fe0f54010000fc0744087c084408fc0800063380000004040404fc039402940294029402fc0f04020402000036800402fc0354025402fc0f0000fc0f040024025c0284010000388020042004ec07aa05a805a005b005a805a605e80f280420043b800202fe0352025202fe0f0200f00f0008ff0f2008200800003d800202fe035202fe0f0201180c0803ff00e8070808180800063f800202fe0352025202fe0f020978040003fe0000037004080842800000c408fc06bc02bc01bc083c08bc05bc06bc06a409240846800202fe0352025202fe0f0200480054015302440dc80050004a800204fe035202fe0f0200f8090605f103fc0f0400fc0300004b8064046404d407f405ec05e605dc05f605f605e40f640454044c800202fe0352025202fe0f0201780c4403440044017c06000854800202fe0352025202fe0f0201480c4a03f8004c034a044008568000004408fc08dc0adc0afc0f800abc0aa40aa40a3c08000058800102ff0349024902ff0f4100fc016a017f056a057e0340005a8000002409bc09bc05bc04bc02a40fc002740254052c0524085e800000fe0f2a006a04fe07c005fe05ea0f6a002a08fe0700006a800202fe035202fe0f020078034b06c80848084e01780700006f800102ff012901ff070000df091205b00387071c01d201100070800202fe035202fe0f0004fc0284069608a40a8400fc06000072804000f604b607b707b607a2078807f607d207fe0fd804000474800404fc075402fc0f24005403740ede08740854017407000877800002fe035202fe0f2400ec07a602e8092004fe03a00d2e047d808400fc0bac0ffc0f0400f402d40cfc08d60af408d402f40083800000080cac032c00ac032c00fe0fac012c00bc0f08000000848040094e095405d40352050008ac02ac02fe0fac02bc0208028580080caa03aa03aa0f2a01ff0f2a01aa0faa03be0f0800000086808004fe06aa05aa04a2060800ac02ac02fe0fac02bc020802878020009e049606d607d607cd07e00fec07d6079c07a404240089800000f80f080048024802b8011e012801480a0808f80700008b80000cfe0392009208fe070000100ffe0010081008f00700008c80000cfe039208fe070000fe0f02000200fe07000800060000968000000200f60f500150015e01500950095009f607020000009880000cfe031201a208fe070000500090091008fe07100000009a80000cfe0392009208fe07000020042004fe072004200420049b80000cfe0392009208fe0f000004040404fc070404040400049d80000cfe0392009208fe07000044004400fc0f440044004000a080000cfe039208fe070000a20972042a03e608220ce0030000a180000cfe039200920cfe030008e0045e0542024205de044008a280000cfe0392009208fe0f00006804a8053e022805e8042808a480000cfe0392009208fe070000480c4803fe00480348044808a580000cfe0392089208fe070000fe0742087e084208fe080006a9800000c4073c00ac07ec01ec01ec01ec05ec05fc0304000000aa80000cfe0392089208fe0700080807f8004a084808c8070800ae80000cfe039208fe0f0004e8032a002a00e807080808060000af8000001000f00fbc02b002b002be02b40ab40af40710000000b28002000a00ea0fae02aa02ab02aa02aa0aae0aea070a001200b4808000a8007200ec0fec02fc02e402ec0aec0ae20720000000ba80000cfe039208fe0f0000e40324002400f60f24002402e401be8000001e00800f8003bc038003ac03b40bb40bac0724004000bf800008fe079200fe0f0000f80188008800fe0f88008800f801c080000cfe039208fe0700004008fe0f4004d0044c0142064008c180000cfe039208fe070000e80c0802fe090808f8070000e001c38000007c00d40fd403d403fc03d403d40bd40bd4077c000000c680000cfe039200920cfe030008fc09240924092409fc090008cc8020001400d40fd402de02c002c002de0ae40ae60710000000ce80000cfe039208fe070000b007ac04a204a804b00720000000d680000cfe0392089208fe0720012601fc0f20012c0122010000da80000cfe0392089208fe0700004408fc0b2408440884080000dc80000cfe0392089208fe0700009e089008fe0f900890081008de80000cfe039208fe072000f807ae08a808e8090809f8080006e1800800c80748027f024802c8030008fe0792009208fe070000e780000cfe039208fe0f00080807fe000804fa078a086a082804ef80000cfe039208fe0f0000a800b803a80aac0a880a9806a800f080000cfe039208fe070000ec04ac06fe01ac02ac04bc090008f380000cfe039208fe070000c80fb608a408bc08c40f80000000f680000cfc032409fc0f0000680908050e02a8052804c8080000f8800008fe079200fe0f88034702c402340ac40b0408fc070000fd800800ec0faa02aa0aa80aee0f00009e0724092409a20810060281000cfe0392089208fe071c00a80fa80aa40aa40aa40f10000581500034009c0fdc03d403b4038603b40b9c0b1c07500030000681000cfe039208fe072000f80f1600d40754085c0ad00910040781000cfe039208fe07000cc4039c080607a407a4009c0f00000881000cfe039208fe0f000cfc030400e40f1200f2014a0640080981000cfe039208fe0700042803ea080a08fa0fc200200310040a81000050005400d40fe002de02d002d40af4075400500000000f81000cfe039208fe0f0004f80308084a08ec0f4808480800001081000cfe039208fe070000440c4c03360034004c0f4400000011810008fe079200920efe01e0070805ee04a8040804e80f00001381000cfe039208fe0700008808e80f1c04ea044801580e00001681000cfe039208fe070000340174097409fe077401540114011a810008fe079200fe0f0003fe02480340040000fc0f0400fc032b81000cfe039209fe070800f40c92039000920ffc08100800042f81000cfe039208fe070000e80fa802a802fc0fa802ae0ae8073181000cfe039208fe07000078044a07cc00cc0f4a08790800063381000cfe039208fe070000ee0f00044105ce040004ee0f00003881000cfc032409fc0f200490052804a60428071007a00400003e81000cfe039208fe070000fc01d40154017e07540154017c014a81000cfe039208fe0700001400de07540554055e05d40700004b81000cfe039208fe0f0000f40f0400e60c54039405740800084c810008fe079200fe0f0000e803b802ec07a80af80b280800045081c00f3c00a40fa400b4068405a6059405d408f408940f04005481000cfe039208fe070000a4089408860f9408a4082c0800005581000cfe039208fe0780004c08b4074600f4071408f40900046581000cfe039208fe070001fe08ea0aaa0aaa0faa0abe0a80086681000cff03c900ff070000ef0f2004b70428052204ed0700006e81000cfe039208fe0700047c0354005407fc08540854017c077081000cfe039208fe079200aa07fe06aa04be03aa04ba08000073810008fe07b200fe0f8000fc0fa004c40ff8070400fc0300007881000cfe031208fe070000fe06ea01ea04ea03fe08c00700007981000cfe039208fe0700007c05ee05ec02ec05fc04000400007a81000cfe039208fe070000bc02ac092c08ee0f2c03bc0400047b81000cfe039208fe078001780e7800f8050808fe03080c0a067e810008fe079201fe0f8001ea04b806ae06a80a6a0ba90680007f81000cfe039208fe0f0008ee070008fc0b5408d409fc0a00088081000cfe039208fe070000540ed401540956095409540700008a81000cfe039208fe0700007805780578017c09780f7c0178018f81000064003c0ffc07bc07be07bc07bc0ffc0f0c0f640000009881000cfe039208fe072401d405fc01d40ffc01d405f40500009a81000cf8030800f808f807fe03fc07fc07fc0ddc0f180000009b81000cfe030208fe071000ca05a805ae07a805ca051a0500009c81000cfe039208fe07000074057607f40176037405740500099d81000cfe039208fe07800054054c023e0f4c024c0554040000a081000cfe03b608fe070000540aa20abe0a4005540502023e00a8810008fe079200fe0f4000b406be04740500004c0c22030001b3810008fe079200fe0f0000540f560bfc0b540bd60b540f0001bd81000cfe03a208fe071000f8079608b40f9c0fb40fd00fc000c081f0000e00fa0fba03fa03be038003f60bd20b3e0758004000c28140003c00fc0fdc03dc03fc03b003bc0bf60bbc0734001000c981000cfe03a208fe070000f007b805f700550ca402e80c0000ca81000cfe039208fe07e000de06fa01fa07ea07d601f0020004d381000cfe039208fe0fe407fe0f7407f4051e00fc049c07580ce3810000fe0792049204920492049e0792049204f20402040000e5810000fc07a404a404bc07e404000c80037c00800100060008e8810000fc0f94049c079404700b9804a607540fd404f40f0400ea8100000000fc0f240924092709240924092409fc0f00000000ed81000000097c055c055c035e015c015c035c057c0500090004f3810408a408b408ac08a408a40fa408a4089408a40804080000f4810000bc04a40494079404b40220087e048803e80218040808fa818409fc0ddc0fdc0ddc0dde0fdc0fdc0fdc0ffc0d84090000fc810000fc0f44044204420400044404440444044404fc0f000000820000d40f54054405440514042405020562057a05ca0f0000058200001c05fc05fc05fa03f001fc01fc05fc05fc05fc030000068200000009fc05520500055e01740154050005d4053c090000078200000009fc05540500053e01740100055405d4053c090000088200000009fc050405fc052c015c012401fc054005fc09000909820000c0007c025a02c002ee07dc02c8025c02fc02c00000000a8200002400f407f407f607f006f006f607f407f407940700000c8200000a00ca0f4a044a047e044a0449044904c907080000000d8210005000500758055405f2055405540558055007500010000e8210005000480f440952097a09520954095809480f5000100012821000480f4405f3054405080760006a08f20f2e00e200000014820000920ffe049204d00fd40134089c0f140034025400500317821000480f56057c0558071000c00fa802fe0fa802ea0f000018821000580f5405f205440f0c00f40f5605540574051c0f00001c820009b00852055602d2011600d2035202d90f5502500200001e8218095809fe06d402fc01d400fc03d402bc07d402900200001f8240084006fc0144004c014e01550244084408fc0f400040002a82400cfc0347005509fc070000e80f28002e00e80f080400002c82400cfc034e00450dfc030008de0842054206ce055008000030820000400cf803d408f80f00007e0e0201fa070208fe0800063182400cfc03d6004408fc071000e80727082509e808300600003582400cfc03d6004508fc070000e8078a088c0848085808000636824008c0077c005609fc070000f80f88048e048804f80f00003782400cfc035701450cfc03000868045807ce046804280708083982400cfc0344005709fc070000b80f860480048e04b00720004782400cf8035e014a08f80fb407ec040008240afc0b220a00025882400cfc03cf084508fc070000be08a007ff04a006bc0580086682400ffe005b07fe010004ff07d504f707dc048f07a404a4076f8200000008fc0754045404d6045401540254057c0580080000708214042402c4017c060000fe0f5208d208520152067e050009728220001000f807940896089408f4089c089008f009000400007382000028012801fe0f28010800f8079608f4089c08f00800067a820000040024042e0a2409a408a40864082e084408040600007e82040804082404ce04040304020403ce04240404080408000082820400240024002e00e40f2400240024022e02e401040000008b82840094009400960894089408f407960094009400840000008d82840044003400b60024012402240824082e08240ce4030000928204004400c4074e0444045404640444044e04440444040400978204080409440a6609d405540744020e03c40044000400000099828408a408a404ae04a402f401a401a402ae04a404a40884089c82820892089208970492029201f207920897089208920482009d820408440444025e04440c740a440a4409de08440844080408a582440044082404ae032400140014002400ae0f240044004400a68200080406f401560154015401540156014c01cc0304000000ac8284004408c408ae04a40384008408a4082e07440084000400ad8200000400f40796089408f0089408940896089408f4080406ae820200e20f22002f022201b2007000a2002f0b2208e20f0200af820804880308009c0708082808480888081c06880008070800b182000004018400e40f0e000401e4078e084408440824080006b3822408240424062e01e400b408a408a408ae08a40724002400b78200080408c40f0e0804080408f00f84088e08840804080000b8828400a408a408ae0fa40ca40ca40ca40cae0ca406a4088408b98204080404f4039600940094009000940f96008c008c000000bd8204089404d40496029402940994099408f607940094008400c78204001401540156015401f40f540154015605540514030000cd82440044002400e60754085408540a540ae609240444000400cf82040a2409a4042e02a401740024082408ee07040084030400d18284084408b4043e03e4000000e40724082e092409e4090004d48200004400440f660554055405440554055605640f04000000d78204000400f40796049404f407940494049604f40704000400db8200001400d407560254025402d00314081608f40714001000de82820042002207ba0aaf0aa20aa20aa20b2f08e20b02080004df82840044002407b602a402a002a40b24082e08240ce4030000e582040224032401ae0fe404b404a404a404ae04a40724000000e68200002400a40fae04a404f404a404a404ae04a40724000000eb820000040084078e048404f404a404a404ae04a40724000000f18200000409e4092e052407f401240324052e09e40904090000f98204011401540116011401f40f140114011601540114010401018300000400e4068e048404f407840484048e04e404040e040002830000040ce4032e08240824047404a4032e05a408b408240603838400940824044e030400e407240824082e09e40804080004048344084406e4014e0844088407e40f24042e042404e40f00000583840494049402b60ab409d408d407d400b60094028401840009832408a404a404ae02a401f40fa400a401ae02a404a40424080e8384089408540856095409540f540974097609540944088408278300000404e4052e052405f40724052e052405e40504080000288304002402240a0e09440434042403e4012e02a404640804082b834404540444020e012400e407240434043e042404240424002c8314019400d40f3e00940894089408d40f960894089408040032830008c40ca40a8e094404240c8000e4068e0984044406000834830400f4071404d605540554055405d4051604f4070400000035830400f40f140c960c940ad4099409940a960a1408f40f040036834400240ca402a6029400d40f9400a400ae02a402240444003883040014041404f6075405540554055405f60f140414040400468384089404f60394009400f60f94000000fc050008fe070000498300000402fc02ae02ac02ac0fac02ac02ae02fc02040200004f8300008401e40f0e00240924092009e40f2e09240924090000508314019400d40f3600140154095409d40f5601540114011400528304001408740496029400940e94009400960e94081408040454830000440954055603340918071000540556033409040700005883040464020402ee0f040044084408e40f4e084408440804005a8382088a04aa048b028a01fa008a018a028b02aa048a0482045e83440244015409d608540674005400d40f4e014c0144020400608384009408940c96027400540054007400960f94009400840061834408540444030e0044025409d4047402d6015408c407000063830008b408940494049602d40f9401960294049404b40800086483040454045405d60554055405540f5405560554055404040065830004b40c9404940296091408d40f16031405940434080000678300003404940416021401d4009400140116029405340400046b830000f40f1400760294090404f403560954095409f40700006f8344097405c4054e05040544002400b40026092408e4070000778380004400f40f1600d40754025402d40b1608f407140000007883000074023402b60ab40ab40ab40eb403b602340274020000868300001400f40fb602b402f00ffc0fb402be0afc07140000008983440454025401f60fd40054030400e4030e080408f40f00008a83000974074401ee0f0400440844084408ee0f4408440840088e8304000400540896062402840864080404ee0404022402c400928300000400740756055405d0055405560554057407040000009383440124019c075e055405d407d407540d560dd407140500009883000094029402f6029002980f9002d402b6029402940200009e830008b408f408f606f401f400f000f407f6089408b4040000ab830008040af40ab60ab406b403b402b406b60af40a040a0000b18384089404b40496029401f40f940094019602b40494048408b28300085404c4070605540974095409d40b5609540914090400b7830000440a3409d4071600440c4403e4004e03440454080400b98300007408140956095409d40f54095409560b140934080000ba8300003c02ec032e036c037c033c032c032e0b6c091c070000bd835400540954093605940314011401940f3e015c0154014400c1830000540cf403f603f403f403f003f403f60bf40f54000000c583000034001400f607b405b405b405b405b605d40714000000c783a408e4043403a60264040400a40fa604f404a404a4070000ca83420042097a052f032203a20f220322036f092208e2070000cc830400f40f1408b60ab409f40bb409b60a940a1408f40f0400cf834400540c14031600d40350015001d4091608f40f14000400dc8304095409540516033403940f14030e034c052c0904090000e0834408540e9400060cf4039409940afc049606940934080400e98384009400940ed60a940a9c0a9c0a940af60a940e94008000ef83040044045405f6055405f40f54055405f605540544050400f183a408a40ab40a76063405340534057405b60bb40924080408f2830402a402a402ae02e40f04000400ee0fa402a402a4020002038400009402940256021002180f900254029602940314030000048440002401140556055405d4075405540516011408f40700000a840000140dd40416021401f80ff00f140156029404140d00040c840400e407a402ae02e4090406f40154015609f40f000000000d844408540404033601740114011401f40f16015401540104010e84a409b409740b360bb405f40534056e076c056c09a409a4091d84040074095409d604f406d406d404f402d601d40074000400248400003408940956095409d407540556055405940534080000258400003400140776057405740574057405760514073400000027842000b40eb400b60cb400f40fb400b406b600f40e2400000028840000f40f1400f60904049403b400d4009e00d400b40094002c840200020ffa01ab05aa05f807aa05aa05ab05fa09020f00003d844408540444030e00a400a40fb40954095609b40e840000004984140514057c055e035401f40f74017e037405540554050000578402012201aa00ab0faa0afa0aaa0aaa0abb0aaa0f220000005b84040204017407f604f406f405f404f60cf408f4088407000061848000c400e40fde03d403d407f403d40f16081408f4070400638400002404f407f607f407f407f407f607f407e407240400006b840400a40fa404f604a4032008f407160054091409f40f00006c840000d40ad40a7406760314027402d602b40fb4029402000271842408a4069c005e063408d40a540a740a1e08f402040c04007584040854095409560574055403c40344036e0544056409240082840000d400540756015401d40f5401540156055406d40000008b8474020401e40f0e00a4019405540156093409b40f140100019984000b5c0b5c07de06dc035c0b5c075c015e034c045c0800049c84040054075400d60f5400540144025408d60f540054070404b28424002c0c44031600f40fb402b402fe0fb402b40af4071000b884920492065a003b010a0d6a011a053b096a00a20412090000bc840400240ce403d60ff00be80bf00bd40bf60be40f24002000bf8404001400940ff600f407f405f405f407f600940894070400c48490009400b407d607d407d407f407f407d607d406d4009000c984000034021401560f94095409540954099609540f54030001cb8404004408d40ed60ad40ef40ad00ed40ad60ad40c44094400d68400000400f40ef60af40abc00bc06b40a960af40a04080004dd8404000408640f0e09640f04093c0f1e09d409940f04080000e68440014405fc04fe06fc06fc06fc06fe0bfc0afc0644000000ec8414085404c4070e08e40bd40bb40bb40bb60bb40b340a4400ee840008b404f2030304fa09580b5a0bfe0b5f0b5a0bfa0b000211850400740cd403d601f40ad408d409f606d406d408f408800413850008c40b7c0b7e0bfc0f7c077c07fe077c0b7c0bc40900081785040cf40314085604d401540d54015405d6095400540e04001a85040ff400540cd601d40ff0010404a4012608f40f2400000021852409a4089405de01b4099409840ff601d405b40c140900002385040974074401ee0f04005405900574095609340f140100012b85040854045400d601d409f405f401f601f403f405d40300002c8504049407f40796040400540f7400560f56007407740884043585c40f3400f40f760574077405d40d7e049407f408340800063a850400c4071400c603d403d403d403d60754061404f40300003c8544005404c40706007401f407f406f605f406f40ef40700003d851400d40fc407ee0fc403d40f8408ee042403e40524080000438540024a024a0feb0b4a0b780f4a0b460be70b560f42010002498524082406f4007601740d7001f401740d76017401140d00004a85040674000406ae0844055400540344062e0884093408040369854408540c04028e008405f405f003f405f603f409840704006d850000240874077607700ff0077402760f74077407240f040072850400e401f401e607fc01ec01040cfe034c00cc0f440000007485420a6209d20a4705220d0208fa0fab0faa0faa09fa0f02087e85000064002c0fee0b2c0b780f2c0bec0bae0b2c0f64000000848524044c0744001601f401f403f401fe05f407f401f4010001878500013401840f0600b40eb000b40e8400de082c07e40520089b850000f40f54055605740704009402de02940fd40294028000a685040ef401b408b603f40bb403b40bf403b607b40bf4070400a9850000fa0f3a00c30dea032808aa0aae0abf0faa0aaa0a2008aa85040454015c09de077401040cf4035e005400d40f54004000ac858400940844050605f403b40fb401f4030605440594089400af8500027403d403d60ff40fd40fd00ff40fd60f540f74010000b08502088a0dfe05db01de05fe01de05fe05df01fe058a050000c985b404b402f40fb60194020400d40ffe0adc0af40ad40f0000cd850000f404f407f605f407f00504075c055e05540754040000cf85000974074401f40ff603b406f4061e0ffc041407d4081004d085140654065403ce0a24070400f40954075e01540ff4090004d5858a04aa02fa0fab03aa01020efa01fb03aa03aa09fa0f0000dd8504035c075c07fe0bfc0b980b400736071407740a84024400e485040cf4035409f60f04017405f4007e0f6402f40564090000e5850008b405e4050605f401b00fb401d4037e036c0504050000e98522046a0302013700b20ff20ab20ab30faa0aea0fa2000000fb8502002a0c4a030b05e203be03760f970f7603be05e20502050786240ce4017c0dfe01740de40400025401f60f4c014c0604000b864400640b4408ee0564027008f40bf60af402f406f407000811860208fa070a046b056a0f6a0b0a0b6a0b6b0b6a0f2a010a002d8600000000fe0fff07fe02e007c002fe03ff053e00fe07000038860400f40ff4067e06b406f40b240efe007e05fc03740114054e860000000cf003100850077e01d401b4079408b408b00410004f860000000cf803080828093e075c015c054c095c0d5803080050860000c00f3800880fa80abe0adc0adc0acc0adc0a4808280051860000000ff000100650007e06d408b40ab4089402b00600005486000cf80308082809280b3e0d6c056c0b4c0b5c09580908005586000cf803080ba806a8063e095c08dc0bdc08dc0b580a08005a860000000ff000100a50087e0eb408b40e9408b40a900850005b860000800f7000100b500a7e0f5408b40e940ab40a300800005e860000000cfc030408940b7f07b603b603b607e6072c0a00005f862000ee04aa04aa032606f001180c38035f005a074a0418026786000cf8031801de0fbc0f8c0b1808f20092089208920700006b8600000004f80488048804fe07880488048806f8040008000071860004f40534053405f40734052c07ec070408fc03000c000679860000f8048804fe03f802000404040404fc070404040400047d8600000008dc0b54095409f407540554055405dc05000800087e860004f8098e07fe07f80600080400fc0f2400440084000000808620001408ca0f08041802f00888088804fe0788048805f80781860008f8098804fe07f80e0008780482050c03e0041c08000882860000f804fe038e03f80700007401440144097c0cc00300008a860000f809fe078e07f80600081808ea0c0a078803780408088c860000f8048804fe07f806000428012801fe0f24012401000193860000f8048e07fe07f8060000f20892089e070000fe0f0000958688004a08ea095a094e09ea074a054a055a07ea074a0c48089c86f8058804fe078804f80412022201a2096208fe0722000000a3860000f8098804fe07f806000c3c00020ec0090e08700b200ca48620042204d20556055a05d20756055a055607d20520080000aa860000f8098804fe07f806000c2400c8020002fe0f00010001af860000f8098804fe078804f80e0008fc0f2208e20f22080000c0860000f80dc804fe03f80a000cc808ca08fa0fc808c8080008c6860004f805fe078804f8060008fc0f24092409fc0f00080000c7860000f804fe078804f0060800e8070a098c08880858080006c9860008f805fe078804f80a00005800440253064409c8001000cb8600001204ca054a055205de07560556055607d60512080000d4860002f802ce03fe0348023003fe0f620492046204fe0f0000d9860000f80cfe07fe07f806000824092409bf0f240924092008db860008f805fe078804f80600005e064801fe0f480148020004e4860000f8044804fe0378032000b80fa604ac04b004a00f0000ee8600041404d40544055c05c60744055c054405d40514080000f9860008f805fe078804f80a0000e40f6402f40f6c02e40f0000fe8600047804fe03780300019408fc07900c7e02900556080006008740005c00f40574057c05f40774057c05f40d3408fc07000002870008f809fe078e07f80a500048056e05d40f6c054405400408870008f805fe0788048804f00e4c095405d40354055c09400912870000f805ff07f8060208be074208f00b020afe0b220a00081387f8058804ff078804f0061a0fe6050008240afe0b220a220a15870000f8048e07fe078804f802300cce03c80f4e087908000617870000f805fc07880470028c0f54005401f4015408dc0f0000188700047c02ff03c407780c2b02fc012403fe050202fe0700001c8700001404a407a406b406b607b406ac068c0694071408000021870000f8044802fe0378030006d4075e0554055e05d40710003b870000f8058804fe07f80a0000fc0f3c033e033c0bfc07100047870000f809f8048e07f8060008fc03b402f407b40afc0d000449870000f8098e07fe078804f8067000aa02f80fac02fa0200004c8700047802fe0338038000fe0f900024000801fe0f800000004e87f8098804fe0788047801e0075e046a056a056a08fe07000057870004f8058e07fe078807f008bc0ad40ad60fd40afc0a800859870008f805fe0788047802c007bc02d4075601d4075401dc0760870000f8099808fe07f80a0000f40f540ad40f540af40f040066870008f804fe0788047002fe0f92020e0860096207de0800087487f8098804fe078804780080077f02800ffe031208fe07000076870008f805fe07f80600007c0d4803fc0f68037c054809000082870008f805fe0788067004fc0756053c02f80f0400fc03000083870008f805fe078804f00e04085406dc0156095409540700008d870400fc0fec04ec027c09800778008808fe078804f80600089e870000f804ce03fe03480230017e06aa02fe01aa09820700009f870004f802fe03c80276037e095a055a05da015a057e050e09a28700006204e807ee06e406e007f206e806ee06e80774080008ba870000f8098e07fe078804f0051e09ea0d7e0f2a01be0b000ac0870008f809fe07f80600089402f402ee0ed402040354020000c6870004f8024802fe034802300b64087607f4017603740d0004cb870004f805fe078804f80400025c0434097c0932005a069000d1870008f805fe07f8060008f40374037403760ff40310020000f2870000a00bac0aac07ac073e08ac03ac0abc07ac06a0070008f98784047c043705be05b6057807ca07b605b205ba0736080000fb870004fc02ff0344027e013b0bda0f7e03ea072b076a0b00090d880008f805fe07f0067c0f3c03bc07e0033007fe000803380415880008f805fe07f80202003a0f4a07de015a0f6a016a0f40001f880000f809fe0788047002260f780b7400fa0f50047e03000c21880000d405dc05be07bf05b7093f009705ad07ac05a405000022880000aa059e05fe07fe05fe09ff00fe05fe079e05aa0720083b882c001704de0540057605ff077e0570056405bf073408120040880004f80708040804fc070a040804f80708040804f807000445880000f807fc07fa07f80302001c012001fe0f20012c010000468800082009bc042404bc00a60f7c0124022405bc04200800004c8888004800e40f120000002400240024082408e40f240020004d8888004400f30f0800220c2202840120082208e20f22000000538840004400f30f0900c801ff070800c3051004f2071200000054880000cc00f20f18008608f507940400002408e40f24000000578840004400f20f19025002de03540254060004f2071200000059880000c800e40f0200540f7c057407640024002408e40720005b8804004200f90f0800fa03df02da07fe020200f207120000005d8800002400f20f08007a095a09fe07fa0509042000e40f2000618800004400f20f0809f805ae03fc03ac0df8010008e40f2000628800008c00e00f1c00bc079c079807bc07bc040000e40f20006388800088004808c80f28081a043c04c80088034804280800086588000008018a00ea0f980048010000fe0f20004000c0008000688820013409b404b40774043e04f4043401b402b40420080000698808018800ee0f9c0040091c08e4041403840274040c0800006b8808018800ee0f9c00480100088804480444023202100100006c8808018800ee0f9c0048010000d00010091008fe07100000007088140114057c055c07dc045e04dc045c015c037c05140510047788000004027402540e5409f608540954025406740904090000818800021002f402b40eb409be04b401b402b406740510090008848804018500f70f8e006401000c2202a2017e00a103210420048b8890028802bc0a820e8809c8088e099802aa06ca0aca0aa8088d8800018c00ec0f58010000f0072c092809e80b080af8090004928808018800ea0f98000008fc092409240924092409fc090008968808018800ea0fd8000000f80f88048804ff0788048804f80f9c8800018a00ea0fd800000448024801fe0f4801480248040000ab8808018800ca0fb801000cf803c80848097e064806c8091808ad888402a402a40a940e8c09a608bc09d602d606d405c405b408b18800018800ea0ff0002000fc0f02001007fe009003160c0000b48808018800ec0f98000000a800b803ac02a80a980aa806a000c1880001540bd4075e0454015403100cfe021003d20414080006c288d602d602de0aae0e9e09c60480019e02c006c005fe090008c588a002ac02900abc0e8009a804a801bc02a806a804a8080000c68808018800ee0f9c00480100042c0520053e052005ec0f0000cf88000444057c0d7c0f7c09fe097c037c057c057c0b440b0008d4881400d40f7400f4076c0564056605cc06d400a40f24000000d58808018800ee0f580088000001c40fb2088808b208c40f8801d8888004ac02ac0aac0e8409de048401a602ae06ac04a4080000d98800018800eb0fd80080022a01ea07be04aa04aa04be070800dc8808010801ce0fb8000000e80fa802a802fe0fa802aa0aea07dd889002be02980a980ebe098004a804a801be02a806a8048808e18808018800ec0fd80000007c0954095409fc0f54097c090000e48800018a00ea0fd800000cfc034400b602940f940294020000f38800029c048502b60eb409f604b401b402b60685049c080000f88808018a00ea0fd0008004fc04d402d40ffc0fd401fc028004f988800244027c017c07fc04fe047c017c027c027c05c4040000fd880802be029c0abe069c05fc0480019c02c006c005be09000402890000c400f50f6c0000049404df0794040000ff0720004000078980004800ee07780000053e05fe05bc02bc02bc05bc040404108908018900ca0fb8000001be07aa04aa05aa06aa08be070000128920021402f402040e64097c093e097c023c067c0524090004258900018800cc0ff800000efc0174045c013c09dc0f1c0100002a8900008801ec0fd8002008ec070008fc0b540854097c0a0008328900019400d407b0000004f803e803ec03f807e803e803080244894005c405fc03ec0ffc09c609fc03ec05ec05fc09440900005f8900008800ee0fdc0100094c055e01500f4c015e0554091000728900050c057c037e0f7c0b7c0900097e03fc05fc0be00b40097f890400f40f9404d4043c04140414047c0494049404f40f0400818900008208ba08aa0bfe06aa04aa04be06aa05aa04ba088000868944015c01bc0f5c00dc08ec0bfc07fc07fc07fc0b3c080008878902005e07d607d60fde075607160cfe03b602b60afe0702008b8900080008fc09540554035401540154075409fc09000800048f8948084804fc034801480a0008fc055403540f5409fc090004938900080c08fc0be406e406ec02e402e406e20afa0b02080004968908018800ce0fb80008090008fc055403540f5409fc0900049a89000838080a08ec0be806ea02ec02e80eec0b0a0838080004a78900083c08fc0bfc07fc07fc03c003ec07e80be80b28080004aa890000a404ac02e60fac02a008fc0554035401540ffc090004b38900003001ec07b807e807a807fc0d540354015407fc090004ba89000030081e08de0bd007da03da03d80fde0b1e0830080004bd8900083e08ee0bfe07ee07ee03c003f607fc0bfc0b34080004c0890001ba0fab07b807af07aa0e3a04fe03aa03aa04fe020000c18900080008fc09040484037400040704080408fc0800060000c289140c2402c4013c030008fe0402020201fa070208fe080006c48900084806c8017e0148020008fe040202fa070208fe080006c58900080408ec092404a4032c00240724082208ee0806060000c68900018800eb0f98000008fe0402020201fa070208fe080006c88900081c08c00b40085e044003580646085408d40b04080000c98900001808fe093804ba033a00380738083808fe0838060000d2891000100cf803540156015401f40f54015c095009f00f0000e389080cfc03ab00fa07ae007807c2014a01e60742015e010000e6891008f8075601f4095c09e00778008808fe0f8808f80e0000f889200cf803fe09f00f2000ae05de075a05de051a08fe070000008a08000800aa0eaa0aaa0aaa0aaa0aaa0aaa0aaa0e08000800028a0800ba07ba04ba04ba07000004080408fc07040004000000088a0400ae07ae04ae04ae07000010001000ff071000100010000a8a0000580f5e055c05580700004400fc0f44000400fc07000c0e8a0400e607e604e604e6070000d00010091008fe0710000000138a0000ae07ae04ae04ae030008fe070000fe030000fe0f0000178a0400ae07ae04ae04060746006200fe072208210821083006188a0800ba07ba04ba04ba070000e4072408240824087c0800061d8a0000580f5b055805000732002e02a2096208fe0f220000001f8a0400ae07ae04ae04ae0700001e06c105300482040c0710082a8a0400b607b604b604b6070000880f78002e082808e80708002d8a0000ce07ce04ce044a0758084609420542024e05c8080408318a0400b607b604b604b60700005e004500fc0f440044004000338a0000ae07ae04ae04ae07000cfe0322006200a2033e0c0004348a0400ae07ae04ae04ae070004fe0312005200f20f110110013a8a0400ae07ae04ae04ae0700002409920449022202a40188003b8a0000580f5e055c055807000088048a04fa078804880408043c8a0800aa0eaa0aaa0a000e0000e40f0408fc0f440844080008508a1400b607b604b6049607300008000f00fc0f2c012c012c01558a00009c0f9c059c059c070000b4008400fc0f8400b4008400578a0000580f5a050002fc0f0400e4032401e4090408fc0700005e8a0400d607d604d604d6070000e2032201e2090208fe070000608a0000580f5a05580700004002ca090a08f20f840060031004628a0000580f5a055a0540071000ec07aa02e80b0808f8070000668a0800dc07dc04dc0400035808d80758041800fe03160c1804698a040056075605560554070000a402a402be08e407a40020006d8a0000580f5e0508072000f80f1600d4075c08540ad00900046e8a0000d80fda04da048007b204aa04a604e207a40488043004708a0800aa0eaa0aaa0aaa0e0000240724053f05240524070400718a0400b607b604b60486071000920f9204fe049204920f0000728a0000580f5e055c05580700082805b8046e02280288054808738a0400b607b604b604b60700002a012c01f80f2c012a010801798a0000100cf8030e00dc0fcc0bec0bc80bd80be80f68000000878a0800ba07ba04b80424072400de01540954095c0714002000898a000088004a00ec0ff80bea0bec0be80bf80bee0f4a0088008a8a50005800fa0fdc0bd80bde0bd80bfc0bfc0f5a0f580050008c8a0800da07da04da04c80708002803280ebe082800280728008d8a0400ae07ae04ae04a80722071a0e4e080a0822091e030004938a00004c00ec0ffe0bcc0be00bdc0bca0bca0bda0f4a004800958a0400d60fd604d00702083e07c208f80b020afe0b220a000a988a0800ba0fba041a0740004c0cec035c00dc091c092a0740009e8a0400b607b604b60484072000aa07be04aa04aa04ba072200a08a0400b60fb604b6030008f8072800c8097e0688056a0c0000a48a0400d60fd604d60700007c0d40015e0152035203de0d0001aa8a08005a0f5a05580700001808f6069001920fe40808080804ac8a0400b607b604b60480073a084e06c8014800cc077a080006ad8a08003a0f3a053a070800600c34033e003400340f74080004b08a0000580f5a055a0508072000fe0fa804fa07a804a8040000b28a0400d607d604d60400037c04d402d401fc0fd401d402fc04bc8a0000680f6a056a0500070c04e40756055405e4070c040000bf8a0400ae0fae04ae030008fc070c01bc02ac0b0408fc070000c78a0400ae07ae04ae04ae070000d40c0802e6010802d2045208cb8a0000ae07ae04ae0480071400fc0fbc02be02bc0afc071000d28a0800680f6c05680500076806a801aa08ac07a800e8060804d68a0400ae0fae041a03c80f4401d20f5101d20f5401c40f0000e78a0000580f5a055a0500073e00a40f800abf0aa40ab40f1000ed8a0400ae07ae04a2070800e40fb202f10f92010408ec070400ee8a0800aa0faa04aa04a8070a00880fae049c04a404a40f0c00f78a880fd90fda04800bfe074200aa04fa07aa04420cfe03000cf88a040056075605560590069401d4077e0554055805d6071000fe8a680f68056a05680700004402ce0f640940095e09440f0000008b0800aa07aa04aa0408030400be06ac01ec0fbe0184020004028b0000d807da04da0480073e00ea0fea00fe026a0afe0700000a8b0000580f5a0540071400340f5600540f50005607540800000e8b000058075a0500069200f4070005a808fe0b2008ac0b0008198b0000580f5e05400718045a03fa0f5801f80f5e03f80540081b8b0400ae07ae0486041007fc0fbe02bc02fc03be0afc0710021d8b0800ea0fea042a078000fc025609fc0740009008fe071000208b0000580f5a0558070800340d64096e09d60f4c09440d00012c8b0000d807db0418074000d60ae20abe055e054a025e020000398b0000580f5a055a05000ef408de0adc0afc0fde0af40a0008498b0000b80fbb0488072000d205ba05b604b607da0520040000588b0800da0fda04da070000ec07e602a80f7e02a0072e0800065c8b0000480f5a055a0540070800a507be06bc06a606a8070000668b9000be00be0ffa0fea0fda0fc00fee0fd40f9c0fa400a4006c8b00005e00fa07fa07fa07fe07dc07dc07fe07dc075c0040006f8b0000580f5a05580700005e035e037a075e035a035e030000708b0400fd077d028d0360005a05db035e08da046b076a0c0000728b0800da0fda04da070000ec05ec07e604e401f402f405a405778b0400ae0fae04a4072400f409ee07ec05fc05ee0bec0984007d8b0000a000fc06ee07e207f707ee07e407ee077e06a000a000808b00005e0f5c0500073600f60ff60ef706f606f60ef60f00008a8b0000bc0a520a600b4c05be05e00548071e09580914095000938b0000b80fba04b8070000bc03fc0fbe09f403bc05bc0a000a9a8b0000580f5a0548070c00dc07fe07fc03de03de07c80b0000a18b20002208e40f0804200220002000fe0f2000200020000000a28b000020002608e8070002040204080408fc07040004000000a48b000020002208ec07080200080007fe000003000400080000a58b000020002408e40f08020008fc0704000400fc0700080006a88b20002408e40f040410025000900410091008fe0710001000a98b20002208e4070804000200080008fe0f2008200820080000ad8b20002208e40f08020008fc0700000000fc0700000000fc0fae8b20002408ec0f00040402780882050c028005780804080008af8b20002408e407080240024400fc0f44000400fc0700080006b08b20002208e40f08040000c4074408440844084408fc080006b28b20002208e407000288088804fe0388008800fe0f88008000b38b20002400e80f00048802a800a800fe0fa800a80488030000b68b10001206f4010405800c3a022201a2086208fe0722002200b88b20002200ec0f0004b0008e008800f80f8800880088000000b98b20002208e40708026000f80f06008000fe07200818080806ba8b20002208e40f080220009007080986088808900820062000bc8b20002208e40708046000180e860560040605180760080000bd8b00002408e4070802000cfc032406c4012402fc0700080004be8b20002208e4070802200aa0085e05420242067e05e0082008bf8b20002204ec07040200080806f8014a084a084808c8070800c08b20002204e4070802400948044803fe00c803780440080000c18b20002208ec0708020008e40f04080408fc0f440844080408c48b00002208ec0704048002ba008200fe0f8200b2008a000000c58b20002408e80f08040000fc0f240924092409fc0f00080000c68b20002204ec07080200087c0644014400440044017c0e0008c88b20002208ec070802600210000e00f80f2801280128012801c98b20002208e40f08040000fc0f24002401e40f220222020000ca8b20002208e40708040002500848090605c804500210010000cd8b20002208e40700060200ea032a012a01ea090208fe070000cf8b20002204ec0704022000a20f9a048604a204a2049e070000d18b20002408e80700022402a402ac02940fb402ac0224020000d58b00002208e207020408004804c8070802fe0008070a0c0802d78b20002408e8070802a000a802a802bc08a808e807a800a000da8b0000220cec03000ef80328002802c8097e048807ea080806dd8b00002408e80708022000a40fa408fc08a408a408a20f2000de8b00002208ec070000b20d2e03c204f009020afe0b220a020ae18b00002200ec0f0000f80f1600d40754085c0ad00910080004e28b20002408ec0700041000c803ae02a80ae80b0808f8070000e58b20002208ec0f00042401b408ac0467042406140584080000e68b20002208e407000208004a014a01f80f48014e0108010000e78b20002408e8070002180008012801ee07a808880898040000eb8b00002208e40f0000880ee801e80b0804fe040807ea080004ec8b00002400e80f0004840274088408fc0f8409740884090000ed8b00002200e40704022000aa07be04aa04aa04ba04a2070000ef8b20002400e80f080400015c095405d403540554055c090009f18b20002404e40700022808ac049c03bc009c092a094a074000f28b10001104f60700024400f3034b02da024a0a4a06fa034202f48b20002208e407040200097804ce034800cc0f7a0800080006f58b20002204e4070000f20f52015a01fa0f56015609f2070000f78b10001208f40704021400fc0fbc02be02bc0abc0af40f0000f88b20002204e407040290025400d4077e0554055805d4071200fa8b00002204e40304022000e407be04ac04a404ae04a4072400fb8b20002208e40704045001140954051e03d401140570051009fd8b20002208ec07080220012801fe0f0000fe0f280128010000fe8b20002408e80708028006fc04d403fc0fd40fd401fc028004018c20002204ec0704023000fc0faa04a804fa07a804a8040004038c20002208e407000efe010200aa03ba02aa0b0208fe070000058c00002208ec0f04020008f4069400960f94009401f4030404068c20002204e40704020002bc02ac0aae0fac03ac02bc020402088c20002408ec0f0800200aac0920049e031006200bac0800000a8c20002204e40700020c00f407540556055405f4071c0400000b8c10001204f40700010404be02ac01ec07ac01be02840400040d8c00002408e807000208087c054803fe0f68037c05480900000e8c00002208e40f0002140874075600540f5400560f54041400108c20002408e80f08044000bc0fa80a880abe0aa40aa40f1400128c00002208ec0704040000fe06ea04aa05aa08aa08be070000138c00004400d80f00047c00d40fd403fc03d40bd40bfc0f0000158c00002200ec0f0000e80fb402f40f1600d40b0408e80700001a8c00001104f603000df20312005e0553055a059602920200011c8c00002200ec0f00042c00e0070405a008fe0ba0082c090008228c00001104f6070000fe04aa02ab09fe074800880cff070800238c00002200ec0700039407b404a404ea07a204aa04aa0e0000248c20002208ec07000254085c06dc0156095409540954070000268c00002208ec0f000258085a05fc0f5801fc0f5a03f8054008288c00001208f40f0002f40ad40ade0afc0fdc0ade0af40a04082c8c20002208ec0f00042401920c5e0d400a8a08a206be0200002d8c20002408e80700023c02ec03fc03ec07fc03ec03fc030000318c00002204e40700022800e50f7e0564057c05e60f28002000348c00002200ec0f00042c00d0071c08fc0bfe0afc0afc0b0008378c000010018800c40fa20898089008a208c40f880008010000418c00005e075a037f035e074600ee0f59044804f70f20000000468c00080408f408940a9408940894089408940af40804080000488c00002008ae0ba80ea80aae0aa80aa80ea80aae0b200800004a8c00084008fe0bea0eff0aea0aff0aea0efe0b4008000800004c8c00007405540454072404cc083407c600e6072408ec090004508c00087c08f00bfc0afe0efc0af80afc0afe0efc0b78080000618c00001006f806d4055605d402740b5c0750017002000400006a8c0000440bfc07ec07ec0dee0aec04ec01ec027c04c40800006b8c20002a08ea0f3600c20498056e03ee0abc07ac01380200046c8c4c022c099408f4071400c000d4077e0554055c05d4071000798ca4049402520a7a09800730008e0088080809080cf80300007a8c2404a402520a7a098a0700000803c8082808fe0f080000008c8c48044804a402740a94070000f80ca803ac00a80ff8080004938c000055004905b504c003f20f97049204f0079704f20f00009d8c00000008fc05540554055401540154055405fc05000800009e8c00000008f80ba806a806ae02ac02ac06ac06fc0b04080000a08c08000808f80bac06ae06ac02ac02ac06a806f80b00080000a18c0008fc0d54015401fc0d0000100390085008fe0710001000a28c00001004f405f403f403fc01f401f403f403f40510040000a78c00002408f407f606ed06e402f402f506ee06e40708080000a88c00000808e80bec0ae20ae002ee02f406f406f20b08080008a98c0004fe02aa02aa007e01000cfe03320cd2021203f2041208aa8c10000808c807d407d207da03da03dc07f807d80708080800ab8c00080808f80bfe06fa06fa02fe02fa06fa06fe0b08080800ac8c00041404fc03fc03fc03fe01fc01fc03fc03fc0314040000af8c0008fc0d54015401fc05080024082408e60f24002c002000b48c20082008fc07f407f407fe03f403f407f407fc0720080000b78c00041c04f405f403fc03f401f401fc03f403f4051c040000b88c00000808e40bea06e506e402e602ec06f606f60704080008bb8c00085408dc0bfc07de07dc03dc03de07dc07fc0b1c080008bc8c0008fc0d54015401fc050000800f8004ff049804980f1800bf8c00041004fc05f403ec03f001f401ec03e403d4050c040000c08c00001408cc0be60af40aec02e002fe0af20af20b1e080008c38c10000800dc03c40be00bea03ea03fe0bea0be9032a000000c48c0008fc0d54055401fc054000f80fac02a802a80ae8070000c78c10081208f40bf406e406f402f602ec06f406f40b14080000ca8c0008fc0d54015405fc014800e80948047e0288056c080806d38c20002c08ec07fc06ec02fe02ec02fc02fc06fc070c080008db8c00001c08cc05ee05ec05ec01e001fc05ee05fc051c082000dc8c0008fc0d54015405fc050001be02ea09aa04aa03be088007de8c00001c08c60ff60df40df605f405f40df60dc50f1c080000e08c0008fc0554055401fc052000b407a404a604a404b4072400e28c00083e08fa07fe07fa07fa03e003e207da079a0726082000e38c00043a08ee07ee07fe07ef03ee03fe07ee07ee073e080200e48c0008fc0554055401fc03a808ec041807da06bc09b8091004e68c0008fc0d5401fc050008d40f1408d0079004fe03100c1406ea8c20001c08cc0bec06fa06f802ee02ea06ea06da0b0a080800ed8c0004fc0754015403fc050001a407fe05a405bc05a6072000f48c000478025801fc0f58013800c00bec0ae402f406ec070008fa8c0000fc0d5401fc0208086c05f80f6801f80f6e03e8054008fc8c0008fc0d54015403fc06c00fec02fe02ec0bfe0aec072002fd8c0000ac087c04fc07fc03fe03fc03fc03fc07b404a4040000088d0008fc055401fc050000fc0fe70ae40afc0ae40ae70f7c000a8d00002808fe0f5e0d5c055c057c055e055e05ec0f1c0808080f8d000c8203b60a3a07ba09bb03ba053a00ba07ba0f0a0400001d8d00000008fc09040404040402f40104040404fc09000800001e8d00080008f00b100810041e02d40114041404f405040800001f8d20081008f809140816041402d4011c041004f00900080000218d00001408d40b540854065c01540454045408d40b14080000228d0008fe090204fa030200fe0e0000080388086808ff070800238d10001408dc0b5c085c045c035e005c045c04dc0514080000248d00001e08c00540045e02400166045a045a08d60b12002000258d0008fe080206fa01fe0c000070088e048803780408080000268d00047f07f9000102ff020008ff072004e800260321040000278d00000808c40b5e08410644014f0454045408d20b0a080000288d0000f0070c00ec092c042c02bc012a042a04ea0508080000298d00007c0ff4000402fc00000efc01340cd4021403f20404082a8d08000808d40b540852045a03520074045404d405040808002b8d08002808ec0b6a085a04480368006a045c04c405080808002c8d0008fe0df2030202fe00000c240222062a09e208210800082d8d0008fc0de4030400fc0e1000cc010a01c8090808f80700002e8d0000fc090404f4030400fc0e100008040e040804080438042f8d00000808fc0b6a086a067e016a046a046a08fe0b08080000308d00002808b809b804b802b808b80b0808fe0108060e080804318d0008fc080406f401fc0200085004fe045007540950090004348d0008fc0df4030400fc060000800ffe0488048804880f0000358d00002008fc0b7408740474037e0074047404fc0520080000378d10000808dc0b4208480448034e0058046a08e20b14000000388d00000008dc0b52085b04400352004e046204e2051e080000398d00084008de0b76085f04560356005f045604d605160800003a8d00001408d40b4e0864065c0140045c045408d40b1c0000003c8d0004fc02f4010404fc000006e80108087e048807ea0808063e8d02083a08ea056a047e046a036a007e026a04ea053a0802003f8d0000fc0df4030400fc05c000f80fae02a802a80ae80f0800418d08000408df0540046a036a006a027e026a04e9052a080000428d0008fc06e4010404fc040000c80fd604a404d4044c0f4000438d0000fc0de403fc0c000cf80308084a08ea0f480848080000448d10081208d40540046802660356004c025404d4050c0800004a8d0000fc0de4030400fc0e000050036808e60f6800480710044b8d0000fc0de403fc000008d40f1408d4071000fe03100c16064c8d0000fc0ff4010404fc058000d40f7e0554055805d40f10004e8d0008fe05f2030200fe050000a4095407fe011405340900004f8d00001c08860bb408b404b602b400b404b60485051c080000508d0008fc090404f4030400fc0e0000be00ea0baa06aa09be07548d0008fc07e4010404fc050000a80fa404a604b404a4072000568d0008f4049402fe0f9401f40a0008f807d6031c08f40b0008588d20042e049e055e045e025e0348006c025e049c05240424005a8d0008fc0de403fc0000085a05fc0f5801f80f5e05f80940005b8d0000ac08bc08fc05bc04be02bc00bc04fc05b404240900005e8d20002e089c0b4e087c0440036e005c044e049c052c082800608d00007e040203fa0002027e0098077f057c057f05fc070000618d0000fc0df403fc0c0000f8070e00ec0fcc0bc80bd00f0000628d000ce203be0afe07de0c3f03fe0cde073e01fe0f06040000648d2002a401a4082406e4013e082408e40f2400a40020030002668d80092404e4033e08e407240080093404ca028803780408086b8d80092404e4033e08e407a4008007e4013e08e40724008003708d20082804a80328042804fc0f280928092809280920080000748d1006d4011402fe035404540450040004fe05080410042004758d1006d4011401fe03540454040005cc0430044c0482050004768d200ca4032404fe07a408a40800082408fc0b240824080000778d1008d4071402fe07940894080008e409240a240a3c0a8009818d1006d4011401fe0354045004040552052205a40488040804858d0008d8071804fc0798081008d40b4c0a640a640adc0b00088a8d200ca803fc07a8080008f8098808080a7e09c80a2a0a00088b8d2006a8012802fe03880420041805560554055c05f4050004958d2006a8012802fc03a80500055c04dc04dc05dc04dc040004998d200ca8032802fc07a8080008f40b3008bc08900af40900089f8d0008a4072402ff07a4080408f40b90085e099008f60b0008a38d140014049e03f4031004fe04aa04fe050004e4051c050004a88d100cd4031402fe079408a408ef0b5e094a096e08de0b0000b38d000000083c04a40324042408e40f240924093c0900080000b48d0008de071204f2079e00000efc0100000400fc0000070008be8d0008de071204f2079e000008f80f0008fe0f400840080000c38d0008de07f20792049e040000240c2203fe00220322042008cb8d00089e0f1208f2079e0c00080807ff00480b4a06ca094800cc8d0004de071204f2035e0200084e044803fe00480348044808d18d0004de071204f2079e040000fa07b408f40a040afc090004db8d00049e0f1204f2079e00000cf803c8097f064805d8080808dd8d0004dc071404f4039c020000fc0f140514051405f4050004df8d0008de071204f2079e000008fc0f5408d40154067c050009e18d00049e07f20792040e02e00cf8030e08f8070800e8010000e88d00049e07f207f2078e042000b803a80aac0ab80aa806a800ea8d00001e07f20792043e0cf8071600d40754085c0ad0091004ef8d0008de071204f2079e049000880fd608a408bc08c40f8000f38d0008de07f2079e040000080dfe030000fe07400898080405f58d0004de07f20792041e0280084804ff0448032a05aa098004f78d0004de07f20792041e028008a607bc00b40fcc08cc08a004fa8d00049e07f20392029e0200005e07c200e20f4e01500600040a8e000000041e0ff2079e040000e40fa402f40fac02e40f00000f8e0000de0f1204f2079e040000b80f800afe0a900aac0f2400108e0004de07f20792041e084009e8052f071805a90b4d0b2409228e0004de07f20792049e028000be02ea09aa06aa01be0f0000298e00009e0ff2079e0400049400a40e8401d40f8202ba0482082a8e0004de071204fe078000a806a800ae08a80f880098028004318e0000de0f1204fe07000cfc031408f405d606f40594080000348e00009e0f1204f2070e08f00a6a067a036e0afa0a00060000428e0008de071204f2079e0400001a0d0a03be0f0a031a050809448e0008de07f20792040e02600024079400a60f9400a4070000488e00001e0ff20792040c00b00f4409140942085209ca0f00004b8e0000dc0f1404f4071c0440077c02ec0fac006c0afc0700005f8e0000de0f1604f6079e0c0008fc0b7c0d7e057c0dfc0b1008648e00089e07f2079e048000f60f0004dc030a06e00f8e089008668e9e0f1208fe07800cec07a802e80f0e00e807a802ec0f00006c8e00043e03f203b2027e04ba057a0766056c07b407300448006d8e0000de071204f2079e020000bc07af05bc05af05bc070000728e00089e0f1208f2078e00e4039607bc07bc03d60ff4030002818e00009e07f2079202ee06d002de01fa07ea07d601f00200048d8e0008de07f20792049e048001fe0fa60af00fae0aae0a00008f8e00009e07f2031e00c0079400e607d403f403d603f40f0400ab8e00090009fc09540554055603540b5409fc07400020000000ac8e8004fe04aa02ab09fe070000f2009208920892089e070000af8e8004fe04ab02aa09fe070000fe0f020a9a0962089a0b0208b28e0009fc0956055503fc0f0000b00c8e02c20f82029e042008ba8e8004fe04ab03fe0f0000f7071000d0035e019004f7030000ca8e00000402fc02ac02ac02fe0fac02ac02ac02fc0204020000cc8e0000fc02ac02fe0fac02fc0a0006ff010800f80f00080006cd8e00000602fa02ba02ba02fe07ba02ba02ba02f20206020000d28e0000fc02ac02fe0fac02fc0240004400fc0f440044000000df8e0000fc02ac02fe0fac02fc0810040e03f800080338040808e28e0000fc02cc02fe0fcc02fc0200082407e404240424072008f88e0000fc02ac02fe0ffc020000f80f8804ff078804f80f0000fd8e0000fc02ac02fe0fac02fc0a400826099a0f1a0926094208038f0000fc02ac02fe0ffc020000140854048602940354041008098f1002f403f403ee07ee07f40310067e029003d20414080006148f0000fc02ac02fe0ffc020000e80fa802fe0fa802ea0f0000158f0000fc02fe0fae0ffc0210086a0902097a0f02097a0942081b8f0000f402fe0fd4027400e00f14009401fc0f9401f40f00001d8f0c0ce0033e00e80720020a02fa02ba02fa0fba02fa020002298f10005c04dc07fc07cc07e00fc007dc07dc07dc071c0400002a8f0000fc02ac02de0ffc021c00c40fe207e10fc60f080010002f8ffc02ac02ae0ffc02fc0200062e04ea076a056a05ee0f2004388f0000fc02ac02fe0ffc021800c40fb302f20f8401e80f00003b8f0000fc02ac02fe0fac027c00140fac0aac0fac0abc0f0000498f0000fc02ac02fe0fac02fc029c06bc0afe0abc0ffc0300005f8fe207e207fe0ffe07fe077e00be07fe07fe0ffe07e2070004668f00000802680258024e024a02e80f48024802480208020000678f000044027c024602f40f44010000fe070008000800070000688f440274024e02e40f440100080807fe000800f80700080006698f040274024e02e40f4401000144004400fc0f4400440000006c8f00007c024602f40f44010000a400f402ae04a40ba40020006e8f440074024e02e40f44011000c807860885088808300600006f8f040274024e02e50f4401240930040e03e800080338040808708f0008a408b406bc02b60136093408b405b406b406a4052008748f00007c024601f40f4000f80f8804ff078f048804f80f00007b8f00007c024602f40f440100092408a408940fac08a40820087d8f10005405d4055e05540f54031008fe0410039605500800067f8f00007c024602f40f0400d00c34031c001400320f52008000838f000074024e02e40f44010009680488040e03a80528084008858f00003a012701f20722010000f40f5401ff075401f5070000868f7c024402f60f0400f00f1401fc001c03fc081409f4070000888f50045c05dc055c055e054005400f5e055c055c055c041004898f000cf4031e00f007140142014e017a01ea074a014a010000908f3c024402f60f4400000fbc0aac0aac0fac0aac0abc0f0400918f000078024c02e80f48010004fc07740574057405fc0f2004938f00007c024602f40f2000f80fb402f20f94011808f0070000958f440074024e02e40f40021002f40eb409be09b40274051009968f00007c014601f40740011400b407b405f605b40594078000998f000074024e02e40f1400ee07b40ae40f74048a03780400089b8f200024012c013c012401e70f2401340124012401200000009c8f000042055e055605d6055605770f5605d6055e05020500009e8f0400920f9204fe049207100044017401c60f7401440140009f8f0004fc03a40fa404bc07000058014801ce0f680148014000a38f000044095409c70774010408f0049402fe0f9402f4040008a68f1008cc07e80140081007fe00e00f08005a01c60f68010000a88f44005509c607740100087006fe0100005401c70f74014000a98f44005509c607740140000e08e40700005401c70f74014000ab8f08005a09ec0740011c04f204880400045501c70f74010000ad8f0400cc0f52017a07d600d60f00005401c70f740144010000af8f08005a09ec074801480f6b0568070c005d01ef0f4c010000b08f0000000cfc034400d40f54085404d4015402540554094008b18f000080027e022206ea06aa022a0a6a0aaa06ea0262030002b28f000cfc036c09ec09fe07ec09ec05fe07ec05ec05fc0b4009b98f00082204ec0308040008080bc8083e08080a080af8090004ba8f42084604c80700040408c40b3c08040a040a040afc090008bb8f48085204d6030404100810081008ff0b1008100810080008bc8f42084204cc070008000a820962083e08c0080009000a0000bd8f00082404e80300040408040a040af40b14080c0804080000be8f20082204ec0300040808080bc8083e0848088808080b0008c18f20082604e8030004240824082408fc0b2208220822080004c28f00082404e80308042008240a240afc092408240824080000c48f20082404e803000430040809ac0a680a280a280a08090000c58f24082404e807000424082408f40b24080408fc09000a8009c78f20082204ec03000408082808c808080a080afe0908080808c88f24082404e8070008040bc4083c081408140a140af4090404ce8f0008460cc8030004fc0904090008fc0b04080409fc080000d08f20082404e8070008100ad4093409140954099409140a0008d18f42084204c4070008000bfe0812081208f20b120812080000d48f00084204cc070008000bfe08320ad20a1209d20a320a020ad88f00082204ec030804800844082408fc0b04082408c4088008d98f00082404e8070008280a2809ca084c08b8080809080a0000db8f20082204ec0300044808480bfe0848084808fe0b48084808dc8f20082404e8070008100a1409f4081408f40b140a90090000dd8f00042204ec030004540454045404fe0554045404c4050000de8f00082204ec07000414092c092609f40b2409240904090000df8f20082404e80300040009fc0824086408e40824093c0a0008e68f00084e04c0070405fc040608fc0b0008fc0b040afc0b0008ea8f00082404e8070008f80b480a480afe0b480a480af80b0000eb8f44084404c80700040008f80b480a4e0a480a480af80b0008f08f42084204cc070004880968080808fe0b08086a088a090008f48f9008d404b4030004fc09040af40a940af40a040afc0b0000f78f42084604c8070008240ba8086008fe0b6008a808240b000af98f00082404e80308046008080bfa080c0af80b0808e8080000fd8f42084204c4030004fc09540a560a550a540a5c0ac00b0008009040084204cc070408000afe0b2a0a6a08aa095e0a400a0000019042084204cc07000448084e0a4809f8084a094a0a480a0008029020082604e80700041408d40b540a7c0a520a520ad20b1008039000084408c80700049c08400afe090008fe09400a9c0a800a069000084e0cc0030804ea088e0a880af80988088e08ea080808099000082408e8070008200aac0968083e08e80b280a280a20090a9000082204ec0700042208fa0b4608300afe0b00083808c0000d9000009208f40694050008f60b10085e091009940af20b00080f9000082408e80700042c082c0bdc085c089c0aaa0aaa092008109000082204ec0300041205aa08ae0a520ae20952088a080004129020042204ec03000474055705d404fc0556045505dc040004149000084e04c007100448095408540af209540848095009100817900008240cc80310040408740ad40a540ad40bf40a040a00081990000054047c02d8030004f80578057c057805f805080400041a9020082204e4030004fa09ae08ae08fa0bae08ae0afa0900001b9000082404e80740082e0bf408000a240afc0b240a240a00001d9000082608e8070008480afe090808fc0b1208f20b120800001e900000d208bc0698050008bc0ab40af40bb40abc0a000a00001f9042084204cc070008740a5409d408fe0bd4085409740a040a209000082408e80700042008ac0ba80abc0aa80aa80b20080000229000082604e0070408940a920aaf0aea0bae0aaa0a080a1008239002082604e40300047c095c095c09fe0b5c095c097c0904092e9000084e08c0071008940a540a5408fe0b54097c0a100a000831900008420ccc030004fe090208ea097a09ea09020afe090008329000084608c80700041008fe0ba80afc0baa0aa80a080a0008389042084404c4071008780a5609d6087408dc0b500a700a00013b9020082404e80300049c08540a7c0a54095c09d4081c0800003c9024082804e807800b7c056c0dec0f6c0d6c0dfc0f000800003e900008220ce2030804e805fc08fc0b0b08ea08040ce80f0800429000084604c803000428096e09d808a80ac809ae08a8080809459040084404d8030005fc081408d409d409d40bf409dc090008479000082404ec070008fe0b6a08fe097e096a0b7e0cc00f00004a900008460cc0030405fc08170ae4090c08460af40b540844084b900008220ce40300047a097a097a09fa0b7a097a097a0900014d9000082204ec030005fc08d40bb408f60bb408f40bbc08e00b4e9000084208cc070008e00b3e08e2097a09ea093e08e00b00004f9000042202ec038002dc053c05bc05bc053c053c07fc070002539020082404e80700040808fa0bbe0ab80abe0afa0b08080000549000084604c8030004d409f409d409de0bd409f409d4091008559000084408c8070008fc0adc0bdc0ade0adc0bfc0a880a0008579000082204ec030004ee086a0a6a097f086a0aea0a2e08200459909008f60690050008b80ea40ebc0ef60fac0eac0ea40e80085c900000d10cb60210054204fa09060a5c08f60b4208c10a00005e909008f304140380047e08020bf2083e0a7e087509750a3001609002084208c20708047c095c09dc08de0b5c09fc09880a000863900208420cc4031004fc09fc0afc0afe0afc0afc0a900b000865900008240ce80300044c097c0a640aec0b640a620a6a0b400068908008d60830070406f4097e0d540d440b10088e0b780a080a69900008460cc8030004f4093408fc097609fc09340af40900086d9000081104f6030004fe09be0abf0abe0abf0afe0b1e0800046e9000042602e80380027c04140574045606540574041405000072909008d404b4070006fc090c08b40a8c0adc0b8c0abc0a000a759000082608e80700047c096e0b6c096c097c0dfe0f7c09040177908008d404b4030005fc08ec0bfc0cec0efc0fec0c7c090009789001082604e4038004ae0aee0aae08a008ee0aae0aae0a08087a9004084404c4031004fc0dfc0bfc09fe09fc0bfc0b100800087f900000440cc8030005fc0b540adc0b0808b808ec0bb408a808809002082c0ce0074c06fc097e095c0b10080e0be808180b000881909008d604b0070008840bf409fe09f409f409fe08f40b0008849002084408c40710047e097a09fe08fa0b7e09fa099e0a10088a909008d604b007c008fc0dfc0b7e0b7c0ffc0ffc0bc00800088f900000a40ce8030004fc0f540b9c0bd40bdc0bd40bdc0b000a919000000000dc0754095409d409540954095409dc09000400009390000014042402c40134010c020000fc0f040074028c010000959000000400fa07d00ad40ada0bd00ad40ada0afa0b000800009790400044004400fc0f440044000000fc0f040074028c010000a19008080807f8002e082808e8070000fc0f040074028c010000a2900008440efc0144004400fc0744000000fc0f040074028c01a3902400240dfc0324092409fc070000fc0f0400f4020c010000a6908000a40ca403ff00a400a4000000fe0f02007a0286010000aa90000004063401a408fc0f24000000fc0f040074028c010000ae900000f8074802fe034802f8070000fc0f040074028c010000af900800fe0f480448044804fe0f0000fc0f04007c0284010000b1900004fc0724042402e40324020000fc0f040074028c010000b390840444042404fc072402c4020000fc0f040074028c010000b5902000a20f9e048204a2049e070000fe0f060076028c010000b8900002fe09220922097e08a20b0000fe0f02007a0286010000b990080018049404930492049e04e00ffe0302003a01c6000000bb90100050014803560ec80950000000fc0f040074028c010000c1900000c800f80fac02a80ae8070000fc0f0400f4040c030000ca9048042804a8020c01a80128020000fc07040074028c010000ce900004fc07940296029402fc040000fc0f040074028c010000d19040084a044a03f80048014e060000fc0f04007c0284010000d39000009602f2029a02d20f92020600fc0f02007a0286010000dd902000a4082406fe01e40fa4000000fe0f02007a0286010000e1900a022a01fe0faa04aa04be070000fe0f02007a0286010000e8902000a80fa404a604a404a80f0000fc0f040074028c010000eb9000007c01d4017e0154077c010000fc0f040074028c010000ed900402f402d40ad60fd402f4020000fc0f040074028c010000ef900000a408a4041002ce031002a40dfe0f02003a02c6010000f49080014800ff0f2801c000ff0f28000000fe0f02007a028601f5904c09fc094c09fc074a05fa050000fe0f02003a02c6010000f7909808dc06a3010004fe0752027e030000fe0f0200fe030000f8900002f002b602f00fbe02f0020000fc0f040074028c010000fd9000009400d40f7e0554055c05d4070000fc0f04007c02840102918000bc00b40bbc0aa80ab406bc000000fc0f64049c03000009911009dc0432038000fc079604fc060000fe0f0200fe03000019911000d707d504fd05d5055704d0070000fe0f02003a01c600279128001a08da0a5609400dbe094000fe0f02007a02860100002d91000af40b1607bc033c0b560be403fc0f040074028c010000309100002809ec068803be018802dc0f8000fc0f0402fc0100004c910000fa0f7e043e054a04fa0f3000ce0808090808f80700004d910000fa0f3e053a054e05fa0f0000e207220822087e080006529100001904a3030000f90f49053f0509053f054905f907000057910000fa0f3e057e05f20ff8038c0570048e04f80f000000005d910000fa0f7e053e054a05fa0f00002407e4042404a407200863910000fa0f3e057e05fa0f0000fe0f88048804fe0f0800000065910000fa0f7e053e054a05fa0f0000a401fc0fa200220300006a910000fa0f3e057e05fa0f9800c40fae08bc08c40f400000006c910000fa0f7e053e05fa0ff000fe072000fe072000ff0f000071914000c20fd40ed00ede0dc00ce80ce60dd60ed40ecc0f440075910000fa0f7e051e05fa0f00002a012f09ba0f6c012a01000077910000fa0f3e057e05f80f3c03aa04a804be04a8070000000078910000fa0f3e057e05fa0f00012c059a05b802ac05280800007f910000fa0f7e053e05fa0f0000fc0f5404d60054037c04000487910000f60f3e057e05f60f0000bc0aac0aae0fac02bc02040289910000fa0f7e053e05fa0f000024011401c60f3401640100018b910000fa0f7e041e05fa0f0000e4077f0564057f05e407000092910000fa0f7e053e054a05f00f9e08aa0aaa0faa0abe0a00009c910200fa0f7e043e05f20f78085407fe00d407fc0b00040000ab9100005e00fa07fe05ee06fe06bc06f607d207f60754000000ac919000bc0f980bbe09800db80dbc0d9c0fdc0ff40b940f9000b4910200fa0f7e043e054a04b60f6a08ff0dea0aff0aeb0efe0bc7914004540254024401cc00e40fc400620172024a0240040000c891000096015200fe0755000006ff012100e10021033f0c0004ca9100002a03a200fe0fa300aa00a002ae02920faa02a6022202cb910400ac01fc0fa200a8003e02fa02be02ba07be02fa022e02cc9100000004be04aa04aa04aa04fe07aa04aa04be0400040000cd9100001004f405f405f405fc07f405f405f205f20510040000ce9100007c095409fc0754057c0100082408f40f2c00e4000000cf9100002004fc07fc07fc07fc07fc07fc07fc07fc0720042000d1911000b0089009980b9608f10f92089408980a900830080000dd915008580b5408f2075404440500002000fe0f200020000000e3915008580b5408f207540444051000ce080809080cf8030000e7914008580b5408f2075406000cfe030000fc070000fe0f0000159250085809f6075404540100084408fc0f4408c40f7c0840001e925008580b5408f207540458050601250924090405fc03000034925008580b5408f207540510044800d70f52004c04d0071000449250095c08f2075404440110044e044803fe00480348044808719250085c09f2075404000df80308000807ee04080488070008749240085e09400b60095e09d00f5609640d340954094408000080925008580b5408f20754070000fe0f4a08ca014a067e090008839250085c09f2075204040d640434032c002600b40f34084406859250085c09f20752048404fe0f0200ea032a01c208fe070000989258045405f2075204440510021801940fe6049c04840f0000ad9250085c05f207540454010008a804fe05a806aa09aa080006b39250085c05f60740051000fc0492069001920ff40818081004b792400850095c04f2074406080df60710005e011009f6070000d292000050085c05f207540500004805af05920fae05a2054004ea92500b5804f607480458050800e80fa802fe0fa802ea0f0000ed92500958055404f207540400017a0ccc034800cc0f7a080006fc920000500b5c08f2075407fc0b0c04a403e4030c0bfc070000049350085809f607540444050004d8025608d40f74004c054005229350085805f60754045401000828099e0518075a072a0ba808269328042e05f9032a062a078007be00eb0faa00aa04be0300002b93500858095404f20744070004be04ea03aa06aa09be0700002f9358085409f207540404052400fe07640564057e05e4070000329350085809f60754040005a2042a00ea0faa012a02be02a0043693480b5c08f207540444011400540fd4087e08d403540540094a9358085409f20754040405f404b4029401fe0fb401f40204044b9350095808f60754050400e00f3e00b203aa023e09e0070000759348085c09f207c407300c2e03e004aa06ff0baa0abe0a08087e9368086c096a04f9076a07020cfe08ae0afe0fae0afd0a00088c934804ce04f9074a05ec05ad02fe0fac00fc0faf02fc0400009693500858085409f20754040009f40bb00abe02b002f60b0008ae934008500b5c08f207d4050000fc0bec0aee02ec0afc0b000ae193500858085609f10752040a0dea086e076b016e0fea090804189450085c05f20754050000f20b7a0b730bf30f720b7e0bf20b359430085a0afc071c077400b407be07540cfe051007d6080006519450085c09f20704077e00aa0fee09ba0f00094e0f4809480f709408085c09f20744050800e80fc4079202f40f8402680f00007d9450085c05f207540d00081808de05dc03dc0bde0bac0b2800889498008608f50f94048404200020002000fe0f2000200020008994000098008608f50f94049404000004080408fc07040004009394000098008608f40f9404a0021c004a0088090808f8070000999498008600f50f940494040000f2008200fe089208920702009d9498008608f50f94040004e80108010801fe0708090809e80d9e9498008608f50f9404840c800838080004fe038001080030009f9498008608f50f94040404f00190009000fe0f90009000f001a094b8008608e50fa4040400f00f100290017e009009f00f0000a29498008600f50f94040000fe0f02023201fa010208fe070000a594b8008608e50fa404a400000cfc03240124092409fc0f0000a694000098008608f40f9404840c30080e06e801080338040808a79498008408f6079404840210004e0248094809080cf8030000a99498008600f50f940404041001ee010809c80b0808f8070000ae9498008608f40f9404840c0008420efe094208420efe090008b19498008608f50794040002c8084804fe0448072a09aa090004b3948000ac08ea07a80480021000fc0f900490049004fc0f1000bb9498008604f507940494020400800f8004fe049004900f0000be9498008608f50f94040004fe0192009200fe0f92009200fe01c19498008608f50f94041404c000ce0cc802fe01480248044008c39498008608f50f94048404100048015602440dc80010000000c59498008608f507940494020000be0f82048204fe04c00f0000c69418008608f50f0004fc01020dfa020000fc0f0400fc030000d09490008c00fa0f98048005a800a803fc0aa80ab80aa806a400db9498008608f50f9404140440015e0540057e054005de0f0000dc94a000b808e60fa4042000fc0f0400d40754028409fc070000dd9498008604f50794040000be0fa204a204a204a204be070000e19410008c08f6078408fc07f401fc0c0000f8090008fe070000e39498008604f50f9404940200084e04c8037e00c80f48084004ed9498008604f507940400029800840fe604a4049c04840f0000ee9498008608f6079404000258085609f40f5c015401f0014000f29498008608f50f9400000ce4032c0025002600340024000000f69490008c00fa0f98040000fe0f5208d208520352057e090009f89408009408f60f940400005406d4017e035409540f44010000fa945c004304f20752020000f40f54015401ff0754015505f503fe9430008e08e507e0040400c00738044c09e80b4809480900000095b8008608e50fa4040400e00fac02a002bc02a00aee0f00000195000098008608f50f94040000f6091004de031004f6090008049518008400f60f0004fc079404fc030006fe011008f0070000059590008c00fc0f98040800c00f5c005403f4005409dc0f000008958800a608e507a40404029008b407b400bc00b20932074000099598008608f50f9404840c60081c096009fe0f40093c0940080b9598008608f50f9404000068056e05d40f5c052405200400000c9590008e08fd079c041c04400158015801cc0f7801580140011095b0008e08e50fa404000070045407d800d00f5c0872080006199598008608f50f940480042800fe07680568057e05e80720001a954c004304fa074a020000f40f9e049404f4079e049404f007219598008608f50794040000be04ea02aa05aa03aa08be070000239590008c08f80f9804000c9e087e0852065e02d2015e000000249588009604f50794041000f4095409fc0f5409f20950010000259598008608f50f940484043000fe0f2805fa0728052805000026955c004308f20752020000be07aa00aa00eb0faa00be048003289518008408f60f0004fc031400f20f0000140eea01080638082d9598008e08fd0f9c04000ea80328042808ee0f2809280900002e9518009408f607840020083e07e0086a0aff0b6a0a7e0a08082f9598008608f60f94040006fe012a062a05fa052a052e0700003095000090009c08f80f98041800500f540f7c0f140f14081000399500008e00f50f00049401fe0f1200b80c0003fe000003380c3a9500008000f608f50ff404000cfa08ba0afe0fba0af90a00083b9510009c00fa0f9800fc0f52020008de054202de0500080000409598008608f50f9404000efc011408f405d606f40594080000479598008608f50f94048000040afc07bc06be02bc0afc0b04024a9590008c08fa0f90040400bc06bc063c01bc09bc06bc06a40950950c004200fb074a02c00f5e005607570556075e00c20f0000519598008608f6079404840210085406d60154095409540700005695b0008c08ea07a800000cf401fc09d40ffc01d405f40500005c9580009608f50f94040004ea016a0d6a036b016a0fea090804639598008608f50f94040400f407ac02a60eac02f407440c000070951800c408f607c40afc075c04fe0f7401f40f7c03f005000476950800a608f50734040005fc03ec0ffe09f403ec05fc0a000a7795000040044004fe0756045604d604560156035605400540047f95000040004000fe0f40085008d0044801440244044008000880950000fe0f2a002a003e0000003e002a002a042a04fe03000083950000fe0f2a002a063e0180003e012a022a0a2a08fe07000089950000fe0f2a00aa04be028009be07aa00aa082a08fe0700008b950000fe0f2a006a05fe0340017e01ea076a012a04fe03000092950000fc0f54005408bc078003fc0bd40f54005408fc07000093950000fe0f2a00ea0f7e0540057e05ea072a002a08fe070000a2950000ff0f1500d506df02c001df01d502d5041504ff030000a3950000fe0f2a006a0efe0b400bfe0b6a0f2a022a08fe070000a5950000fe0f2a00aa0f3e008008be05ea06aa082a0cfe070000a995fc0f1c00dc055c054c05e0074c055c05dc051c08fc070000b1950000ff0f1500f5055f0340015f07f50455061504ff030000c6950000fc0f1c001c07dc05a007bc027c051c071c08fc070000ca950000ff0f1500b5061f00a007ff05b505b507150cff070000d6950000fc0f1c04fc01fc05e003fc07fc053c031c08fc070000d8950000fe0f2a00ea0dfe0e80073e01aa08aa072a08fe070000dc950000fe0f2a00ea0dbe0d0003fe0c2a05aa0d2a08fe070000e1950000fc0f1c00fc07fc07e00f8c077c077c0c1c08fc070000e8950000f90f02000400000002000200020002080208fe070000ea950000f80f02000403800072004a008200020b0208fe070000ed950000e20f0c0028022001a4046404f40724000408fc070000ee950000f20f04000400f40314011401f40104080408fc070000ef950000f80f02004a016a014a014a057a04c2030208fe0f0000f0950000f20f0400140250025402f4035402540a0408fc070000f2950000f80f020024022001a200fa07a20022090208fe070000f4950000f40f0400e003a402a402a402e40304080408fc070000f5950000f80f0200540450029a01d2013202120a0208fe070000f7950000f00f86004400f00102023a020201e2080208fe070000f8950000f20f0400f00154015401f40f54015401f4010408fc07f995e20f0e00e80360006c00fc0764006402e4090408fc070000fa950000f00f04004404500554057407540554090408fc070000fb950000e40f0402f003b402b402b402f40714020408fc070000fd95e20f0c00e80490029402f40394029402f4060400fc0f000000960000f20f0600f0070a0042047a02a203aa040200fe0f000001960000f20f0600a006740554057405940684000408fc07000005960000f20f0400e004b403a400a407bc04ec040400fc0f000006960000f00f0400f007b404b400b402740304090408fc0700000e960000fa0f0200e207aa02aa020a02aa02ea0b0208fe0700001096f2070400e001f801e001e403f401e401e4010404fc03000014960000f00f0600d006140044075405f40554070408fc0f00001c9600000002fc02b402b402b60fb402b402b402fc02000200021f960000fe0f02003a01c608000480037e0080010002000c00002a960000fe0f0200fe0c0002fc096404a4052402a405640800082e960000fe0f02007a0186082004e40324002400e4072408200631960000fe0f1200ee0300088804fe0388008800fe0f8800000032960000fe0f0200ba01460c0003f8004f0848084808c807080033960000fe0f02003a01c6000000fc0f440444044404fc0f000034960000fe0f020072028e090004fc03240124012409fc07000035960000fe0f02003a01c60000027c024602f40f44024402000236960000fe0f02007a018600100cc80307000500e80f080010003b960000fe0f0200fe090008fc0f240924092409fc0f000800003f960000fe0f0200fc010000f4031401f4090408fc070400000040960000fe0f0200fe0100001800e8078b084c0848081806000044960000fe0f3200ce010000fc0f0300d0001008fe071000000045960000fe0f02007a0186002002a4092408e40f2400a40120064696fe0f0200ba014600000748044804fe0748044804480f000048960000fe0f1200ee00000678014e08e80f48004801480600004b960000fe071a00e600f0070204fa050a047e040a05fa0400044c960000fe0f02003a01c6000000f20f92049e049204f20f00004d960000fe0f3a00c60010024802a803b602b40fac02a402400050960000fe0f02003a01c6080004fe075204d20452017e06000855960000fe0f0200fe0100089004e802ff018803a804880800005b960000fe0f0200fe0100087e094809000f7e094809440924085f960000fe0f3200ce000008bc092004fe042402a4012400000061960000fe0f3200ce090004a8032804fe0f280928092809000062960000fe0f1a00e6080808840494039600940784088c06000063960000fe0f1a00e6027802ac02ac02fe0fac02ac02fc02000064960000fe0f3200ce0000049002880aa408e30fa400a802880465960000fe0f3a00c6011000e80f0400e60f34092c09e00f000068960000fe0f02003a01c6000008ee052a04aa032e00e006000869960000fe0f3200ce01000490052804a704a6040806900520046a960000fe0f02007a0186002000ac0fa404a604b404a407200070960000fe0f1200ee010808a40aaa0eaa0ee40ea80a080a00007396fe0f0200fe010004fc04ac02ac01fe0fac01ac02fc04000075960000fe0f3200ce08000a340994059e06f406d405d408100876960000fe0f3200ce001000ac07e803a802280b0808f807000077960000fe0f0200fa010600d00f4805060564047c05c40f000078960000fe0f1200ee014008540934099e0f34095409500900007a960000fe0f3200ce08800958095405f20354035805d80910087d960000fe0f0200fe01000afe05d203d205d203d209fe0780008596fe0f0200fa010600f80fd400d402fc03d401d408fc0f000086960000fe0f3a00c6000008e80aae0a940fac0aa40aa00800008a960000fe0f3200ce048004aa027c0a4809b8074f00a90328028b960000fe0f72008e012000940fdc03d603f403d40bd40740008e960000fe0f0200fe010000de07540540055e056405e40710008f960000fe0f0a00f60b0008e8070008fc0b56095409f40b000890960000fe0f0a00f6000006ac00ab05aa09ae0aaa00f80e000894960000fe0f0a01f4000000bc0fac00ac02ac0eac02bc08840798960000fe0f1a00e608c00faa08aa0f8808aa0faa08a90f400899960000fe0f02003a01c6040004fe02d008de07d000f60200049b960000ff0f1900ef006c06b700ae04a007a700b802ae0222009c960000fe0f02003a01c6001002f402fc02f60ffc02f4021002a0960000fe0f3200ce0904046c01640d6c09640b7209ea01000ca3960000fe0f3200ce000009ee059803bf009803ea0fa8020000a7960000fe0f3200cc084004b6078004aa09f80cc80bce082809a8960000fe0f3200cc08e2071404d40bec08ee097c0dec0f0408aa960000fe0f3a01c6085004b802f4001308f406b804e80c0800b1960000fe0f0201fe00c00df601f207fa0bf20df901f50da008b6961004540554055402540afe07540154025403bc0490040000bb961008100978097c09780778057c0578057807780948080008be9600001406a401e4001c032000fe0fa804fa07a804a8040000c096000050005800c40fe00ade0af00af00fc40ac40ad80a1000c1960006fe014200fa0702002200fa075205fa07520552050000c496080ce8031e08c80708042003fc07aa04a804fc07aa04a804c5962406bc016408fc072400f00fae04a804fe07aa04a8040000c696080808057c055e035c03dc0f7e015d035c055c0544090001c7960000040efc01ac00ec0fec0aec0aec0fec0aec0afc0a0408cc960000f00f0004fe070004fe073002fe0fa804fa07a8040804cf961000b804a604b404ec0f2000f80fae04a804fa07a8040804d1962400b4048e02840fbc0240043000fe074805fc074a054805d596800f7c003407b4023409fc073000fc0faa04f407a8040804d6960000ee04aa04fa03ae02e0063000fe0fa804fa07a804a804d99600000808bf04bc04be05bc068802be02bc05be05bc042404dc962000a4069400c60fb4020000fe0fa804aa04fa07a804a804de9604087c097c05aa03520d3801fc0faa04a804fe07a8040804e296800ff400d403d602c408f4072000fe0f2805fc072a050004e3960000f409d605f403d605f4052000fe0fa804fc07aa04a804e8960400f40f140054011400fc0f14005401540a1408f40f0400ea961800ca0aca0aca0a8a0abe0a8a0aca0aca0aca0f18000000ef9600089808ca08ea09ca069e04ca048a06da09ca0898080008f096000a18099a05ba050a033e011a093a098a07180100020000f29600010c056505650745055f05450565076507050d1c090000f3961c0cc603760876097e07460176097609760946095c070000f696800098009a01ba054a05de05ca055a0dba0b8a0198008000f7961800ca0fca0aca0a8a0abe0f8a0aca0aca0aca0f18000000f99680009800fa07fa0aea0afe0aca0afa0b7a0aca0918040000fb9600001800da07fa02ca02de07da0afa0aca0b180800060000fe960001580b5c0b5c0bcc06dc02dc027c0b4c0b5c07000000000097000058005a0f7a014a0fde015a0f7a014a09580740000000049700001e000e08ae078601de058606d602de0a86071e000000069700084c09e605760b26083e0d460df60f760d660d0c0d00000797180cda037a09fa07ca05de05ca07fa05fa05ca07580b0009099700000c016605e606e606c607de06c60ee60ee6074c0500000a97000838098a0baa098a0fbe098a0faa0faa090a0b380b00080d9700010c01a60fb60b860bde0f860bb60ba60b8c08000000000e9718025a0b4a0b6a0bca0f6e0f4a0f5a07fa074a0b5a0b1808139700000e000e08d60bae0aae060602ae06be0ae60b0e0800041697000098048a02ba0f8a023e008a06ba01ba0f8a02980400041c9700009804ba02ba0fba023e00be07fa05fa05fa05c80700001e971800ca0ffa05fa05ca05de0c0a08fa0bfa05ca05d80b000827970000000c4c03e60ff60146031e0ac6067603e60b4c07000132971808ca0d7a097a0fca0b9e028a0e7a0bfa0a4a0f58020000389700004c07e607f60fc6075e03060cf603f602e60acc07000039970006ec0175076d056d0505072f02e502a50fad02ed02a0004297000eec016504fd04fd067504e7076506fd06f506f5042000489700080c09e60bfe0b4609ae0fa609e60d4e0bb608e4080000529710001400fc0fbc02bc02be02bc02bc0abc0afc071400100056970802e8020e02e8010000fc0fbc02be02bc0abc0afc0f140059971000dc0fdc02de0adc0f100058095609f4075c01f00140005c971008dc07dc02de0adc0700008802a40aea07a202ea0380005e970001280128012801fe0f00000000fe0f28012801280100016097000408077c075e075c0f5c005e005c0f5c077c07080700046197000efc01040434077407540f0600340f740734075407000062970000f20f1204f2075e055205f20712041204f20f02000000699700000402e402be02b402f40fb402b402be02e4020402000074970402ee02fc0fae02e40200023000fe0f0000fe071008080676970400ee02ac02fc0fae024000fe0742087e084208fe0800068b970000e402ae02fc0fee02040a20082409bf0f2409240900008d970400ee02ac03fe0ee40200004809c60974064405e804400891970402ee02fc0fae026408e0070408900b7e08d008100b000098970400fe02b402f40fbe024008f40710005e011009f4070000a0970402fe02f40fb402ee02fc068a03e80fe801880af8070000ad970402ee02fc0f6e00fe0f7c09ac07fc04ac08fc0804080000d397fc02ac02ae0fac06fc060004ec07ae05ac0fac05ec050804e69700009200920092009200ff0f920092009204920480030000e797a800a800fc0fa800a8020001740c84037c080408fc070000e9970000f402d402de0fd402f4020000a800fe0fa800a8048803ed970000500550055005fe0700040004fe07a804a804a8040000f39710001400d407540554055605540554055c05d40714001000f5972000e80766057405e407200010012e05a8080808f8070000f6971000dc0756055c05d4070400b0078e04a204a2049e070000fb971000dc0755055a05d4070400f80f540354035403fc0f0008ff979400be00d507e007fe07ee07ce07c007de07c6079a000000019800080408fc0bac06ac06ac02ac02ac06ac06fc0b04080000029804080408fc0f04000008fc0bac0aac02ac06ac06fc0b0000059804010401fc0104010408fc07ac06ac02ac06ac06fc0b000806980008fc070000f8030000fe0f0000fc07ac06ac02ac0afc0b08984808c804240410030408fc0bac0aac02ac02ac0afc0b0008109824082408f40f3c00e4080008fc0bac02ac02ac0afc0b0000119800001407f4001402f4030008fc07ac06ac02ac02fc0b00081398e8008800fc0f8804e8020008f407b406bc02b40af40b00001798000ef801280cbc02a8035808fc0bac0aac02ac06fc070008189800005800d4075200c4090c04fc07ac02ac02ac06fc0f00002d9800007c084c054c047c07000cfc09ac0aac02ac06fc0700083b981000de0510047f0214019000fe0d560356035601fe0500043c98000078065801fc0f5801380afc09ac06ac02ac06fc07000846980004bc04ac02fc0fac029c08f809ac0aac02ac06fc0700084c98400c5c035c04dc075c09000cfc0d5c095c095c09fc0d000c4d982001ac0fb4055605a4070c00fc07ac06ac02ac0afc0b00004f98000cec033c08ae092c052402fc0bac0aac02ac06fc0700085498000ce4032c08a60a2c052400fc0bac0aac02ac0afc0b00085898000ffc007c06ac00ac0ffc010008fc07ac06ac02fc0b00085b98040afc0bdc0ade02fc0b0000fc07ac06ac02ac06fc0b00005e980000ac049802de019c028808fc0bac06ac02ac02fc0700086798000efa012a0faa07da0780070208fa0bae06aa02fa07020c6f980001fc0dda011a09fa03bc030009fc07ac06ac02fc0b0008759800000408f40b140814041402dc0114041408f40b040800007698000004080408fc0704000008fa090a04ee030a08fa090000779800000000fc03100210010008f4051404dc031404f4090408799804010401fc0184000008fa050a040a03ee000a020a04fa057a98000cfc030000f8030000fe0f0000fc080c06ec010c02fc0c7b9800044804260290010208fa040a02ee010a000a02fa0402087d9800001206f2011200f2070002fa080a06ee010a00fa0e00007e98fc0f0200fa070a04fa020008fa040a06ee010a00fa0e00007f980000f4008400ff0f84046002fa080a06ee010a00fa0e00088198300c0c02e2092008ef071000fa090a04ee030a08fa090000829830040c03e2020002de070000fa0c0a02ee010a00fa0d0004849822002a08ea073600e2000008fa040a06ee010a00fa0e000085980008f00790009e00f4010008fc090c04ec030c08fc0900088698100050014c026a0dd0000008f4041406dc011400f40e00088798000efc01240c3e03e4060c00f0041406dc011400f40e000888980000a20892088a07b604000cfa090a04ee030a08fa0b00008a98480458044803fe0078034808e0041402dc011402f404000091982000b80b2008fc0528032008f4091404dc031404f4090000939800002c08ac07bc00aa070004f2081206de011204f209000096980004cf02d401d40fb201000af2081a06d6011204f205000897980004fc04d402fc0fd401fc00e0091404dc031408f40900009898400c5c035c04dc075c09000cf40c140bdc08140af40c040c9c980008f2071a01b304aa021208fa040a02ee010a00fa0e00009d98ac0014065e057405940e1c00f4091406dc011400f40d0004a098040afc0bec0aee02fc0b0000f4091404dc031408f40b0000a4980008fc0bfc0bfe0bcc0b3c03f0080a04ee030a08fa090000a8980000000efc010404ec052c05fc072c05c40cfc0700080004b198000efe014204fa034202fe000003d80456095009dc0d0000c4980400f40dfc01fc07a40ffe076604f603fa03fa0704080004c6984006ca016a006706eb01620cff036104fd036107ff010006ce980000000efe0102041a02a201e2001a070200fe0700080006d2982804ca040e02ec03000afc070402f4010402fc07000c0000d898740dd401fc09d407fc03d401240dfc031406e401fc07000cdb9850085206fa0142004200fa0f42004200ce0314052a094805de980000040004000400040004000400fc002007500888088806df98000010001008f80fb408b209b402b406f809900810080000ef980804e407d204d204f406000efe01620ca2052203e2040008f2980804f407b204b204f40620001c0c8a03f800080338040808fc981004fc07b204b204f4060000ec032c01ec090408fc070000fd9808000804fc07ba04ba02f4060000f8039604f4040404fc04fe981004fc07b204ba04f2063404e8012600fc0f2400e403000005990400f20f5a095a05f20900008a0cfa038800ff0f890000000a99800094005c08fe0fdc09dc09dc07dc05fe0d5c0894080000109910009000a808ee0fdc0b8003b607d6079605ae08a200000013990408f2077106750321048904ff0358001f02f803db06100018990808ec0f5a095605f40d040094029408f30794008402880428991004f807b404b204ec061c00f40f940596059405fc07000052990000f00fbe04b204f40e40006a0d7a036f012a0ffa0d2805659930000c08ea0f08043800000efc0104000400fc0f000800066d9930000c08ca071800000efc01340cd4021403f204120800006e9970000c08ea0f08043802000830040e03e800080328041808709920001400ca0f18020000e80327002400fc0f24002402e401719960001400ca0f18044000f0072c092809e80b080af8090004729930000c08ca0718020800e2032a012a01ea090208fe070000759970000c08ea0f080430000404fc07940494049402fc0f0402769920001408ca0718020808a004ae03b800a40fd408940800047a9930000a08e5070402080a60081404850386030404740840047c9920001408ca0f0804b8028108fa0788008800fc0f8b0080007f9920001000ce0f180480029408fc0f1004fe02900556080006809920001c00ca0f08041800900698009408f20f940098029004819920001408ca07180200085409c4056c024403c2045a084000859920001404ca0708023800d00f4805060544045c05c40f0000869920001404ca0710020400fc07f4075505560564050c0700008b9930000c08ca0718029000b8026e043c056c09ac0ab80080008d9920001404ca0718030008740576057403f4017603740500088f9930008e0f2804180440003e0fb00ae40f9c0a840abc0f0000929910001c00ea0708016004de05fe06de02fe06de05fe040000969900000400f40f570554055c05540554055705f40f04000000999990005400540fb40a940abc0a940ab20ad20ad20f50009000a8990000bc02bc02fe0efc0ff40ff80ef60ef20ffe0ed8020002ac990008000cfc01540154055401fc0d5401540b540900070000b3990006fe00aa07fe02aa0a0007fc071008fe091008f8080006c1990006fe00aa02fe09aa0baa070000d60c08030e05d1041008c5990006fe00aa03fe0baa0e800dfe032200e20022033e0c0000c6990006fe00aa06fe02aa0b0007fe0f0204a20572048a050005d099000efe00aa06fe0eaa09aa0700008a08fa0f8c0888080008d2990006fe00aa07fe02820a1007cc012a01e8090808f8070000d59900001408cc05e601e405ec01e003fe01f203f2051e030000db9900037f00d5037f035505c1031c0c2403ff0224043c040008dd990006fe00aa07fe03aa0f00001800f8078e08880858084006ff990006fe00aa04fe01aa0f00003c078a04b806ae09200800000e9a0006fe00aa03fe0b8a072000a407b402ae0b3408d4072000129a0006fe00aa07fe038a0f4000a2096609fa0f5a09e60d2008139a0006fe00aa03fe06aa0a0a07e8082605f2032407e8090808199a0006fe03aa01fe09800ffc07ec03ec07ea036a05fa070000309a000cfe039208fe074400f605dc0bd60bdc07f60b54064000379a000efe00aa02fe0baa070000f4096a09d20f6a0fe60f2008459a0006fe06aa01fe0982070000fc07540aec0b9c09c40b0000559a00067e07fe02aa090207a80ffa03de05da07f900a90f0000579a0006fe07aa01fe0d82037008b806f600540cb802d00c00005a9a10083a0cfe03fa03fa0bda03c80bec03d60bac0b2c0624005f9a000efe00aa07fe0e00077e06ba00fe0f6c0014032c0400006c9a0000000204027402440244024402440a7c084007c00000006e9a00027a0242094208fe070000100c90037e009001100610086f9a00027a0242097208ce070000fe0f0000fe070000fe0f0000709a00027a02420a4208fe070000fc071008fe090808f8080006719a00007a02420a4209fe07f80f0408140be4089409040a0000739a0002740244094408fc070000540c88028803540412080000749a00007a02420a4208fe070000f80f48004a004800f8000000769a000274024408440cfc03300848054802fe05480478080000799a00027a0a42097a08c6071000ce032901e8090808f80700007b9a00007a02420a420afe07000088088908fa0f8808880808087c9a0000740244094409fc070000e8078a086c080808180600007e9a000004022c02a602a402ac02a002be02f20ab2089e070000829a00000e02aa02aa02ae02a002ae02aa02ea088e0880070000849a00027a0a42097e08c0071000540c34031c00320f52004000859a0000fa02820afe08800710007f01000f3e01480146012000869a00027a0242096208de074000480fb604a404b4044c0f4000879a0002720242094208fe070008a804b9026e020803c80c00008c9a02027a0142094208fe07200098052404a6050804d00710008f9a00027a02420a4208fe0700002c09ab068904a807ae082008919a0000740244094409fc070000a407ac02ae0b3408f40f2000979a02027a0142097e08c007fc03940fd607d40f5401dc0f00009a9a00027a0942097e08c00792085609de075a055607d2072008a19a00007a0242094208fe071c0dea017e092a0faa01be0b000aa49a02027a0142087c0ae205be06ba05be0f6a03d2052e090000a89a000060002000fc0fe402fc02ec02ec0afc0f200060000000b89a3000fe0ff602fe0afe0730000409b404af0264021405c408d29a6008fc07e4007c0afc074000b40a76065002b60eb4020000d39a3000fe0ffe02fe0f74007008dc070608e40bfc09ec0b0008d49a600cfc037c09fc0f00007c08ec0bfe0aec0efe0eec0b7c00d89a00000200c20f5e00560f5705560556075e004208c2070000e69a00001004be05de05be02be07800b640b6a0b140b140a0000ea9a0000d008fe04de02de09fe07d0058405d207aa09aa08a008ee9a0000b004be02be0abe09be06b0068404d206aa04aa049008069b0000b004be02be0fbe023e00b20d00066c046a0692081001139b0000d00a5e06de07de07fe03ce03e407ea075a07520a0000259b0000fe0f00003e002a0000002a003e002a080008fe070000279bfe0f0000ae07ae00a600f00fa600ae04ae030008fe070000319b0000ec01ae0dac0b74077e07f601360868092e046c0304003c9b000000087c045402d4017e0054075408540b7c0b000a0008419b00007c0c5403fe0754087c0b000aac088008fe0b40080006429ba00364022401a40100087c0454025401fe0754097c0b0004449b0000f8074e02f80300087c065401fe075608540b7c0b0008459b00007c0fd400fe07540b7c0a000ae808fe0b6808a80900044f9b0000ac0a9c07dc049a0780003c0e5401fe075408bc0a000a549b000cfc030408b40bb40b9607c403b407b40fb40f940b00085a9b00083008f8055401560df4015c0554095001f005000800006f9bd0000800b80fbe0afc0abc0afc0afc0ab80a780f80008000ae9b100cf801560df4035c01e00509004e01f80f4c014a010000e89b100cf8015605f4035c01f0046402940896079400f40600007c9c00001004f805540556055405f4055c055005f00500040000819c08004800f80ffe0afc0afc0afc0afc0af80af80f400000008d9c2008f8095605f4055c05f4051000ec07e8090809f80800049c9c1000f8055605f4055c05f40500014a01f80f4e014a010000a49c1000f8055605f4055c05e0013c085409fc0f54097c090000ab9c1000f8015605f6055c05e004fc0754023c00f80f0400fc03b89c1000f8055605f6055c05f405000074035408d60754007403c49c1004f805f6055c05f40500009c028c0ba80ab40abc068000cd9c0800fc02fb02ae027800920f56057f0576056e05ef0f0500d69c00017a09380f7e0fb80fba0f900fae0f340f2c0f44084000de9c1000f805fe05f4040001aa0c98033e009802ae0fa8020000e59c00080004fc015c015c055e015e055c015c055c0940070000f39c0000e00f1c04fc01fc05fc03fc0bfc090c07fc0700080006f49c0000fc030401fc090004fc015c095e035e0b5c095c074000289d0000fc019400fc0f9400f80cfc015c055e035c0b5c0700003b9d1008220ea4010400fc09040cfc015c055e035c0b5c0700005d9d00009208fe071006fe0dd400e8055c035e095c0b5c074000b49d4000ec0f5c05f60754050408f8055c035e055c0b5c074000f99d0000fc0f0200ba0b8e07ca0fff0fbe07be07be0f260600001f9e000100017c014401540156014401640164095c08c0070000209e0000080ffe000800f80180003c004e0166096408dc070000219e14043402c4013c030000fc0284029602960aa4089c070000239e0000fc030401fc010000fc0284029602840abc0880070000259e0000fc070406e40514050004fc008c02a60aa4089c070000269e00003400240be408fc0f0000fc028c02a60aa4089c0700002d9e0000fc019400fc0f9400f8007c028c02a60aa40a9c0700002f9e40005004dc0774067406d4065e065406740bdc0a50064000339e24021202fa0333036e0320032e03b20bba0b7e0910070800359e0002fc0296028408bc070000e8078a088c084808580800063d9e0000b00f8804a604ac070000fc028402960aa4089c0700003f9e1008260f20000402fc010000fc028c02a60aa4089c070000439e0000fc0fb402b402bc0ac00d7c028c02a60aa40a9c070000459e00001409fc071000fe07dc08000afc028e02a40a9c070000499e0000ec070c04c803ff030a0c0008fc029e0a8408bc0700004a9e0000d4075e0554055e05d4070002fc02960a840abc0700004f9e000cfe039208fe0ffc079200fe0f78029e0a840abc070000649e4000ec0f5c055605f40754050000fc02960a840abc070000669e00007e09320b5e0d4c05320b4e08f802a602b40a9c088007709e0000c00f3c008407fc06ce07fc07fc06fc0afc0a7c0604007f9e0000800f7c00540f74095409560074075409540974090004979e0000000eea01aa0fe20afa0ae000ea07fa0ae20aea0a00089f9e800f7c007e0f7404540f60016a0d98033e009802ca0f8002a59e5400540a54092405a4069e02a40234055408540854000000a69e20092c09ac08ec05ac06be04ac06ac05ac082c0820080000b59e0000940ba4069e04a4070008fa0bfe0bfa0b0a0afa0b0008b89e00009c057c045e02dc055c00000c4803fe00480348040008bb9e000cfc030400a401f40fa5000602a401f40fa40024030000bc9e0006fe010a003a059a05aa0703052a059a042a062a080000bd9e000cfc030400540af40a540c060b3408f40a340e54080000c39e00081408f407be06bc02fc03bc02bc06be06f40714080000c49e00001008f40bb40abe0af403b402be06b406f40b10080000cd9e2801ac00ac045c044c033c0a4c0f5c02aa02aa04a8040000ce9e00006a011a05be04a902880e480296028c0444053c010000cf9ea0049a025a083e075a00d9060800c00f7e044804c8070000d19e000000095e055601520dfe015205560952015e0500090000d29e0000000d7e016a016a0dfe016a056a096a017e0500090000d49e00007e0d6605fe017a0d7e05000090008800a60c8803b000d89e000e7e006605fe036a017e050000900f7e00900316040008d99e00005c0d5c01fc015c055c010001c8063e0048048a050001db9e0808040aee0ba103a40be603a40bee0bb603f40b140a1400de9e000c7c016c05fc0364013c03800f8004ff048804880f0000df9e000e7e006a05fe0166057e0108052809f606b4068c018000e89e00000c0ae40bbe03bc0bfe03bc0bfc0bbe03e40b0c0a0000ef9e000c7e01660dfe016a097e07c007740566057405e40700000e9f00007c0940077e01ee0f2e00ee0f7e0140017e01000f0000139f04047405b404be04b407e00d6804a8053e02a805680c0004209f00000000be0f2a09aa00e00f2a08aa0a2a00be07000800043b9f000ac00bfc0bfc07fc03fe03fc03fc0ffc03c003c00300024a9f4c087c0ccc03cc02b4028c02f602bc02ac02ec0f140020004b9f00005000340f9400240c8c01a60f94052400540f24004000509f4000440844044c0334002600260034004c0f440044004000529f1000f00ff00f9c08b00a9008de08d40ad40a9408d00f1000619f0000ec07f007de06f407d407000038016602480d90002000629ff00ffc05d005de05f40f10000800f40f77006804b00300007f9f0000f007f0071c04100590045e04940414051404d40f1000849f0000de071005de041404d407100048015602440dc80050008d9f0000f20fba02b302ba0af6070000ef07aa0baa0b3a0a0004909f000cfc030408e407d406d402060fb403b40fb40ff40f0004999f100810041002d0093e081004f007120994085408500810049c9f0000e807f807fe07fc074c0afc0b580bd80a580ac00b00009f9f00001000f80354015601f4075c0954095009f0090008000600ac000004020401840064001c0000000000fe0f20002000000001ac000044004401240134010c01000100017e0f10001000000004ac80004400440f240814080c0800080008fe0910001000000007ac80004400440f240934090c09000900097e0910001000000008ac20002400a40ea40a940a8c0a800a800abe0b08000800000010ac80004400440f240934090c09000900097e0f10001000000011ac40004400440f240a340a0c0a000a000a7e0f10001000000012ac00004400440f440a340a0c0f0000000c7e0310041008000013ac400084084408240414020c0100020004fe0810080000000015ac000084004406440934090c09000900097e0610001000000016ac000044004409240934050c03000500097e0910001000000019ac40004400240fa40a940a8c0a800a800abe0a1000100000001aac0000800044084409240f1c090009000f7e091000100000001bac00002400a400a404940acc0a800a800abe040800080000001cac00010401840064001c000000fe0720002000fe0f000000001dac80004400440134010c0100017e01100110017e0f0000000024ac000040002400940e9c0a800abc0a880a880abe0b0000000040ac20002400a40ea40a940a8c0a800a800abe0b14001400000070ac000004030401840074000c0020002000fe0f00000000000071ac000040004400440124011c010401100110017e0f0000000074ac000080004400440f24081c08040810081008fe090000000077ac000080004400440f24091c090409100910097e090000000078ac000040002400a40e940a8c0a800a900a900abe0b0000000080ac000080004400440f24091c090409100910097e0f0000000081ac000040004400440f340a0c0a000a100a7e0f00000000000083ac000080004408440824041c02040110021004fe080008000089ac000040002400a40f940a8c0a800a900a900abe0a000000008cac00010401840044003c0020002000fe070000fe0f0000000090ac000084004400240f1c0810081008fe090008fe09000000009cac000080004400240f14091c0910097e0900097e0f00000000a8ac000004020401c40024009c0090009000fe0f000000000000a9ac0000400044002401240114010c01280128017e0f00000000aaac00004000440124012401140f0c00280128017e0f00000000acac000080008400440e240814084c0848084808fe0900000000b0ac000040002400a40ea40a940a8c0aa80aa80abe0b00000000b9ac000040004400440f340a0c0a280a280a280a7e0f00000000bdac800044004406240914090c092809280928097e0600000000c1ac000040004400240fa40a940a8c0aa80aa80abe0a00000000c4ac00020403c40024009c0090009000fe0f0000fe0f00000000e0ac0002040204020402e403040204020402fc02000200000000e1ac000040004401440144017401440144015c0f400000000000e4ac00004000440f440844087408440844085c08400000000000e7ac00004000440f440944097409440944095c09400000000000e8ac00002000a20ea20aa20aba0aa20aa20aae0b200000000000f0ac00004000440f440944097409440944095c0f400000000000f1ac00004000420f420a420a720a420a420a5e0f400000000000f3ac000040084408440444047403440444045c08400000000000f5ac000040004406440944097409440944095c06400000000000f6ac000040004209420942057203420542095e09400800000000fcac000004020402c40304020402fc020000fe0f400040000000fdac0000440044017401440144015c0100017e0f10001000000000ad00008400840ee40884088408bc080008fe0b20002000000011ad0000440044067409440944095c0900097e061000100000001cad80008400f40e840884089c080008fe091008fe0b0000000034ad000004020402c403040204027c020000fe0f00000000000049ad0000440044067409440944095c0900097e0900060000000050ad000000020402c40304020402c4030402fc020002000000006cad00004000440044004400c40f440044007c004000000000006dad00002000240124012401e401240124013c0f20000000000070ad00004000440e44084408c409440844087c0840000000000073ad00002000240f24092409e409240924093c0920000000000074ad00002000a20ea20aa20ae20aa20aa20abe0b20000000000075ad00002000a20ea20a220b2208a200a200be0f20000000000076ad00002000a20ea20aa20ae201e20fa208be0f2000000000007dad00002000220f220a220ae20a220a220a3e0f2000000000007fad000020082208220422046203220422043e0820000000000081ad00002000220622092209e209220922093e062000000000008cad20002400240f2408e40924083c088008fe0b000000000000c0ad0000400044004400c40744007c0040000000fe0f00000000d3ad200024002408e409240824043c030004fe09000800000000dcad000040004400c40f440044004400c40f7c00400040000000e0ad00004000440f4408c40944084408c4097c08400000000000f8ad00000002040204020402040204020402fc02000200000000f9ad400040014401440144014401440144017c0f400000000000fcad00004000440f440844084408440844087c0840000000000000ae00002000a20ea20aa20aa20aa20aa20abe0b20000000000001ae00002000a40ea40aa40b2408a400a400bc0f20000000000008ae00004000440f440944094409440944097c0f40000000000009ae00002000240f240a240a240a240a240a3c0f2000000000000bae000040084408440844044403440444087c084000000000000dae000040004406440944094409440944097c0640000000000030ae000204020401840064001c0000000000fe0f00000000000034ae80008400440e240834080c0800080008fe0900000000000038ae000040002400a40e940a8c0a800a800abe0b00000000000040ae80004400440f240914090c09000900097e0f00000000000045ae800084004406240934090c09000900097e090006000000004aae0000840044084409240f1c090009000f7e090000000000004cae00000401e4001c000003c4003c000000fe0f2000200000004eae0000440024011c01400f24001c0100017e0f10001000000050ae00004400340f0c08c00824081c080008fe0910001000000054ae000024009c0e840aa00a940a8c0a800abe0b0800080000005cae00004400240f1c09400924091c0900097e0f1000100000005dae00006400140f0c0a400a340a0c0a000a7e0f08000800000061ae0000440024061c09400924091c0900097e0610001000000065ae20002400940f8c0a800ab40a8c0a800abe0a10001000000068ae0401c4003c000003c4003c000000fe072000fe0f00000000bcae00000401c4003c000003c4003c002000fe0f000000000000beae0000440034010c01400f24001c0110017e0f000000000000cdae00006400140f4c0a400a240a1c0a100a7e0f000000000000cfae0000440034080c04400624011c021004fe08000800000000d1ae0000440034060c09400924091c0910097e09000600000000d8ae0401c4003c000002c4013c002000fe070000fe0f00000000e8ae400024001c00000f64091c0910097c0900097e0f00000000f4ae00000403c4003c000002c401bc009000fe0f0000000000002caf00000002040264021c02c003040204027c020002000000002daf00004000420142014e016001420142015e0f40000000000034af00002000a20eaa0aa60ab00aa20aa20aae0b2000000000003caf00004000420f52094e096009420942095e0f4000000000003daf00004000420f5a0a460a700a420a420a5e0f40000000000042af00004000420942094e056003420542095e0940000000000043af0000400042095a0946057003420542095e0940000000000049af000044005c014001740144015c0100017e0f10000000000064af000104013c01800104017c010000fe074000fe0f00000000b8af00004400440044007c00c00f440044007c00400000000000bcaf00004000440e44087c08c009440844087c08400000000000c0af00002000a20ea20abe0ae00aa20aa20abe0b200000000000c8af00002000240f24093c09e009240924093c0f2000000000000cb00000440044007c00c00744007c0040000000fe0f0000000044b000000402040284027c02000204020402fc0200020000000048b000004000440f44087c084008440844087c084000000000004ab000002000240f24083c002005240ba40b3c052001000000004cb000002000a20ea20abe0aa00aa20aa20abe0b20000000000053b000002000a20ea20abe0b20002205a20b3e0b20050000000054b000002000240f24093c092009240924093c0f20000000000057b000004408440844087c044003440444087c084000000000005db000002000a20fa20abe0aa00aa20aa20abe0a2000000000007cb000000401e4001c000002c4013c000000fe0f0000000000008cb000004400240f1c09400924091c0900097e0f00000000000098b00000fc01000100010001000100010000fe0f20002000000099b000007c004001400140014001400100017e0f1000100000009ab000003c0020012001200f2000200100017e0f1000100000009cb000007c00400f40084008400840080008fe09100010000000a0b000003e00a00ea00aa00aa00aa00a800abe0b080008000000a1b000003e00a00ea00aa00b2008a0008000be0f080008000000a8b000003c00200f200920092009200900097c0f100010000000a9b000003e00200f200a200a200a200a000a7e0f080008000000abb000007c00400840084004400340040004fe09100810000000adb000007c004006400940094009400900097e06100010000000aeb000003c002009200920052003200500097e09100010000000afb000003c00200920092005a003200500097c09100810000000b1b000003e00a00fa00aa00aa00aa00a800abe0a080008000000b3b000003e00a000a004a00aa00a900a800abe04080008000000b4b00000fc010001000100010000fe0720002000fe0f00000000b5b000007c0040014001400100017e01100110017e0f00000000c4b000007c004000400f400900097e09100910097e0f00000000c5b000003c002000200f200a000a7c0a100a100a7e0f00000000c7b000007c0040084008400400047e0310041004fe0800080000c9b000007c0040004006400900097e09100910097e0600000000d0b00000fc01000100010001000100010000fe0f900090000000e5b000007c004006400940094009400900097e0628002800000008b10000f8010001000100012001200120002000fe0f0000000009b100007c0040014001400140014801080108017e0f000000000cb100007e004000400f40084008480808080808fe090000000010b100003c002000a00ea00aa00aa80a880a880abe0b0000000013b100003c00a00ea00aa00b2800a80f080a080abe0f0000000018b100007c004000400f400940094809080908097e0f000000001db100007c0040064009400940094809080908097e060000000023b100003c00a000a004a00aa80aa80a880a8804be000000000024b10000f80100010001200120012000fc070000fe0f0000000025b100007c00400140014801480108017e0100017e0f0000000028b100007c004000400f400850081008fc090008fc09000000002cb100003c002000a00ea00aa80a880abe0a800abe0b0000000037b100007c00400840044804480208017e020004fe080008000040b10000f8010001000100015001500150005000fe070000000041b100007e0040014001400140015401140114017e0f0000000044b10000fe008000800e80088008d40814081408fe090000000050b100007e004000400f400940095409140914097e0f0000000055b100007e0040064009400940095409140914097e060000000078b1000000047c0440044004c00740044004400400040000000079b1000040005e0150015001700150015001500f4000000000007cb1000080009e0e90089008f00890089008900880000000000080b100004000dc0ed00ad00af00ad00ad00ad00b40000000000088b1000040005e0f50095009700950095009500f4000000000008bb1000040045e085004500270015002500450044008000000008db1000040005e0650095009700950095009500640000000000092b1000040005e09500f500970095009500f500950094000000093b1000020003c05300b300bb00b300b300b300530012000000094b100023c0220022002e003200220020000fe0f400040000000ccb1000000023c022002e003200220020000fe0f000000000000e8b1000000047c04c007400440044004c007400440040004000004b200008000bc00a000a000a00fa000a000a00080000000000005b2000040005e0150015001d00150015001500f40000000000008b2000040005e0f50085008d00950085008500840000000000014b2000040005e0f50095009d00950095009500f40000000000015b2000040005e0f500a500ad00a500a500a500f40000000000058b2000080009e009000900f900090000000fe0f00000000000074b200008000bc00a00fa000a000a000a00fa00080008000000084b2000040005e0fd009500950095009d009500f40000000000090b2000000047c0440044004400440044004400400040004000091b2000040005e0150015001500150015001500f40000000000094b2000080009e0e90089008900890089008900880008000000098b200002000bc0eb00ab00ab00ab00ab00ab00b20000000000099b200004000dc0ed00ad00b5008d000d000d00f400000000000a5b2000040005e06500950095009500950095006400000000000a6b2000040085e09500950055003500550095009400800000000acb2000000013c0120012001200120010000fe0f000000000000c8b20000fc01000100010001000180000000fe0f000000000000c9b200007c004001400140014001400100017e0f000000000000d0b200003e002000a00ea00aa00aa00a800abe0b000000000000d8b200003e00200f200920092009200900097e0f000000000000dbb200007c00400840084004400340040004fe09000800000000ddb200007c004006400940094009400900097e06000000000000e4b20000fc01040104010401040100010000fe0f200020000000e5b200007c004401440144014401400100017e0f100010000000e6b200007c0044014401440f4400400100017e0f100010000000e8b200007c00440f44084408440840080008fe09100010000000ebb200007c00440f440944094409400900097e09100010000000ecb200003c00a40ea40aa40aa40aa00a800abe0b080008000000edb200003c00a40ea40aa40b2408a0008000be0f100010000000eeb200003c00a40ea40aa40b2400a00f8008be0f100010000000f4b200007c00440f440944094409400900097e0f100010000000f5b200007c00440f440a440a440a400a000a7e0f100010000000f7b200007c00440844044404440340040004fe08100810000000f9b200007c004406440944094409400900097e06100010000000ffb200003c00a400a404a40aa40aa00a800abe0408000800000000b30000fc010401040104010000fe0720002000fe0f0000000001b300007c0044014401440100017e01100110017e0f0000000004b300007c004400440f44080008fe0910081008fe090000000010b300007c004400440f440900097e09100910097e0f0000000013b300007c0044084408440400047e0310041004fe080008000054b30000fc010401040104010401200120002000fe0f0000000055b300007c0044014401440154015001100110017e0f0000000058b30000fc008400840e84089408900810081008fe09000000005cb300007c004400c40ec40acc0ac80a880abe0b0000000000005fb300007c00c40ec40ac40b5400500f100abe0f00000000000064b300007c00440f4409440954095009100910097e0f0000000065b300007c004400440f440a540a500a100a100a7e0f0000000067b300007c004408440444044402540110021004fe080008000069b300007c0044064409440954095009100910097e06000000006eb300007c0044094409440f54095009100f10097e090000000070b30000fc0104010401040120012000fe070000fe0f0000000071b300007c00440144015401500110017e0100017e0f0000000074b300007c004400440f540850081008fe090008fe090000000078b300003c002400a40eac0aa80a880abc0a800abe0b0000000080b300007c004400440f5409500910097e0900097e0f0000000085b300007c00440044065409500910097e0900097e0600000000c4b3000000047c0444044404c407440444044404000400000000c5b3000040005e0152015201720152015201520f400000000000c8b3000080009c0e94089408f408940894089408800000000000cbb3000040005e0f520952097209520952095209400000000000ccb300004000de0ed20ad20af20ad20ad20ad20b400000000000d4b3000040005e0f52095209720952095209520f400000000000d5b3000040005e0f520a520a720a520a520a520f400000000000d7b3000040085e04520452027201520252045204400800000000d9b3000040005c06540954097409540954095406400000000000fcb300027c024402c403440244020000fe0f4000fe0f0000000018b400027c0244024402c403440244020000fe0f0000000000001cb400008000bc0ea408e408a408a4080008fe0900000000000050b400008000bc00a400a400a40fa400a400a40080000000000051b4000040005e0152015201d20152015201520f40000000000054b400008000bc0ea408a408a40ba408a408a40880000000000058b400004000de0ed20ad20ad20ad20ad20ad20b40000000000060b4000040005e0f52095209d20952095209520f40000000000061b4000040005e0f520a520ad20a520a520a520f40000000000065b4000040005c0654095409d409540954095406400000000000a4b400008000bc00a400a40fa400a4000000fe0f000000000000b7b4000040005c085408d409540454030004fe09000800000000c0b400008000bc00a40fa400a400a400a40fa400800080000000dcb4000000047c04440444044404440444044404000400040000ddb4000040005e0152015201520152015201520f400000000000e0b4000040005e0f520852085208520852085208400000000000e3b4000040005e0f520952095209520952095209400040000000e4b400004000de0ed20ad20ad20ad20ad20ad20b400000000000ecb4000040005e0f52095209520952095209520f400000000000edb4000040005e0f520a520a520a520a520a520f400000000000efb4000040005e08520452025203520252045204400800000000f1b4000040005e0652095209520952095209520640000000000014b50000fc01040104010401040100010000fe0f00000000000015b500007c004401440144014401400100017e0f00000000000018b500007c00440f44084408440840080008fe090000000000001cb500003c00a40ea40aa40aa40aa00a800abe0b00000000000024b500007c00440f440944094409400900097e0f00000000000027b500007c00440844044404440340040004fe0900080000000029b500007c004406440944094409400900097e090006000000002ab500007c004409440944094405400300057e0900000000000030b50000fc0104010000fc01040104010000fe0f20002000000031b500007c00440100017c014401440100017e0f10000000000034b500007c00440f00087c08440844080008fe0910000000000038b500003c00a40e800abc0aa40aa40a800abe0b08000000000040b500007c00440f00097c094409440900097e0f10000000000045b500007c00440600097c094409440900097e061000000000004cb50000fc0104010000fc0104010000fe072000fe0f000000005cb500007c004400000f7c09440900097e0910097e0f0000000061b500007c00440600097c09440900097e0910097e0600000000a0b50000fc0104010000fc010401040120012000fe0f00000000a1b500007c00440100017c0144014401500110017e0f00000000a4b500007c00440f00087c084408440850081008fe0900000000a8b500003c00a40e800abc0aa40aac0aa80a880abe0b00000000bbb500003c00a4008004bc0aa40aac0aa80a8804be0000000000bcb50000fc0104010000fc0104012000fe070000fe0f00000000ccb500007c004400000f7c09440910097e0900097e0f0000000010b600047c0444044404440400077c044404440444040000000011b6000040005e01520140017e0152015201520f4000000000009cb600008000bc00a400a400800fbc00a400a400a40000000000abb620002000be0eb20ab20b60013e05b20b320b320500000000b1b6000040005c0654095409c0095c0954095406400000000000f0b68000bc00a400a400800fbc00a400a4000000fe0f0000000028b7000000047c044404440400047c044404440444040004000029b7000040005e015201520140015e015201520f4000000000002fb7000040005e0f5209520940095e095209520952004000000030b700004000de0ed20ad20ac00ade0ad20ad20b40000000000038b7000040005e0f5209520940095e095209520f4000000000003bb7000040005c085404540440035c025404540854080000000044b700017c014401440100017c01440144010000fe0f0000000060b70000fc01040104010000fc01040104010000fe0f000000007cb70000e4012401240124013c0100010000fe0f2000200000007db7000074005401540154015c01400100017e0f10001000000080b700007400540f540854085c0840080008fe0910001000000084b700003c00ac0eac0aac0aac0aa00a800abe0b0800080000008cb700007400540f540954095c09400900097e0f1000100000008db700007400540f540a540a5c0a400a000a7e0f10001000000091b7000074005406540954095c09400900097e0610001000000097b700003a002a012a052a0bae0b200b000b7e0508000800000098b70000e401240124013c010000fe0720002000fe0f0000000099b700007400540154015c0100017e01100110017e0f000000009cb70000f4009400940e9c080008fe0910081008fe0900000000a8b7000074005400540f5c0900097e09100910097e0f00000000a9b7000074005400540f5c0a000a7c0a100a100a7e0f00000000abb700007400540854045c0400027e0110021004fe0400040000adb700007400540054065c0900097e09100910097e0600000000b5b7000074005401540154015c01400100017e0f280028000000c9b7000074005406540954095c09400900097e06280028000000ecb70000e4012401240124013c0100012000fe0f000000000000edb7000074005401540154015c014001100110017e0f00000000f0b70000f4009400940e94089c08800810081008fe0900000000f4b700003c002c00ac0eac0aac0aa00a880a880abe0b00000000fcb700007400540f540954095c094009080908097e0f00000000fdb700007200520f520a520a5e0a400a080a080a7e0f00000000ffb7000074005408540454045c02400110021004fe040008000001b8000074005406540954095c094009100910097e060000000007b800003c002c012c052c0bac0b200b080b08057c010000000008b80000e401240124013c0100012000fe070000fe0f0000000009b800007400540154015c01400110017e0100017e0f000000000cb80000f4009400940e9c0880081008fe090008fe0b0000000018b8000074005400540f5c09400910097e0900097e0f0000000019b8000074005400540f5c0a400a080a7c0a000a7e0f000000001bb800007400540854045c04400210017e020004fe04000400001db800007400540054065c09400910097e0900097e060000000024b80000e4012401240124013c0100014800fe0f00000000000025b8000074005401540154015c014001080128017e0f0000000028b80000f4009400940e94089c08800828082808fe09000000002cb800007c004c00cc0ecc0acc0ae00a840a940abe0b0000000035b8000074005400540f540a5c0a400a080a280a7c0f0000000039b8000074005406540954095c094009080928097e060000000040b80000e401240124013c0100009000fe070000fe0f000000005cb800000004f404940494049407940494049c040004000000005db800008000ba02aa02aa02ea02aa02aa02ae0e80000000000060b800008000ba0eaa08aa08ea08aa08aa08ae0880000000000064b8000040005a0f5a0b5a0b7a0b5a0b5a0b5e0b4000000000006cb800008000ba0faa09aa09ea09aa09aa09ae0f8000000000006db800008000ba0eaa0aaa0aea0aaa0aaa0aae0e8000000000006fb800008000ba08aa08aa04ea02aa04aa08ae0880000000000071b800008000ba06aa09aa09ea09aa09aa09ae06800000000000b0b80002740254025402d40354025c020000fe0f000000000000ccb800000004f404940794049404940494079c04000400000000e1b800008000ba06ea09aa09aa09aa09ea09ae06800000000000e8b8000000017a014a014a014a0f4a014a014e01000100000000e9b800008000ba02aa02aa02aa03aa02aa02ae0e800000000000f8b8000040007a0f6a096a09ea096a096a096e0f400000000000f9b8000040007a0f6a0a6a0aea0a6a0a6a0a6e0f400000000000fbb8000040087a086a046a04ea026a046a046e0840080000000004b98000bc00ac00ac00ac0fac00ac020002fe0f0000000000003cb900008000b400b400b407b400bc000000fe0f00000000000058b900008000fa00ca0fca00ca00ca00ca0fce0080000000000059b900008000ba02aa03aa02aa02aa02aa03ae0e8000000000005cb900008000ba0eaa08aa0baa08aa08aa0bae0880088000000060b9000040005a0fda0b5a0b5a0b5a0bda0b5e0b4000000000006db900008000ba06aa09aa09aa09aa09aa09ae0680000000000074b900000004f404940494049404940494049c0400040000000078b900008000ba0eaa08aa08aa08aa08aa08ae088000000000007cb9000040005a0f5a0b5a0b5a0b5a0b5a0b5e0b40000000000084b900008000ba0faa09aa09aa09aa09aa09ae0f80000000000087b900008000ba08aa08aa04aa02aa04aa08ae0880000000000089b900008000ba06aa09aa09aa09aa09aa09ae068000000000008eb9000040007a096a0f6a096a096a096a0f6e09400000000000acb90000e4012401240124013c0100010000fe0f000000000000adb9000074005401540154015c01400100017e0f000000000000b0b90000f400940e940894089c0880080008fe09000000000000b4b900003c002c00ac0eac0aac0aa00a800abc0b000000000000bcb900007400540f540954095c09400900097e0f000000000000bdb900007400540f540a540a5c0a400a000a7e0f000000000000bfb9000074005408540454025c0140020004fe04000800000000c1b9000074005406540954095c09400900097e09000600000000c8b90000fc01040104010401fc0100000000fe0f200020000000c9b900007c004401440144017c01000100017e0f100010000000ccb900007c00440f440844087c0800080008fe09100010000000ceb900003c00240f240824013c05000b800b3e05080108000000d0b900003c00a40ea40aa40abc0a800a800abe0b080008000000d1b900003c00a40ea40aa40b3c0880008000be0f080008000000d8b900007c00440f440944097c09000900097e0f100010000000d9b900007c00440f440a440a7c0a000a000a7e0f080008000000dbb900007c004408440844047c0300040004fe09100810000000ddb900007c004406440944097c09000900097e06100010000000deb900007c004409440944057c03000500097e09100010000000e1b900003c00a40fa40aa40abc0a800a800abe0a100010000000e3b900003c00a400a404a40abc0a800a800abe04080008000000e4b90000fc0104010401fc010000fe0720002000fe0f00000000e5b900007c00440144017c0100017e01100110017e0f00000000e8b900007c004400440f7c080008fe0910081008fe0900000000f5b900007c004400440f7c0a000a7e0a100a100a7e0f00000000f7b900007c00440844087c0400047e0310041004fe0900080000f9b900007c00440044067c0900097e09100910097e0600000000fab900007c00440944097c0900057e03100510097e090000000038ba0000fc01040104010401fc01200020002000fe0f0000000039ba00007c004401440144017c011001100110017e0f000000003cba00007c004400440f44087c08100810081008fe090000000040ba00003c002400a40ea40abc0a880a880abe0b00000000000048ba00007c00440f440944097c091009100910097e0f000000004bba00007c004408440844047c04100310041008fe09000800004dba00007c004406440944097c091009100910097e06000000004eba00007c004408440944097c051003100510097e090000000054ba0000fc0104010401fc0120002000fe070000fe0f0000000055ba00007c00440144017c01100110017e0100017e0f0000000058ba00007c004400440f7c0810081008fe090008fe09000000005cba00003c002400a40ebc0a880a880abc0a800abe0b0000000064ba00007c004400440f7c09100910097e0900097e0f0000000067ba00007c00440844087c04100410037e040008fe090008000069ba00007c00440044067c09100910097e0900097e060000000070ba0000fc01040104010401fc01900090009000fe0f0000000074ba00007c004400440f44087c08280828082808fe090000000078ba00003c002400a40ea40abc0a940a940abe0b00000000000085ba00007c004406440944097c092809280928097e060000000087ba00003c002409240924093c05a80328057e09000800000000a8ba000000047c0444044404c407440444047c04000400000000a9ba000040005e01520152017201520152015e0f400000000000acba00008000bc0ea408a408e408a408a408bc08800000000000b0ba00004000de0ed20ad20af20ad20ad20ade0b400000000000b8ba000040005e0f520952097209520952095e0f400000000000b9ba000040005e0f520a520a720a520a520a5e0f400000000000bbba000040085e04520452027201520252045e04400800000000bdba000040005e06520952097209520952095e06400000000000fcba00027c0244024402c40344027c020000fe0f00000000000018bb000000047c04c407440444044404c4077c0400040000000034bb00008000bc00a400a400a40fa400a400bc0080000000000035bb000040005e0152015201d201520152015e0f40000000000036bb000040005e015201520e5200520152015e0f40000000000038bb00008000bc0ea408a408a40ba408a408bc088000000000003bbb000040005e0f52095209d209520952095e094000000000003cbb00004000de0ed20ad20ad20ad20ad20ade0b40000000000044bb000040005e0f52095209d209520952095e0f40000000000047bb000040085e0852085204d202520452085e0840080000000050bb00008000bc00a400a407a400bc010001fe0f00000000000058bb000020002e0f2a0b6a0b2a0b2e0b000b7e0b00000000000063bb000020003e08f20932083204be028004fe09000800000000a4bb00008000bc00a40fa400a400a400a40fbc00800000000000acbb00004000de0ed20ad20ad20ad20ad20ade0b400000000000c0bb000000047c04440444044404440444047c04000400000000f8bb0000fc01040104010401fc0100000000fe0f000000000000f9bb00007c004401440144017c01000100017e0f000000000000fcbb00007c004400440f44087c0800080008fe09000000000000ffbb00007c00440f440944097c09000900097e0900000000000000bc00003c00a40ea40aa40abc0a800a800abe0b00000000000009bc00003c002400240f240a3c0a000a000a7e0f0000000000000cbc00007c084404440344047c08000400037e040008000000000dbc00007c004406440944097c09000900097e090006000000000fbc00003c002409240924093c05800300057e0900080000000011bc00003c00a40fa40aa40abc0a800a800abe0a00000000000014bc0000fc01200120012001fc0100000000fe0f20002000000015bc00007e004801480148017e01000100017e0f10001000000016bc00007e0048014801480f7e00000100017e0f10001000000018bc00007c00500f500850087c0800080008fe091000100000001bbc00007e00480f480948097e09000900097e091000100000001cbc00003c00a80ea80aa80abc0a800a800abe0b0800080000001dbc00003c00a80ea80aa80b3c0880008000be0f0800080000001fbc00003c00a80ea80aa80b3c00000f000abe0f08000800000024bc00007e00480f480948097e09000900097e0f10001000000025bc00007c00480f480a480a7c0a000a000a7c0f10001000000029bc00007e004806480948097e09000900097e061000100000002dbc00007c00c80fc80ac80afc0a800a800abe0a08000800000030bc0000fc0120012001fc010000fe0720002000fe0f0000000031bc00007e00480148017e0100017e01100110017e0f0000000034bc00007c005000500f7c080008fe0910081008fe090000000038bc00003c002800a80ebc0a800abe0a880a880abe0b0000000040bc00007e004800480f7e0900097c09100910097e0f0000000043bc00007e00480848087e0400047e0310041004fe090008000045bc00007e00480048067e0900097e09100910097e060000000049bc00003c002800a80fbc0a800abe0a880a880abe0a0000000084bc0000fc01200120012001fc01200020002000fe0f0000000088bc00007c005000500f50087c08100810081008fe09000000008cbc00003c002800a80ea80abc0a880a880abe0b00000000000094bc00007e00480f480948097c091009100910097e0f0000000095bc00007e004800480f480a7c0a100a100a100a7e0f0000000097bc00007e004808480848047c04100310041004fe0900080000a0bc0000fc0120012001fc0120002000fe070000fe0f00000000a4bc00007c005000500f7c0810081008fe090008fe0900000000a7bc00007e004800480f7c09100910097e0900097e0900000000a8bc00003c002800a80ebc0a880a880abe0a800abe0b00000000bcbc0000fc01200120012001fc01900090009000fe0f00000000bdbc00007e004801480148017c012801280128017e0f00000000c0bc00007c005000500f50087c08280828082808fe0900000000c4bc00003e002800a80ea80abc0aa80aa80abe0b000000000000cdbc00007e004800480f480a7c0a280a280a280a7e0f00000000d1bc00007e004806480948097c092809280928097e0600000000d5bc00007c004800c80fc80afc0aa80aa80abe0a000000000000f4bc000000047c0450045004d007500450047c04000400000000f5bc00008000be01a401a401e401a401a401be0f800000000000f6bc000040005e015401540f7400540154015e0f400000000000f8bc00008000bc0ea808a808e808a808a808bc08800000000000fcbc00004000de0ed40ad40af40ad40ad40ade0b40000000000004bd000040005e0f540954097409540954095e0f40000000000007bd000040045e04540454027401540254045e0440040000000009bd000040005e06540954097409540954095e0640000000000024bd8000bc08a804e802a804a808bc080006fe0410081000000048bd00027c0248024802c80348027c020000fe0f00000000000059bd000040005c0f580a780a580a5c0a000a7c0f00000000000080bd00008000bc00a800a800a80fa800a800bc0080000000000081bd000040007e0164016401e401640164017e0f40000000000084bd00008000bc0ea808a808a80ba808a808bc0880000000000088bd00004000de0ed40ad40ad40ad40ad40ade0b40000000000089bd000040005e0f540b540bd409540154015e0f40000000000090bd000040005e0f54095409d409540954095e0f40000000000093bd000040085e0854045404d402540454045e0840080000000095bd000040005e0654095409d409540954095e0640000000000099bd000040005e0f540b540bd40b540b540b5e0b400000000000d4bd00008000bc00a800a80fa800bc000000fc0f000000000000f0bd00008000bc00a80fa800a800a800a80fbc008000000000000cbe00000004fc0490049004900490049004fc0400040000000010be00008000bc0ea808a808a808a808a808bc0880000000000014be00004000de0ed40ad40ad40ad40ad40ade0b40000000000044be0000fc01200120012001fc0100000000fe0f00000000000045be00007e004801480148017e01000100017e0f00000000000048be00007c00500f500850087c0800080008fe090000000000004cbe00003c002800a80ea80abc0a800a800abe0b00000000000054be00007e00480f480948097e09000900097e0f00000000000057be00007e004808480448047e0300040004fe0900080000000059be00007e004806480948097e09000900097e090006000000005abe00007e004809480948097e05000300057e090000000000005bbe00003e002809280928053e05800300057e0900080000000060be0000fc012001fc01f8002001fc010000fe0f20000000000061be00007e0048017e017e0148017e0100017e0f10000000000068be00003c00a80ebc0abc0aa80abc0a800abe0b08000000000075be00007e0048067e097e0948097e0900097e061000000000007cbe0000fc012001fc01f8002001f800fe072000fe0f000000008fbe00007c007c0800087c0450027c02fe021004fe0800080000a8be00007e00480f7e097e0948097e0900097e0f280000000000d0be0000fc012001fc01f80020012001fc012000fe0f00000000d4be00007c00500f7c087c0850087c0810081008fe0900000000d7be00007e00480f7e097e0948097c09100910097e090000000008bf0000fc012001fc01f80020012001fc019000fe0f0000000009bf00007e0048017e013c0148017c01280128017e0f0000000051bf000040007e0f640a7e0a600a7e0a640a7e0f40000000000055bf000040007e06640964097e097e09640964067e0040000000ccbf8000bc00a800a800bc00800fbc00a800a800bc0080000000d0bf00008000bc0ea808bc08800bbc08a808a808bc000000000058c00004fc0490049004fc040004fc0490049004fc040004000068c0000040007e0f64097e0940097e096409640f7e0040000000acc000010001c0003c004000800000010000fe0f200020000000adc04000400020011c0120014001400100017e0f100010000000b0c080004000200f1e082008400840080008fe09100010000000b4c020002000900e8e0a900aa00aa00a800abe0b080008000000b6c000002000b00e8e0a900b1000a00f8008be0f080008000000bcc040004000200f1c0920094009400900097e0f100010000000bfc04000400820081c042004400340020004fe08100810000000c1c04000400020061c0920094009400900097e06100010000000c8c000000001c0003c00c0010000fe0720002000fe0f00000000c9c00000400020001c01600100017e01100110017e0f00000000ccc00000c00020001c0f60080008fe0910081008fe0900000000d0c00000200010008e0eb00a800abe0a880a880abe0b00000000d8c00000400020001c0f600900097c09100910097e0f00000000ddc00000400020001c06600900097e09100910097e0600000000e4c000020001c0003c00c000000100020000fe0f900090000000ecc020002000900e8e0a900aa00aa00a800abe0b140014000000f5c040004000300f0e0a300a400a400a000a7e0f240024000000f7c04000400820041c041002200140020004fe042808280000001cc100020001c0003c00c0000001200220002000fe0f000000001dc14000400030010e01100120014801080108017e0f000000001ec14000400030010e011001200f4000080108017e0f0000000020c18000800060001c0e20084008800810081008fe090000000024c14000200010008e0e900aa00aa00a880a880abe0b000000002cc140004000300f0e09100920094809080908097e0f000000002dc14000400030000e0f100a600a480a080a7e0f0000000000002fc14000400030080e0410042002400108020804fe040008000031c14000400030060e09100920094809080908097e060000000038c10000000380007c00c00000032000fe0f0000fe0f0000000039c10000400030000e013001400108017e0100017e0f000000003cc10000800060001c0f600880081008fc090008fe090000000040c10000200010008e0e900aa00a880abe0a800abe0b0000000048c10000400030000e0f3009400908097e0900097e0f000000004bc10000400030040e043004400208017e020004fe040004000054c100020001c0003c0040008000080148004800fe0f0000000058c18000400060001c0e20084008800828082808fe090000000074c10000800060001c0f600880082808fe090008fe090000000078c10000400030008e0eb00a800a940abe0a800abe0b000000008cc1000080044004400420049c072004400440048004000000008dc100005000500148014401660148014801500f50000000000090c10000a000a00e90088808e40888089008a008a0000000000094c100005000d00ed00ac80ae60ac80ad00ad00b5000000000009cc100005000500f48094809660948094809500f5000000000009dc100005000500f480a480a660a480a480a500f5000000000009fc1000050085004480444026601440248045004500800000000a1c1000050005006480948096609480948095006500000000000a5c100005000500f500b480b660b480b500b500b500000000000c4c1000020021002ce0310020000fe0f20002000fe0f00000000e0c100004002400220029c03200240020000fe0f000000000000fcc1000440044004200710040c043004200740044004000400000dc200005000480f680a440a460a440a680a480f50000000000018c20000a000a00090008800860f88009000a000a0000000000019c200005000500150014801c60148015001500f5000000000001cc20000a000a00e900890088c0b90089008a008a000000000001fc200005000500f50094809c60948095009500950000000000020c200005000d00ed00ac80ac40ac80ad00ad00b50000000000028c200005000500f50094809c60948095009500f5000000000002bc200005008500850084804c6024804500850085008000000002dc200005000500650094809c6094809500950065000000000002fc200002808280528052405a20324052805280528080000000032c2400050095009500f4809c6094809500f500950094000000050c2000050004800c607480050010001fe070000fe0f0000000058c200002800280f660b280b680b400b7e0b000b7e0b000000006cc20000a000a00090008c0f9000a0000000fe0f00000000000070c240005000500f4808c609480850080008fe090000000000007dc240005000500f480ac40a480a500a000a7e0f00000000000088c20000a0009000900f880086008800900f9000a0000000000090c200002800a80ee80aa40aa20aa40ae80aa80b280000000000a4c2000080044004400420041c04200440044004800400000000a8c20000a000a00e900890088c0890089008a008a00000000000acc200005000d00ed00ac80ac40ac80ad00ad00b500000000000b4c200005000500f50094809460948095009500f500000000000b5c200005000500f500a480a460a480a500a500f500000000000b7c2000050085004500448024603480250045004500800000000b9c2000050005006500948094609480950095006500000000000dcc200020001c0003c00c000000100010000fe0f000000000000ddc24000200030010e0110012001400100017e0f000000000000e0c28000400020001c0f2008400840080008fe09000000000000e3c240004000300f0c0910092009400900097e09000000000000e4c22000200010008e0e900aa00aa00a800abe0b000000000000ebc200002000900e8e0a900b20002005800b3e0b000500000000ecc240004000300f0c0930092009400900097e0f000000000000edc24000400030000c0f300a200a400a000a7e0f000000000000efc24000400830080c043004400340040004fe08000800000000f1c24000400020061c0920094009400900097e09000600000000f6c24000400030080c09100f20094009000f7e09000000000000f8c2000180017c00800080017c0080010000fe0f200000000000f9c2400020001c01200160011c01600100017e0f100000000000fcc2400060001c0f600860081c0860080008fe0910000000000000c3200010008e0e900ab00a8e0ab00a800abe0b08000000000008c3400020001c0f200960091c09600900097e0f1000000000000dc3400020001c06200960091c09600900097e0610000000000013c3200010008e009004900ace0a900a800abe0408000000000029c3000060003c0640093c09600900097e0910097e060000000068c3000280017c00800380017c00800120022000fe0f0000000069c3400030001e01200160011e012001480108017e0f000000006cc3800040003c00400ec0083c08400890081008fe090000000070c3200010008c0eb00ab00a8c0a900aa00a880abe0b0000000079c3400030000e00300f600a1e0a300a400a080a7e0f0000000084c300008001fc000001fc0080012000fc0f0000fe0f0000000088c30000c0003c00c00e3c08c0081008fc090008fe09000000008cc3000020001c00a00e9c0aa00a880abe0a800abe0b00000000d8c30000400420041c042004400720041c042004400400000000dfc300005000480f460948096809480946094809500000000000e0c300005000c80ec60ac80ae80ac80ac60ac80b50000000000064c40000a00090008e009000a00f90008e009000a00000000000f0c40000800460041c046004800460041c046004800400000000f4c40000a000900e8c089008a00890088c089008a00000000000f8c400005000d00ecc0ac80ad00ad80ac40ac80b50000000000000c500005000480f46094809500948094609480f5000000000000cc5400220021c02600260021c02200240020000fe0f0000000028c5000180017c00800180037c00800000010000fe0f0000000029c5400020001c01200160011c012001400100017e0f000000002cc5400060001c0f6008e0081c08600840080008fe090000000030c5200010008e0e900ab00a8e0a900aa00a800abe0b0000000039c5400020001c0f200a600a1c0a200a400a000a7e0f000000003bc5400020001c08200860041c04200340040004fe09000800003dc5400020001c06200960091c092009400900097e060000000044c50000f000080104020801f00000000000fe0f20002000000045c5000038004401440144013801000100017e0f10001000000048c500003800440f44082408380800080008fe0910001000000049c500003800440f4408440c380880048003be041008100000004ac500003800440f440844013805000b800b3e050801080000004cc500001c00a20ea20aa20a9c0a800a800abe0b08000800000053c500003c00c20ec20ac20b3c000005800b3e0508000800000054c500003800440f440944093809000900097e0f10001000000055c500003800440f440a240a180a000a000a7e0f08000800000057c500003800440844044404380300020004fe0810081000000059c5000038004406440944093809000900097e061000100000005ec50000380048094409440f38090009000f7e0910001000000060c50000f80104020402f8010000fe0f20002000fe0f0000000061c50000380044004401440138017c01100110017e0f0000000064c5000038004400440f44083808fe0910081008fe090000000068c5000018002400a40ea40a980abc0a880a880abc0b0000000070c5000038004400440f440938097c09100910097e0f0000000073c50000380044084408440438027e0310041004fe080008000075c50000380044004406440938097e09100910097e06000000007cc50000f000080104020801f00000000000fe0f9000900000007dc5000038004401440144013801000100017e0f28002800000080c500003800440f44084408380800080008fe0948004800000084c500001c00a20ea20aa20a9c0a800a800abe0b14001400000087c500003c00c20ec20ac20b3c00000f000abe0f1400140000008dc500003800440f440a440a380a000a000a7e0f2400240000008fc500003800440844044402380100020004fe0428082800000091c5000038004406440944093809000900097e0628002800000095c500003800c40fc40ac40ab80a800a800abe0a24002400000097c500001c00a200a204a20a9c0a800a800abe0414001400000098c50000f80104020402f8010000fe0f90009000fe0f00000000b4c50000f000080104020801f000200020002000fe0f00000000b5c50000380044004401440128011001100110017e0f00000000b8c5000038004400440f44082808100810081008fe0900000000b9c500003800440f44082404a800900c90039004be0800000000bbc5000038004400440f440928091009100910097e0900000000bcc500001c002200a20ea20a940a880a880abe0b000000000000c4c500003800440f4409440928091009100910097e0f00000000c5c5000038004400440f440a280a100a100a100a7c0f00000000c6c500003800440f440a440a280f1000100c10037c0400080000c7c5000038004408440444042802100110021004fe0800080000c9c50000380044064409440928091009100910097e0600000000cac50000380044084409440928051003100510097e0900000000ccc50000380044044405440528051005100510057e0f00000000cec50000380044084409440f28091009100f10097e0900000000d0c50000f80104020402f80120002000fe0f0000fe0f00000000d1c500003800440044014401380110017c0100017e0f00000000d4c5000038004400440f440838081008fe090008fe0900000000d8c5000018002400a40ea40a980a880abc0a800abc0b00000000e0c5000038004400440f4409380910097c0900097e0f00000000e3c500003800440844084404380210037e040004fe0800080000ecc50000f800040104020401f800880088008800fe0f00000000edc50000380044014401440138012801280128017e0f00000000f0c5000038002800440f44083808280828082808fe0900000000f4c500001c002200c20ec20abc0aa40aa40abe0b000000000000f7c500003c00c20ec20ac20b3c00a40f24092409be0f00000000fcc500003800440f4409240938092809280928097e0f00000000fdc5000038004400440f440a3c0a240a240a240a7e0f00000000ffc5000038004408440444043802280128022804fe040008000001c60000380044064409440938092809280928097e060000000006c60000380044084409440f38092809280f28097c090000000008c60000f80104020c03f00090009000fe0f0000fe0f0000000010c6000018002400a40ea40abc0aa40abe0a800abe0b0000000019c6000038004400440f240a3c0a240a7e0a000a7e0f000000001bc600003800440844084404380228017c020004fe080008000024c600000004300448048404840784044804300400040000000025c6000040005c01520162016201620152015c0f40000000000028c6000080009c0e9408a208e208a20894089c088000000000002cc600004000cc0ed20ad20af20ad20ad20acc0b4000000000002ec600004000cc0ed20ad20b7200d20fd208cc0f40000000000033c600004000cc0ed20ad20b72005205520b4c0b40050000000035c6000040004c0f520a520a720a520a520a4c0f40000000000037c6000040005c08520462026201620252045c0840000000000039c6000040005c06520962096209620952095c064000000000003bc6000040004c09520952057203520552054c0940000000000040c6000018022402c4032402240218020000fe0f20002000000041c680009c00a201e201a20194019c0100017e0f10001000000044c680009800a40ee408a408a40898080008fc0b20002000000051c640004c00520f720a520a520a4c0a000a7e0f10001000000055c640005c0062066209620954095c0900097e061000100000005cc6000038014401c40144013800fe0740004000fe0f0000000060c600009800a400c40ea40898080008fc092008fe0b0000000078c60002300248024402c403440238020000fe0f0000000000007cc680009c00920ea208e208a2089c080008fe0900000000000094c6000000043804c807440444044404c807380400040000000095c6000080009c01e201a201a201a201e4019c0f800000000000a9c6000040004c06720952095209520972094c06400000000000b0c6000080009c009400a200a20fa20094009c00800000000000b1c6000040005c0162016201e201620162015c0f400000000000b4c6000040005c0f64086208e20b620854085c08400000000000b8c600004000cc0ed20ad20ad20ad20ad20acc0b400000000000c0c6000040004c0f52095209d209520952094c0f400000000000c3c6000040004c0852085204d202520452084c08400000000000c5c6000040005c0662096209e209620962095c06400000000000ccc680009800a400a400a407a40098010001fe0f000000000000cdc620002c003202f20232023202ac028002fe0e000000000000d0c640004c00520f5208d20952080c088008fe09000000000000d4c620002c00320f320b720b320b2c0b000b7e0b000000000000e8c6400058006400e407640058010001fc070000fe0f00000000ecc600004800540ed4085408c8088008fc090008fe0b00000000f0c600002c00320f720b320b6c0b400b7e0b000b7e0b00000000f9c600002c00320f720a320a6c0a400afe0a000a7e0f0000000004c780009800a400a400a40fa40098000000fc0f00000000000008c740005c00620f6208e20962085c080008fe090000000000000cc720002c00b20eb20af20ab20aac0a800abe0b00000000000017c740004c0052085208d20952044c030004fe0900080000000019c740004c005206520ad20952094c0900097e0600000000000020c7000080009c00a20fa200a200a200a20f9c0080000000000021c7000040005c01e201620162016201e2015c0f40000000000024c7000040005c0e6408e20b62086208e20b5c0840000000000028c700004000cc0ed20ad20ad20ad20ad20acc0b40000000000035c7000040004c06d209520952095209d2094c064000000000003cc70000000430044804840484048404480430040004000000003dc7000040005c01620162016201620164015c0f40000000000040c7000080009c0ea408a208a208a208a4089c0880000000000044c700004000cc0ed20ad20ad20ad20ad20acc0b4000000000004cc7000040005c0f620962096209620962095c0f4000000000004dc7000040004c0f520a520a520a520a520a4c0f40000000000051c7000040005c06640962096209620964095c0640000000000058c700023802440244024402440238020000fe0f00000000000074c70000f0000801040204020801f0000000fe0f00000000000075c7000038004401440144014401380100017e0f00000000000078c7000038002800440f4408440838080008fe090000000000007cc700001c001400a20ea20a9c0a800a800abe0b0000000000007dc700003800c40ec40ac40ab80b00088000bc0f00000000000083c700001c00a20ea20aa20b1c000005800b3e0b00050000000084c700003800440f440944092809380900097e0f00000000000085c7000038002800440f440a440a380a000a7e0f00000000000087c700003800440844044402440138020004fe0800080000000088c7000038084404440344042808300400037e0400080000000089c7000038004406440944092809380900097e090006000000008ac7000038004408440944094405380300057e090000000000008ec70000380044094409440f28093809000f7e0900000000000090c700020401c4003c004400840004010000fe0f20002000000091c74000440024011c0124014401440100017e0f10001000000094c780004400240f1c082408440844080008fe0910001000000096c700004400340f0c0814002405200b800b3e0508010800000098c740002400940e8c0a940aa40aa40a800abe0b080008000000a0c740004400240f1c0924094409440900097e0f100010000000a1c740004400240f1c0a240a440a440a000a7e0f100010000000a3c78000440824081c042404440340020004fe08100810000000a5c78000440024061c0924094409440900097e06100010000000a6c74000440824091c0924054403440500097e09100010000000acc700000401c4003c00c4010000fe0720002000fe0f00000000adc70000440024001c01640100017e01100110017e0f00000000bcc70000440024001c0f640900097e09100910097e0f00000000c1c70000440024001c06640900097e09100910097e0600000000c8c700020401c4003c00c400040104020000fe0f900090000000ddc78000440024061c0924094409440900097e0628002800000000c800020401c4003c00c4000401240220002000fe0f0000000001c84000440024011c01240144015401100110017e0f0000000004c88000440024001c0f24084408840810081008fe090000000008c84000240014008c0e940aa00aa80a880abe0b0000000000000ac800002400a40e9c0aa40b2400840f9008be0f00000000000010c840004400240f1c09240944095409100910097e0f0000000011c84000440024001c0f240a440a500a100a7e0f00000000000013c88000440024081c0824044404440310041008fe090008000015c88000440024061c09240944095409100910097e060000000016c84000440024091c09240944055403100510097e09000000001cc80000040284017c00840024032000fe0f0000fe0f000000001dc80000440024001c012401440110017e0100017e0f0000000020c80000840064001c0f240844081008fe090008fe090000000024c80000240014008c0e940aa00a880abc0a800abe0b000000002cc80000440024001c0f2409440910097e0900097e0f000000002fc80000840064081c082404440410037e040008fe090008000038c800020401c4003c0044008400040150005000fe0f000000003cc88000440024001c0f240844088c0828082808fe090000000070c8000084044404440424049c0724044404440484040000000071c800005000520152014a0166014a015201520f50000000000074c80000a000a40ea4089408cc089408a408a408a0000000000078c800005000d20ed20aca0ae60aca0ad20ad20b50000000000080c800005000520f52094a0966094a095209520f50000000000081c800005000520f520a4a0a660a4a0a520a520f50000000000085c800005000540654094c096c094c09540954065000000000008bc820002a012a052a0b2a0ba60b2a0b2a0b32053201200000008cc88002440224029c032402440244020000fe0f400040000000c4c800004002440224029c03240244020000fe0f000000000000e0c8000484044404440724041c04240444074404840400040000e4c80000a000a40ea40894088c089408d4089408a40880000000fcc80000a000a400a40094008c0f9400a400a400a00000000000fdc800005000520152014a01c6014a015201520f50000000000000c90000a000a40ea40894088c0b9408a408a408a0000000000004c900005000d20ed20aca0ac60aca0ad20ad20b5000000000000cc900005000520f52094a09c6094a095209520f5000000000000dc900005000520f520a4a0ac60a4a0a520a520f50000000000011c900005000540654095409cc0954095409540650000000000018c90000a000a40094008c079400a4010001fe0f00000000000050c90000a000a40094008c0f9400a4000000fe0f0000000000006cc98000a400a400a40f94008c009400a40fa400a4008000000088c9000084048404440424041c0424044404840484040000000089c9000050005401540154014c0154015401540f5000000000008cc90000a000a40ea40894088c089408a408a408a0000000000090c900003000b20eaa0aaa0aa60aaa0aaa0ab20b30000000000098c900005000520f52094a0946094a095209520f50000000000099c900005000520f520a4a0a460a4a0a520a520f5000000000009dc9000050005406540954094c09540954095406500000000000c0c900020401c4003c00c400040104020000fe0f000000000000c1c900004000440024011c012401440100017e0f000000000000c4c9000080004400240f1c08640884080008fe09000000000000c7c940004400240f1c0924094409400900097e09000000000000c8c94000240014008c0e940aa40aa00a800abe0b000000000000d0c900004000440f24091c092409440900097e0f000000000000d1c9000040004400240f1c0a240a440a000a7e0f000000000000d3c900008000440824081c04640340040008fe09000800000000d5c900008000440624091c092409440900097e09000600000000d9c920002400940f8c0a940aa40aa00a800abe0a000000000000dac900004000440824091c0f24094409000f7e09000000000000dcc9000184017c00840380007c0084010000fe0f200000000000ddc9400024001c01640160011c01640100017e0f100000000000e7c9200014008c0eb40aa00b1c00b40f000abe0f080000000000f1c9400024001c06640960091c09640900097e06100000000000f8c9000084017c0080017c0084010000fe072000fe0f000000000cca000064083c0c40033c04640800047e031004fe08000800004cca000284017c00840180037c00840120022000fe0f000000004dca400024001c01640120011c012401440110017e0f0000000050ca800044003c00c40e40083c08440894081008fe090000000054ca200034009c0ea40ab00a8c0a940aa00a880abe0b000000005cca400024001c0f640960091c092409440910097e0f00000000bdca000052004a0146014a0168014a0146014a0f520000000000d3ca000052004a0946054a0568034a0546054a0952000000000048cb0000a400a4009c00a400a00fa4009c00a400a4000000000049cb0000540054014c015401d00154014c01540f540000000000d4cb0000840464043c044404800444043c0464048404000000000ccc000284017c00840180037c00840104020000fe0f000000000dcc400024001c01640120011c012401440100017e0f0000000010cc800064003c0ec40840083c08640884080008fe09000000001ccc400024001c0f240960091c092409440900097e0f0000000022cc400024001c09640920051c032405440500097e090000000028cc00010801c8003e00c800080108010000fe0f20002000000029cc4000440024011e0124014401440100017e0f1000100000002ccc80004400240f1e082408440844080008fe091000100000002ecc00004400340f0e0814012405200b800b3e0508010800000030cc20002400940e8e0a940aa40aa40a800abe0b08000800000038cc40004400240f1e0924094409440900097e0f1000100000003bcc4000440824081e042402440344020004fe081008100000003dcc8000440024061e0924094409440900097e061000100000003ecc4000440824091e0924054403440500097e0910001000000044cc00000801c8003e00c8010000fe0720002000fe0f0000000045cc0000440024001e01640100017e01100110017e0f000000004ccc0000240014008e0eb40a800abe0a880a880abe0b0000000054cc0000440024001e0f640900097e09100910097e0f0000000059cc0000440024001e06640900097e09100910097e060000000060cc0002080188007e00c800080108020000fe0f90009000000064cc80008400640e1e082408440884080008fe0948084800000098cc00020801c8003e00c8000801280120002000fe0f0000000099cc4000440024011e01240144015401100110017e0f000000009ccc8000440024001e0f24084408840810081008fe0900000000a0cc4000240024009e0ea40aa40a840a900abe0b000000000000a8cc40004400240f1e09240944095409100910097e0f00000000a9cc4000440024001e0f240a440a540a100a7e0f000000000000abcc8000440024081e0424044402440110021004fe0900080000adcc8000440024061e09240944095409100910097e0600000000b4cc00000801c8003e00c80008012000fe070000fe0f00000000bccc0000440024009e0ea40a840a900abe0a800abe0b00000000d0cc0002080288017e008800080118029000fe0f00000000000008cd000080048804480428043c0728044804880480040000000009cd0000a000a402a4029402ce029402a402a40ea000000000000ccd0000a000a40ea4089408ce089408a408a408a000000000001bcd0000a008a408a4089404ce029404a408a408a008000000001dcd0000a000a406a4099409ce099409a409a406a000000000002ccd00005400540f4e0b540b540b540b000b7e0b1000100000005ccd00004002440224029e03240244020000fe0f00000000000078cd000488044804480728041c0428044807480488040004000094cd000040014401240114011e0f14012401440140010000000095cd00005000540154015401ce0154015401540f50000000000098cd0000a000a40ea40894088e0b9408a408a408a000000000009ccd00006000640f540b540bce0b540b540b640b600000000000a4cd00005000540f54095409ce0954095409540f500000000000a5cd00006000640f540a540ace0a540a540a640f600000000000a7cd00005008540854045404ce02540454045408500800000000a9cd00005000540654095409ce09540954095406500000000000e8cd0000a000a40094008e0f9400a4000000fe0f00000000000004ce8000a400a400a40f94008e009400a40fa400a4008000000020ce000080048804880448043c0448048804880480040000000021ce000050005401540154014e0154015401540f50000000000030ce00005000540f540954094e0954095409540f50000000000035ce000050005406540954094e0954095409540650000000000058ce00000002080188007e00880108020000fe0f00000000000059ce00004000440024011e012401440100017e0f0000000000005cce000080004400240f1e082408c4080008fe0900000000000060ce000020002400940e8e0a940aa40a800abe0b00000000000068ce40004400240f24091e092409440900097e0f00000000000069ce000040004400240f1e0a240a440a000a7e0f0000000000006bce00004000440824041e06240140020004fe040008000000006dce00004000440624091e092409440900097e0900060000000074ce000024022401940064001c0000000000fe0f20002000000075ce000054005401340134010c01000100017e0f10001000000078ce10005400540f340814080c0800080008fe091000100000007cce00002a00aa0eaa0a9a0a860a800a800abe0b08000800000084ce00005400540f540934090c09000900097e0f10001000000085ce00005400540f340a340a0c0a000a000a7e0f10001000000089ce000094005406540934090c09000900097e0610001000000090ce20012401940074001c000000fe0720002000fe0f0000000094ce000090005400340f1c080008fe0910081008fe0900000000a0ce000090005400340f0c0900097e09100910097e0f00000000a1ce000090005400340f0c0a000a7c0a100a100a7e0f00000000a3ce90009400540834080c0400027e0310041004fe0900080000e4ce000024022401a40064001c0000002000fe0f000000000000e8ce000090005400540f3c080c08000810081008fe0900000000ecce000050005400340eb40a8c0a800a900a900abe0b00000000f4ce000090005400540f34090c090009100910097e0f00000000f5ce000090005400540f340a0c0a000a100a100a7e0f00000000f7ce000090005404340834040c02800110021004fe080004000000cf10012401940054003c0020002000fe070000fe0f0000000004cf000094005400340f1c0810081008fe090008fe090000000008cf000050005400340e9c0a900a900abc0a800abe0b0000000010cf000090005400340f1c09100910097e0900097e0f0000000013cf90009400540834041c04100210017e020004fe08000800001ccf000024022401a40064001c0090009000fe0f00000000000054cf0004240424042404a407240424042404fc0400040000000058cf00008000940e94089408d40894089408bc088000000000005ccf00004000ca0eca0aca0aea0aca0aca0ade0b40000000000064cf000040004a0f4a094a096a094a094a095e0f40000000000065cf000040004a0f4a0a4a0a6a0a4a0a4a0a5e0f40000000000069cf000040004a064a094a096a094a094a095e0640000000000070cf000024022402a40324022402fc020000fe0f4000400000008ccf10012401a401140114017c010000fe074000fe0f00000000c4cf000420042404a40724042404a4072404fc04000400000000e0cf00008000940094009400940f94009400fc00800000000000e1cf00004000520152015201d201520152017e0f400000000000e8cf00002000aa0eaa0aaa0aea0aaa0aaa0abe0b200000000000fccf400054005400d407540054007c010001fe0f00000000000034d00000400054005400d40754007c0040000000fe0f0000000035d00000400054005401d40154017c0100017e0f00000000000038d040005400540f5408d40954087c080008fe090000000000003cd020002a00aa0eaa0aea0aaa0abe0a800abe0b00000000000050d0000090009400940f940094009400940ffc008000000000006cd000022002240224022402240224022402fc0200020000000070d000004000540f540854085408540854087c0840000000000074d000002000ac0eac0aac0aac0aac0aac0abc0b2000000000007cd000004000520f520952095209520952097e0f400000000000a4d0000224022401a40064001c0000000000fe0f000000000000a8d0000090009400540e34080c0800080008fe09000000000000acd048002a00aa0e9a0a9a0a860a800a800abe0b000000000000b4d0000090005400540f34090c09000900097e0f000000000000b9d0000094005406540934090c09000900097e09000600000000c0d00000fc01240124012401240100010000fe0f200020000000c1d000007c005401540154015401400100017e0f100010000000c4d00000fc00940e94089408940880080008fe09100010000000c8d000003c00ac0eac0aac0aac0aa00a800abe0b080008000000d0d000007c00540f540954095409400900097e0f100010000000d1d000007c00540f540a540a540a400a000a7e0f100010000000d3d000007c00540854045402540140020004fe08100810000000d5d000007c005406540954095409400900097e06100010000000dcd00000fc012401240124010000fe0720002000fe0f00000000ddd000007c0054015401540100017e01100110017e0f00000000e0d000007c005400540f54080008fe0910081008fe0900000000e4d000007c005400d40ed40a800abc0a880a880abe0b00000000ecd000007c005400540f540900097c09100910097e0f00000000edd000007c005400540f540a000a7c0a100a100a7e0f00000000f1d000007c0054005406540900097e09100910097e060000000030d10000fc012401240124012401000120002000fe0f0000000031d100007c0054015401540154014001100110017e0f0000000034d10000fc009400940e94089408800810081008fe090000000038d100007c005400d40ed40ad40ac00a880abe0b00000000000040d100007c00540f5409540954094009100910097e0f0000000045d100007c0054065409540954094009100910097e06000000004cd10000fc0124012401240100012000fe070000fe0f000000004dd100007c00540154015401400110017e0100017e0f0000000050d10000fc009400940e940880081008fe090008fe0b0000000054d100007c005400d40ed40ac00a880abc0a800abe0b000000005cd100007c005400540f5409440910097e0900097e0f000000005dd100007c005400540f540a440a100a7c0a000a7e0f00000000a0d100000004fc04940494049407940494049404000400000000a1d100008000be02aa02aa02ea02aa02aa02aa0e800000000000a4d100008000be0eaa08aa08ea08aa08aa08aa08800000000000a8d1000040005e0f5a0b5a0b7a0b5a0b5a0b5a0b400000000000b0d100008000be0faa09aa09ea09aa09aa09aa0f800000000000b1d100008000be0eaa0aaa0aea0aaa0aaa0aaa0e800000000000b5d100008000be06aa09aa09ea09aa09aa09aa06800000000000f4d1000000027c025402d403540254020000fe0f0000000000002cd2000000017c0154015401540f54015401540100010000000034d2000040005e0f5a0b5a0bda0b5a0b5a0b5a0b4000000000003cd200008000be0faa09aa09aa09aa09aa09aa0f80000000000041d200008000be06aa09aa09aa09aa09aa09aa0680000000000080d200008000bc00b400b407b400b4000000fe0f0000000000009cd2000000017c01540f540154015401540f5401000100010000b8d200000004fc04940494049404940494049404000400040000b9d200008000be02aa02aa02aa02aa02aa02aa0e800000000000bcd200008000be0eaa08aa08aa08aa08aa08aa08800000000000bfd200008000be0faa09aa09aa09aa09aa09aa09800080000000c0d2000040005e0f5a0b5a0b5a0b5a0b5a0b5a0b400000000000c8d200008000be0faa09aa09aa09aa09aa09aa0f800000000000f0d20000fc01240124012401240100010000fe0f000000000000f1d200007c005401540154015401400100017e0f000000000000f4d200007c005400540f5408540840080008fe09000000000000f8d200003c002c00ac0eac0aac0aa00a800abe0b00000000000000d300007c00540f540954095409400900097e0f00000000000001d300007c005400540f540a540a400a000a7e0f00000000000005d300007c005406540954095409400900097e090006000000000cd300000401fc0104010401fc0104010000fe0f2000200000000dd3000044007c01440144017c01440100017e0f1000100000000ed3000044007c014401440f7c00440100017e0f10001000000010d300008400fc0e84088408fc0884080008fe0910001000000014d300002400bc0ea40aa40abc0aa40a800abe0b0800080000001cd3000044007c0f440944097c09440900097e0f1000100000001dd3000044007c0f440a440a7c0a440a000a7e0f1000100000001fd3000044007c08440444047c0344020004fe0810081000000028d300000401fc010401fc010000fe0720002000fe0f0000000029d3000044007c0044017c0100017e01100110017e0f000000002cd3000044007c00440f7c080008fe0910081008fe09000000007cd300000401fc0104010401fc01040120012000fe0f000000007dd3000044007c01440144017c014401500110017e0f0000000080d3000044007c00440f44087c08440850081008fe090000000084d3000044007c00c40ec40afc0ac40ac00a880abe0b000000008cd3000044007c0f440944097c094409500910097e0f0000000098d300000401fc010401fc0104012000fe070000fe0f0000000099d3000044007c0044017c01440110017e0100017e0f000000009cd3000044007c00440f7c0844081008fe090008fe0900000000a0d3000044007c00c40efc0ac00a880abc0a800abe0b00000000a8d3000044007c00440f7c09440910097e0900097e0f00000000abd3000044007c0844087c04440210037e040004fe0800080000b4d300000401fc0104010401fc01040150015000fe0f00000000b8d300008400fc00840e8408fc08a80828082808fe0900000000bcd3000044007c00c40ec40afc0ad80a980a980abe0b00000000c9d3000044007c06440944097c096809280928097e0600000000d0d300000401fc010401fc0104015000fe070000fe0f00000000ecd30004440444047c044404c40744047c044404440400040000edd38000a200a202be02a202e202a202be02a20e800000000000f0d300008000a40ebc08a408e408a408bc08a408a40080000000f4d300004000520f5e0b520b720b520b5e0b520b520040000000fcd300004000520f5e095209720952095e09520f40000000000001d44000520052065e095209720952095e0952064000000000005cd4000444044404fc07440444044404fc07440444040004000078d48000a400a400bc00a400a40fa400bc00a400a4008000000079d44000620062027e026202e20362027e02620e4000000000007cd400008000a40ebc08a408a40ba408bc08a408a4008000000080d400004000520f5e0b520bd20b520b5e0b520b52004000000088d400004000520f5e095209d20952095e09520f4000000000008bd44000520852085e045204d20252045e0452085208400000008dd44000520052065e095209d20952095e095206400000000000e8d48000a400a400bc0fa400a400a400bc0fa400a4008000000004d5000484048404fc04840484048404fc04840484040004000008d500008000a40ebc08a408a408a408bc08a408a400800000000cd500004000520f5e0b520b520b520b5e0b520b52000000000014d500004000520f5e095209520952095e09520f4000000000003cd500000401fc0104010401fc0104010000fe0f0000000000003dd5000044007c01440144017c01440100017e0f00000000000040d500008400fc0e84088408fc0884080008fe0900000000000044d500002400bc0ea40aa40abc0aa40a800abe0b0000000000004cd5000044007c0f440944097c09440900097e0f0000000000004fd5000044007c08440444027c0144020004fe0800080000000051d5000044007c06440944097c09440900097e0900060000000058d50800e80118021c021802e80108000000fe0f20002000000059d5040074008c018e018c017401040100017e0f1000100000005cd504006400940e96089408640804080008fe0920002000000060d504003400cc0ece0acc0ab40a840a800abe0b10001000000068d5040074008c0f8e098c097409040900097e0f10001000000069d5040034004c0f4e0a4c0a340a040a000a7e0f1000100000006bd504006408940896089404640204040008fe091008100000006dd5040064009406960994096409040900097e0610001000000074d50000c80028011c0168018000fe0740004000fe070000000075d50000640094009601940160017e01100110017e0f0000000078d5000064009400960e94086408fe0920082008fe090000000084d5000064009400960f940964093e09100910097e0f0000000087d5000064009408960894086404fe0210041008fe090008000089d50000640094009606940964093e09100910097e0600000000a5d5040064009406960994096409040900097e06280028000000c8d50800c80128022c022802c801080040004000fe0f00000000ccd5040064009400960e94086408040820082008fe0900000000d8d5040074008c0f8e098c0974090409100910097e0f00000000dbd5040064009408960894046404040310041008fe0900080000e4d50000e80118021c021802e8010000fe0f0000fe0f00000000ecd5000034004c00ce0ecc0ab40a800abe0a800abe0b00000000f4d5000064009400960f9409740910097e0900097e0f0000000000d60800e80018011c021801e8000800a000a000fe0f0000000001d6040074008c018e018c0174010401500150017e0f0000000004d6040064009400960e94086408040850085008fe090000000008d6040034004c004e0f4c0b340b000b280b7e0b00000000000011d6040074008c008e0e8c0a740a040a500a500a7e0f0000000015d60400640094069609940964090409500950097e06000000001cd60000e80118021c023803e800a000fe0f0000fe0f0000000038d6000008046804980498049c0798049804680408040000000039d600008400b402cc02cc02ce02cc02cc02b40e8400000000003cd600008400b40ecc08cc08ce08cc08cc08b40884000000000040d600004400540f6c0b6c0b6e0b6c0b6c0b540b44000000000048d600008400940eac0aac0aee0aac0aac0a940e84000000000049d600008400940eac0aac0aee0aac0aac0a940e8400000000004dd6000084009406ac09ac09ee09ac09ac09940684000000000054d604026402940296039402640204020000fe0f40004000000055d68400b402cc02ce02cc02b40284020002fe0e10001000000058d68400b400cc0ece08cc08b40884080008fe092000200000005cd6000054006c0f6e0b6c0b540b440b000b7e0b10001000000069d680009400ac06ee09ac099409840900097e061000100000008cd600000402640294029603940264020000fe0f0000000000008dd600008400b400cc02ce02cc02b4020002fe0e0000000000009fd600008400b408cc08ce04cc02b4040004fe09000800000000a1d6000084009406ac09ee09ac09940900097e09000600000000a8d6000408046804980798049c04980498076804080400040000c4d600000401240154015401560f540154012401040100000000c8d600008400b40ecc08cc08ce09cc08cc08b408840000000000ccd600004400540f6c0b6c0bee0b6c0b6c0b540b440000000000d4d600008400940eac0aac0aae0bac0aac0a940e840000000000e8d600004400540f6c0b6e0b6c0bd40b800bfe0b000000000000fcd68000b400cc00ce0fcc00b4020002fe0f0000fe0f0000000000d780009400ac00ae0dac0894090009fe0b0008fe0b0000000018d70000040134014c014e0f4c0134010000fe0f00000000000020d740004400540f6c0bee0b6c0b540b000b7e0b00000000000034d7000004012401540f540156015401540f240104010001000049d7000084009406ac09ac09ae09ac09ac09940684000000000050d700000804e804180518051c0518051805e80408040000000051d700008400b402cc02cc02ce02cc02cc02b40e84000000000054d700008400b40ecc08cc08ce08cc08cc08b40884000000000058d700004400540f6c0b6c0b6e0b6c0b6c0b540b44000000000059d740004400540f6c0b6c0b6e086c016c01540f44000000000061d700008400940eac0aac0aae0aac0aac0a940e84000000000065d700008400b406cc09cc09ce09cc09cc09b40684000000000069d700004400540f6c0b6c0b6e0b6c0b6c0b540b4400000000006cd700000402640294029602940264020000fe0f00000000000070d700008400b40ecc08ce08cc08b4080008fe0900000000000088d70800c800280118021c021802e8010000fe0f0000000000008cd7040064009400940e9608940864080008fe0900000000000090d704003400cc0ecc0ace0acc0ab40a800abe0b00000000000098d7040074008c0f8c098e098c09740900097e0f00000000000099d7040034004c004c0f4e0a4c0a340a000a7e0f0000000000009dd7040064009406940996099409640900097e0900060000000010fe000000000000000000000000000008000b0006000000000011fe00000000000000000000000000000000020004000800000012fe000000000000000000000000000000000c00120012000c0013fe000000000000000000000000000000000c0308020000000014fe000000000000000000000000000000088c0508030000000015fe000000000000000000000000000000007e0300020000000016fe000000000000000000000000040002004203620212000c0017fe800f8004800280028001800180018001800280028004800f18fe3e0024002800280030003000300030002800280024003e0019fe00000000000000000000660644040000000000000000000030fe000000000000000000000c0308020000000000000000000031fe00000000000000000000fe0700000000000000000000000032fe00000000000000000000e00000000000000000000000000033feff0f0000000000000000000000000000000000000000000034fe99096606000000000000000000000000000000000000000035fe00080004000400020002000200020002000400040008000036fe02000400040008000800080008000800040004000200000037fe00080004000400040004000200040004000400040004000838fe02000400040004000400080004000400040004000400020039fe0008000400020002000200020002000200020004000800003afe0200040008000800080008000800080008000400020000003bfe000e000600020002000200020002000200020006000e00003cfe0e000c0008000800080008000800080008000c000e0000003dfe000a000900058004800280028002800400050009000a00003efe0a000a0012001400240028002400140012000a000a0000003ffe00080004000400020002000100020002000400040008000040fe02000400040008000800100008000800040004000200000041fe00000000000000010001000100010001000100010001000f42fe1e001000100010001000100010001000100000000000000043fe000000000000000300030003000300030003000f0009000f44fe1e0012001e0018001800180018001800180000000000000045fe000000000800100030007000e000c003c00700030000000046fe00000000080018002800c80010032004400480030000000047fe000e0002000200020002000200020002000200020002000e48fe0e0008000800080008000800080008000800080008000e0049fe0000000002000200000002000200000002000200000000004afe0000000002000200000002000000020002000200000000004bfe0200020002000200020002000200020002000200020002004cfe0a000a000a000a0006000a000a000a0006000a000a000a004dfe0000000000040004000000040004000000040004000000004efe0000000000040004000000040000000400040004000000004ffe00040008000800040004000800080004000400080008000450fe00000000000000000000000a00060000000000000000000051fe00000000000000000002000400080000000000000000000052fe00000000000000000000000000040000000000000000000054fe00000000000000000000200a00060000000000000000000055fe00000000000000000000400400000000000000000000000056fe00000000000020001000100d90006000000000000000000057fe000000000000000000000000f00d0000000000000000000058fe00000000000000020002000200020002000200020000000059fe00000000000000000000c003300c000000000000000000005afe00000000000000001000200cc003000000000000000000005bfe00000000000000000000e0071008000000000000000000005cfe0000000000000000100860078000000000000000000000005dfe00000000000000000000e0071008000000000000000000005efe000000000000000000001008e007000000000000000000005ffe00000000000000004005f003e0075001000000000000000060fe00000000000000066009900960060006000900000000000061fe00000000000000006000300060000000000000000000000062fe00000000000000010001c00700010001000000000000000063fe00000000000000000001000100010001000000000000000064fe00000000000000008000800180014002400200000000000065fe00000000000040024002800180010001000000000000000066fe00000000000000004002400240024002000000000000000068fe00000000000000001000e00000070008000000000000000069fe000000000000000060029004980c900420030000000000006afe00000000e0001001e00c0003c000300780080007000000006bfe00000000c00320049009500a500990092002c0010000000001ff00000000000000000000fc0600040000000000000000000002ff00000000000000000f00000000000f00000000000000000003ff0000000090009004fc0390009004fc03900090000000000004ff000000000000180224044404460c8404080300000000000005ff00007800840084047802c0013000c80324042004c003000006ff00000000800378044404a40418030003c00400040000000007ff000000000000000000000f0000000000000000000000000008ff00000000000000000000000000000000f0010c060208000009ff000002080c06f001000000000000000000000000000000000aff0000000010011001a0004000fc074000a0001001100100000bff00004000400040004000fc074000400040004000000000000cff000000000000000000016001c000000000000000000000000dff0000400040004000400040004000400040004000000000000eff0000000000000000000060004000000000000000000000000fff00080004000200018000400020001000080004000200000010ff000000000000f0010802040404040802f00100000000000011ff000000000000000404040404fc070004000400000000000012ff0000000000000804080404060405c404380400000000000013ff0000000000000802080444044404a404b80300000000000014ff0000000000008001600110010801fc07000100000000000015ff0000000000027c022404240424044402840100000000000016ff000000000000f0014802240424042402c80300000000000017ff00000000000004000400840764001c00040000000000000018ff00000000000098036404440444044404b80300000000000019ff00000000000078028404840484044802f0010000000000001aff0000000000000000000018031002000000000000000000001bff000000000000000000088c050803000000000000000000001cff000040004000a000a00010011001080208020404000000001dff0000a000a000a000a000a000a000a000a000a000000000001eff0000000004040802080210011001a000a0004000400000001fff000000000000080004008406c4042400180000000000000020ff0000e00118020404e40812099208e208120584007800000021ff0000000000040003f0008c008c00f000000300040000000022ff000000000000fc074404440444044404b80480030000000023ff000000000000f0010802040404040404040408020000000024ff000000000000fc0704040404040404040802f0010000000025ff000000000000fc074404440444044404040400000000000026ff0000000000000000fc07440044004400440004000000000027ff00000000f000080308020404040444044404c8030000000028ff00000000fc07400040004000400040004000fc070000000029ff00000000000004040404fc070404040400000000000000002aff0000000000000002000400040004fc0300000000000000002bff000000000000fc07400020005000880104020404000000002cff0000000000000000fc0700040004000400040000000000002dff00000000fc070800700080030001f0000800fc07000000002eff000000000000fc0708003000400080010002fc07000000002fff00000000f001080204040404040404040802f0010000000030ff000000000000fc078400840084008400480038000000000031ff00000000f8000401020202020206020a0409f8080000000032ff000000000000fc07440044004400c400440338040000000033ff00000000000018022404440444048404080300000000000034ff00000000040004000400fc0704000400040000000000000035ff00000000fc01000200040004000400040002fc010000000036ff0000000004003800c00100060006c001380004000000000037ff0c00f0010006800370000c00780080030006f0010c00000038ff00000000000004040c02b0014000b0010c0204040000000039ff0000000004001800600080076000180004000000000000003aff000000000000040404078404440434040c040404000000003bff000000000000000000000000000000000000fe0f020802083cff0200040008001000200040008000000100020004000800003dff02080208fe0f0000000000000000000000000000000000003eff0000000000000000020001000100020000000000000000003fff00080008000800080008000800080008000800080008000840ff00000000000000000100010002000000000000000000000041ff00000000000020039004900490049002e00700000000000042ff000000000000fe072004100410042002c00100000000000043ff000000000000c0012002100410041004200200000000000044ff000000000000c0012002100410041002fe0700000000000045ff000000000000c001a00290049004a004e00200000000000046ff00000000000010001000fc0712001200120000000000000047ff000000000000b8064409440944093c09040500060000000048ff000000000000fe072000100010001000e00700000000000049ff000000000000000000000600f007000000000000000000004aff000000000000000000000000fb0f000000000000000000004bff0000000000000000fe078000c000200110061004000000004cff00000000000000000000fe030004000400040000000000004dff0000f0072000100010001000e007200010001000e00700004eff000000000000f0072000100010001000e0070000000000004fff000000000000c0012002100410042002c00100000000000050ff000000000000fc0f0801040104018800700000000000000051ff00000000000070008800040104010401fc0f00000000000052ff0000000000000000f007200010001000100000000000000053ff00000000000060025004900490049004200300000000000054ff00000000000010001000fc0310041004100400000000000055ff000000000000f0030004000400040002f00700000000000056ff00000000100060008003000480036000100000000000000057ff00001000e0010006800360003000c0030006c0013000000058ff00000000000010043002c00140013002100400000000000059ff0000000004081808e0040003c000380004000000000000005aff0000000000000004100690055004300410040000000000005bff000000000000000000000000000000004000bc07020800005cff00000000000000000000ff0f0000000000000000000000005dff00000208fc070000000000000000000000000000000000005eff4000400020002000200040008000800080004000400000005fff0000000000000000000000000000fc03020cf801060e000060ff00000208fc070000fe0f000000000000000000000000000061ff00060009000900060000000000000000000000000000000062ff00000000fe0102000200020000000000000000000000000063ff000800080008f00f0000000000000000000000000000000064ff00000001000200040000000000000000000000000000000065ff00000000600040000000000000000000000000000000000066ff00004808480c4803b800000000000000000000000000000067ff00001004d00310006000000000000000000000000000000068ff000000018000c00f3000000000000000000000000000000069ff0000e000300c2002e00100000000000000000000000000006aff00042004e0072004000400000000000000000000000000006bff00002001a004f807200000000000000000000000000000006cff00008000f000400fe00000000000000000000000000000006dff0000000420042007e00400000000000000000000000000006eff00002004a004a004e00f00000000000000000000000000006fffc0000008e0040002e001000000000000000000000000000070ff00004000400040004000400000000000000000000000000071ff0808080ee80108007800000000000000000000000000000072ff4000c0004000f00f0c00040000000000000000000000000073ff000078000e0688017800000000000000000000000000000074ff08020802f80308020802000000000000000000000000000075ff100290015004fc071000000000000000000000000000000076ff10041003fc001004f003000000000000000000000000000077ff20011001fc00900f8800800000000000000000000000000078ff0000600010040e03c800380000000000000000000000000079ffc0003c081006f001100000000000000000000000000000007aff0000080208020802f80700000000000000000000000000007bff1000fc0010041002fc0110000000000000000000000000007cff00002008440c1802800160000000000000000000000000007dff0000000c080288017803000c0000000000000000000000007eff00002000fc031004d00438040000000000000000000000007fff00000c0030040003e0001c0000000000000000000000000080ff6000100c4e02c8013801000000000000000000000000000081ff00004808480cf8034400400000000000000000000000000082ff380000041c03c0003c00000000000000000000000000000083ff200024042406e4012400200000000000000000000000000084ff00000000fc074000c000000000000000000000000000000085ff000010041003fe001000100000000000000000000000000086ff00000002080208020802000200000000000000000000000087ff000008084806c8013806000000000000000000000000000088ff000008018800ce073800880100000000000000000000000089ff000000040003e0001c0000000000000000000000000000008aff0004c003380000003800c0070000000000000000000000008bff0000fc0320042004100400000000000000000000000000008cff0000080808048803780000000000000000000000000000008dff8001600010006000800100060000000000000000000000008eff0000d0011004fc071000d0010000000000000000000000008fff00000800c80088036804180000000000000000000000000090ff00002001240248024804000000000000000000000000000091ff0002f0030c02c0020005000000000000000000000000000092ff00041003e000b8000401000000000000000000000000000093ff40004800f80348044804600000000000000000000000000094ff2000fc01100ed0003800000000000000000000000000000095ff000208020802c8033802000000000000000000000000000096ff0000480248024802f807000000000000000000000000000097ff00002000240c2403e400000000000000000000000000000098ff00007c0000040002fc01000000000000000000000000000099ff0007fc000000fc07000280010000000000000000000000009aff0000fc0700020001800040000000000000000000000000009bff0000f80708020802f80700000000000000000000000000009cff00007800080c0803f80000000000000000000000000000009dff0000040418020001c00030000000000000000000000000009eff0c00000006000000000000000000000000000000000000009fff04000a000400000000000000000000000000000000000000a0ff000000000000000000000000000000000000000000000000a1ff00000000100010001000100010001000f003000000000000a2ff0000100010001000f0030000100010001000f00300000000a3ff0000000010001000f00300000003f0000001000200000000a4ff00000000f801000100010001000100010001000000000000a5ff00000000f0030002000210021001f0001001100200000000a6ff00000000f00100010000a00160027002a001000000000000a7ff00000000f001100110011001100110011001000000000000a8ff00000000f001100110010000f00110011001000000000000a9ff00000000c803480248024802480248027802000000000000aaff00000000d00150017001000110001000f001000000000000abff00000000d001500170010000f00110011001f00100000000acff00000000d001500170010000f00120012001f00100000000adff00000000d001500170010001800070008000000100000000aeff00000000d001500170010000f00150015001100100000000afff00000000d001500170000001f0011001f001100100000000b0ff00000000d001500170010000900158029001000000000000b1ff00000000f00110011001100110011001f001000000000000b2ff00000000f80120012001200120012001f801000000000000b3ff00000000f0014001f0010000f0014001f001000000000000b4ff00000000f0014001f0010001800070008000000100000000b5ff000000000001800040003800400080000001000000000000b6ff0000000280017000800100028001f0000001000200000000b7ff00000000e00010010802080208021001e000000000000000b8ff000000000801880048003800480088000801000000000000b9ff000000018800780088000001880078008800000100000000baff000000001001100190007c00900010011001000000000000bbff00000000480048004800480048004800f801000000000000bcff00000000f001500150015001500150015001000000000000bdff000000011001f001100110011001f0011001000100000000beff000000001000900150025802500290011000000000000000c2ff00000000000000000000fc0f400040000000000000000000c3ff0000000000000000fe072000fe0f00000000000000000000c4ff0000000000000000fe0f9000900000000000000000000000c5ff0000000000000000fe0f9000fe0f00000000000000000000c6ff000000000000200020002000fe0700000000000000000000c7ff00000000000020002000fe070000fe0f0000000000000000caff000000000000900090009000fe0f00000000000000000000cbff00000000000090009000fe0f0000fe0f0000000000000000ccff00000001000100010001f001000100010001000100000000cdff0000000100010001e001000100010000fc0f400040000000ceff000000010001e001000100010000fc0f4000fc0f00000000cfff0000000100010001f001000100010000fe0f000000000000d2ff000100010001f801000100010001f8010001000100000000d3ff00002000200020002000e007200020002000200000000000d4ff0000400040004000c0074000400040010001fc0f00000000d5ff000040004000c007400040010001fc0f0000fe0f00000000d6ff0000400040004000c0074000400040000000fe0f00000000d7ff200020002000e007200020002000e0072000200020000000daff000040004000400040004000400040004000400040000000dbff000080008000800080008000800080000000fe0f00000000dcff00000000000000000000fe0f000000000000000000000000e0ff000000000000e00010010802fc0708021001000100000000e1ff0000000000044006f8054404440444040404080000000000e2ff000020002000200020002000200020002000e00100000000e3ff010001000100010001000100010001000100010001000100e4ff00000000000000000000be0f000000000000000000000000e5ff0000000004009801e0018007e00198010400000000000000e6ff000044007800c007c00370007800c0034006f80144000000e8ff00000000ff0f000000000000000000000000000000000000e9ff4000e0005001400040004000000000000000000000000000eaff10000800fe0f080010000000000000000000000000000000ebff4000400040005001e0004000000000000000000000000000ecff00010002fe0f000200010000000000000000000000000000edff0000f000f000f000f0000000000000000000000000000000eeff0000e00010011001e0000000000000000000000000000000") -const _hex13869 = pxsim.BufferMethods.createBufferFromHex("20000000000000002100001700000000220000030003000023000a1f0a1f0a0024000a17151d0a00250013090412190026000a15150a100027000003000000002800000e11000000290000110e0000002a00000a040a00002b0000040e0400002c000010080000002d000004040400002e000008000000002f0010080402010030000e11110e0000310000121f100000320019151512000033000911150b000034000c0a091f080035001715151509003600081416150800370011090503010038000a1515150a00390002150d0502003a00000a000000003b0000100a0000003c0000040a1100003d00000a0a0a00003e0000110a0400003f0002011505020040000e1115090e0041001e05051e000042001f15150a000043000e111111000044001f11110e000045001f151511000046001f050501000047000e1111150c0048001f04041f00004900111f110000004a000911110f01004b001f040a1100004c001f10101000004d001f0204021f004e001f0204081f004f000e11110e000050001f0505020000510006091916000052001f05050a10005300121515090000540001011f01010055000f10100f0000560007081008070057001f0804081f0058001b04041b0000590001021c0201005a001915131100005b00001f111100005c000102040810005d000011111f00005e000002010200005f00101010101000600000010200000061000c12121e100062001f141408000063000c121212000064000814141f000065000e15151200006600041e0501000067000215150f000068001f04041800006900001d000000006a000010100d00006b001f040a1000006c00000f101000006d001e0204021e006e001e02021c00006f000c12120c000070001e0a0a0400007100040a0a1e000072001c0202020000730010140a0200007400000f1414100075000e10101e1000760006081008060077001e1008101e007800120c0c12000079001214080402007a00121a161200007b0000041f1100007c00001f000000007d00111f040000007e00000404080800d3000c1213130c00f3000c12130d000004010e05051e100005010609191f080006010c121313120007010c121313000018010f0b1b19000019010e151d1a000041011f14121000004201100f1412000043011f0205081f0044011e03031c00005a0110140b0302005b0110140b0300007901121a171300007a01121a171300007b01121b171200007c01121b17120000") -const _hex5307 = pxsim.BufferMethods.createBufferFromHex("87041c00100000000000000000000000000000555500000000005555555500000050550400550500005545000050550000550400000055045045000000005005504500500500504550450055550050455045005555045045504500504504504550450000440050455045000000005045504500000000504550450000000050455045000000005045504500000000504550450050050050455045005555005045504500555504504550450050450450455045000044005045005500000000554400550500005055040050550000554504000055555555440000004055554404000000004444040000") -const _hex5309 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000ffff0000000000f011110f000000001ff11ff1000000001ff11ff1000000001f1111f1000000001f1111f1000000001f1111f1000000001f1111f1000000001ff11ff1000000001ff11ff100000000f011110f0000000000ffff00000000000000000000000000000000000000") -const _hex5311 = pxsim.BufferMethods.createBufferFromHex("870411001000000011111155551111111111555555551111115155141155151111451451151155155145115555115115514511555514514551451151451451455145111144115145514511111111514551451151151151455145115555115145514511555514514551451151451451451145141144115415111155555555441111114155554414111111114444141111") -const _hex5313 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000020222222220200002002000020020000202000000202000020000220000200002000200200020000200020020002000020000220000200002020000002020000200200002002000020222222220200000000000000000000000000000000000000000000000000") -const _hex5315 = pxsim.BufferMethods.createBufferFromHex("87041000100000001111111111111111111111616666161111111111666666111111111161666616111111111166661611111111116666161111111161666611111111116666161111111161666611111111116666161111111161666611111111116666161111111161666611111111116666161111111111666611111111111111111111111111") -const _hex5317 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000800000000000080d800000000000088d800000000008088d800000000008888d800000000808888d800000000888888d800000080881111d800000088181888d800008088881111d800008888888888d80000d0dddddddddd0000000000000000000000000000000000") -const _hex5319 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000088888888880800001811118888dd000018181888d80d000088818188dd000000888888d80d000000888888dd000000008888d80d000000008888dd000000000088d80d000000000088dd000000000000d80d000000000000d000000000000000000000000000000000000000000000") -const _hex5321 = pxsim.BufferMethods.createBufferFromHex("87040f0010000000111111111111111111414444444414111144444444444411114444444444141111141114111111111114111411111111114441141111111111414411111111111111444444441111114144444444141111441111111144111144111111114411114144444444141111114444444411111111111111111111") -const _hex5323 = pxsim.BufferMethods.createBufferFromHex("87040f0010000000111111111111111111414444444414111144444444444411114444444444141111141114111111111114111411111111114441141111111111414411111141111141141111114411114414111111441111444444444444111144444444444411114444444444441111111111111144111111111111114111") -const _hex5325 = pxsim.BufferMethods.createBufferFromHex("87040f0010000000111111111111111111414444444414111144444444444411114444444444141111141114111111111114111411111111114441141111111111414411111144111141441111414411114414111144441111441111414444111144114144444411114444444414441111414444141144111111441411114411") -const _hex5327 = pxsim.BufferMethods.createBufferFromHex("87040f00100000001111555555551111115155ffff5515111155f5ffff5f55115155ffffff88551555f5ffff8f88585555ffffff8888ff5555ffff1f11f8ff5555ffff1211ffff5555ff2f1211ffff5555ff2222ffffff55552522ffffff5f555155f2ffffff55151155f5ffff5f5511115155ffff5515111111555555551111") -const _hex5329 = pxsim.BufferMethods.createBufferFromHex("87041000100000001111111111111111111111c1cccccc1c1111117c7777771c1111c1777777771c11117c777777771c11c17777c7cccc1c11c17777dcdddd1111c177c711111111c1cc77c7cc111111c1777777c7111111c1777777c7111111117c77771c11111111c177c71111111111117c1c111111111111c111111111111111111111111111") -const _hex5331 = pxsim.BufferMethods.createBufferFromHex("8704100010000000111111c1cccccc1c1111117c7777771c1111c1777777771c11117c777777771c11c17777c7cccc1c117c7777dcdd1d11117c77c7cc111111117c77cc771c1111117c77cc77c71111117c777777771c1111c177777777c71111117c777777dc111111c1cc77c71d11111111c177dc1111111111c1cc1d111111111111dd111111") -const _hex5333 = pxsim.BufferMethods.createBufferFromHex("87041000100000001111111111111111111111111111111111111111111111111111111111ee1e11111111114124ee1111111f114444e2111111f1114444e211f1ffff1f4444e2111111f1114444e21111111f114444e211111111114124ee1111111111d1eede111111111111dd1d11111111111111111111111111111111111111111111111111") -const _hex5335 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111111111111111818822b211111111888822221b111181881b1122b2111181b8111121b2111181b8111121b2111181b8111121b2111181b8111121b21111f1bf1111f1bf1111f1bf1111f1bf11611111111111116111111161611111111661611111616111111111111611554561111116111655451111161111115514") -const _hex5337 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111111111111111111111111111111111111111111111111111111111111111111111f11f1111111111112ff21111ffffffff22221ff1dddd222222221f11ffffffff22221f11111111112ff2111111111111f11f1111111111111111111111111111111111111111111111111111111111111111111111111111111111") -const _hex5339 = pxsim.BufferMethods.createBufferFromHex("8704100010000000111111111111111111111111111111118188888888888818818888588885881f818888855888881f815585888588281f514454888888281f514454585858281f514454888888281f815585888588281f818888855888881f818888588885881f8188888888888818111111111111111111111111111111111111111111111111") -const _hex5341 = pxsim.BufferMethods.createBufferFromHex("87041000100000001111111111111111111111111111111111111111111111111111111111111111111111f1ff11111111111111111f111f11b1bbcb1cf1111f11cbccccccf1ff1f11ccccccccf1ff1f11c1cccc1cf1111f11111111111f111f111111f1ff1111111111111111111111111111111111111111111111111111111111111111111111") -const _hex5343 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111181111111111118188111111111111888818111111111166681611111111111118111111111111f1ff1111111181161f111f11111188161f1f1f11118188881f111f11111188161f1f1f11111181161f111f1111111111f1ff1861111111111111818611111111111161881111111111118688111111111111111111") -const _hex5345 = pxsim.BufferMethods.createBufferFromHex("87042000210000006066666666bc1b11111111c1bb6c66b6000000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bcbb11111111bcbb6c66660b0000006666666666bcbbbbbbbbbbbbbb6c66660b0000006666666666bcbb11111111bcbb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1b11111111c1bb6c66660b0000006666666666bc1be1eeee11c1bb6c66660b0000006666666666bc1bdeddee11c1bb6c66660b0000006666666666bcebe1dded11c1bb6c66660b0000006666666666bc1e55deed11c1bb6c66660b0000006666666666ec51e5e4ed11c1bb6c66660b00000066666666661e554ee4ee11c1bb6c66660b00000066666666e651e544ee1e11bcbb6c66660b000000666666661e554ee4eebbbbbbbb6c66660b000000666666e651e544eebebcbcbcbb6c66660b0000006666661e554ee4eebbbbbbcbbb6c66660b0000006666e651e544eebebbbbbbbbbb6c66660b0000006666ee554ee4eebbbbbbbbcbbb6c66660b00000066e644ee44eebebbbbc1bbbbbb6c66660b00000066e644e2e4eecbbb1b11bccbbb6c66660b00000066662e22eebebbbbbbc1bbbbbb6c66660b0000006666e6e2eebccbbbbbbbbbcbbb6c66660b000000666666ee6ebcbbbbbbbbbbbbbb6c66660b0000006666666666bccbbbbbbbbbcbbb6c66660b0000006666666666bcbbbcbcbcbcbcbb6c66660b0000006066666666bcbbbbbbbbbbbbbb6c66b600000000") -const _hex5347 = pxsim.BufferMethods.createBufferFromHex("87042000200000006666666666666666666666666666666666666666666666d6dd6666666666666666666666666666d6dd66666666666666666666dd666666dddd6c666666666666666666dd6d66d6bbbbcc66d6dd6666666666dddddd66ddbbbbcc66ddddcc66666666ddbbbbccddbbbbccddbbbbcc66666666ddbbbbccddbbbbccddbbbbcc66666666ddbbbbbbbbbbbbbbbbbbbbcc6666666666bbbbbbbbbbbbbbbbbbbb666666666666c6bbddbbccccbbddbb6c666666666666c6bbddbb6cc6bbddbb6c6666666666ddddbbbbcc6666ccbbbbcccc66666666ddddbbbb6c6666c6bbbbcccc666666d6bbbbbbcc66666666ccbbbbbb6c6666ddbbbbbb6c66666666c6bbbbbbcc6666ddbbbbbb6c66666666c6bbbbbbcc6666d6bbbbbbcc66666666ccbbbbbb6c666666ccccbbbb6c666666bbbbcccc66666666ccccbbbbcc6666c6bbbbcccc6666666666d6bbddbb6cc6ccddbb6c666666666666d6bbddbbccccbbddbb6c666666666666ddbbbbbbbbbbbbbbbbbb6666666666ddbbbbbbbbbbbbbbbbbbbbcc66666666ddbbbbccddbbbbbbccbbbbcc66666666ddbbbbccddbbbbccccbbbbcc66666666ddcccc66ddbbbbcc66cccccc6666666666cc6c66ddbbbbcc66c6cc666666666666cc666666cccc6c66666666666666666666666666c6cc6666666666666666666666666666c6cc6666666666666666666666666666666666666666666666") -const _hex5349 = pxsim.BufferMethods.createBufferFromHex("87042000210000001011111111111111111111111111111100000000111111111111111111111111111111110b00000011ffffffffffffffffffffffffffff1f0b00000011ffffffffffffffffffffffffffff1f0b0000001111111111111111111181888848f41f0b0000001111111111111111118188884144f11f0b0000001111111111111111818888114414f11f0b0000001111111111111181881811414411f11f0b0000001111111111111188181111441411f11f0b0000001111111111118188111141441111f11f0b0000001111111111118818111144141111f11f0b0000001111111111818811114144111111f11f0b0000001111111111881811114414111111f11f0b0000001111111181881111414411111111f11f0b0000001111111188181111441411111111f11f0b0000001111111188111141441111111111f11f0b0000001111118118111144141111111111f11f0b0000001111118118114144111111111111f11f0b0000001111118818114414111111111111f11f0b0000001111118811414411111111111111f11f0b0000001111811811441411111111111111f11f0b0000001111811841441111111111111111f11f0b0000001111811844141111111111111111f11f0b0000001111814844111111111111111111f11f0b0000001111814814111111111111111111f11f0b0000001111814811111111111111111111f11f0b0000001111841811111111111111111111f11f0b0000001141841811111111111111111111f11f0b0000001111111111111111111111111111f11f0b0000001111111111111111111111111111f11f0b000000111111111111111111111111111111110b000000101111111111111111111111111111b100000000") -const _hex5351 = pxsim.BufferMethods.createBufferFromHex("870420002100000060666666666666666666666666666666000000006666666666666666666666666666666606000000666666666666666666666666666666660600000066666666866866666666666666666666060000006666666686686666666666666666666606000000666666866866666666666666666666660600000066666686686666666666666666666666060000006666866866866866666666666666666606000000666686686686686666666666666666660600000066866866866866666666466466666666060000006686686686686666666646646666666606000000668668866866866866465465666666660600000066866886686686686646546566666666060000006686688668866866465455454444444406000000668668866886686646545545444444440600000066866886688668465455555555555555060000006686688668866846545555555555555506000000668668866886686646545545444444440600000066866886688668664654554544444444060000006686688668668668664654656666666606000000668668866866866866465465666666660600000066866866866866666666466466666666060000006686686686686666666646646666666606000000666686686686686666666666666666660600000066668668668668666666666666666666060000006666668668666666666666666666666606000000666666866866666666666666666666660600000066666666866866666666666666666666060000006666666686686666666666666666666606000000666666666666666666666666666666660600000066666666666666666666666666666666060000006066666666666666666666666666666600000000") -const _hex5353 = pxsim.BufferMethods.createBufferFromHex("8704200021000000606666666666666666666666666666b600000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b0000006666bbbbbbbbbbbbbbbbbbbbbbbb66660b00000066b68b88888888888888888888b86b660b00000066b68888888888888888888888886b660b00000066b6cccccccc88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c111c11116b660b00000066b6ddddddcd8833111c111c11116b660b00000066b6ddddddcd88331111111c11116b660b00000066b6cd8888cd88331111111c11116b660b00000066b68d8888cd88331111111111116b660b00000066b68d8888cd88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6cccccccc88331111111111116b660b00000066b68888888888888888888888886b660b00000066668b888888888888888888f88f6b660b0000006666b688888888888888888888886b660b000000666666bbbbbbbbbbbbbbbbbbbbbb6b660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000606666666666666666666666666666b600000000") -const _hex5364 = pxsim.BufferMethods.createBufferFromHex("870490001600000010111111111111111111000011bbbbbbbbbbbbbbbbbb0b00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbff00b0bbbbbbfbffffffffff0f0000bbbbbbbb0000000000000000b0bbbbbb0b0000000000000000bbbbbbfb0000000000000010b1bbbbfb0000000000000011bbbbbbff00000000000010b1bbbbfb0f00000000000011bbbbbbbb11111111110000b1bbbbbbbbbbbbbbbbbb0b00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b0bbbbbbbbbbbbbbbbbbff0000ffffffffffffffffff0f0010110100111111111111000011bbbb10b1bbbbbbbbbb0b00b1bbbb1fbbbbbbbbbbbbfb00b1bbbb1fbbbbbbbbbbbbfb00b1bbbb1fbbbbbbbbbbbbfb00b0bbfb0fbbbbbbbbbbbbff0000ffff00f0ffffffffff0f000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbbbffbfbbbbfb00000000b1bbfb0f00bbbbfb00000000b1bbfb0000b1bbfb00000000b1bbfb0000b1bbfb00000000b1bbbb0010b1bbfb00000000b1bbbb0b11bbbbfb00000000b0bbbbfbb1bbbbff0000000010bbbbfbb1bbbb0f0000000000bbbbfbb1bbfb0f0000000000f0bbffb0fbff00000000000000f00f00ff00000000000010111111111111000000000011bbbbbbbbbbbb0b00000000b1bbbbbbbbbbbbfb00000000b1bbbbbbbbbbbbfb00000000b1bbbbbbbbbbbbfb00000000b0bbbbbbbbbbbbff0000000000bbfbffffffff0f0000000010b1fb00000000000000000011bbfb000000000000000000b1bbbb000000000000000000b1bbbb0f0000000000000000b0bbbb0f000000000000000000bbfb0f000000000000000000f0ff0000000000000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbbbffbfbbbbfb00000000b1bbfb0f00bbbbfb00000000b1bbfb0000b1bbfb00000000b1bbfb0000b1bbfb00000000b1bbbb0010b1bbfb00000000b1bbbb1b11bbbbfb00000000b0bbbbbbbbbbbbff0000000010bbbbbbbbbbbb0f0000000000bbbbbbbbbbfb0f0000000000f0bbbbbbfbff00000000000000f0ffffff00000000000010111111000000000000001011bbbbbb1b00000000000011bbbbbbbbbb0b0000000010b1bbbbbbbbbbbb0000000011bbbbbbbbbbbbbb0b000010b1bbbbbbbbbbbbbbbb000010bbbbbbbbbbbbbbbbbb0f0011bbbbbbfbffbbbbbbbb0b00b1bbbbbbff00b0bbbbbbfb00b1bbbbfb0f0000bbbbbbfb00b1bbbbfb000000b1bbbbfb00b1bbbbfb000000b1bbbbfb00b1bbbbbb000010b1bbbbfb00b1bbbbbb0b0011bbbbbbfb00b0bbbbbbbb10b1bbbbbbff0010bbbbbbbb1fbbbbbbbb0f0000bbbbbbbb1fbbbbbbfb0f0000b0bbbbbb1fbbbbbbff00000000bbbbbb1fbbbbfb0f00000000f0bbfb0fbbfbff000000000000f0ff00f0ff000000000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbbbffbfbbbbfb00000000b1bbfb0f00bbbbfb00000000b1bbfb0000b1bbfb00000000b1bbfb0000b1bbfb00000000b1bbbb0010b1bbfb00000000b1bbbb1b11bbbbfb00000000b0bbbbbbbbbbbbff0000000010bbbbbbbbbbbb0f0000000000bbbbbbbbbbfb0f0000000000f0bbbbbbfbff00000000000000f0ffffff0000000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbbbffbfbbbbfb00000000b1bbfb0f00bbbbfb00000000b1bbfb0000b1bbfb00000000b1bbfb0000b1bbfb00101111b1bbbb1111b1bbfb0011bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b1bbbbbbbbbbbbbbbbbbfb00b0bbbbbbbbbbbbbbbbbbff0000ffffffffffffffffff0f000000000000111111010000000000000011b1bbbbbb01000000000010b1bbbbbbbbbb000000000010bbbbbbbbbbbb0f0000000011bbbbbbbbbbbb0b00000000b1bbfbbbfbbbbbfb00000000b1bbffb1fbb0bbfb00000000b1bb0fb1fb10bbfb00000000b1bb0fb1fb10bbfb00000000b1bb0bb1fb10bbfb00000000b1bbbbb1fb10bbfb00000000b0bbbbbbfb10bbfb0000000010bbbbbbfb00bbff0000000000bbbbbbfb00f00f0000000000f0bbbbff000000000000000000f0ff0f00000000") -const _hex5366 = pxsim.BufferMethods.createBufferFromHex("8704a000100000008888888888886666888888888868666688188888888866668888888888666666888858888888666688888888886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688888888886666668818888888886666888888888868666688881888888866668888888888666666888888188888666688888888886866668888888888886666888888888866666688888885888866668888888888686666888188888888666688888888886666668888888888886666888888888868666688888888888866668888888888666666888888888888666688188888886866668881818888886666881888888866666688888888888866668888888888686666888888818888666688888888886666668888888888886666888888888868666688888888888866668888881888666666888888888888666688888888886866668881888888886666888888888866666688888888888866668888885888686666888888888888666688888888886666668888888888886666888881888868666688181888888866668888818888666666888888888888666688888888886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688888888886666668818888888886666888888888868666688888888888866668888888888666666888888888888666688888881886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688188888886666668888885888886666888888888868666688888888888866668888888888666666888888888888666688888888886866668888888888886666888888818866666688888888888866668888888888686666888888888888666688888888886666668818888888886666888888888868666688888888888866668888888888666666888888888888666688888888886866668888881888886666888888888866666688888888888866668888888888686666885888888888666688888888886666668888888888886666888888588868666688888888888866668888818888666666888888888888666688888888886866668885888888886666888888888866666688888888888866668888818888686666888888888888666688888888886666668888888888886666888888888868666688888888888866668888888888666666888888888888666688888888886866668888188888886666888881818866666688881888888866668888888888686666888888888888666688888888886666668888888888886666888888888868666688888888888866668881888888666666888888888888666688888888886866668888888888886666888888888866666688888888888866668888188888686666888888888888666688888888886666668888888888886666888888888868666688588888888866668888888888666666888888888888666688881888886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688818888886666668888888888886666888888588868666688888888888866668888888888666666888888888888666688881888886866668888888888886666888888888866666688888888888866668888888888686666888888888888666688888888886666668888888888886666888188888868666688888888888866668888888888666666") -const _hex5409 = pxsim.BufferMethods.createBufferFromHex("8704040003000000f00f0000cf0c0000cf0c000000000000") -const _hex5412 = pxsim.BufferMethods.createBufferFromHex("8704100010000000ffffffffffeeffffffffffffef22feffffffffffef22feffffffeeffffeeeffeffef22feffff2ee2ffef22feffff2ee2ffffeeffffffeffeffffffffffff2ee2ffffffffffff2ee2ffffeeffffffeffeffef22feffff2ee2ffef22feffff2ee2ffffeeffffeeeffeffffffffef22feffffffffffef22feffffffffffffeeffff") -const _hex5415 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111111111111111111111ff111111111111f1cc111111111111f1cc1111111111111111") -const _hex5417 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131111110080888d1311111100d0dd8d1311111100d0dd8d1311111100808888131111110000888888888888000080888888888800000000dddddd0d000000000000000000") -const _hex5419 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d13f1111f0080888d13ffff1f00d0dd8d1311111f00d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d000000000000000000") -const _hex5421 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131ff11f0080888d131f1f1f00d0dd8d13f1111f00d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d000000000000000000") -const _hex5423 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131f111f0080888d131f1f1f00d0dd8d13f1ff1100d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d000000000000000000") -const _hex5425 = pxsim.BufferMethods.createBufferFromHex("8704200021000000606666666666666666666666666666b600000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b0000006666bbbbbbbbbbbbbbbbbbbbbbbb66660b00000066b68b88888888888888888888b86b660b00000066b68888888888888888888888886b660b00000066b6cccccccc88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c1c1c11116b660b00000066b6ddddddcd8833111c111c11116b660b00000066b6ddddddcd8833111c111c11116b660b00000066b6ddddddcd88331111111c11116b660b00000066b6cd8888cd88331111111c11116b660b00000066b68d8888cd88331111111111116b660b00000066b68d8888cd88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6ddddddcd88331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6888888c888331111111111116b660b00000066b6cccccccc88331111111111116b660b00000066b68888888888888888888888886b660b00000066668b888888888888888888f88f6b660b0000006666b688888888888888888888886b660b000000666666bbbbbbbbbbbbbbbbbbbbbb6b660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000666666666666666666666666666666660b000000606666666666666666666666666666b600000000") -const _hex5427 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000222222222222002042444444442402204444444444440220444444444444022044444444444402204444444444440220444444444444022044444444444402204444444444440220444444444444022042444444442402002222222222220000000000000000000000000000000000") -const _hex5429 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000cccccccccccc00c0fcffffffffcf0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0ffffffffffff0cc0fcffffffffcf0c00cccccccccccc0000000000000000000000000000000000") -const _hex5431 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000bccbbccb00000000bcfbbfcb00000000c0fbbf0c00000000c0bbbb0c00000000bcbbbbcb00000000bbcbbcbb0c0000c0bb0cc0bb0c0000bcbb0cc0bbcb00c0bbcb0000bcbb0cc0bb0c0000c0bb0cbcbb0c0000c0bbcbbccb00000000bccbbccb00000000bccbc0bb0c0000c0bb0cc0bbcb0000bcbb0c00cc0c0000c0cc00") -const _hex5433 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000c0cbbc0c00000000c0fbbf0c00000000d0fbbf0d00000000d0bbbb0d00000000bcbbbbcb000000ccbbcbbcbbcc0000bccb0cc0bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000bccb0000c0bb0cc0bb0c000000cc0000cc0000") -const _hex5435 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000002f2222f2000000002f2222f2000000002f2222f2000000002f2222f2000000002f2222f2000000002f2222f200000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000") -const _hex5437 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000c000000000000000cccccccc0c0000c0c11b1111c10000ccc1cccc1cc100c0c0cddbddddcd00f0f0fdccccdcfd00f0f0fddbddddfd0000fffbccccbcfb0000f0fbbcbbbbfb000000ffffffffdf000000f0d0dddd0d00000000000000000000000000000000000000000000000000") -const _hex5439 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000000000000ffff0000000000005ff50000000000005ff500000000f0ff5ff5ff0f0000f0555555550f0000f0555555550f0000f0ff5ff5ff0f000000005ff50000000000005ff5000000000000ffff000000000000000000000000000000000000000000000000000000") -const _hex5441 = pxsim.BufferMethods.createBufferFromHex("87040800080000000000000000f00f0000f00f00f0ffff0ff0ffff0f00f00f0000f00f0000000000") -const _hex5443 = pxsim.BufferMethods.createBufferFromHex("870408000800000000000000f00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00f00000000") -const _hex5445 = pxsim.BufferMethods.createBufferFromHex("87041000100000004444444444444444444444444444444444444444f41c444444cf4144cf11414444cf41f41c11114444cf4144f41c444444cfc144cf11444444f411cc1c41444444441f11114444444444444444444444444414441444444444444441414444444444441444444444444444414144444444441444144444444444444444444444") -const _hex5447 = pxsim.BufferMethods.createBufferFromHex("8704120012000000dddddddddddddddddd000000cddddccddddccddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddccddddccddddc000000dddddddddddddddddd000000") -const _hex5449 = pxsim.BufferMethods.createBufferFromHex("8704120012000000bbbbbbbbbbbbbbbbbb000000dbbbbddbbbbddbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbddbbbbddbbbbd000000bbbbbbbbbbbbbbbbbb000000") -const _hex5451 = pxsim.BufferMethods.createBufferFromHex("87040e0014000000dddddddddddddddddddd0000dddddddddddddddddddd0000dddddddddddddddddddd0000d0dddddddddddddddd0d000000dddddddddddddddd00000000d0dddddddddddd0d0000000000dddddddddddd000000000000d0dddddddd0d00000000000000dddddddd0000000000000000d0dddd0d000000000000000000dddd00000000000000000000d00d000000000000000000000000000000000000000000000000000000000000") -const _hex5453 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000020000000000000020f0ffffff00000000f0ff2fff0b002222f02ffff20b000000f0fffff20b000000f02ffff20b000000ddf22fff0b000020d4fdffff0b00004224bdbbbb0b002044e20b000000004224be000202002044e20b000220004024be000002000000e20b00000200000000000000000000") -const _hex5455 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000020000000000000020f0ffffff00000000f0ff22ff0b002222f02f2fff0b000000f0f22fff0b000040f02222f20b000050f4ff2fff0b00445445ffffff0b40555555bbbbbb0b544454450000000054045004000202005404400000022000540400000002000054040000000200005404000000000000") -const _hex5457 = pxsim.BufferMethods.createBufferFromHex("8704090009000000f0ffffff000000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f000000f0ffffff00000000") -const _hex5459 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000f0ffffff00000000ff9999f90d0000f0f999f9ff0d0000ffff99f9f50d00009f9999f9f50d00009f99f9fff5ff0000ffffff5555f50d0000fdf75f55ff0d0000fffff7f5f70d00007f77777ff70d00007f777777f70d0000ffffffffff0d000000dddddddd0d0000000000000000") -const _hex5461 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000000000000000000000ffdf0000000000005fdf0000000000005fdf0000000000ff5fff0f000000f05f5555df0000007fff55f5df0000f0ff7f5f7fdf0000f07777f777df0000f077777777df0000f0ffffffffdf000000d0dddddddd0000000000000000000000000000000000") -const _hex5463 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff999999f90000f0f9999999f90000ffff999999f900009f99f999f9f900009f99f9fffff900009f999999f9f900009f99999999f900009f99999999f90000ffffffffffff00000000000000000000000000000000000000000000000000") -const _hex5465 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff555555f50000f0f5555555f50000ffff555ff5f500005f55f555fff500005f55f5f5f5f500005f55555ff5f500005f55555555f500005f55555555f50000ffffffffffff00000000000000000000000000000000000000000000000000") -const _hex5467 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff444444f40000f0f4444444f40000ffff444444f400004f44f444f4f400004f44f4f4f4f400004f44444f4ff400004f44444444f400004f44444444f40000ffffffffffff00000000000000000000000000000000000000000000000000") -const _hex5469 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff333333f30000f0f3333333f30000fffff3ff33f300003f3333f333f300003f33f3fffff300003f3333f333f300003f33333333f300003f33333333f30000ffffffffffff00000000000000000000000000000000000000000000000000") -const _hex5471 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff777777f70000f0f7777777f70000fffff7fff7f700007f77f7f7f7f700007f77f7f7f7f700007f77f7777ff700007f77777777f700007f77777777f70000ffffffffffff00000000000000000000000000000000000000000000000000") -const _hex5473 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000bbbb0b00000000b01111b1000000001b111d110c0000b0111d1d1dc10000b011111111c10000bfb99b12ddc10000b099991211c10000b0999b121dc10000009b991211dc000000c09919c10d00000000ccccdc0000000000d0dd0d000000000000000000000000000000000000") -const _hex5475 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11212112c100001b22211112c100001b11212122c100001b11111111c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d000000000000000000") -const _hex5477 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11111111c100001b11121121c100001b21222222c100001b11111121c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d000000000000000000") -const _hex5479 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b21221121c100001b21211121c100001b21211121c100001b21112212c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d000000000000000000") -const _hex5481 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11121111c100001b21112221c100001b21111211c100001b11221111c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d000000000000000000") -const _hex5483 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d400004055f5ff5504000040555f555f0400004055f5ff550400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d0000000000000000000000000000000000") -const _hex5485 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d400004055f5555f0400004055ffff5f040000405555555f0400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d0000000000000000000000000000000000") -const _hex5487 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d4000040555ff55f04000040555f5f5f0400004055f5555f0400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d0000000000000000000000000000000000") -const _hex5489 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000008000000000000000000800000000000008800000000000008000080000000080000808004404000008080840154500000808084011410000080808401545008000080800440400008000080000000000088000000000000000080000000000008000000000000000000000000000000000000000000000") -const _hex5491 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000008000000000000000000800000000000008800000000000008000080040000080000808005004000008080844544500000808085555550400080808445445008000080800500400008000080040000000088000000000000000080000000000008000000000000000000000000000000000000000000000") -const _hex5493 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000008000000000000800000000000000008800000000000800008000004000080800008400500008080800054454404808080405555550580808000544544048080000840050000800008000004000000088000000000000080000000000000000008000000000000000000000000000000000000000000") -const _hex5495 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000008000000000000000000800600060000008800096069606008000086606660680000808960696060008080860006000000808080000000000080808000000008000080860006000008000089606960600088000660666060000080096069606008000006000600000000000000000000000000000000000") -const _hex5497 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000004444000000000040dddd0400000000d440044d00000000544054400500000054d05d4005000000540000400500000054000040050000005400004005000000544004400500000054405440050000004dd55dd400000000d044440d0000000000dddd0000000000000000000000") -const _hex5499 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000000000ee0e00000000004024ee0000f000004444e200000f00004444e200f0ffff0f4444e200000f00004444e20000f000004444e200000000004024ee0000000000d0eede000000000000dd0d00000000000000000000000000000000000000000000000000") -const _hex5501 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010f1ffffbb000000f1ffffffff0b0000f1ffffffff0b0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0000fbffffffffdb0000fbffffffffdb0000b0fbffffbb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") -const _hex5503 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010212222bb00000021222222220b000021222222220b00102222222222b200102222222222b200102222222222b200102222222222b200102222222222b200002b22222222db00002b22222222db0000b02b2222bb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") -const _hex5505 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010818888bb00000081888888880b000081888888880b00108888888888b800108888888888b800108888888888b800108888888888b800108888888888b800008b88888888db00008b88888888db0000b08b8888bb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") -const _hex5507 = pxsim.BufferMethods.createBufferFromHex("8704100010000000cccccccccccccccccccdccdcccccccccdcd1cccccccccccccccdcccccccccccdcccccccccccccccccccccccccccdccccccccccccdcd1cccccccccdcccccdccccccccccccccccccccccccdccc1ccccccccccc1dcdccccccccccccdcccccccccccccccccccccccdccccccdcccccccc1dcdccccccccccccdccccccccccccccccccc") -const _hex5509 = pxsim.BufferMethods.createBufferFromHex("87041000100000000020224455777707002242547577770720224455777788082042545577878808204254757788c80c204254758788cc0c2042547587c8ac0a2042547587c8ac002042547587c8ac002042547587c8ac0a204254758788cc0c204254757788c80c2042545577878808202244557777880800224254757777070020224455757707") -const _hex5511 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010717777bb00000071777777770b000071777777770b00107777777777b700107777777777b700107777777777b700107777777777b700107777777777b700007b77777777db00007b77777777db0000b07b7777bb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") -const _hex5513 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010a1aaaabb000000a1aaaaaaaa0b0000a1aaaaaaaa0b0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0000abaaaaaaaadb0000abaaaaaaaadb0000b0abaaaabb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") -const _hex5515 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000001011110000000010515555bb00000051555555550b000051555555550b00105555555555b500105555555555b500105555555555b500105555555555b500105555555555b500005b55555555db00005b55555555db0000b05b5555bb0d000000b0bbbbdd0000000000dddd0d00000000000000000000") -const _hex5517 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000ffffffbf000000ff4ff422ffbf00f0554ff4226ff60bf055ffffff6ff60bffff0f0000f0ffdf4ff4000000f088bf4ff4000000f088bfffff000000f0ffbf9ff9000000f0aabf9ff9000000f0aabfffff0f0000f0ffbff0bbffffffcffcdbf0bb7ff7eecffcdb00ff7ff7eeff554500d0ffffffbf55450000dddddddd5504") -const _hex5519 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000000000000ff000000000000f0f20000000000002ff2ffffff0000f022222222f200002f22222222f20000f022222222f20000002ff2ffffff000000f0f200000000000000ff000000000000000000000000000000000000000000000000000000000000000000000000") -const _hex5521 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000000000000000000000ff000000000000009f0f000000ffffff9ff90000009f999999990f00009f99999999f900009f999999990f0000ffffff9ff90000000000009f0f000000000000ff0000000000000000000000000000000000000000000000000000000000000000000000") -const _hex5523 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000008088888888888808808888588885880f808888855888880f805585888588280f504454888888280f504454585858280f504454888888280f805585888588280f808888855888880f808888588885880f8088888888888808000000000000554500000000000055450000000000005504") -const _hex5525 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000bccc000000000000bccc0000000000c0cbcc0c00000000bccccccc000000c0cbcccccc0c000000000000000000000000088000000000000080080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") -const _hex5527 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000bccc000000000000bccc0000000000c0cbcc0c00000000bccccccc000000c0cbcccccc0c000000000000000000000320400006900030000200046000000000204000060000000002000460000000200040000506005000020004600000002000400000060000025000040000000000000000000000") -const _hex5529 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000000000ff000000000000f0cc0b0000000000f0cc0b000000cfccccbc0b000000bcbbbbbb000000c0bc000000000000c0bb000000000000cc0b00f00f000000bc0b00cfbc0000f0bc0000cfbc0000c0ccccccccbb000000bbbbbbbb0b0000000000000000000000000000000000") -const _hex5531 = pxsim.BufferMethods.createBufferFromHex("8704100010000000111111111111111111111111111111111111111111111111111111cccccc11111111ccffffff1c1111c1ffffffffcf1111fcffffffffff1cc1ffffffffffff1cc1ffffffffffff1cc1ffffffffffff1cc1ffffffffffcf1111fcffffffff1c1111c1ffffffcc11111111cccccc11111111111111111111111111111111111111") -const _hex5533 = pxsim.BufferMethods.createBufferFromHex("870410001000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111") -const _hex5535 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000040444400000000005435550400000040553f554500000054f555ff5504000054555fff5f0400005455552f5204000054555f2f5204000054f5552f5504000040553f55450d000000543555d4000000004044440d0000000000dddd00000000000000000000000000000000000000") -const _hex5537 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000404444000000000054555504000000405555554500000054f55f5f55040000545555f555040000545555f555040000545555f55504000054f55f5f5504000040555555450d000000545555d4000000004044440d0000000000dddd00000000000000000000000000000000000000") -const _hex5539 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000444400800000004055550498000000545f5f45990000005455f545990000005455f54599000000545f5f45990000004055559499000000004444989900008000d088998800000840889989dd000008549889d8000000084088d80d0000008000dd0d0000000000000000000000") -const _hex5541 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000ff66060000000060ff7f670000000076f17f770600000076f77f7f67000000767777f777060000767777f77706000076f77f7f670d000076ff7f77d600000060f17f670d00000000ff66d60000000000d0dd0d000000000000000000000000000000000000000000000000000000") -const _hex5543 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000404444000000000054555504000000405555554500000054f55ff5550400005455555f550400005455555f550400005455555f5504000054f55ff55504000040555555450d000000545555d4000000004044440d0000000000dddd00000000000000000000000000000000000000") -const _hex5545 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000200000000000020020000000000002202000000222222220e000020222222e20d000020e2eeeede00000020dedddd0d000000e0eeeeeeee0e0000e0edededed0d0000e0eeeeeeee0e000000dddddddd0d00000000000000000000000000000000000000000000000000") -const _hex5547 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000006008000000000000960800000000009956080009000090119608099000001999560890900000997996889090000099f7568890900000997796889090000099f756d89090000090799608099000000099560800090000000096080000000000006d08000000000000d00d0000000000000000000000") -const _hex5549 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000220d000000000020ddd40000000000d200d400000000000d400d000000000000d400550d000000400d50ddd7000000400dd500d7000000d0550d700d00000000dd00d7000000000000700d900d00000000700dd90000000000d0990d000000000000dd00000000000000000000000000000000000000") -const _hex5551 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000300030000000000053033000300000003000530300000000000053030000000000335535030000003355555535030000003355350300000000005303000000000000530300000000030030003000000000003000530300000030000030000000000000000000000000000000000000") -const _hex5553 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000040444400000000005455550400000040f555554500000054f55555550400005455f5ff550400005455f52f550400005455f52f5504000054f555555504000040f55555450d000000545555d4000000004044440d0000000000dddd00000000000000000000000000000000000000") -const _hex5555 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000808800000000000000000800009099998008000000906666008000000090f6ffff0008000090f655f50000000090f655f59600000090f655f59600000000f055f59600000008f0ffff96000000800060669600000000889099990000000800000000000000808800000000000000000000000000") -const _hex5557 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000f000000000000000f00f000000008000f0f5000000008098f9550f0000008888f955f50000808098f955f50000088099f955f50000080099f955f50000080099f955f50000080099995ff5000000009999f9f500000000999999ff00000000999999f90000000000000000000000000000000000") -const _hex5559 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000099999989000000009999998800000000999989860000000099996886000008009989668600000800998966860000080099896686000008809989668600008080988966980000008888f0f5000000008008f00f000000008000f000000000000000000000000000000000000000") -const _hex5561 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000009999999900000000898888980000000068666686000000f0555555550f00005f55555555f50000ffffffffffff0000809999999900000088989999990000808888999999000000800000000000000080000000000000000008000800000000008088000000000000000000000000") -const _hex5563 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000080880000000000000800080000000080000000000000008000000000000080888899999900000088989999990000008099999999000000ffffffffffff00005f55555555f50000f0555555550f0000006866668600000000898888980000000099999999000000000000000000000000000000000000") -const _hex5565 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000f000000000000f00f0000000000005f0f0000000000f0550f00000000005f550f00008000005f550f00008800005f550f00808888085f550f00008800005f550f00008000005f550f00000000005f550f0000000000f0550f0000000000005f0f000000000000f00f000000000000000f000000000000000000") -const _hex5567 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000f000000000000000f00f000000000000f0f5000000000000f0550f0000000000f055f50000000000f055f50000080000f055f50000880000f055f58088880800f055f50000880000f055f50000080000f055f50000000000f0550f0000000000f0f5000000000000f00f000000000000f0000000000000") -const _hex5569 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000b0cccccc0c0000001bbbbbbbcb0000b011bbbcbbcb00001b11cbbbbbcb00001b11cbbbbccc00001b1bcbbbbccb00001b11bbccbbcb00001b11bbbbbbcb00001bb1ddddddbd00001bdbddbddddb0000bbdddbddbd0d0000b0bbbbbbdb000000000000d00d00000000000000000000") -const _hex5571 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c1111110000fc4fdcdddddd0000fc54dcfffddf0000fc55dcdddfdd0000fc54dcfffddf0000fc4fdcdddddd0000fcffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") -const _hex5573 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c1111110000fc4fdcdddddd0000fc54dcffdddd0000fc55dcddffdf0000fc54dcffdddd0000fc4fdcdddddd0000fcffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") -const _hex5575 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c1111110000fc4fdcdddddd0000fc54dcdffddf0000fc55dcdfdfdf0000fc54dcffdddf0000fc4fdcdddddd0000fcffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") -const _hex5577 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcfffddf00445445dcdddfdd40555555dcfffddf54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000") -const _hex5579 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcffdddd00445445dcddffdf40555555dcffdddd54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000") -const _hex5581 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcdffddf00445445dcdfdfdf40555555dcffdddf54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000") -const _hex5583 = pxsim.BufferMethods.createBufferFromHex("870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcfffddf40555555dcdddfdd00445445dcfffddf00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") -const _hex5585 = pxsim.BufferMethods.createBufferFromHex("870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcffdddd40555555dcddffdf00445445dcffdddd00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") -const _hex5587 = pxsim.BufferMethods.createBufferFromHex("870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcdffddf40555555dcdfdfdf00445445dcffdddf00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000") -const _hex5589 = pxsim.BufferMethods.createBufferFromHex("870420002100000010111111b100000000000010111111b100000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b1000000000000000000000000000000001011111111b100000000000000000000000000001011111111b10000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b00000010111111b100000000000010111111b100000000") -const _hex5591 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffffffbf00000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffff2222fffffffff2ffffff0b000000ffffffffff2f222222ffff2f21fff2ff0b000000ffffffffff22111122f2ff2f212f21ff0b000000ffffffff2f1211111122ff2f2112f2ff0b000000ffffffff221141141121f2ff2221ffff0b000000ffffff2f12112442141122ffff2222ff0b000000ffffff2f1241f22f421121f2ff1211f20b000000ffffff2f1241f2ff2f141122ff2f22ff0b000000ffffff2f1241f2ffff421121f2ffffff0b000000ffffff2f1241f2ffff2f141122ffffff0b000000ffffff2f121124f2ffff421122ffffff0b000000ffffffff22114124ffff421121f2ffff0b000000ffffffff2f121141f2ff2f141122ffff0b000000ffffffff2f121141f2ff2f141122ffff0b000000ffffffff22114124ffff421121f2ffff0b000000ffffff2f121124f2ffff421122ffffff0b000000ffffff2f1241f2ffff2f141122ffffff0b000000ffffff2f1241f2ffff421121f2ffffff0b000000ffffff2f1241f2ff2f141122ffffffff0b000000ff2f222f1241f22f421121f2ffffffff0b000000ff12112212112442141122ffffffffff0b000000ff2f22f2221141141121f2ffffffffff0b000000ffff2f21221211111122ffffffffffff0b000000ffff12222122111122f2ffffffffffff0b000000ff2f212f212f222222ffffffffffffff0b000000fffff22f21ff2222ffffffffffffffff0b000000fffffffff2ffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000f0ffffffffffffffffffffffffffffbf00000000") -const _hex5593 = pxsim.BufferMethods.createBufferFromHex("8704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b0000001111bbbbbbbbbbbbbbbb1111111111110b00000011b111111111111111111b11111111110b00000011b11111111111111111db11111111110b00000011b11111114444111111db11111111110b00000011b11111445555441111db11111111110b00000011b11141555555551411db11111111110b00000011b11141555555551411db11111111110b00000011b11154f55ff5554511b1db111111110b00000011b111545555555f451111b11d1111110b00000011b111545555555f45111111db1111110b00000011b11154f55ff5554511b11bdb1111110b00000011b11141555555551411dbbddb1111110b00000011b11141555555551411dbd01d1111110b00000011b111114455554411118b88881111110b00000011b111111144441111116866861811110b00000011b111111111111111816666668811110b00000011b111111111111111681611618618110b0000001111bbbbbbbbbbbbbb686161668618110b000000111111dddddddddddd686161668618110b000000111111111111111111681611618618110b00000011111111111111111181666666881d110b00000011111111111111111111686686d811110b000000111111111111111111118188881d11110b0000001111111111111111111111dddd1111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000101111111111111111111111111111b100000000") -const _hex5595 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffffffbf00000000ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffff4f44ffffffffffffffffff0b000000ffffffffff5455f4ffffffffffffffff0b000000ffffffff4f151145ffffffffffffffff0b000000ffffffff4f111145ffffffffffffffff0b000000ffffffff4f151145ffffffffffffffff0b000000ffffffffff5455f4ffffffffffffffff0b000000ffffffffff4f44ffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffff4f44ffff0b000000ffff4f44ffffffffffffffff5455f4ff0b000000ffff5455f4ffffffffffff4f151145ff0b000000ff4f151145ffffffffffff4f111145ff0b000000ff4f111145ffffffffffff4f151145ff0b000000ff4f151145ffffffffffffff5455f4ff0b000000ffff5455f4ffffffffffffff4f44ffff0b000000ffff4f44ffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000f0ffffffffffffffffffffffffffffbf00000000") -const _hex5597 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffffffbf00000000ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffff5fffffffff0b000000ffffffffff4f44ffffffff5fffffffff0b000000ffffffffff5455f4ffffff5fff5fffff0b000000ffffffef4e151145ffffff5ffff5ffff0b000000888888ee4e111145ffffffff5fffffff0b000000ffffffef4e151145ffffffffff5f55ff0b000000ffffffffff5455f4ffffffffffffffff0b000000ffffffffff4f44ffff444444f4ffffff0b000000ffffffffffffffff4f45454545ffffff0b000000ffffffffffffffff4f54545454f4ffff0b000000ffffffffffffffff444545454545ffff0b000000ffffffffffffff4f445554545455f4ff0b000000ffffffffffffff4f55544545555545ff0b000000ffffffffffffff4f54455554555555f40b000000ffffffffffffffff44555455555555f40b000000ffffffffff5555ff4f444455555555f40b000000ffffffffffffffffff445554555555450b000000fffffffffffffff5ff4f5455555555550b000000ffffffffffff5ffff54f4555555555550b000000fffffffffffff5fff54f5554555555550b000000fffffffffffffffff5ff5444545555550b000000fffffffffffffffff5ff5455444455550b000000ffffffffffffffffffff4f55555544540b000000ffffffffffffffffffffff44444455550b000000ffffffffffffffffffffffffffff44550b000000ffffffffffffffffffffffffffffff440b000000f0ffffffffffffffffffffffffffffbf00000000") -const _hex5599 = pxsim.BufferMethods.createBufferFromHex("8704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b00000011111111c1cc1c1111111111111111110b000000111111114c44c21111111111111111110b000000111111c12422221c11111111111111110b000000111111c122cc221c11111111111111110b000000111111c12cc22c1c11111111111111110b0000001111114c44444c1c11111111111111110b0000001111c1242242c4cccccccc1c111111110b0000001111c122cc2cc411111111c1111111110b0000001111c1224424c2ccccccccdc111111110b0000001111112c2222ccdddcdddd1d111111110b000000111111c1ccccdd1cc1111111111111110b00000011111111dddd11cd111c1111111111110b00000011111111111111d11cc11111111111110b0000001111111111111111cd111c11111111110b000000111111111111cc11d1cc1dc1cc1111110b0000001111111111cc111c11dd11dcdd1c11110b000000111111cccc11111c1111c1ddddcd11110b0000001111cc1111111dc11111dcd1ddbd1c110b00000011c11111d1111dc111c11dddddbd1c110b00000011111c1dd111d1111cc11dddddbb1c110b00000011111cd1111d11111cc1ddddbdbd1c110b00000011111cd1111111c11dc1dddddbbb1c110b0000001111c1111111c1dc11c1bbbdbdcb1d110b0000001111c111c1ccdc1d1111bcbbbbcb1d110b000000111111ccdcdd1d111111c1bbbbdc11110b000000111111d1dd111111111111cccc1d11110b0000001111111111111111111111d1dd1111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000101111111111111111111111111111b100000000") -const _hex5601 = pxsim.BufferMethods.createBufferFromHex("8704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b000000116111111111111111111111111111110b000000111116161611111f51111116111116110b000000111161616111f1f411616116111116110b000000111111161111f1f411161661111166110b0000001111111111fffff461611661116111110b00000011111111f155f5f4ff616161116111110b00000011111b115f55f5f455ff6f61116111110b000000111111115fff5fff5555651f161111110b000000111111f1f511f155555565f5161115110b000000111111f1f5f1f15555556555161111110b000000111111f1f511f15555556555f61111110b000000111111115fff5f5555556555f61111110b000000111151115f55555555556555f61111110b00000011611111f155555555556555f6111f110b0000001116161111ffff5f4555655556fff4110b000000116111111161115f4555655456fff4110b000000111111111116115f45555654564ff4110b000000111111116611115f45555654564ff4110b000000111111651111615f4544465556fff4110b000000111111611111165f5565555556dfdf110b000000111116611111165f55655555561f1d110b00000011116616161516f155655555f61d11110b00000011116161111116115f565565f51d11110b000000111161111111611161ffff6fdf1111110b00000011611611b11111661616dd6d111111110b000000111111111b1b111111161161115111110b00000011111111b111511111165161616611110b000000111111111111111111611116161116110b000000111111111111111111116611111111110b000000101111111111111111111111111111b100000000") -const _hex5603 = pxsim.BufferMethods.createBufferFromHex("8704200021000000909999999999999999119199777777b700000000999999999999999999199199777777770b000000999999999199999999999199777777770b000000999999199199999999999199771777770b000000999999119199999999999999777777770b000000999999119199999999999999177717770b000000999999199199999999999999777751710b00000099999999919999f9ff999999777717770b00000099999999999999dfdd9f9999777777770b0000009999999999ffff3d33fdf9ffff7777770b00000099999999f9dded3d33fdeffeee7f77770b00000099999999f93dde3d33fdefdeef7f77770b00000099999999f9ed1ddfddddefdeff7f77770b0000009999229999effddfdfdddffe4e7f17770b00000099292492994fdeddfddddfed4e7f77770b00000099992222994fde2dffdddfedfe7f77770b00000099292292994fdeddfddddfed4e7f77770b0000009999229999ef1ddfdfdddffe4e7f17770b00000099999999f9edfddfddddefdeff7f51710b00000099999999f93dde3d33fdefdeef7f17770b00000099999999f9dded3d33fdeffeee7f77770b0000009999999999ffff3d33fdf9ffff7677770b00000099999999999999dfdd9f9999667777770b00000099199999999999f9ff999999777777770b000000991999999919999999999999177777770b000000999999999911999999999999777777770b000000999999991911999999999999777771770b000000999999991911999999999999771715770b000000999999999911999999999999777771770b000000999999999919999999999999177777770b000000999999999999999999999199777777770b000000909999999999999999999199777777b700000000") -const _hex5605 = pxsim.BufferMethods.createBufferFromHex("8704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b00000011f111111111111111111111111111110b000000111f11111111111111111111111111110b000000f1111f111111111111111141441111110b000000f1f111111111111111114144454414110b000000f1f111111111111111114145555445140b000000111111611611111111114155544445450b000000111111966911111141444155544545450b000000111111969916111154454455544545450b000000111111619969111144554454454545450b000000111111119669111111545554454545450b000000111111116116111111445545444444440b000000111111111111111111415555555555450b000000111111111111f11111415455555555450b0000001111111111f11ff111114d44555555440b000000111111111111111f1111114d545555550b0000001111111111f1ff11111111d1445555550b0000001111111111111111111111114d5555550b000000111111111111111111111111d15455550b000000111111111111111111111111114d55550b00000011111111111111111111111111d154550b00000011111111111111111111111111d154550b00000011111111111111111111111111114d550b0000001111111111111111111111111111d1540b000000111111111111111111111111111111410b000000101111111111111111111111111111b100000000") -const _hex5607 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffdfddbd00000000ffffffff1111f1ffffffffffffdfdddd0b000000ffffffffffff1f111111f1ffffdfdddd0b000000ffffffffffffffffffff1f11f1dfdddd0b000000ffffffffffffffffffffffffffdfdddd0b000000ffff11111111f1ffffffffffffdfdddd0b000000ffffffffffff1f11111111f1ffdfdddd0b000000ffffffffffffffffffffffffffdfdddd0b000000ffffffffffffffffffffffffffdfdddd0b000000ffffffffffffff444444f4ffffdfdddd0b000000ffffffffffff4f45454545ffffffdfdd0b000000ff11111111ff5454545444ffffeefedd0b000000ffffffffff4f4545454545ff4f24eedf0b000000ff1f1111ff545554545445ff4444e2df0b000000ffffffff4f5555454555f4ff4444e2df0b000000ffff11ff545555555445ffff4444e2df0b000000ffffffff5455555555f4ffff4444e2df0b0000001f1111f1545555554544ffff4444e2df0b000000ffffff4f555555555445ffff4444e2df0b000000ffff4f545555555555f4ffff4444e2df0b0000004f4454555555555545ffffff4f24eedf0b0000005455555555555555f4ffffffffeefedd0b0000005555555555555544ffffffffffffdfdd0b00000055555555554544ffffffffffffdfdddd0b0000005555555544f4ffffffffffffffdfdddd0b00000055555544ffffffffffffffffffdfdddd0b000000555544ffffffffff11111111f1dfdddd0b0000005544ff1f11111111ffffffffffdfdddd0b00000045ffffffffffffffffffffffffdfdddd0b000000f4ffffffffffffffff111111ffdfdddd0b000000ffffffffff1f111111ffffffffdfdddd0b000000f0ffffffffffffffffffffffffdfddbd00000000") -const _hex5609 = pxsim.BufferMethods.createBufferFromHex("8704200021000000f0ffffffffffffffffffffffffffffbf00000000ffffffffffffffffffffffffffffffff0b000000fffffffffffffffff5ffffffffffffff0b000000ffffffffffffffff54ffffffffffffff0b000000ffffffff44ffffff44f5ffffffffffff0b000000ffffffff44f44fff4555ffffffffffff0b000000ffff5f25425455444552f5ffffffffff0b000000ffff2245554454554422f5ffffffffff0b000000ffff2522544544444545f5ffffffffff0b000000ffffff5545454444444454ffffffffff0b000000ff5ff2254544edee4e4454f5ffffffff0b000000ffff225522dddddded4e4455ffffffff0b000000ff2f2f5224ddddddddee4e4444ffffff0b000000ff5f225544dddddeddddeeee4444ffff0b000000ff5f255444edddddddddddedee44f4ff0b000000ffff254245dddddddddddddded4ef4ff0b0000005f255f2245ddddddddedddddddee44ff0b000000ff25222542dddeeddddddddedded44ff0b000000ffff2f5245d4dddddddddddddded44ff0b000000ffffff225244ddddedddddddddee44ff0b000000ffffff554244dddddddddeeddd4e44ff0b000000ffff2f524544d4dddddddddded4ef4ff0b000000ffffff2f524544dddedddddded4ef4ff0b000000ffffffff2f222244dddddedded44f4ff0b000000ffffff555555444444d4ed444444ffff0b000000ffffff5f252242444444444444ffffff0b000000ffffff225555224555ffffffffffffff0b000000ffffff2f42f4f255f5ffffffffffffff0b000000fffffffff4ffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000ffffffffffffffffffffffffffffffff0b000000f0ffffffffffffffffffffffffffffbf00000000") -const _hex5611 = pxsim.BufferMethods.createBufferFromHex("8704200021000000909999999999999999999999999979b900000000999999999999999999999999999997790b0000009999cccc9c9999cccc9c9999999999770b00000099c94444c499c94444c49999b99d79790b000000994c2222429c4c8888489c992bbd99790b000000994c222242bc4c888848bccbdbc2cccc0b000000994c222242cc4c888848ccbcddcbcccc0b000000994c222242bc4c888848bcdbbdcccccc0b000000994c2222429c4c888848fcdb9b9999e90b00000091c94444c499c94444c4b9dd9b9999e90b0000009999cccc9c9999cccc9cb9bd999999e90b000000999999999999999999992bbd999999e90b000000999999999999999999b9dd92999999e90b000000999999999999999999b9bd99999999e90b000000199999999999999999dbbd99999999e90b0000009999999999999999b9dd9b99999999e90b0000009999999999999999b9bd9999999999e90b00000099999999999999992bbd9999999999e90b0000009999999999999999db929999999999e90b00000099199999999999b9dd9b9999999999e90b000000999999999999992bbd999999999999e90b00000099999999999999db92999999999999e90b000000999999999999b9dd9b999999999999e90b0000009999999999992bbd99999999999999e90b000000199999999999db9299999999999999e90b0000009919999999b9dd9b99999999999999e90b0000009999999999b9bd9999999999999999e90b0000009999999999d2bd9999999999999999e90b00000099919999992d9b9999999999999999e90b000000999999999999999999999999999959550400000099999999999999999999999999995955040000009099919999999999999999999999594500000000") -const _hex5613 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000d00d00000000d00dbdcbd00d0000bdcbbdcbbdcb0000bdbbbbbbbbcb0000c0dbcbbcbd0c0000ddbb0cc0bbcc00d0bbcb0000bcbb0cd0bbcb0000bcbb0c00ccbb0cc0bbcc0000d0dbcbbcbd0c0000bdbbbbbbbbcb0000bdcbbdcbbccb0000c00cbdcbc00c00000000c00c0000000000000000000000") -const _hex5615 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000000f000ff0ffff0ff0ffff0f0000000f00000000") -const _hex5618 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000000ff00ff000ff0ff0000f0f00ff000f00000000") -const _hex5621 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000f000000ff0f0000ff0f0000f00ffff0000000000") -const _hex5624 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000f0ff000000f0000000f00000f0ffff0f00000000") -const _hex5627 = pxsim.BufferMethods.createBufferFromHex("870406000800000000000000f0ff000ff0f0000ff0f0000ff000ff0000000000") -const _hex5630 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000088888888888800808888b8bb888808808888b8cc8b8808808888b8cb8b880800888888bbbc88000000000000cb0b000000000000b0bc00000000000000cb0b007707ff0f00b000707707ffff000000707707ffff000000007707ff0f00554500000000000055450000000000005504") -const _hex5632 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000088888888888800808888b8bb888808808888b8cc8b8808808888b8cb8b880800888888bbbc88000000000000cb0b000000000000b0bc00000000400200cb0b402200002400b00c00402222220200b00000000024000000000000400200554500000000000055450000000000005504") -const _hex5634 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004444000000000000544500000000000054450000000000004444000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") -const _hex5636 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000004444000000000000544500000000000054450000000000004444000000000000000000000000000000000000000000004444000000000000544500000000000054450000000000004444000000000000000000000000000000000000000000000000000000") -const _hex5638 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000444400000000000054450000000000005445000000000000444400000000000000000000000000004444000000000000544500000000000054450000000000004444000000000000000000000000000044440000000000005445000000000000544500000000000044440000000000000000000000") -const _hex5640 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000040440440440400004055044055040000405504405504000040440440440400000000000000000000000000000000000040440440440400004055044055040000405504405504000040440440440400000000000000000000000000000000000000000000000000") -const _hex5642 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000004444000000000000544500000040440454450000004055044444000000405504000000000040440444440000000000005445000000404404544500000040550444440000004055040000000000404404444400000000000054450000000000005445000000000000444400000000000000000000") -const _hex5651 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000006066666666666606666666966966666666ffff9ff9ffff66f6cfcc9cc9ccfc6f66ffff9ff9ffff66666666966966666660666666666666060000000000000000000000000000554500000000000055450000000000005504") -const _hex5653 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000ffffffffffff0000ff7f77ffffff0000ff7f77ffffff0000ff7f77ffffff0000ffffffffffff0000dddddddddddd0000ddfdffdddddd0000ddfdffdddddd0000ddfdffdddddd0000dddddddddddd000000000000000000000000000000554500000000000055450000000000005504") -const _hex5655 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000606666666606000066fcffffcf66000066ffccccff66000066cffffffc66000066cffffffc66000066cffffffc66000066cffffffc66000066ffccccff66000066fcffffcf6600006066666666060000000000000000000000f0000f0055450000ffff0f005545000000000f005504") -const _hex5657 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000606666666606000066fcffffcf66000066ffccccff66000066cffffffc66000066cffffffc66000066cffffffc66000066cffffffc66000066ffccccff66000066fcffffcf66000060666666660600000000000000000000000ff00f00554500000f0f0f0055450000f0000f005504") -const _hex5659 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000666666660000006066dddd6606000066d6ffff6d66000066fdffffdf66000066fdffffdf660000661d11ffdf66000066fdffffdf66000066fdffffdf66000066d6ffff6d6600006066dddd6606000000666666660000000000000000554500000000000055450000000000005504") -const _hex5661 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000900000000000000090090000000000999999000000009099999900000000998998890000000099089008000000009900800000000000990000000000000088000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") -const _hex5663 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008800000000000000990000000000000099008000000000009908900800000000998998890000000090999999000000000099999900000000000090090000000000009000000000000000000000000000000000000000") -const _hex5665 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000f0ffff00000000ffff9fffff0f00f0ffff19f9ff0f00ff11f19fffdd00001f11fdffff0000001f11fdffff0000001f11fdffff0000001f11fdffff0000001f11fdffff0000001f11fdffff000000ffd1fd9fff000000f0ffff19f9ff0f0000ffff9fffff0f000000f0ffffdd0000000000d0dd0d00") -const _hex5667 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000c0cc0000000000007cc70000000000c077c7cccccc00007c77777777c700c07777777777c700007c77777777c70000c077c7cccccc0000007cc7dddd0d000000c0cc0d000000000000d00d000000000000000000000000000000000000000000000000000000") -const _hex5669 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000000000000000000000000000000000cc0c0000000000c0770c00000000007c770ccc0cccc0c077770c7c0cc7707c77770c7c0cc770c077770c7c0cc770007c770ccc0cccc000c0770cd00dd0d00000cc0c000000000000000d00000000000000000000000000000000000000000000000000000000") -const _hex5671 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000000000000000000000000000000000000000000000000000000cc0c0000000000007cc7000000cccccc7c770c00007c77777777c700007c77777777770c007c77777777c70000cccccc7c770c000000dddd7cc7000000000000cc0c0000000000000000000000000000000000000000000000000000") -const _hex5673 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000c0000000000000007c0c0000000000c077c700000000007c77770c000000c0777777c7000000c0777777c7000000c0cc77c7cc00000000c077c70d00000000c077770c00000000c07777c7cccc0c00007c777777770c0000c0777777770c0000007c7777770c000000c0cccccc0c00000000d0dddd00") -const _hex5675 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000c0cc000000000000c0770c00000000c0cc77c7000000007c7777770c0000c077777777c700007c777777770c00007c77cc77c70d00007c77cc77dc0000007c77c7cc0d0000007c7777dc00000000c07777c7cccc0c00007c777777770c0000c0777777770c0000007c7777770c000000c0cccccc0c00000000d0dddd00") -const _hex5677 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000d0dddd0d000000001d1111d1000000d0212222120d00001d22222222d100d02122122122120dd02122122122120dd02122122122120dd02122122122120dd02122122122120dd02122122122120d001d22222222d10000d0212222120d0000001d1111d100000000d0dddd0d00000000000000000000") -const _hex5679 = pxsim.BufferMethods.createBufferFromHex("8704100010000000d0222dd2222dd200d0222dd2222dd200d022dddd22dddd00d0222dd2222dd200d0dd2dd2dd2dd200d0222dd2222dd200d0222dd2222dd200d022dddd22dddd00d0222dd2222dff0fd0dd2dd2fdff19ffd0222dd2f2d1ff0fd0222dd2f2d1ff0fd022ddddf2d1ff0fd0222dd2f2d1ff0fd0dd2dd2fdff19ffd0222dd2222dff0f") -const _hex5681 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000b0bbddbdbbddbd0bd0dddddddddddd0dd0dddddddddddd0dd0dddddddddddd0dd0dddddddddddd0dc0cccccccccccc0cf0ffffffffffcc0cf0ffffffccccff0fc0ccccccfcff19ffd0ddddddfdd1ff0fd0ddddddfdd1ff0fd0ddddddfdd1ff0fd0ddddddfdd1ff0fb0bbddbdfbff19ff000000000000ff0f") -const _hex5683 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000d0dddddd0d0000001d1111110d0000d0111111d10000001d1111110d0000d0111111d1000000d0dddddd0d0000000000000000000000d0dddddd0d000000d0111111d1000000001d1111110d000000d0111111d1000000001d1111110d000000d0dddddd0d00000000000000000000000000000000") -const _hex5685 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000ccccccdbddddddbdffffff7d777777fdffffdf777777d7ffffff7d777777fdffccdb777777d7cbcc00d0dddddd0d0000000000000000000000d0dddddd0d000000d0111111d1000000001d1111110d000000d0111111d1000000001d1111110d000000d0dddddd0d00000000000000000000000000000000") -const _hex5687 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000d0dddddd0d0000001d1111110d0000d0111111d10000001d1111110d0000d0111111d1000000d0dddddd0d0000000000000000000000d0dddddd0d0000ccdb777777d7cbccffff7d777777fdffffffdf777777d7ffffffff7d777777fdccccccdbddddddbd00000000000000000000000000000000") -const _hex5689 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000000d0dddddd0d0000007d7777770d0000d0777777d70000007d7777770d00ccdb777777d7cbccffdfddddddfdffffffffffffffffffffffdfddddddfdffffccdb777777d7cbcc00007d7777770d000000d0777777d7000000007d7777770d000000d0dddddd0d00000000000000000000000000000000") -const _hex5691 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000ccccccccccccccccffffffffffffffffffffffffffffffffffffffffffffffffcccccccccccccccc00000000000000000000000000000000000000d0dddddd0d0000001d1111110d0000d0111111d10000001d1111110d0000d0111111d1000000d0dddddd0d0000000000000000000000d0dddddd0d0000") -const _hex5693 = pxsim.BufferMethods.createBufferFromHex("870410001000000000d0dddddd0d0000000000000000000000d0dddddd0d000000d0111111d1000000001d1111110d000000d0111111d1000000001d1111110d000000d0dddddd0d00000000000000000000000000000000ccccccccccccccccffffffffffffffffffffffffffffffffffffffffffffffffcccccccccccccccc0000000000000000") -const _hex5695 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000000066060000000000601161000002000016911106002200001699192622220200169111060022000060116100000200000066060000000000006606000000000060116100200000001691110622000000169919262222020016911106220000006011610020554500006606000055450000000000005504") -const _hex5697 = pxsim.BufferMethods.createBufferFromHex("870410001000000000000000000000000000000000e00b000000009999eebe000000999991e9ee0b8099999919e9ee0b0088999999e9ee0b0000889999e8ee0b0000008888eeee0b0000000000eeee0b0000009099e9ee0b000090991999ee0b009899999991ee0b008098999999be00000080989989554500000080880855450000000000005504") -const _hex5699 = pxsim.BufferMethods.createBufferFromHex("8704100010000000000000000000000000000090000000000000ff9fff0f000000f0bb9bbbfb000000bfbb9bbbbb0f00f0bbbb89b9bbfb00f0bb9bb8bbbbfb00f0bb89bbbbbbfb00f09bb8bbbbbbfb00f08bbbbbbbbbfb00f0bbbb89b9bbfb0000bfbb9bbbbb0f0000f0bb9bbbfb00000000ff9fff0f554500000090000055450000000000005504") -const _hex5701 = pxsim.BufferMethods.createBufferFromHex("87041000100000000000000000000000202222222222220220ffff2ff2ff2f0220ffff2ff2ffff022022222f2222f2022022222f2222f20220222222f2ff2f022022222222222202202222222222220220f2ff22f2ffff0220fff22ff2ffff02202f222ff222f20220fff22ff222f20220f2ff2222ff2f0220222222222222020000000000000000") -const _hex5703 = pxsim.BufferMethods.createBufferFromHex("87041000100000009999999999997777999999999999777799999199999977779919919999797777991111999979777799111199997977779911919999797777991991199979777799999919917977779999991991997777991999199199777799199199999979779919119999997977999911999999797799911999999977779999999999997777") -const _hex5705 = pxsim.BufferMethods.createBufferFromHex("8704100010000000200000000000200020000000000020002000f000000f20002000ffffff0f200020000000000f2000200000000000200020000ff0ff0f200020000ff0000f20002000ffff000f20002000000000002000204000000040200020404444444420002040000000402000200000000000200020000000000020002000000000002000") - - - - -function control___screen_inline__P5099(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - case 1: - r0 = pxsim_numops_toBoolDecr(globals.__ok___5097); + + + +function control___screen_inline__P5088(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + case 1: + r0 = pxsim_numops_toBoolDecr(globals.__ok___5086); if (!r0) { step = 4; continue; } - globals.__updated___5095 = (false); + globals.__updated___5084 = (false); s.tmp_0 = pause__P2371_mk(s); s.tmp_0.arg0 = 40; - s.callLocIdx = 237; s.pc = 5; return s.tmp_0; + s.callLocIdx = 230; s.pc = 5; return s.tmp_0; case 5: r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals.__updated___5095); + r0 = pxsim_numops_toBoolDecr(globals.__updated___5084); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 2; continue; } - s.tmp_2 = control___screen_update__P3305_mk(s); - s.callLocIdx = 238; s.pc = 6; return s.tmp_2; + s.tmp_2 = control___screen_update__P3278_mk(s); + s.callLocIdx = 231; s.pc = 6; return s.tmp_2; case 6: r0 = s.retval; - globals.__updated___5095 = (true); + globals.__updated___5084 = (true); case 2: case 3: { step = 1; continue; } @@ -2063,12 +1983,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -control___screen_inline__P5099.info = {"start":478,"length":210,"line":22,"column":26,"endLine":31,"endColumn":5,"fileName":"pxt_modules/display-shield/frame.ts","functionName":"inline","argumentNames":[]} +control___screen_inline__P5088.info = {"start":478,"length":210,"line":22,"column":26,"endLine":31,"endColumn":5,"fileName":"pxt_modules/display-shield/frame.ts","functionName":"inline","argumentNames":[]} -function control___screen_inline__P5099_mk(s) { +function control___screen_inline__P5088_mk(s) { checkStack(s.depth); return { - parent: s, fn: control___screen_inline__P5099, depth: s.depth + 1, + parent: s, fn: control___screen_inline__P5088, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -2078,8 +1998,7 @@ function control___screen_inline__P5099_mk(s) { - -function fun_inline__P5925(s) { +function microgui_inline__P5345(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2091,29 +2010,32 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 > s.arg1); + s.tmp_0 = user_interface_base_icons_get__P3819_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = false; + s.callLocIdx = 845; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; return leave(s, r0) default: oops() } } } -fun_inline__P5925.info = {"start":463,"length":15,"line":23,"column":20,"endLine":23,"endColumn":35,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} +microgui_inline__P5345.info = {"start":341,"length":51,"line":13,"column":34,"endLine":13,"endColumn":85,"fileName":"pxt_modules/microgui/app.ts","functionName":"inline","argumentNames":["id"]} -function fun_inline__P5925_mk(s) { +function microgui_inline__P5345_mk(s) { checkStack(s.depth); return { - parent: s, fn: fun_inline__P5925, depth: s.depth + 1, + parent: s, fn: microgui_inline__P5345, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function fun_inline__P5931(s) { +function microgui_inline__P5350(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2125,29 +2047,26 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 >= s.arg1); + r0 = s.arg0; return leave(s, r0) default: oops() } } } -fun_inline__P5931.info = {"start":512,"length":16,"line":24,"column":21,"endLine":24,"endColumn":37,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} +microgui_inline__P5350.info = {"start":434,"length":26,"line":14,"column":41,"endLine":14,"endColumn":67,"fileName":"pxt_modules/microgui/app.ts","functionName":"inline","argumentNames":["ariaId"]} -function fun_inline__P5931_mk(s) { +function microgui_inline__P5350_mk(s) { checkStack(s.depth); return { - parent: s, fn: fun_inline__P5931, depth: s.depth + 1, + parent: s, fn: microgui_inline__P5350, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, - arg1: undefined, } } - -function fun_inline__P5937(s) { +function __kbBehaviourNumericDefault_inline__P5368(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2157,56 +2076,160 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.btnChar___5372 = undefined; + s.txt___5376 = undefined; + s.txtLen___5381 = undefined; + s.leadingZeroCase1___5390 = undefined; + s.leadingZeroCase2___5397 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 < s.arg1); - return leave(s, r0) - default: oops() -} } } -fun_inline__P5937.info = {"start":561,"length":15,"line":25,"column":20,"endLine":25,"endColumn":35,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} - -function fun_inline__P5937_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: fun_inline__P5937, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, - arg1: undefined, -} } - - - - - -function fun_inline__P5943(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; + r0 = s.arg0.fields["state"]; + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, 0); + s.btnChar___5372 = (r0); + s.tmp_0 = if_getText_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "getText"), 1); + s.callLocIdx = 846; s.pc = 14; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["getText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["getText"], 1); s.callLocIdx = 846; s.pc = 14; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 846; s.pc = 14; return s.tmp_0;; } + else { s.callLocIdx = 846; s.pc = 14; return s.tmp_0; } } - r0 = (s.arg0 <= s.arg1); + case 14: + r0 = s.retval; + s.txt___5376 = (r0); + r0 = pxsim_String_.length(s.txt___5376); + s.txtLen___5381 = (r0); + r0 = (s.txtLen___5381 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = if_appendText_2_mk(s); + s.tmp_1.arg0 = s.arg1; + s.tmp_1.arg1 = s.btnChar___5372; + if (!s.tmp_1.arg0.vtable.iface) { + setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "appendText"), 2); + s.callLocIdx = 847; s.pc = 15; return s.tmp_1; + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["appendText"]; + if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["appendText"], 2); s.callLocIdx = 847; s.pc = 15; return s.tmp_1; } + else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 847; s.pc = 15; return s.tmp_1;; } + else { s.callLocIdx = 847; s.pc = 15; return s.tmp_1; } + } + case 15: + r0 = s.retval; + { step = 13; continue; } + case 1: + case 2: + r0 = (s.txtLen___5381 == 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 3; continue; } + r0 = s.tmp_0; + { step = 4; continue; } + case 3: + r0 = pxsim_String_.charAt(s.txt___5376, 0); + s.tmp_1 = r0; + r0 = (s.tmp_1 == "0"); + case 4: + // jmp value (already in r0) + s.tmp_2 = r0; + s.leadingZeroCase1___5390 = (s.tmp_2); + r0 = (s.txtLen___5381 == 2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 5; continue; } + r0 = s.tmp_0; + { step = 6; continue; } + case 5: + r0 = pxsim_String_.charAt(s.txt___5376, 0); + s.tmp_1 = r0; + r0 = (s.tmp_1 == "-"); + case 6: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (r0) { step = 7; continue; } + r0 = s.tmp_2; + { step = 8; continue; } + case 7: + r0 = pxsim_String_.charAt(s.txt___5376, 1); + s.tmp_3 = r0; + r0 = (s.tmp_3 == "0"); + case 8: + // jmp value (already in r0) + s.tmp_4 = r0; + s.leadingZeroCase2___5397 = (s.tmp_4); + s.tmp_0 = r0 = s.leadingZeroCase1___5390; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = s.tmp_0; + { step = 10; continue; } + case 9: + r0 = s.leadingZeroCase2___5397; + case 10: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 11; continue; } + s.tmp_2 = if_shakeText_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "shakeText"), 1); + s.callLocIdx = 848; s.pc = 16; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["shakeText"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["shakeText"], 1); s.callLocIdx = 848; s.pc = 16; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 848; s.pc = 16; return s.tmp_2;; } + else { s.callLocIdx = 848; s.pc = 16; return s.tmp_2; } + } + case 16: + r0 = s.retval; + { step = 12; continue; } + case 11: + s.tmp_0 = if_appendText_2_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.btnChar___5372; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "appendText"), 2); + s.callLocIdx = 849; s.pc = 17; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["appendText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["appendText"], 2); s.callLocIdx = 849; s.pc = 17; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 849; s.pc = 17; return s.tmp_0;; } + else { s.callLocIdx = 849; s.pc = 17; return s.tmp_0; } + } + case 17: + r0 = s.retval; + case 12: + case 13: + r0 = undefined; return leave(s, r0) default: oops() } } } -fun_inline__P5943.info = {"start":610,"length":16,"line":26,"column":21,"endLine":26,"endColumn":37,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} +__kbBehaviourNumericDefault_inline__P5368.info = {"start":6307,"length":655,"line":228,"column":53,"endLine":247,"endColumn":3,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function fun_inline__P5943_mk(s) { +function __kbBehaviourNumericDefault_inline__P5368_mk(s) { checkStack(s.depth); return { - parent: s, fn: fun_inline__P5943, depth: s.depth + 1, + parent: s, fn: __kbBehaviourNumericDefault_inline__P5368, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + btnChar___5372: undefined, + txt___5376: undefined, + txtLen___5381: undefined, + leadingZeroCase1___5390: undefined, + leadingZeroCase2___5397: undefined, arg0: undefined, arg1: undefined, } } @@ -2214,8 +2237,7 @@ function fun_inline__P5943_mk(s) { - -function fun_inline__P5949(s) { +function __kbBehaviourNumericMinus_inline__P5417(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2225,22 +2247,127 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.txt___5421 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 === s.arg1); + s.tmp_0 = if_getText_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "getText"), 1); + s.callLocIdx = 850; s.pc = 5; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["getText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["getText"], 1); s.callLocIdx = 850; s.pc = 5; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 850; s.pc = 5; return s.tmp_0;; } + else { s.callLocIdx = 850; s.pc = 5; return s.tmp_0; } + } + case 5: + r0 = s.retval; + s.txt___5421 = (r0); + r0 = pxsim_String_.charAt(s.txt___5421, 0); + s.tmp_1 = r0; + r0 = s.arg0.fields["state"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, 0); + s.tmp_2 = r0; + r0 = (s.tmp_1 == s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim_String_.length(s.txt___5421); + s.tmp_5 = r0; + r0 = (s.tmp_5 == 1); + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 1; continue; } + s.tmp_6 = if_setText_2_mk(s); + s.tmp_6.arg0 = s.arg1; + r0 = pxsim_String_.mkEmpty(); + s.tmp_6.arg1 = r0; + if (!s.tmp_6.arg0.vtable.iface) { + setupLambda(s.tmp_6, pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "setText"), 2); + s.callLocIdx = 851; s.pc = 6; return s.tmp_6; + } else { + s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["setText"]; + if (s.tmp_6.fn == null) { setupLambda(s.tmp_6, s.tmp_6.arg0.fields["setText"], 2); s.callLocIdx = 851; s.pc = 6; return s.tmp_6; } + else if (s.tmp_6.fn.isGetter) { s.tmp_6.stage2Call = true; s.callLocIdx = 851; s.pc = 6; return s.tmp_6;; } + else { s.callLocIdx = 851; s.pc = 6; return s.tmp_6; } + } + case 6: + r0 = s.retval; + { step = 2; continue; } + case 1: + s.tmp_0 = if_setText_2_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_1 = helpers_stringSlice__P2148_mk(s); + s.tmp_1.arg0 = s.txt___5421; + s.tmp_1.arg1 = 1; + s.tmp_1.arg2 = undefined; + s.callLocIdx = 852; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "setText"), 2); + s.callLocIdx = 853; s.pc = 7; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["setText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["setText"], 2); s.callLocIdx = 853; s.pc = 7; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 853; s.pc = 7; return s.tmp_0;; } + else { s.callLocIdx = 853; s.pc = 7; return s.tmp_0; } + } + case 7: + r0 = s.retval; + case 2: + { step = 4; continue; } + case 3: + s.tmp_0 = if_setText_2_mk(s); + s.tmp_0.arg0 = s.arg1; + if ((s.txt___5421) && (s.txt___5421).vtable) { + setupResume(s, 10); + pxsim_String__stringConv(s.txt___5421); + checkResumeConsumed(); + return; + } else { s.retval = (s.txt___5421) + ""; } + case 10: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat("-", s.tmp_1); + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "setText"), 2); + s.callLocIdx = 854; s.pc = 9; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["setText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["setText"], 2); s.callLocIdx = 854; s.pc = 9; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 854; s.pc = 9; return s.tmp_0;; } + else { s.callLocIdx = 854; s.pc = 9; return s.tmp_0; } + } + case 9: + r0 = s.retval; + case 4: + r0 = undefined; return leave(s, r0) default: oops() } } } -fun_inline__P5949.info = {"start":660,"length":17,"line":27,"column":21,"endLine":27,"endColumn":38,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} +__kbBehaviourNumericMinus_inline__P5417.info = {"start":7068,"length":328,"line":249,"column":51,"endLine":260,"endColumn":3,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function fun_inline__P5949_mk(s) { +function __kbBehaviourNumericMinus_inline__P5417_mk(s) { checkStack(s.depth); return { - parent: s, fn: fun_inline__P5949, depth: s.depth + 1, + parent: s, fn: __kbBehaviourNumericMinus_inline__P5417, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + txt___5421: undefined, arg0: undefined, arg1: undefined, } } @@ -2248,8 +2375,7 @@ function fun_inline__P5949_mk(s) { - -function fun_inline__P5955(s) { +function __kbBehaviourNumericDecimal_inline__P5448(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2259,22 +2385,110 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.txt___5452 = undefined; + s.len___5456 = undefined; + s.decimalAlreadyPresent___5459 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 !== s.arg1); + s.tmp_0 = if_getText_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "getText"), 1); + s.callLocIdx = 855; s.pc = 7; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["getText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["getText"], 1); s.callLocIdx = 855; s.pc = 7; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 855; s.pc = 7; return s.tmp_0;; } + else { s.callLocIdx = 855; s.pc = 7; return s.tmp_0; } + } + case 7: + r0 = s.retval; + s.txt___5452 = (r0); + r0 = pxsim_String_.length(s.txt___5452); + s.len___5456 = (r0); + r0 = pxsim_String_.includes(s.txt___5452, ".", undefined); + s.decimalAlreadyPresent___5459 = (r0); + r0 = (s.len___5456 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_2 = r0 = s.txt___5452; + r0 = (s.len___5456 - 1); + s.tmp_3 = r0; + r0 = pxsim_String_.charAt(s.tmp_2, s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 == "-"); + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (!r0) { step = 3; continue; } + r0 = s.tmp_4; + { step = 4; continue; } + case 3: + r0 = s.decimalAlreadyPresent___5459; + case 4: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 5; continue; } + s.tmp_6 = if_shakeText_1_mk(s); + s.tmp_6.arg0 = s.arg1; + if (!s.tmp_6.arg0.vtable.iface) { + setupLambda(s.tmp_6, pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "shakeText"), 1); + s.callLocIdx = 856; s.pc = 8; return s.tmp_6; + } else { + s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["shakeText"]; + if (s.tmp_6.fn == null) { setupLambda(s.tmp_6, s.tmp_6.arg0.fields["shakeText"], 1); s.callLocIdx = 856; s.pc = 8; return s.tmp_6; } + else if (s.tmp_6.fn.isGetter) { s.tmp_6.stage2Call = true; s.callLocIdx = 856; s.pc = 8; return s.tmp_6;; } + else { s.callLocIdx = 856; s.pc = 8; return s.tmp_6; } + } + case 8: + r0 = s.retval; + { step = 6; continue; } + case 5: + s.tmp_0 = if_appendText_2_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = "."; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "appendText"), 2); + s.callLocIdx = 857; s.pc = 9; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["appendText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["appendText"], 2); s.callLocIdx = 857; s.pc = 9; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 857; s.pc = 9; return s.tmp_0;; } + else { s.callLocIdx = 857; s.pc = 9; return s.tmp_0; } + } + case 9: + r0 = s.retval; + case 6: + r0 = undefined; return leave(s, r0) default: oops() } } } -fun_inline__P5955.info = {"start":711,"length":17,"line":28,"column":21,"endLine":28,"endColumn":38,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} +__kbBehaviourNumericDecimal_inline__P5448.info = {"start":7502,"length":285,"line":263,"column":53,"endLine":271,"endColumn":3,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function fun_inline__P5955_mk(s) { +function __kbBehaviourNumericDecimal_inline__P5448_mk(s) { checkStack(s.depth); return { - parent: s, fn: fun_inline__P5955, depth: s.depth + 1, + parent: s, fn: __kbBehaviourNumericDecimal_inline__P5448, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + txt___5452: undefined, + len___5456: undefined, + decimalAlreadyPresent___5459: undefined, arg0: undefined, arg1: undefined, } } @@ -2282,8 +2496,7 @@ function fun_inline__P5955_mk(s) { - -function fun_inline__P5961(s) { +function __kbBehaviourNumericEnter_inline__P5479(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2293,124 +2506,129 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.txt___5483 = undefined; + s.len___5487 = undefined; + s.lenRule___5490 = undefined; + s.txtAsNum___5500 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 + s.arg1); - return leave(s, r0) - default: oops() -} } } -fun_inline__P5961.info = {"start":761,"length":15,"line":29,"column":20,"endLine":29,"endColumn":35,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} - -function fun_inline__P5961_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: fun_inline__P5961, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, - arg1: undefined, -} } - - - - - -function fun_inline__P5967(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; + s.tmp_0 = if_getText_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "getText"), 1); + s.callLocIdx = 858; s.pc = 9; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["getText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["getText"], 1); s.callLocIdx = 858; s.pc = 9; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 858; s.pc = 9; return s.tmp_0;; } + else { s.callLocIdx = 858; s.pc = 9; return s.tmp_0; } } - r0 = (s.arg0 - s.arg1); - return leave(s, r0) - default: oops() -} } } -fun_inline__P5967.info = {"start":810,"length":15,"line":30,"column":20,"endLine":30,"endColumn":35,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} - -function fun_inline__P5967_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: fun_inline__P5967, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, - arg1: undefined, -} } - - - - - -function fun_inline__P5973(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; + case 9: + r0 = s.retval; + s.txt___5483 = (r0); + r0 = pxsim_String_.length(s.txt___5483); + s.len___5487 = (r0); + s.tmp_1 = r0 = s.txt___5483; + r0 = (s.len___5487 - 1); + s.tmp_2 = r0; + r0 = pxsim_String_.charAt(s.tmp_1, s.tmp_2); + s.tmp_0 = r0; + r0 = (s.tmp_0 != "-"); + s.lenRule___5490 = (r0); + r0 = (s.len___5487 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = s.lenRule___5490; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 7; continue; } + r0 = (s.txt___5483 - 0); + s.txtAsNum___5500 = (r0); + r0 = (s.txtAsNum___5500 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = s.tmp_0; + { step = 4; continue; } + case 3: + r0 = (s.txtAsNum___5500 == 0); + case 4: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 5; continue; } + s.tmp_2 = if_setText_2_mk(s); + s.tmp_2.arg0 = s.arg1; + s.tmp_2.arg1 = "0"; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "setText"), 2); + s.callLocIdx = 859; s.pc = 10; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["setText"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["setText"], 2); s.callLocIdx = 859; s.pc = 10; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 859; s.pc = 10; return s.tmp_2;; } + else { s.callLocIdx = 859; s.pc = 10; return s.tmp_2; } } - r0 = (s.arg0 * s.arg1); - return leave(s, r0) - default: oops() -} } } -fun_inline__P5973.info = {"start":859,"length":15,"line":31,"column":20,"endLine":31,"endColumn":35,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} - -function fun_inline__P5973_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: fun_inline__P5973, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, - arg1: undefined, -} } - - - - - -function fun_inline__P5979(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; + case 10: + r0 = s.retval; + case 5: + case 6: + s.tmp_0 = if_nextScene_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "nextScene"), 1); + s.callLocIdx = 860; s.pc = 11; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["nextScene"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["nextScene"], 1); s.callLocIdx = 860; s.pc = 11; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 860; s.pc = 11; return s.tmp_0;; } + else { s.callLocIdx = 860; s.pc = 11; return s.tmp_0; } } - r0 = (s.arg0 / s.arg1); + case 11: + r0 = s.retval; + { step = 8; continue; } + case 7: + s.tmp_0 = if_shakeText_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "shakeText"), 1); + s.callLocIdx = 861; s.pc = 12; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["shakeText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["shakeText"], 1); s.callLocIdx = 861; s.pc = 12; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 861; s.pc = 12; return s.tmp_0;; } + else { s.callLocIdx = 861; s.pc = 12; return s.tmp_0; } + } + case 12: + r0 = s.retval; + case 8: + r0 = undefined; return leave(s, r0) default: oops() } } } -fun_inline__P5979.info = {"start":908,"length":15,"line":32,"column":20,"endLine":32,"endColumn":35,"fileName":"parser.ts","functionName":"inline","argumentNames":["a","b"]} +__kbBehaviourNumericEnter_inline__P5479.info = {"start":7918,"length":396,"line":274,"column":51,"endLine":288,"endColumn":3,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function fun_inline__P5979_mk(s) { +function __kbBehaviourNumericEnter_inline__P5479_mk(s) { checkStack(s.depth); return { - parent: s, fn: fun_inline__P5979, depth: s.depth + 1, + parent: s, fn: __kbBehaviourNumericEnter_inline__P5479, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + txt___5483: undefined, + len___5487: undefined, + lenRule___5490: undefined, + txtAsNum___5500: undefined, arg0: undefined, arg1: undefined, } } @@ -2418,8 +2636,7 @@ function fun_inline__P5979_mk(s) { - -function defaultBtnBehaviour_inline__P6030(s) { +function fun_inline__P6152(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2434,36 +2651,17 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_appendText_2_mk(s); - s.tmp_0.arg0 = s.arg1; - r0 = s.arg0.fields["state"]; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, 0); - s.tmp_0.arg1 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "appendText"), 2); - s.callLocIdx = 1892; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["appendText"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["appendText"], 2); s.callLocIdx = 1892; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1892; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1892; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 > s.arg1); return leave(s, r0) default: oops() } } } -defaultBtnBehaviour_inline__P6030.info = {"start":7331,"length":91,"line":243,"column":33,"endLine":245,"endColumn":13,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6152.info = {"start":463,"length":15,"line":23,"column":20,"endLine":23,"endColumn":35,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function defaultBtnBehaviour_inline__P6030_mk(s) { +function fun_inline__P6152_mk(s) { checkStack(s.depth); return { - parent: s, fn: defaultBtnBehaviour_inline__P6030, depth: s.depth + 1, + parent: s, fn: fun_inline__P6152, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, arg1: undefined, } } @@ -2471,8 +2669,7 @@ function defaultBtnBehaviour_inline__P6030_mk(s) { - -function behaviour_inline__P6039(s) { +function fun_inline__P6158(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2487,32 +2684,17 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_deletePriorCharacters_2_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = 1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "deletePriorCharacters"), 2); - s.callLocIdx = 1893; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["deletePriorCharacters"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["deletePriorCharacters"], 2); s.callLocIdx = 1893; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1893; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1893; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 >= s.arg1); return leave(s, r0) default: oops() } } } -behaviour_inline__P6039.info = {"start":7571,"length":83,"line":250,"column":31,"endLine":251,"endColumn":51,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6158.info = {"start":512,"length":16,"line":24,"column":21,"endLine":24,"endColumn":37,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function behaviour_inline__P6039_mk(s) { +function fun_inline__P6158_mk(s) { checkStack(s.depth); return { - parent: s, fn: behaviour_inline__P6039, depth: s.depth + 1, + parent: s, fn: fun_inline__P6158, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, arg1: undefined, } } @@ -2520,8 +2702,7 @@ function behaviour_inline__P6039_mk(s) { - -function behaviour_inline__P6045(s) { +function fun_inline__P6164(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2536,31 +2717,17 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_swapCase_1_mk(s); - s.tmp_0.arg0 = s.arg1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "swapCase"), 1); - s.callLocIdx = 1894; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["swapCase"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["swapCase"], 1); s.callLocIdx = 1894; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1894; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1894; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 < s.arg1); return leave(s, r0) default: oops() } } } -behaviour_inline__P6045.info = {"start":7799,"length":45,"line":256,"column":31,"endLine":256,"endColumn":76,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6164.info = {"start":561,"length":15,"line":25,"column":20,"endLine":25,"endColumn":35,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function behaviour_inline__P6045_mk(s) { +function fun_inline__P6164_mk(s) { checkStack(s.depth); return { - parent: s, fn: behaviour_inline__P6045, depth: s.depth + 1, + parent: s, fn: fun_inline__P6164, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, arg1: undefined, } } @@ -2568,8 +2735,7 @@ function behaviour_inline__P6045_mk(s) { - -function behaviour_inline__P6051(s) { +function fun_inline__P6170(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2584,32 +2750,17 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_appendText_2_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = " "; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "appendText"), 2); - s.callLocIdx = 1895; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["appendText"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["appendText"], 2); s.callLocIdx = 1895; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1895; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1895; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 <= s.arg1); return leave(s, r0) default: oops() } } } -behaviour_inline__P6051.info = {"start":7991,"length":74,"line":261,"column":31,"endLine":262,"endColumn":42,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6170.info = {"start":610,"length":16,"line":26,"column":21,"endLine":26,"endColumn":37,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function behaviour_inline__P6051_mk(s) { +function fun_inline__P6170_mk(s) { checkStack(s.depth); return { - parent: s, fn: behaviour_inline__P6051, depth: s.depth + 1, + parent: s, fn: fun_inline__P6170, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, arg1: undefined, } } @@ -2617,8 +2768,7 @@ function behaviour_inline__P6051_mk(s) { - -function behaviour_inline__P6056(s) { +function fun_inline__P6176(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2633,31 +2783,17 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_nextScene_1_mk(s); - s.tmp_0.arg0 = s.arg1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "nextScene"), 1); - s.callLocIdx = 1896; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["nextScene"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["nextScene"], 1); s.callLocIdx = 1896; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1896; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1896; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 === s.arg1); return leave(s, r0) default: oops() } } } -behaviour_inline__P6056.info = {"start":8209,"length":46,"line":267,"column":31,"endLine":267,"endColumn":77,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6176.info = {"start":660,"length":17,"line":27,"column":21,"endLine":27,"endColumn":38,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function behaviour_inline__P6056_mk(s) { +function fun_inline__P6176_mk(s) { checkStack(s.depth); return { - parent: s, fn: behaviour_inline__P6056, depth: s.depth + 1, + parent: s, fn: fun_inline__P6176, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, arg1: undefined, } } @@ -2665,8 +2801,7 @@ function behaviour_inline__P6056_mk(s) { - -function defaultBtnBehaviour_inline__P6068(s) { +function fun_inline__P6182(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2681,36 +2816,17 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_appendText_2_mk(s); - s.tmp_0.arg0 = s.arg1; - r0 = s.arg0.fields["state"]; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, 0); - s.tmp_0.arg1 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "appendText"), 2); - s.callLocIdx = 1897; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["appendText"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["appendText"], 2); s.callLocIdx = 1897; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1897; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1897; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 !== s.arg1); return leave(s, r0) default: oops() } } } -defaultBtnBehaviour_inline__P6068.info = {"start":8706,"length":91,"line":282,"column":33,"endLine":284,"endColumn":13,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6182.info = {"start":711,"length":17,"line":28,"column":21,"endLine":28,"endColumn":38,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function defaultBtnBehaviour_inline__P6068_mk(s) { +function fun_inline__P6182_mk(s) { checkStack(s.depth); return { - parent: s, fn: defaultBtnBehaviour_inline__P6068, depth: s.depth + 1, + parent: s, fn: fun_inline__P6182, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, arg1: undefined, } } @@ -2718,8 +2834,7 @@ function defaultBtnBehaviour_inline__P6068_mk(s) { - -function behaviour_inline__P6076(s) { +function fun_inline__P6188(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2734,32 +2849,17 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_deletePriorCharacters_2_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = 1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "deletePriorCharacters"), 2); - s.callLocIdx = 1898; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["deletePriorCharacters"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["deletePriorCharacters"], 2); s.callLocIdx = 1898; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1898; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1898; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 + s.arg1); return leave(s, r0) default: oops() } } } -behaviour_inline__P6076.info = {"start":8946,"length":83,"line":289,"column":31,"endLine":290,"endColumn":51,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6188.info = {"start":761,"length":15,"line":29,"column":20,"endLine":29,"endColumn":35,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function behaviour_inline__P6076_mk(s) { +function fun_inline__P6188_mk(s) { checkStack(s.depth); return { - parent: s, fn: behaviour_inline__P6076, depth: s.depth + 1, + parent: s, fn: fun_inline__P6188, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, arg1: undefined, } } @@ -2767,8 +2867,7 @@ function behaviour_inline__P6076_mk(s) { - -function behaviour_inline__P6081(s) { +function fun_inline__P6194(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2783,73 +2882,17 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_2 = if_textLen_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "textLen"), 1); - s.callLocIdx = 1899; s.pc = 3; return s.tmp_2; - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["textLen"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["textLen"], 1); s.callLocIdx = 1899; s.pc = 3; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1899; s.pc = 3; return s.tmp_2;; } - else { s.callLocIdx = 1899; s.pc = 3; return s.tmp_2; } - } - case 3: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = if_appendText_2_mk(s); - s.tmp_3.arg0 = s.arg1; - r0 = s.arg0.fields["state"]; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, 0); - s.tmp_3.arg1 = r0; - if (!s.tmp_3.arg0.vtable.iface) { - setupLambda(s.tmp_3, pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "appendText"), 2); - s.callLocIdx = 1900; s.pc = 4; return s.tmp_3; - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["appendText"]; - if (s.tmp_3.fn == null) { setupLambda(s.tmp_3, s.tmp_3.arg0.fields["appendText"], 2); s.callLocIdx = 1900; s.pc = 4; return s.tmp_3; } - else if (s.tmp_3.fn.isGetter) { s.tmp_3.stage2Call = true; s.callLocIdx = 1900; s.pc = 4; return s.tmp_3;; } - else { s.callLocIdx = 1900; s.pc = 4; return s.tmp_3; } - } - case 4: - r0 = s.retval; - { step = 2; continue; } - case 1: - s.tmp_0 = if_shakeText_1_mk(s); - s.tmp_0.arg0 = s.arg1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "shakeText"), 1); - s.callLocIdx = 1901; s.pc = 5; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["shakeText"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["shakeText"], 1); s.callLocIdx = 1901; s.pc = 5; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1901; s.pc = 5; return s.tmp_0;; } - else { s.callLocIdx = 1901; s.pc = 5; return s.tmp_0; } - } - case 5: - r0 = s.retval; - case 2: - r0 = undefined; + r0 = (s.arg0 - s.arg1); return leave(s, r0) default: oops() } } } -behaviour_inline__P6081.info = {"start":9174,"length":174,"line":295,"column":31,"endLine":298,"endColumn":21,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6194.info = {"start":810,"length":15,"line":30,"column":20,"endLine":30,"endColumn":35,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function behaviour_inline__P6081_mk(s) { +function fun_inline__P6194_mk(s) { checkStack(s.depth); return { - parent: s, fn: behaviour_inline__P6081, depth: s.depth + 1, + parent: s, fn: fun_inline__P6194, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, arg1: undefined, } } @@ -2857,8 +2900,7 @@ function behaviour_inline__P6081_mk(s) { - -function behaviour_inline__P6096(s) { +function fun_inline__P6200(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2868,110 +2910,22 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.txt___6099 = undefined; - s.len___6104 = undefined; - s.decimalAlreadyPresent___6107 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_getText_1_mk(s); - s.tmp_0.arg0 = s.arg1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "getText"), 1); - s.callLocIdx = 1902; s.pc = 7; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["getText"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["getText"], 1); s.callLocIdx = 1902; s.pc = 7; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1902; s.pc = 7; return s.tmp_0;; } - else { s.callLocIdx = 1902; s.pc = 7; return s.tmp_0; } - } - case 7: - r0 = s.retval; - s.txt___6099 = (r0); - r0 = pxsim_String_.length(s.txt___6099); - s.len___6104 = (r0); - r0 = pxsim_String_.includes(s.txt___6099, ".", undefined); - s.decimalAlreadyPresent___6107 = (r0); - r0 = (s.len___6104 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_2 = r0 = s.txt___6099; - r0 = (s.len___6104 - 1); - s.tmp_3 = r0; - r0 = pxsim_String_.charAt(s.tmp_2, s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 == "-"); - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (!r0) { step = 3; continue; } - r0 = s.tmp_4; - { step = 4; continue; } - case 3: - r0 = s.decimalAlreadyPresent___6107; - case 4: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 5; continue; } - s.tmp_6 = if_shakeText_1_mk(s); - s.tmp_6.arg0 = s.arg1; - if (!s.tmp_6.arg0.vtable.iface) { - setupLambda(s.tmp_6, pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "shakeText"), 1); - s.callLocIdx = 1903; s.pc = 8; return s.tmp_6; - } else { - s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["shakeText"]; - if (s.tmp_6.fn == null) { setupLambda(s.tmp_6, s.tmp_6.arg0.fields["shakeText"], 1); s.callLocIdx = 1903; s.pc = 8; return s.tmp_6; } - else if (s.tmp_6.fn.isGetter) { s.tmp_6.stage2Call = true; s.callLocIdx = 1903; s.pc = 8; return s.tmp_6;; } - else { s.callLocIdx = 1903; s.pc = 8; return s.tmp_6; } - } - case 8: - r0 = s.retval; - { step = 6; continue; } - case 5: - s.tmp_0 = if_appendText_2_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = "."; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "appendText"), 2); - s.callLocIdx = 1904; s.pc = 9; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["appendText"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["appendText"], 2); s.callLocIdx = 1904; s.pc = 9; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1904; s.pc = 9; return s.tmp_0;; } - else { s.callLocIdx = 1904; s.pc = 9; return s.tmp_0; } - } - case 9: - r0 = s.retval; - case 6: - r0 = undefined; + r0 = (s.arg0 * s.arg1); return leave(s, r0) default: oops() } } } -behaviour_inline__P6096.info = {"start":9520,"length":510,"line":303,"column":31,"endLine":314,"endColumn":21,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6200.info = {"start":859,"length":15,"line":31,"column":20,"endLine":31,"endColumn":35,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function behaviour_inline__P6096_mk(s) { +function fun_inline__P6200_mk(s) { checkStack(s.depth); return { - parent: s, fn: behaviour_inline__P6096, depth: s.depth + 1, + parent: s, fn: fun_inline__P6200, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - txt___6099: undefined, - len___6104: undefined, - decimalAlreadyPresent___6107: undefined, arg0: undefined, arg1: undefined, } } @@ -2979,8 +2933,7 @@ function behaviour_inline__P6096_mk(s) { - -function behaviour_inline__P6127(s) { +function fun_inline__P6206(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -2990,113 +2943,22 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.txt___6130 = undefined; - s.len___6134 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_getText_1_mk(s); - s.tmp_0.arg0 = s.arg1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "getText"), 1); - s.callLocIdx = 1905; s.pc = 7; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["getText"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["getText"], 1); s.callLocIdx = 1905; s.pc = 7; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1905; s.pc = 7; return s.tmp_0;; } - else { s.callLocIdx = 1905; s.pc = 7; return s.tmp_0; } - } - case 7: - r0 = s.retval; - s.txt___6130 = (r0); - r0 = pxsim_String_.length(s.txt___6130); - s.len___6134 = (r0); - r0 = (s.len___6134 > 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_2 = r0 = s.txt___6130; - r0 = (s.len___6134 - 1); - s.tmp_3 = r0; - r0 = pxsim_String_.charAt(s.tmp_2, s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 != "-"); - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (r0) { step = 3; continue; } - r0 = s.tmp_4; - { step = 4; continue; } - case 3: - s.tmp_6 = r0 = s.txt___6130; - r0 = (s.len___6134 - 1); - s.tmp_7 = r0; - r0 = pxsim_String_.charAt(s.tmp_6, s.tmp_7); - s.tmp_5 = r0; - r0 = (s.tmp_5 != "."); - case 4: - // jmp value (already in r0) - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 5; continue; } - s.tmp_9 = if_nextScene_1_mk(s); - s.tmp_9.arg0 = s.arg1; - if (!s.tmp_9.arg0.vtable.iface) { - setupLambda(s.tmp_9, pxsim_pxtrt.mapGetByString(s.tmp_9.arg0, "nextScene"), 1); - s.callLocIdx = 1906; s.pc = 8; return s.tmp_9; - } else { - s.tmp_9.fn = s.tmp_9.arg0.vtable.iface["nextScene"]; - if (s.tmp_9.fn == null) { setupLambda(s.tmp_9, s.tmp_9.arg0.fields["nextScene"], 1); s.callLocIdx = 1906; s.pc = 8; return s.tmp_9; } - else if (s.tmp_9.fn.isGetter) { s.tmp_9.stage2Call = true; s.callLocIdx = 1906; s.pc = 8; return s.tmp_9;; } - else { s.callLocIdx = 1906; s.pc = 8; return s.tmp_9; } - } - case 8: - r0 = s.retval; - { step = 6; continue; } - case 5: - s.tmp_0 = if_shakeText_1_mk(s); - s.tmp_0.arg0 = s.arg1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "shakeText"), 1); - s.callLocIdx = 1907; s.pc = 9; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["shakeText"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["shakeText"], 1); s.callLocIdx = 1907; s.pc = 9; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1907; s.pc = 9; return s.tmp_0;; } - else { s.callLocIdx = 1907; s.pc = 9; return s.tmp_0; } - } - case 9: - r0 = s.retval; - case 6: - r0 = undefined; + r0 = (s.arg0 / s.arg1); return leave(s, r0) default: oops() } } } -behaviour_inline__P6127.info = {"start":10179,"length":523,"line":319,"column":31,"endLine":330,"endColumn":21,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn","kb"]} +fun_inline__P6206.info = {"start":908,"length":15,"line":32,"column":20,"endLine":32,"endColumn":35,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["a","b"]} -function behaviour_inline__P6127_mk(s) { +function fun_inline__P6206_mk(s) { checkStack(s.depth); return { - parent: s, fn: behaviour_inline__P6127, depth: s.depth + 1, + parent: s, fn: fun_inline__P6206, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - txt___6130: undefined, - len___6134: undefined, arg0: undefined, arg1: undefined, } } @@ -3104,8 +2966,7 @@ function behaviour_inline__P6127_mk(s) { - -function microcode_App_constructor__P4292(s) { +function microcode_App_constructor__P4443(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3115,108 +2976,107 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.buf___6191 = undefined; - s.prog___6197 = undefined; - s.home___6211 = undefined; + s.buf___6236 = undefined; + s.prog___6242 = undefined; + s.home___6256 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_App__C4291_VT)) failedCast(r0, microcode_App__C4291_VT); + if (!checkSubtype(r0, microcode_App__C4442_VT)) failedCast(r0, microcode_App__C4442_VT); setupResume(s, 3); pxsim.basic.pause(500); checkResumeConsumed(); return; case 3: r0 = s.retval; - globals.getIcon___3488 = (microcode_App_inline__P6182); - globals.resolveTooltip___3489 = (microcode_App_inline__P6187); - s.tmp_0 = microcode_App_load__P4294_mk(s); + globals.getIcon___3461 = (microcode_App_inline__P6227); + globals.resolveTooltip___3462 = (microcode_App_inline__P6232); + s.tmp_0 = microcode_App_load__P4445_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4287; - s.callLocIdx = 1114; s.pc = 4; return s.tmp_0; + s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4438; + s.callLocIdx = 1389; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; - s.buf___6191 = (r0); - r0 = pxsim_numops_toBoolDecr(s.buf___6191); + s.buf___6236 = (r0); + r0 = pxsim_numops_toBoolDecr(s.buf___6236); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_BufferReader__C4485_VT); + r0 = pxsim_pxtcore_mkClassInstance(microcode_BufferReader__C4627_VT); s.tmp_0 = r0; - s.tmp_1 = microcode_BufferReader_constructor__P4486_mk(s); + s.tmp_1 = microcode_BufferReader_constructor__P4628_mk(s); s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.buf___6191; + s.tmp_1.arg1 = s.buf___6236; s.tmp_1.arg2 = 0; - s.callLocIdx = 1115; s.pc = 5; return s.tmp_1; + s.callLocIdx = 1390; s.pc = 5; return s.tmp_1; case 5: r0 = s.retval; - s.tmp_2 = microcode_ProgramDefn_fromBuffer__P4072_mk(s); + s.tmp_2 = microcode_ProgramDefn_fromBuffer__P4225_mk(s); s.tmp_2.arg0 = s.tmp_0; - s.callLocIdx = 1116; s.pc = 6; return s.tmp_2; + s.callLocIdx = 1391; s.pc = 6; return s.tmp_2; case 6: r0 = s.retval; - s.prog___6197 = (r0); - s.tmp_0 = microcode_runProgram__P4297_mk(s); - s.tmp_0.arg0 = s.prog___6197; - s.callLocIdx = 1117; s.pc = 7; return s.tmp_0; + s.prog___6242 = (r0); + s.tmp_0 = microcode_runProgram__P4449_mk(s); + s.tmp_0.arg0 = s.prog___6242; + s.callLocIdx = 1392; s.pc = 7; return s.tmp_0; case 7: r0 = s.retval; case 1: case 2: - s.tmp_0 = controller_setRepeatDefault__P3262_mk(s); + s.tmp_0 = controller_setRepeatDefault__P3235_mk(s); s.tmp_0.arg0 = 250; s.tmp_0.arg1 = 30; - s.callLocIdx = 1118; s.pc = 8; return s.tmp_0; + s.callLocIdx = 1393; s.pc = 8; return s.tmp_0; case 8: r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_SceneManager__C3701_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_SceneManager__C3674_VT); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_SceneManager_constructor__P3703_mk(s); + s.tmp_1 = user_interface_base_SceneManager_constructor__P3676_mk(s); s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1119; s.pc = 9; return s.tmp_1; + s.callLocIdx = 1394; s.pc = 9; return s.tmp_1; case 9: r0 = s.retval; r0 = (s.arg0).fields["sceneManager"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(microcode_Home__C4359_VT); + r0 = pxsim_pxtcore_mkClassInstance(microcode_Home__C4514_VT); s.tmp_0 = r0; - s.tmp_1 = microcode_Home_constructor__P4360_mk(s); + s.tmp_1 = microcode_Home_constructor__P4515_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = s.arg0; - s.callLocIdx = 1120; s.pc = 10; return s.tmp_1; + s.callLocIdx = 1395; s.pc = 10; return s.tmp_1; case 10: r0 = s.retval; - s.home___6211 = (s.tmp_0); - s.tmp_0 = microcode_App_pushScene__P4295_mk(s); + s.home___6256 = (s.tmp_0); + s.tmp_0 = microcode_App_pushScene__P4446_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.home___6211; - s.callLocIdx = 1121; s.pc = 11; return s.tmp_0; + s.tmp_0.arg1 = s.home___6256; + s.callLocIdx = 1396; s.pc = 11; return s.tmp_0; case 11: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_App_constructor__P4292.info = {"start":433,"length":754,"line":16,"column":8,"endLine":38,"endColumn":9,"fileName":"app.ts","functionName":"inline","argumentNames":["this"]} +microcode_App_constructor__P4443.info = {"start":433,"length":754,"line":16,"column":8,"endLine":38,"endColumn":9,"fileName":"app.ts","functionName":"inline","argumentNames":["this"]} -function microcode_App_constructor__P4292_mk(s) { +function microcode_App_constructor__P4443_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_App_constructor__P4292, depth: s.depth + 1, + parent: s, fn: microcode_App_constructor__P4443, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - buf___6191: undefined, - prog___6197: undefined, - home___6211: undefined, + buf___6236: undefined, + prog___6242: undefined, + home___6256: undefined, arg0: undefined, } } - -function microcode_App_inline__P6182(s) { +function microcode_App_inline__P6227(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3230,21 +3090,21 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_icons_get__P3883_mk(s); + s.tmp_0 = microcode_icons_get__P4047_mk(s); s.tmp_0.arg0 = s.arg0; s.tmp_0.arg1 = false; - s.callLocIdx = 1112; s.pc = 1; return s.tmp_0; + s.callLocIdx = 1387; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; return leave(s, r0) default: oops() } } } -microcode_App_inline__P6182.info = {"start":645,"length":19,"line":21,"column":42,"endLine":21,"endColumn":61,"fileName":"app.ts","functionName":"inline","argumentNames":["id"]} +microcode_App_inline__P6227.info = {"start":645,"length":19,"line":21,"column":42,"endLine":21,"endColumn":61,"fileName":"app.ts","functionName":"inline","argumentNames":["id"]} -function microcode_App_inline__P6182_mk(s) { +function microcode_App_inline__P6227_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_App_inline__P6182, depth: s.depth + 1, + parent: s, fn: microcode_App_inline__P6227, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -3253,8 +3113,7 @@ function microcode_App_inline__P6182_mk(s) { - -function microcode_App_inline__P6187(s) { +function microcode_App_inline__P6232(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3268,20 +3127,20 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_resolveTooltip__P4590_mk(s); + s.tmp_0 = microcode_resolveTooltip__P4733_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1113; s.pc = 1; return s.tmp_0; + s.callLocIdx = 1388; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; return leave(s, r0) default: oops() } } } -microcode_App_inline__P6187.info = {"start":714,"length":58,"line":22,"column":49,"endLine":23,"endColumn":38,"fileName":"app.ts","functionName":"inline","argumentNames":["ariaId"]} +microcode_App_inline__P6232.info = {"start":714,"length":58,"line":22,"column":49,"endLine":23,"endColumn":38,"fileName":"app.ts","functionName":"inline","argumentNames":["ariaId"]} -function microcode_App_inline__P6187_mk(s) { +function microcode_App_inline__P6232_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_App_inline__P6187, depth: s.depth + 1, + parent: s, fn: microcode_App_inline__P6232, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -3290,8 +3149,7 @@ function microcode_App_inline__P6187_mk(s) { - -function microcode_App_pushScene__P4295(s) { +function microcode_App_pushScene__P4446(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3307,24 +3165,24 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_App__C4291_VT)) failedCast(r0, microcode_App__C4291_VT); - s.tmp_0 = user_interface_base_SceneManager_pushScene__P3704_mk(s); + if (!checkSubtype(r0, microcode_App__C4442_VT)) failedCast(r0, microcode_App__C4442_VT); + s.tmp_0 = user_interface_base_SceneManager_pushScene__P3677_mk(s); r0 = s.arg0.fields["sceneManager"]; s.tmp_0.arg0 = r0; s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 1126; s.pc = 1; return s.tmp_0; + s.callLocIdx = 1401; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_App_pushScene__P4295.info = {"start":1631,"length":89,"line":56,"column":8,"endLine":58,"endColumn":9,"fileName":"app.ts","functionName":"pushScene","argumentNames":["this","scene"]} +microcode_App_pushScene__P4446.info = {"start":1631,"length":89,"line":56,"column":8,"endLine":58,"endColumn":9,"fileName":"app.ts","functionName":"pushScene","argumentNames":["this","scene"]} -function microcode_App_pushScene__P4295_mk(s) { +function microcode_App_pushScene__P4446_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_App_pushScene__P4295, depth: s.depth + 1, + parent: s, fn: microcode_App_pushScene__P4446, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -3334,8 +3192,7 @@ function microcode_App_pushScene__P4295_mk(s) { - -function user_interface_base_SceneManager_pushScene__P3704(s) { +function user_interface_base_SceneManager_pushScene__P3677(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3345,70 +3202,70 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.currScene___6224 = undefined; + s.currScene___6269 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_SceneManager__C3701_VT)) failedCast(r0, user_interface_base_SceneManager__C3701_VT); - s.tmp_0 = user_interface_base_SceneManager_currScene__P5269_mk(s); + if (!checkSubtype(r0, user_interface_base_SceneManager__C3674_VT)) failedCast(r0, user_interface_base_SceneManager__C3674_VT); + s.tmp_0 = user_interface_base_SceneManager_currScene__P5258_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 608; s.pc = 3; return s.tmp_0; + s.callLocIdx = 600; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; - s.currScene___6224 = (r0); - r0 = pxsim_numops_toBoolDecr(s.currScene___6224); + s.currScene___6269 = (r0); + r0 = pxsim_numops_toBoolDecr(s.currScene___6269); if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_Scene__C3686_v3_1_mk(s); - s.tmp_0.arg0 = s.currScene___6224; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT); + s.tmp_0 = user_interface_base_Scene__C3659_v3_1_mk(s); + s.tmp_0.arg0 = s.currScene___6269; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT); s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.deactivate; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; case 1: case 2: - s.tmp_0 = context_pushEventContext__P3292_mk(s); - s.callLocIdx = 609; s.pc = 5; return s.tmp_0; + s.tmp_0 = context_pushEventContext__P3265_mk(s); + s.callLocIdx = 601; s.pc = 5; return s.tmp_0; case 5: r0 = s.retval; r0 = s.arg0.fields["scenes"]; s.tmp_0 = r0; r0 = pxsim_Array__push(s.tmp_0, s.arg1); - s.tmp_0 = user_interface_base_Scene__C3686_v0_1_mk(s); + s.tmp_0 = user_interface_base_Scene__C3659_v0_1_mk(s); s.tmp_0.arg0 = s.arg1; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT); s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.startup; s.pc = 6; return s.tmp_0; case 6: r0 = s.retval; - s.tmp_0 = user_interface_base_Scene__C3686_v2_1_mk(s); + s.tmp_0 = user_interface_base_Scene__C3659_v2_1_mk(s); s.tmp_0.arg0 = s.arg1; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT); s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.activate; s.pc = 7; return s.tmp_0; case 7: r0 = s.retval; - s.tmp_0 = user_interface_base_Scene___init__P3700_mk(s); + s.tmp_0 = user_interface_base_Scene___init__P3673_mk(s); s.tmp_0.arg0 = s.arg1; - s.callLocIdx = 610; s.pc = 8; return s.tmp_0; + s.callLocIdx = 602; s.pc = 8; return s.tmp_0; case 8: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_SceneManager_pushScene__P3704.info = {"start":4109,"length":330,"line":127,"column":8,"endLine":137,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"pushScene","argumentNames":["this","scene"]} +user_interface_base_SceneManager_pushScene__P3677.info = {"start":4109,"length":330,"line":127,"column":8,"endLine":137,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"pushScene","argumentNames":["this","scene"]} -function user_interface_base_SceneManager_pushScene__P3704_mk(s) { +function user_interface_base_SceneManager_pushScene__P3677_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_SceneManager_pushScene__P3704, depth: s.depth + 1, + parent: s, fn: user_interface_base_SceneManager_pushScene__P3677, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - currScene___6224: undefined, + currScene___6269: undefined, arg0: undefined, arg1: undefined, } } @@ -3416,8 +3273,7 @@ function user_interface_base_SceneManager_pushScene__P3704_mk(s) { - -function user_interface_base_Scene___init__P3700(s) { +function user_interface_base_Scene___init__P3673(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3432,67 +3288,67 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); - s.tmp_0 = context_EventContext_registerFrameHandler__P3286_mk(s); - s.tmp_1 = context_eventContext__P3291_mk(s); - s.callLocIdx = 586; s.pc = 2; return s.tmp_1; + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); + s.tmp_0 = context_EventContext_registerFrameHandler__P3259_mk(s); + s.tmp_1 = context_eventContext__P3264_mk(s); + s.callLocIdx = 578; s.pc = 2; return s.tmp_1; case 2: r0 = s.retval; s.tmp_0.arg0 = r0; s.tmp_0.arg1 = 10; - s.tmp_0.arg2 = user_interface_base_Scene___init_inline__P6246; - s.callLocIdx = 593; s.pc = 1; return s.tmp_0; + s.tmp_0.arg2 = user_interface_base_Scene___init_inline__P6291; + s.callLocIdx = 585; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_Scene___init_inline__P6271); + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_Scene___init_inline__P6316); s.tmp_0 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_EventContext_registerFrameHandler__P3286_mk(s); - s.tmp_2 = context_eventContext__P3291_mk(s); - s.callLocIdx = 594; s.pc = 4; return s.tmp_2; + s.tmp_1 = context_EventContext_registerFrameHandler__P3259_mk(s); + s.tmp_2 = context_eventContext__P3264_mk(s); + s.callLocIdx = 586; s.pc = 4; return s.tmp_2; case 4: r0 = s.retval; s.tmp_1.arg0 = r0; s.tmp_1.arg1 = 20; s.tmp_1.arg2 = s.tmp_0; - s.callLocIdx = 595; s.pc = 3; return s.tmp_1; + s.callLocIdx = 587; s.pc = 3; return s.tmp_1; case 3: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_Scene___init_inline__P6279); + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_Scene___init_inline__P6324); s.tmp_0 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_EventContext_registerFrameHandler__P3286_mk(s); - s.tmp_2 = context_eventContext__P3291_mk(s); - s.callLocIdx = 596; s.pc = 6; return s.tmp_2; + s.tmp_1 = context_EventContext_registerFrameHandler__P3259_mk(s); + s.tmp_2 = context_eventContext__P3264_mk(s); + s.callLocIdx = 588; s.pc = 6; return s.tmp_2; case 6: r0 = s.retval; s.tmp_1.arg0 = r0; s.tmp_1.arg1 = 30; s.tmp_1.arg2 = s.tmp_0; - s.callLocIdx = 603; s.pc = 5; return s.tmp_1; + s.callLocIdx = 595; s.pc = 5; return s.tmp_1; case 5: r0 = s.retval; - s.tmp_0 = context_EventContext_registerFrameHandler__P3286_mk(s); - s.tmp_1 = context_eventContext__P3291_mk(s); - s.callLocIdx = 604; s.pc = 8; return s.tmp_1; + s.tmp_0 = context_EventContext_registerFrameHandler__P3259_mk(s); + s.tmp_1 = context_eventContext__P3264_mk(s); + s.callLocIdx = 596; s.pc = 8; return s.tmp_1; case 8: r0 = s.retval; s.tmp_0.arg0 = r0; s.tmp_0.arg1 = 100; - s.tmp_0.arg2 = user_interface_base_Scene___init_inline__P6301; - s.callLocIdx = 607; s.pc = 7; return s.tmp_0; + s.tmp_0.arg2 = user_interface_base_Scene___init_inline__P6346; + s.callLocIdx = 599; s.pc = 7; return s.tmp_0; case 7: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene___init__P3700.info = {"start":2286,"length":1312,"line":81,"column":8,"endLine":109,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"__init","argumentNames":["this"]} +user_interface_base_Scene___init__P3673.info = {"start":2286,"length":1312,"line":81,"column":8,"endLine":109,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"__init","argumentNames":["this"]} -function user_interface_base_Scene___init__P3700_mk(s) { +function user_interface_base_Scene___init__P3673_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene___init__P3700, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene___init__P3673, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -3503,8 +3359,7 @@ function user_interface_base_Scene___init__P3700_mk(s) { - -function user_interface_base_Scene___init_inline__P6246(s) { +function user_interface_base_Scene___init_inline__P6291(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3514,9 +3369,9 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.dtms___6250 = undefined; - s.tmp_3 = context_eventContext__P3291_mk(s); - s.callLocIdx = 587; s.pc = 1; return s.tmp_3; + s.dtms___6295 = undefined; + s.tmp_3 = context_eventContext__P3264_mk(s); + s.callLocIdx = 579; s.pc = 1; return s.tmp_3; case 1: r0 = s.retval; s.tmp_2 = r0; @@ -3527,55 +3382,54 @@ switch (step) { r0 = (s.tmp_1 * 1000); s.tmp_0 = r0; r0 = (s.tmp_0 | 0); - s.dtms___6250 = (r0); - s.tmp_0 = controller_Button___update__P3261_mk(s); - s.tmp_0.arg0 = globals.left___3268; - s.tmp_0.arg1 = s.dtms___6250; - s.callLocIdx = 589; s.pc = 2; return s.tmp_0; + s.dtms___6295 = (r0); + s.tmp_0 = controller_Button___update__P3234_mk(s); + s.tmp_0.arg0 = globals.left___3241; + s.tmp_0.arg1 = s.dtms___6295; + s.callLocIdx = 581; s.pc = 2; return s.tmp_0; case 2: r0 = s.retval; - s.tmp_0 = controller_Button___update__P3261_mk(s); - s.tmp_0.arg0 = globals.right___3270; - s.tmp_0.arg1 = s.dtms___6250; - s.callLocIdx = 590; s.pc = 3; return s.tmp_0; + s.tmp_0 = controller_Button___update__P3234_mk(s); + s.tmp_0.arg0 = globals.right___3243; + s.tmp_0.arg1 = s.dtms___6295; + s.callLocIdx = 582; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; - s.tmp_0 = controller_Button___update__P3261_mk(s); - s.tmp_0.arg0 = globals.up___3269; - s.tmp_0.arg1 = s.dtms___6250; - s.callLocIdx = 591; s.pc = 4; return s.tmp_0; + s.tmp_0 = controller_Button___update__P3234_mk(s); + s.tmp_0.arg0 = globals.up___3242; + s.tmp_0.arg1 = s.dtms___6295; + s.callLocIdx = 583; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; - s.tmp_0 = controller_Button___update__P3261_mk(s); - s.tmp_0.arg0 = globals.down___3271; - s.tmp_0.arg1 = s.dtms___6250; - s.callLocIdx = 592; s.pc = 5; return s.tmp_0; + s.tmp_0 = controller_Button___update__P3234_mk(s); + s.tmp_0.arg0 = globals.down___3244; + s.tmp_0.arg1 = s.dtms___6295; + s.callLocIdx = 584; s.pc = 5; return s.tmp_0; case 5: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene___init_inline__P6246.info = {"start":2369,"length":327,"line":82,"column":72,"endLine":89,"endColumn":13,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} +user_interface_base_Scene___init_inline__P6291.info = {"start":2369,"length":327,"line":82,"column":72,"endLine":89,"endColumn":13,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Scene___init_inline__P6246_mk(s) { +function user_interface_base_Scene___init_inline__P6291_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene___init_inline__P6246, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene___init_inline__P6291, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - dtms___6250: undefined, + dtms___6295: undefined, } } - -function user_interface_base_Scene___init_inline__P6271(s) { +function user_interface_base_Scene___init_inline__P6316(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3585,9 +3439,9 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Scene__C3686_v4_1_mk(s); + s.tmp_0 = user_interface_base_Scene__C3659_v4_1_mk(s); s.tmp_0.arg0 = s.caps[0]; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT); s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.update; s.pc = 1; return s.tmp_0; case 1: @@ -3596,12 +3450,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Scene___init_inline__P6271.info = {"start":2809,"length":95,"line":91,"column":73,"endLine":94,"endColumn":13,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} +user_interface_base_Scene___init_inline__P6316.info = {"start":2809,"length":95,"line":91,"column":73,"endLine":94,"endColumn":13,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Scene___init_inline__P6271_mk(s) { +function user_interface_base_Scene___init_inline__P6316_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene___init_inline__P6271, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene___init_inline__P6316, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, } } @@ -3609,8 +3463,7 @@ function user_interface_base_Scene___init_inline__P6271_mk(s) { - -function user_interface_base_Scene___init_inline__P6279(s) { +function user_interface_base_Scene___init_inline__P6324(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3620,36 +3473,36 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Scene__C3686_v5_1_mk(s); + s.tmp_0 = user_interface_base_Scene__C3659_v5_1_mk(s); s.tmp_0.arg0 = s.caps[0]; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT); s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; s.pc = 5; return s.tmp_0; case 5: r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals.user_interface_base_Options_fps___3840); + r0 = pxsim_numops_toBoolDecr(globals.user_interface_base_Options_fps___3813); if (!r0) { step = 1; continue; } - s.tmp_0 = helpers_imagePrint__P3342_mk(s); - s.tmp_1 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 597; s.pc = 7; return s.tmp_1; + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + s.tmp_1 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 589; s.pc = 7; return s.tmp_1; case 7: r0 = s.retval; s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = globals.context_EventContext_lastStats___3280; + s.tmp_0.arg1 = globals.context_EventContext_lastStats___3253; s.tmp_0.arg2 = 1; s.tmp_0.arg3 = 1; s.tmp_0.arg4 = 15; s.tmp_0.arg5 = undefined; s.tmp_0.arg6 = undefined; - s.callLocIdx = 598; s.pc = 6; return s.tmp_0; + s.callLocIdx = 590; s.pc = 6; return s.tmp_0; case 6: r0 = s.retval; case 1: case 2: - r0 = globals.theScreen___3308; + r0 = globals.theScreen___3281; s.tmp_1 = r0; - s.tmp_3 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 600; s.pc = 8; return s.tmp_3; + s.tmp_3 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 592; s.pc = 8; return s.tmp_3; case 8: r0 = s.retval; s.tmp_2 = r0; @@ -3657,10 +3510,10 @@ switch (step) { s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - r0 = globals.theScreen___3308; + r0 = globals.theScreen___3281; s.tmp_4 = r0; - s.tmp_6 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 602; s.pc = 9; return s.tmp_6; + s.tmp_6 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 594; s.pc = 9; return s.tmp_6; case 9: r0 = s.retval; s.tmp_5 = r0; @@ -3671,12 +3524,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Scene___init_inline__P6279.info = {"start":2979,"length":386,"line":95,"column":73,"endLine":103,"endColumn":13,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} +user_interface_base_Scene___init_inline__P6324.info = {"start":2979,"length":386,"line":95,"column":73,"endLine":103,"endColumn":13,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Scene___init_inline__P6279_mk(s) { +function user_interface_base_Scene___init_inline__P6324_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene___init_inline__P6279, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene___init_inline__P6324, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -3690,8 +3543,7 @@ function user_interface_base_Scene___init_inline__P6279_mk(s) { - -function user_interface_base_Scene___init_inline__P6301(s) { +function user_interface_base_Scene___init_inline__P6346(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3701,24 +3553,24 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = control___screen_stop__P3304_mk(s); - s.callLocIdx = 605; s.pc = 1; return s.tmp_0; + s.tmp_0 = control___screen_stop__P3277_mk(s); + s.callLocIdx = 597; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = control___screen_update__P3305_mk(s); - s.callLocIdx = 606; s.pc = 2; return s.tmp_0; + s.tmp_0 = control___screen_update__P3278_mk(s); + s.callLocIdx = 598; s.pc = 2; return s.tmp_0; case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene___init_inline__P6301.info = {"start":3440,"length":147,"line":104,"column":73,"endLine":108,"endColumn":13,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} +user_interface_base_Scene___init_inline__P6346.info = {"start":3440,"length":147,"line":104,"column":73,"endLine":108,"endColumn":13,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Scene___init_inline__P6301_mk(s) { +function user_interface_base_Scene___init_inline__P6346_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene___init_inline__P6301, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene___init_inline__P6346, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, } } @@ -3726,8 +3578,7 @@ function user_interface_base_Scene___init_inline__P6301_mk(s) { - -function control___screen_stop__P3304(s) { +function control___screen_stop__P3277(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3737,25 +3588,24 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - globals.__ok___5097 = (false); + globals.__ok___5086 = (false); r0 = undefined; return leave(s, r0) default: oops() } } } -control___screen_stop__P3304.info = {"start":111,"length":51,"line":5,"column":4,"endLine":7,"endColumn":5,"fileName":"pxt_modules/display-shield/frame.ts","functionName":"stop","argumentNames":[]} +control___screen_stop__P3277.info = {"start":111,"length":51,"line":5,"column":4,"endLine":7,"endColumn":5,"fileName":"pxt_modules/display-shield/frame.ts","functionName":"stop","argumentNames":[]} -function control___screen_stop__P3304_mk(s) { +function control___screen_stop__P3277_mk(s) { checkStack(s.depth); return { - parent: s, fn: control___screen_stop__P3304, depth: s.depth + 1, + parent: s, fn: control___screen_stop__P3277, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, } } - -function user_interface_base_Screen_image__P3451(s) { +function user_interface_base_Screen_image__P3424(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3765,31 +3615,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_numops_toBoolDecr(globals.user_interface_base_Screen_image____5164); + r0 = pxsim_numops_toBoolDecr(globals.user_interface_base_Screen_image____5153); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = globals.theScreen___3308; - globals.user_interface_base_Screen_image____5164 = (r0); - s.tmp_0 = user_interface_base_Screen_updateBounds__P5163_mk(s); - s.callLocIdx = 377; s.pc = 3; return s.tmp_0; + r0 = globals.theScreen___3281; + globals.user_interface_base_Screen_image____5153 = (r0); + s.tmp_0 = user_interface_base_Screen_updateBounds__P5152_mk(s); + s.callLocIdx = 371; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; case 1: case 2: - r0 = globals.user_interface_base_Screen_image____5164; + r0 = globals.user_interface_base_Screen_image____5153; return leaveAccessor(s, r0) default: oops() } } } -user_interface_base_Screen_image__P3451.info = {"start":1685,"length":167,"line":51,"column":4,"endLine":57,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"image","argumentNames":[]} -user_interface_base_Screen_image__P3451.isGetter = true; +user_interface_base_Screen_image__P3424.info = {"start":1685,"length":167,"line":51,"column":4,"endLine":57,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"image","argumentNames":[]} +user_interface_base_Screen_image__P3424.isGetter = true; -function user_interface_base_Screen_image__P3451_mk(s) { +function user_interface_base_Screen_image__P3424_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_image__P3451, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_image__P3424, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -3798,8 +3648,7 @@ function user_interface_base_Screen_image__P3451_mk(s) { - -function user_interface_base_Screen_updateBounds__P5163(s) { +function user_interface_base_Screen_updateBounds__P5152(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3809,45 +3658,45 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.BitmapMethods.width(globals.user_interface_base_Screen_image____5164); - globals.user_interface_base_Screen_WIDTH___3439 = (r0); - r0 = pxsim.BitmapMethods.height(globals.user_interface_base_Screen_image____5164); - globals.user_interface_base_Screen_HEIGHT___3440 = (r0); - r0 = (globals.user_interface_base_Screen_WIDTH___3439 >> 1); - globals.user_interface_base_Screen_HALF_WIDTH___3441 = (r0); - r0 = (globals.user_interface_base_Screen_HEIGHT___3440 >> 1); - globals.user_interface_base_Screen_HALF_HEIGHT___3442 = (r0); - r0 = (0 - globals.user_interface_base_Screen_HALF_WIDTH___3441); - globals.user_interface_base_Screen_LEFT_EDGE___3443 = (r0); - globals.user_interface_base_Screen_RIGHT_EDGE___3444 = (globals.user_interface_base_Screen_HALF_WIDTH___3441); - r0 = (0 - globals.user_interface_base_Screen_HALF_HEIGHT___3442); - globals.user_interface_base_Screen_TOP_EDGE___3445 = (r0); - globals.user_interface_base_Screen_BOTTOM_EDGE___3446 = (globals.user_interface_base_Screen_HALF_HEIGHT___3442); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); + r0 = pxsim.BitmapMethods.width(globals.user_interface_base_Screen_image____5153); + globals.user_interface_base_Screen_WIDTH___3412 = (r0); + r0 = pxsim.BitmapMethods.height(globals.user_interface_base_Screen_image____5153); + globals.user_interface_base_Screen_HEIGHT___3413 = (r0); + r0 = (globals.user_interface_base_Screen_WIDTH___3412 >> 1); + globals.user_interface_base_Screen_HALF_WIDTH___3414 = (r0); + r0 = (globals.user_interface_base_Screen_HEIGHT___3413 >> 1); + globals.user_interface_base_Screen_HALF_HEIGHT___3415 = (r0); + r0 = (0 - globals.user_interface_base_Screen_HALF_WIDTH___3414); + globals.user_interface_base_Screen_LEFT_EDGE___3416 = (r0); + globals.user_interface_base_Screen_RIGHT_EDGE___3417 = (globals.user_interface_base_Screen_HALF_WIDTH___3414); + r0 = (0 - globals.user_interface_base_Screen_HALF_HEIGHT___3415); + globals.user_interface_base_Screen_TOP_EDGE___3418 = (r0); + globals.user_interface_base_Screen_BOTTOM_EDGE___3419 = (globals.user_interface_base_Screen_HALF_HEIGHT___3415); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); s.tmp_0 = r0; r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", globals.user_interface_base_Screen_LEFT_EDGE___3443); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", globals.user_interface_base_Screen_TOP_EDGE___3445); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", globals.user_interface_base_Screen_WIDTH___3439); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", globals.user_interface_base_Screen_HEIGHT___3440); - s.tmp_2 = user_interface_base_Bounds_constructor__P3376_mk(s); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", globals.user_interface_base_Screen_LEFT_EDGE___3416); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", globals.user_interface_base_Screen_TOP_EDGE___3418); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", globals.user_interface_base_Screen_WIDTH___3412); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", globals.user_interface_base_Screen_HEIGHT___3413); + s.tmp_2 = user_interface_base_Bounds_constructor__P3349_mk(s); s.tmp_2.arg0 = s.tmp_0; s.tmp_2.arg1 = s.tmp_1; - s.callLocIdx = 375; s.pc = 1; return s.tmp_2; + s.callLocIdx = 369; s.pc = 1; return s.tmp_2; case 1: r0 = s.retval; - globals.user_interface_base_Screen_BOUNDS___3447 = (s.tmp_0); + globals.user_interface_base_Screen_BOUNDS___3420 = (s.tmp_0); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_updateBounds__P5163.info = {"start":884,"length":555,"line":25,"column":4,"endLine":40,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"updateBounds","argumentNames":[]} +user_interface_base_Screen_updateBounds__P5152.info = {"start":884,"length":555,"line":25,"column":4,"endLine":40,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"updateBounds","argumentNames":[]} -function user_interface_base_Screen_updateBounds__P5163_mk(s) { +function user_interface_base_Screen_updateBounds__P5152_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_updateBounds__P5163, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_updateBounds__P5152, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -3857,8 +3706,7 @@ function user_interface_base_Screen_updateBounds__P5163_mk(s) { - -function helpers_imagePrint__P3342(s) { +function helpers_imagePrint__P3315(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -3868,31 +3716,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.x0___6364 = undefined; - s.cp___6366 = undefined; - s.mult___6367 = undefined; - s.dataW___6372 = undefined; - s.dataH___6378 = undefined; - s.byteHeight___6384 = undefined; - s.charSize___6390 = undefined; - s.dataSize___6394 = undefined; - s.fontdata___6398 = undefined; - s.lastchar___6401 = undefined; - s.imgBuf___6408 = undefined; - s.xOffset___6432 = undefined; - s.yOffset___6433 = undefined; - s.ch___6448 = undefined; - s.l___6467 = undefined; - s.r___6468 = undefined; - s.off___6470 = undefined; - s.guess___6471 = undefined; - s.m___6490 = undefined; - s.v___6499 = undefined; - s.i___6555 = undefined; - s.j___6560 = undefined; - s.mask___6561 = undefined; - s.c___6562 = undefined; - s.n___6579 = undefined; + s.x0___6409 = undefined; + s.cp___6411 = undefined; + s.mult___6412 = undefined; + s.dataW___6417 = undefined; + s.dataH___6423 = undefined; + s.byteHeight___6429 = undefined; + s.charSize___6435 = undefined; + s.dataSize___6439 = undefined; + s.fontdata___6443 = undefined; + s.lastchar___6446 = undefined; + s.imgBuf___6453 = undefined; + s.xOffset___6477 = undefined; + s.yOffset___6478 = undefined; + s.ch___6493 = undefined; + s.l___6512 = undefined; + s.r___6513 = undefined; + s.off___6515 = undefined; + s.guess___6516 = undefined; + s.m___6535 = undefined; + s.v___6544 = undefined; + s.i___6600 = undefined; + s.j___6605 = undefined; + s.mask___6606 = undefined; + s.c___6607 = undefined; + s.n___6624 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); @@ -3913,9 +3761,9 @@ switch (step) { s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_2 = bitmaps_getFontForText__P3329_mk(s); + s.tmp_2 = bitmaps_getFontForText__P3302_mk(s); s.tmp_2.arg0 = s.arg1; - s.callLocIdx = 290; s.pc = 39; return s.tmp_2; + s.callLocIdx = 283; s.pc = 39; return s.tmp_2; case 39: r0 = s.retval; s.arg5 = (r0); @@ -3930,8 +3778,8 @@ switch (step) { s.arg4 = (1); case 3: case 4: - s.x0___6364 = (s.arg2); - s.cp___6366 = (0); + s.x0___6409 = (s.arg2); + s.cp___6411 = (0); s.tmp_1 = if_multiplier_1_mk(s); s.tmp_1.arg0 = s.arg5; if (!s.tmp_1.arg0.vtable.iface) { @@ -3940,7 +3788,7 @@ switch (step) { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["multiplier"]; if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["multiplier"]; } else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 291; s.pc = 40; return s.tmp_1; } + else { s.callLocIdx = 284; s.pc = 40; return s.tmp_1; } } case 40: r0 = s.retval; @@ -3955,7 +3803,7 @@ switch (step) { s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["multiplier"]; if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["multiplier"]; } else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 292; s.pc = 41; return s.tmp_2; } + else { s.callLocIdx = 285; s.pc = 41; return s.tmp_2; } } case 41: r0 = s.retval; @@ -3965,7 +3813,7 @@ switch (step) { case 6: // jmp value (already in r0) s.tmp_3 = r0; - s.mult___6367 = (s.tmp_3); + s.mult___6412 = (s.tmp_3); s.tmp_1 = if_charWidth_1_mk(s); s.tmp_1.arg0 = s.arg5; if (!s.tmp_1.arg0.vtable.iface) { @@ -3974,13 +3822,13 @@ switch (step) { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["charWidth"]; if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["charWidth"]; } else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 293; s.pc = 42; return s.tmp_1; } + else { s.callLocIdx = 286; s.pc = 42; return s.tmp_1; } } case 42: r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim.Math_.idiv(s.tmp_0, s.mult___6367); - s.dataW___6372 = (r0); + r0 = pxsim.Math_.idiv(s.tmp_0, s.mult___6412); + s.dataW___6417 = (r0); s.tmp_1 = if_charHeight_1_mk(s); s.tmp_1.arg0 = s.arg5; if (!s.tmp_1.arg0.vtable.iface) { @@ -3989,21 +3837,21 @@ switch (step) { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["charHeight"]; if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["charHeight"]; } else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 294; s.pc = 43; return s.tmp_1; } + else { s.callLocIdx = 287; s.pc = 43; return s.tmp_1; } } case 43: r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim.Math_.idiv(s.tmp_0, s.mult___6367); - s.dataH___6378 = (r0); - r0 = (s.dataH___6378 + 7); + r0 = pxsim.Math_.idiv(s.tmp_0, s.mult___6412); + s.dataH___6423 = (r0); + r0 = (s.dataH___6423 + 7); s.tmp_0 = r0; r0 = (s.tmp_0 >> 3); - s.byteHeight___6384 = (r0); - r0 = (s.byteHeight___6384 * s.dataW___6372); - s.charSize___6390 = (r0); - r0 = (2 + s.charSize___6390); - s.dataSize___6394 = (r0); + s.byteHeight___6429 = (r0); + r0 = (s.byteHeight___6429 * s.dataW___6417); + s.charSize___6435 = (r0); + r0 = (2 + s.charSize___6435); + s.dataSize___6439 = (r0); s.tmp_0 = if_data_1_mk(s); s.tmp_0.arg0 = s.arg5; if (!s.tmp_0.arg0.vtable.iface) { @@ -4012,48 +3860,48 @@ switch (step) { s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["data"]; if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["data"]; } else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 295; s.pc = 44; return s.tmp_0; } + else { s.callLocIdx = 288; s.pc = 44; return s.tmp_0; } } case 44: r0 = s.retval; - s.fontdata___6398 = (r0); - r0 = pxsim.BufferMethods.length(s.fontdata___6398); + s.fontdata___6443 = (r0); + r0 = pxsim.BufferMethods.length(s.fontdata___6443); s.tmp_1 = r0; - r0 = pxsim.Math_.idiv(s.tmp_1, s.dataSize___6394); + r0 = pxsim.Math_.idiv(s.tmp_1, s.dataSize___6439); s.tmp_0 = r0; r0 = (s.tmp_0 - 1); - s.lastchar___6401 = (r0); - r0 = (s.mult___6367 == 1); + s.lastchar___6446 = (r0); + r0 = (s.mult___6412 == 1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 7; continue; } - r0 = (8 + s.charSize___6390); + r0 = (8 + s.charSize___6435); s.tmp_1 = r0; r0 = pxsim.control.createBuffer(s.tmp_1); - s.imgBuf___6408 = (r0); - r0 = pxsim.BufferMethods.setByte(s.imgBuf___6408, 0, 135); - r0 = pxsim.BufferMethods.setByte(s.imgBuf___6408, 1, 1); - r0 = pxsim.BufferMethods.setByte(s.imgBuf___6408, 2, s.dataW___6372); - r0 = pxsim.BufferMethods.setByte(s.imgBuf___6408, 4, s.dataH___6378); + s.imgBuf___6453 = (r0); + r0 = pxsim.BufferMethods.setByte(s.imgBuf___6453, 0, 135); + r0 = pxsim.BufferMethods.setByte(s.imgBuf___6453, 1, 1); + r0 = pxsim.BufferMethods.setByte(s.imgBuf___6453, 2, s.dataW___6417); + r0 = pxsim.BufferMethods.setByte(s.imgBuf___6453, 4, s.dataH___6423); case 7: case 8: case 9: - s.tmp_1 = r0 = s.cp___6366; + s.tmp_1 = r0 = s.cp___6411; r0 = pxsim_String_.length(s.arg1); s.tmp_2 = r0; r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 38; continue; } - s.xOffset___6432 = (0); - s.yOffset___6433 = (0); + s.xOffset___6477 = (0); + s.yOffset___6478 = (0); s.tmp_0 = r0 = s.arg6; r0 = pxsim_numops_toBool(s.tmp_0); if (r0) { step = 10; continue; } r0 = s.tmp_0; { step = 11; continue; } case 10: - s.tmp_1 = r0 = s.cp___6366; + s.tmp_1 = r0 = s.cp___6411; r0 = pxsim_Array__length(s.arg6); s.tmp_2 = r0; r0 = (s.tmp_1 < s.tmp_2); @@ -4063,7 +3911,7 @@ switch (step) { r0 = pxsim_numops_toBoolDecr(s.tmp_3); if (!r0) { step = 12; continue; } s.tmp_4 = if_xOffset_1_mk(s); - r0 = pxsim_Array__getAt(s.arg6, s.cp___6366); + r0 = pxsim_Array__getAt(s.arg6, s.cp___6411); s.tmp_4.arg0 = r0; if (!s.tmp_4.arg0.vtable.iface) { s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "xOffset"); @@ -4071,13 +3919,13 @@ switch (step) { s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["xOffset"]; if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["xOffset"]; } else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 296; s.pc = 45; return s.tmp_4; } + else { s.callLocIdx = 289; s.pc = 45; return s.tmp_4; } } case 45: r0 = s.retval; - s.xOffset___6432 = (r0); + s.xOffset___6477 = (r0); s.tmp_0 = if_yOffset_1_mk(s); - r0 = pxsim_Array__getAt(s.arg6, s.cp___6366); + r0 = pxsim_Array__getAt(s.arg6, s.cp___6411); s.tmp_0.arg0 = r0; if (!s.tmp_0.arg0.vtable.iface) { s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "yOffset"); @@ -4085,19 +3933,19 @@ switch (step) { s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["yOffset"]; if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["yOffset"]; } else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 297; s.pc = 46; return s.tmp_0; } + else { s.callLocIdx = 290; s.pc = 46; return s.tmp_0; } } case 46: r0 = s.retval; - s.yOffset___6433 = (r0); + s.yOffset___6478 = (r0); case 12: case 13: - s.tmp_0 = r0 = s.cp___6366; + s.tmp_0 = r0 = s.cp___6411; r0 = (s.tmp_0 + 1); - s.cp___6366 = (r0); + s.cp___6411 = (r0); r0 = pxsim_String_.charCodeAt(s.arg1, s.tmp_0); - s.ch___6448 = (r0); - r0 = (s.ch___6448 == 10); + s.ch___6493 = (r0); + r0 = (s.ch___6493 == 10); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 14; continue; } @@ -4110,7 +3958,7 @@ switch (step) { s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["charHeight"]; if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["charHeight"]; } else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 298; s.pc = 47; return s.tmp_4; } + else { s.callLocIdx = 291; s.pc = 47; return s.tmp_4; } } case 47: r0 = s.retval; @@ -4119,92 +3967,92 @@ switch (step) { s.tmp_2 = r0; r0 = (s.tmp_1 + s.tmp_2); s.arg3 = (r0); - s.arg2 = (s.x0___6364); + s.arg2 = (s.x0___6409); case 14: case 15: - r0 = (s.ch___6448 < 32); + r0 = (s.ch___6493 < 32); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 16; continue; } { step = 9; continue; } case 16: case 17: - s.l___6467 = (0); - s.r___6468 = (s.lastchar___6401); - s.off___6470 = (0); - r0 = (s.ch___6448 - 32); + s.l___6512 = (0); + s.r___6513 = (s.lastchar___6446); + s.off___6515 = (0); + r0 = (s.ch___6493 - 32); s.tmp_0 = r0; - r0 = (s.tmp_0 * s.dataSize___6394); - s.guess___6471 = (r0); - r0 = pxsim.BufferMethods.getNumber(s.fontdata___6398, 4, s.guess___6471); + r0 = (s.tmp_0 * s.dataSize___6439); + s.guess___6516 = (r0); + r0 = pxsim.BufferMethods.getNumber(s.fontdata___6443, 4, s.guess___6516); s.tmp_1 = r0; - r0 = (s.tmp_1 == s.ch___6448); + r0 = (s.tmp_1 == s.ch___6493); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 18; continue; } - s.off___6470 = (s.guess___6471); + s.off___6515 = (s.guess___6516); { step = 25; continue; } case 18: case 19: - r0 = (s.l___6467 <= s.r___6468); + r0 = (s.l___6512 <= s.r___6513); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 24; continue; } - s.tmp_1 = r0 = s.l___6467; - r0 = (s.r___6468 - s.l___6467); + s.tmp_1 = r0 = s.l___6512; + r0 = (s.r___6513 - s.l___6512); s.tmp_3 = r0; r0 = (s.tmp_3 >> 1); s.tmp_2 = r0; r0 = (s.tmp_1 + s.tmp_2); - s.m___6490 = (r0); - s.tmp_0 = r0 = s.fontdata___6398; - r0 = (s.m___6490 * s.dataSize___6394); + s.m___6535 = (r0); + s.tmp_0 = r0 = s.fontdata___6443; + r0 = (s.m___6535 * s.dataSize___6439); s.tmp_1 = r0; r0 = pxsim.BufferMethods.getNumber(s.tmp_0, 4, s.tmp_1); - s.v___6499 = (r0); - r0 = (s.v___6499 == s.ch___6448); + s.v___6544 = (r0); + r0 = (s.v___6544 == s.ch___6493); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 20; continue; } - r0 = (s.m___6490 * s.dataSize___6394); - s.off___6470 = (r0); + r0 = (s.m___6535 * s.dataSize___6439); + s.off___6515 = (r0); { step = 24; continue; } case 20: case 21: - r0 = (s.v___6499 < s.ch___6448); + r0 = (s.v___6544 < s.ch___6493); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 22; continue; } - r0 = (s.m___6490 + 1); - s.l___6467 = (r0); + r0 = (s.m___6535 + 1); + s.l___6512 = (r0); { step = 23; continue; } case 22: - r0 = (s.m___6490 - 1); - s.r___6468 = (r0); + r0 = (s.m___6535 - 1); + s.r___6513 = (r0); case 23: { step = 19; continue; } case 24: case 25: - r0 = (s.mult___6367 == 1); + r0 = (s.mult___6412 == 1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 26; continue; } - s.tmp_1 = r0 = s.imgBuf___6408; - s.tmp_3 = r0 = s.fontdata___6398; - r0 = (s.off___6470 + 2); + s.tmp_1 = r0 = s.imgBuf___6453; + s.tmp_3 = r0 = s.fontdata___6443; + r0 = (s.off___6515 + 2); s.tmp_4 = r0; - r0 = pxsim.BufferMethods.slice(s.tmp_3, s.tmp_4, s.charSize___6390); + r0 = pxsim.BufferMethods.slice(s.tmp_3, s.tmp_4, s.charSize___6435); s.tmp_2 = r0; r0 = pxsim.BufferMethods.write(s.tmp_1, 8, s.tmp_2); - s.tmp_0 = helpers_imageDrawIcon__P3135_mk(s); + s.tmp_0 = helpers_imageDrawIcon__P3108_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.imgBuf___6408; - r0 = (s.arg2 + s.xOffset___6432); + s.tmp_0.arg1 = s.imgBuf___6453; + r0 = (s.arg2 + s.xOffset___6477); s.tmp_0.arg2 = r0; - r0 = (s.arg3 + s.yOffset___6433); + r0 = (s.arg3 + s.yOffset___6478); s.tmp_0.arg3 = r0; s.tmp_0.arg4 = s.arg4; - s.callLocIdx = 299; s.pc = 48; return s.tmp_0; + s.callLocIdx = 292; s.pc = 48; return s.tmp_0; case 48: r0 = s.retval; s.tmp_0 = r0 = s.arg2; @@ -4216,7 +4064,7 @@ switch (step) { s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["charWidth"]; if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["charWidth"]; } else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 300; s.pc = 49; return s.tmp_2; } + else { s.callLocIdx = 293; s.pc = 49; return s.tmp_2; } } case 49: r0 = s.retval; @@ -4225,88 +4073,88 @@ switch (step) { s.arg2 = (r0); { step = 37; continue; } case 26: - r0 = (s.off___6470 + 2); - s.off___6470 = (r0); - s.i___6555 = (0); + r0 = (s.off___6515 + 2); + s.off___6515 = (r0); + s.i___6600 = (0); case 27: - r0 = (s.i___6555 < s.dataW___6372); + r0 = (s.i___6600 < s.dataW___6417); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 36; continue; } - s.j___6560 = (0); - s.mask___6561 = (1); - s.tmp_0 = r0 = s.off___6470; + s.j___6605 = (0); + s.mask___6606 = (1); + s.tmp_0 = r0 = s.off___6515; r0 = (s.tmp_0 + 1); - s.off___6470 = (r0); - r0 = pxsim.BufferMethods.getByte(s.fontdata___6398, s.tmp_0); - s.c___6562 = (r0); + s.off___6515 = (r0); + r0 = pxsim.BufferMethods.getByte(s.fontdata___6443, s.tmp_0); + s.c___6607 = (r0); case 28: - r0 = (s.j___6560 < s.dataH___6378); + r0 = (s.j___6605 < s.dataH___6423); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 35; continue; } - r0 = (s.mask___6561 == 256); + r0 = (s.mask___6606 == 256); s.tmp_1 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_1); if (!r0) { step = 29; continue; } - s.tmp_2 = r0 = s.off___6470; + s.tmp_2 = r0 = s.off___6515; r0 = (s.tmp_2 + 1); - s.off___6470 = (r0); - r0 = pxsim.BufferMethods.getByte(s.fontdata___6398, s.tmp_2); - s.c___6562 = (r0); - s.mask___6561 = (1); + s.off___6515 = (r0); + r0 = pxsim.BufferMethods.getByte(s.fontdata___6443, s.tmp_2); + s.c___6607 = (r0); + s.mask___6606 = (1); case 29: case 30: - s.n___6579 = (0); + s.n___6624 = (0); case 31: - r0 = (s.c___6562 & s.mask___6561); + r0 = (s.c___6607 & s.mask___6606); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 32; continue; } - r0 = (s.n___6579 + 1); - s.n___6579 = (r0); - r0 = (s.mask___6561 << 1); - s.mask___6561 = (r0); + r0 = (s.n___6624 + 1); + s.n___6624 = (r0); + r0 = (s.mask___6606 << 1); + s.mask___6606 = (r0); { step = 31; continue; } case 32: - r0 = pxsim_numops_toBoolDecr(s.n___6579); + r0 = pxsim_numops_toBoolDecr(s.n___6624); if (!r0) { step = 33; continue; } - s.tmp_0 = helpers_imageFillRect__P3136_mk(s); + s.tmp_0 = helpers_imageFillRect__P3109_mk(s); s.tmp_0.arg0 = s.arg0; s.tmp_1 = r0 = s.arg2; - r0 = (s.xOffset___6432 * s.mult___6367); + r0 = (s.xOffset___6477 * s.mult___6412); s.tmp_2 = r0; r0 = (s.tmp_1 + s.tmp_2); s.tmp_0.arg1 = r0; s.tmp_3 = r0 = s.arg3; - r0 = (s.j___6560 + s.yOffset___6433); + r0 = (s.j___6605 + s.yOffset___6478); s.tmp_5 = r0; - r0 = (s.tmp_5 * s.mult___6367); + r0 = (s.tmp_5 * s.mult___6412); s.tmp_4 = r0; r0 = (s.tmp_3 + s.tmp_4); s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = s.mult___6367; - r0 = (s.mult___6367 * s.n___6579); + s.tmp_0.arg3 = s.mult___6412; + r0 = (s.mult___6412 * s.n___6624); s.tmp_0.arg4 = r0; s.tmp_0.arg5 = s.arg4; - s.callLocIdx = 301; s.pc = 50; return s.tmp_0; + s.callLocIdx = 294; s.pc = 50; return s.tmp_0; case 50: r0 = s.retval; - r0 = (s.j___6560 + s.n___6579); - s.j___6560 = (r0); + r0 = (s.j___6605 + s.n___6624); + s.j___6605 = (r0); { step = 34; continue; } case 33: - r0 = (s.mask___6561 << 1); - s.mask___6561 = (r0); - r0 = (s.j___6560 + 1); - s.j___6560 = (r0); + r0 = (s.mask___6606 << 1); + s.mask___6606 = (r0); + r0 = (s.j___6605 + 1); + s.j___6605 = (r0); case 34: { step = 28; continue; } case 35: - r0 = (s.arg2 + s.mult___6367); + r0 = (s.arg2 + s.mult___6412); s.arg2 = (r0); - r0 = (s.i___6555 + 1); - s.i___6555 = (r0); + r0 = (s.i___6600 + 1); + s.i___6600 = (r0); { step = 27; continue; } case 36: case 37: @@ -4316,12 +4164,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -helpers_imagePrint__P3342.info = {"start":15342,"length":3305,"line":213,"column":4,"endLine":306,"endColumn":5,"fileName":"pxt_modules/display-shield/text.ts","functionName":"imagePrint","argumentNames":["img","text","x","y","color","font","offsets"]} +helpers_imagePrint__P3315.info = {"start":15342,"length":3305,"line":213,"column":4,"endLine":306,"endColumn":5,"fileName":"pxt_modules/display-shield/text.ts","functionName":"imagePrint","argumentNames":["img","text","x","y","color","font","offsets"]} -function helpers_imagePrint__P3342_mk(s) { +function helpers_imagePrint__P3315_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_imagePrint__P3342, depth: s.depth + 1, + parent: s, fn: helpers_imagePrint__P3315, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -4329,31 +4177,31 @@ function helpers_imagePrint__P3342_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - x0___6364: undefined, - cp___6366: undefined, - mult___6367: undefined, - dataW___6372: undefined, - dataH___6378: undefined, - byteHeight___6384: undefined, - charSize___6390: undefined, - dataSize___6394: undefined, - fontdata___6398: undefined, - lastchar___6401: undefined, - imgBuf___6408: undefined, - xOffset___6432: undefined, - yOffset___6433: undefined, - ch___6448: undefined, - l___6467: undefined, - r___6468: undefined, - off___6470: undefined, - guess___6471: undefined, - m___6490: undefined, - v___6499: undefined, - i___6555: undefined, - j___6560: undefined, - mask___6561: undefined, - c___6562: undefined, - n___6579: undefined, + x0___6409: undefined, + cp___6411: undefined, + mult___6412: undefined, + dataW___6417: undefined, + dataH___6423: undefined, + byteHeight___6429: undefined, + charSize___6435: undefined, + dataSize___6439: undefined, + fontdata___6443: undefined, + lastchar___6446: undefined, + imgBuf___6453: undefined, + xOffset___6477: undefined, + yOffset___6478: undefined, + ch___6493: undefined, + l___6512: undefined, + r___6513: undefined, + off___6515: undefined, + guess___6516: undefined, + m___6535: undefined, + v___6544: undefined, + i___6600: undefined, + j___6605: undefined, + mask___6606: undefined, + c___6607: undefined, + n___6624: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -4366,8 +4214,7 @@ function helpers_imagePrint__P3342_mk(s) { - -function helpers_imageFillRect__P3136(s) { +function helpers_imageFillRect__P3109(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4387,17 +4234,17 @@ switch (step) { s.lambdaArgs = null; } s.tmp_0 = r0 = s.arg0; - s.tmp_2 = helpers_pack__P5040_mk(s); + s.tmp_2 = helpers_pack__P5029_mk(s); s.tmp_2.arg0 = s.arg1; s.tmp_2.arg1 = s.arg2; - s.callLocIdx = 190; s.pc = 1; return s.tmp_2; + s.callLocIdx = 182; s.pc = 1; return s.tmp_2; case 1: r0 = s.retval; s.tmp_1 = r0; - s.tmp_4 = helpers_pack__P5040_mk(s); + s.tmp_4 = helpers_pack__P5029_mk(s); s.tmp_4.arg0 = s.arg3; s.tmp_4.arg1 = s.arg4; - s.callLocIdx = 191; s.pc = 2; return s.tmp_4; + s.callLocIdx = 183; s.pc = 2; return s.tmp_4; case 2: r0 = s.retval; s.tmp_3 = r0; @@ -4406,12 +4253,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -helpers_imageFillRect__P3136.info = {"start":5007,"length":160,"line":156,"column":4,"endLine":158,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"imageFillRect","argumentNames":["img","x","y","w","h","c"]} +helpers_imageFillRect__P3109.info = {"start":5007,"length":160,"line":156,"column":4,"endLine":158,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"imageFillRect","argumentNames":["img","x","y","w","h","c"]} -function helpers_imageFillRect__P3136_mk(s) { +function helpers_imageFillRect__P3109_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_imageFillRect__P3136, depth: s.depth + 1, + parent: s, fn: helpers_imageFillRect__P3109, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -4429,8 +4276,7 @@ function helpers_imageFillRect__P3136_mk(s) { - -function helpers_pack__P5040(s) { +function helpers_pack__P5029(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4450,7 +4296,7 @@ switch (step) { s.tmp_2.arg1 = 30000; r0 = (s.arg0 | 0); s.tmp_2.arg2 = r0; - s.callLocIdx = 187; s.pc = 1; return s.tmp_2; + s.callLocIdx = 179; s.pc = 1; return s.tmp_2; case 1: r0 = s.retval; s.tmp_1 = r0; @@ -4461,7 +4307,7 @@ switch (step) { s.tmp_5.arg1 = 30000; r0 = (s.arg1 | 0); s.tmp_5.arg2 = r0; - s.callLocIdx = 188; s.pc = 2; return s.tmp_5; + s.callLocIdx = 180; s.pc = 2; return s.tmp_5; case 2: r0 = s.retval; s.tmp_4 = r0; @@ -4471,12 +4317,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -helpers_pack__P5040.info = {"start":3826,"length":145,"line":128,"column":4,"endLine":130,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"pack","argumentNames":["x","y"]} +helpers_pack__P5029.info = {"start":3826,"length":145,"line":128,"column":4,"endLine":130,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"pack","argumentNames":["x","y"]} -function helpers_pack__P5040_mk(s) { +function helpers_pack__P5029_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_pack__P5040, depth: s.depth + 1, + parent: s, fn: helpers_pack__P5029, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -4491,7 +4337,6 @@ function helpers_pack__P5040_mk(s) { - function Math_clamp__P2156(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4513,11 +4358,11 @@ switch (step) { s.tmp_1 = Math_max__P2159_mk(s); s.tmp_1.arg0 = s.arg0; s.tmp_1.arg1 = s.arg2; - s.callLocIdx = 30; s.pc = 2; return s.tmp_1; + s.callLocIdx = 27; s.pc = 2; return s.tmp_1; case 2: r0 = s.retval; s.tmp_0.arg1 = r0; - s.callLocIdx = 31; s.pc = 1; return s.tmp_0; + s.callLocIdx = 28; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; return leave(s, r0) @@ -4540,7 +4385,6 @@ function Math_clamp__P2156_mk(s) { - function Math_max__P2159(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4584,7 +4428,6 @@ function Math_max__P2159_mk(s) { - function Math_min__P2160(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4628,8 +4471,7 @@ function Math_min__P2160_mk(s) { - -function helpers_imageDrawIcon__P3135(s) { +function helpers_imageDrawIcon__P3108(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4649,10 +4491,10 @@ switch (step) { } s.tmp_0 = r0 = s.arg0; s.tmp_1 = r0 = s.arg1; - s.tmp_3 = helpers_pack__P5040_mk(s); + s.tmp_3 = helpers_pack__P5029_mk(s); s.tmp_3.arg0 = s.arg2; s.tmp_3.arg1 = s.arg3; - s.callLocIdx = 189; s.pc = 1; return s.tmp_3; + s.callLocIdx = 181; s.pc = 1; return s.tmp_3; case 1: r0 = s.retval; s.tmp_2 = r0; @@ -4661,12 +4503,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -helpers_imageDrawIcon__P3135.info = {"start":4856,"length":146,"line":153,"column":4,"endLine":155,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"imageDrawIcon","argumentNames":["img","icon","x","y","c"]} +helpers_imageDrawIcon__P3108.info = {"start":4856,"length":146,"line":153,"column":4,"endLine":155,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"imageDrawIcon","argumentNames":["img","icon","x","y","c"]} -function helpers_imageDrawIcon__P3135_mk(s) { +function helpers_imageDrawIcon__P3108_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_imageDrawIcon__P3135, depth: s.depth + 1, + parent: s, fn: helpers_imageDrawIcon__P3108, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -4682,8 +4524,7 @@ function helpers_imageDrawIcon__P3135_mk(s) { - -function bitmaps_getFontForText__P3329(s) { +function bitmaps_getFontForText__P3302(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4693,60 +4534,59 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.i___6696 = undefined; + s.i___6741 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.i___6696 = (0); + s.i___6741 = (0); case 1: - s.tmp_1 = r0 = s.i___6696; + s.tmp_1 = r0 = s.i___6741; r0 = pxsim_String_.length(s.arg0); s.tmp_2 = r0; r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 4; continue; } - r0 = pxsim_String_.charCodeAt(s.arg0, s.i___6696); + r0 = pxsim_String_.charCodeAt(s.arg0, s.i___6741); s.tmp_4 = r0; r0 = (s.tmp_4 > 8192); s.tmp_3 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_3); if (!r0) { step = 2; continue; } - r0 = globals.font12___3328; + r0 = globals.font12___3301; { step = 5; continue; } case 2: case 3: - r0 = (s.i___6696 + 1); - s.i___6696 = (r0); + r0 = (s.i___6741 + 1); + s.i___6741 = (r0); { step = 1; continue; } case 4: - r0 = globals.font8___3327; + r0 = globals.font8___3300; case 5: return leave(s, r0) default: oops() } } } -bitmaps_getFontForText__P3329.info = {"start":11715,"length":263,"line":136,"column":4,"endLine":143,"endColumn":5,"fileName":"pxt_modules/display-shield/text.ts","functionName":"getFontForText","argumentNames":["text"]} +bitmaps_getFontForText__P3302.info = {"start":11715,"length":263,"line":136,"column":4,"endLine":143,"endColumn":5,"fileName":"pxt_modules/display-shield/text.ts","functionName":"getFontForText","argumentNames":["text"]} -function bitmaps_getFontForText__P3329_mk(s) { +function bitmaps_getFontForText__P3302_mk(s) { checkStack(s.depth); return { - parent: s, fn: bitmaps_getFontForText__P3329, depth: s.depth + 1, + parent: s, fn: bitmaps_getFontForText__P3302, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - i___6696: undefined, + i___6741: undefined, arg0: undefined, } } - -function user_interface_base_Scene_draw__P3696(s) { +function user_interface_base_Scene_draw__P3669(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4761,17 +4601,17 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene_draw__P3696.info = {"start":1682,"length":10,"line":58,"column":23,"endLine":58,"endColumn":33,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"draw","argumentNames":["this"]} +user_interface_base_Scene_draw__P3669.info = {"start":1682,"length":10,"line":58,"column":23,"endLine":58,"endColumn":33,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"draw","argumentNames":["this"]} -function user_interface_base_Scene_draw__P3696_mk(s) { +function user_interface_base_Scene_draw__P3669_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_draw__P3696, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_draw__P3669, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, } } @@ -4779,8 +4619,7 @@ function user_interface_base_Scene_draw__P3696_mk(s) { - -function user_interface_base_Scene_update__P3695(s) { +function user_interface_base_Scene_update__P3668(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4795,17 +4634,17 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene_update__P3695.info = {"start":1645,"length":12,"line":56,"column":23,"endLine":56,"endColumn":35,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"update","argumentNames":["this"]} +user_interface_base_Scene_update__P3668.info = {"start":1645,"length":12,"line":56,"column":23,"endLine":56,"endColumn":35,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"update","argumentNames":["this"]} -function user_interface_base_Scene_update__P3695_mk(s) { +function user_interface_base_Scene_update__P3668_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_update__P3695, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_update__P3668, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, } } @@ -4813,8 +4652,7 @@ function user_interface_base_Scene_update__P3695_mk(s) { - -function controller_Button___update__P3261(s) { +function controller_Button___update__P3234(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4824,16 +4662,16 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.delay___6740 = undefined; - s.interval___6749 = undefined; - s.count___6762 = undefined; + s.delay___6785 = undefined; + s.interval___6794 = undefined; + s.count___6807 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, controller_Button__C3246_VT)) failedCast(r0, controller_Button__C3246_VT); + if (!checkSubtype(r0, controller_Button__C3219_VT)) failedCast(r0, controller_Button__C3219_VT); r0 = s.arg0.fields["_pressed"]; s.tmp_2 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_2); @@ -4857,31 +4695,31 @@ switch (step) { s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - r0 = globals.defaultRepeatDelay___5067; + r0 = globals.defaultRepeatDelay___5056; { step = 4; continue; } case 3: r0 = s.arg0.fields["repeatDelay"]; case 4: // jmp value (already in r0) s.tmp_2 = r0; - s.delay___6740 = (s.tmp_2); + s.delay___6785 = (s.tmp_2); r0 = s.arg0.fields["repeatInterval"]; s.tmp_1 = r0; r0 = (s.tmp_1 === undefined); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 5; continue; } - r0 = globals.defaultRepeatInterval___5069; + r0 = globals.defaultRepeatInterval___5058; { step = 6; continue; } case 5: r0 = s.arg0.fields["repeatInterval"]; case 6: // jmp value (already in r0) s.tmp_2 = r0; - s.interval___6749 = (s.tmp_2); + s.interval___6794 = (s.tmp_2); r0 = s.arg0.fields["_pressedElasped"]; s.tmp_1 = r0; - r0 = (s.tmp_1 < s.delay___6740); + r0 = (s.tmp_1 < s.delay___6785); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 7; continue; } @@ -4890,26 +4728,26 @@ switch (step) { case 8: r0 = s.arg0.fields["_pressedElasped"]; s.tmp_5 = r0; - r0 = (s.tmp_5 - s.delay___6740); + r0 = (s.tmp_5 - s.delay___6785); s.tmp_4 = r0; - r0 = (s.tmp_4 - s.interval___6749); + r0 = (s.tmp_4 - s.interval___6794); s.tmp_3 = r0; - r0 = (s.tmp_3 / s.interval___6749); + r0 = (s.tmp_3 / s.interval___6794); s.tmp_2 = r0; r0 = pxsim.Math_.floor(s.tmp_2); - s.count___6762 = (r0); + s.count___6807 = (r0); r0 = s.arg0.fields["_repeatCount"]; s.tmp_1 = r0; - r0 = (s.count___6762 != s.tmp_1); + r0 = (s.count___6807 != s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 9; continue; } - s.tmp_2 = controller_Button_raiseButtonRepeat__P5071_mk(s); + s.tmp_2 = controller_Button_raiseButtonRepeat__P5060_mk(s); s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 207; s.pc = 12; return s.tmp_2; + s.callLocIdx = 200; s.pc = 12; return s.tmp_2; case 12: r0 = s.retval; - r0 = (s.arg0).fields["_repeatCount"] = (s.count___6762); + r0 = (s.arg0).fields["_repeatCount"] = (s.count___6807); case 9: case 10: case 11: @@ -4917,12 +4755,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -controller_Button___update__P3261.info = {"start":7043,"length":704,"line":219,"column":8,"endLine":236,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"__update","argumentNames":["this","dtms"]} +controller_Button___update__P3234.info = {"start":7043,"length":704,"line":219,"column":8,"endLine":236,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"__update","argumentNames":["this","dtms"]} -function controller_Button___update__P3261_mk(s) { +function controller_Button___update__P3234_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_Button___update__P3261, depth: s.depth + 1, + parent: s, fn: controller_Button___update__P3234, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -4930,9 +4768,9 @@ function controller_Button___update__P3261_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - delay___6740: undefined, - interval___6749: undefined, - count___6762: undefined, + delay___6785: undefined, + interval___6794: undefined, + count___6807: undefined, arg0: undefined, arg1: undefined, } } @@ -4940,8 +4778,7 @@ function controller_Button___update__P3261_mk(s) { - -function controller_Button_raiseButtonRepeat__P5071(s) { +function controller_Button_raiseButtonRepeat__P5060(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -4956,8 +4793,8 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, controller_Button__C3246_VT)) failedCast(r0, controller_Button__C3246_VT); - r0 = pxsim_numops_toBoolDecr(globals._userEventsEnabled___5065); + if (!checkSubtype(r0, controller_Button__C3219_VT)) failedCast(r0, controller_Button__C3219_VT); + r0 = pxsim_numops_toBoolDecr(globals._userEventsEnabled___5054); if (!r0) { step = 1; continue; } r0 = s.arg0.fields["id"]; s.tmp_0 = r0; @@ -4972,12 +4809,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -controller_Button_raiseButtonRepeat__P5071.info = {"start":3665,"length":241,"line":128,"column":8,"endLine":133,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"raiseButtonRepeat","argumentNames":["this"]} +controller_Button_raiseButtonRepeat__P5060.info = {"start":3665,"length":241,"line":128,"column":8,"endLine":133,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"raiseButtonRepeat","argumentNames":["this"]} -function controller_Button_raiseButtonRepeat__P5071_mk(s) { +function controller_Button_raiseButtonRepeat__P5060_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_Button_raiseButtonRepeat__P5071, depth: s.depth + 1, + parent: s, fn: controller_Button_raiseButtonRepeat__P5060, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -4986,8 +4823,7 @@ function controller_Button_raiseButtonRepeat__P5071_mk(s) { - -function context_EventContext_deltaTime__P3283(s) { +function context_EventContext_deltaTime__P3256(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5002,20 +4838,20 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventContext__C3278_VT)) failedCast(r0, context_EventContext__C3278_VT); + if (!checkSubtype(r0, context_EventContext__C3251_VT)) failedCast(r0, context_EventContext__C3251_VT); r0 = s.arg0.fields["deltaTimeMillis"]; s.tmp_0 = r0; r0 = (s.tmp_0 / 1000); return leaveAccessor(s, r0) default: oops() } } } -context_EventContext_deltaTime__P3283.info = {"start":1792,"length":75,"line":64,"column":8,"endLine":66,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"deltaTime","argumentNames":["this"]} -context_EventContext_deltaTime__P3283.isGetter = true; +context_EventContext_deltaTime__P3256.info = {"start":1792,"length":75,"line":64,"column":8,"endLine":66,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"deltaTime","argumentNames":["this"]} +context_EventContext_deltaTime__P3256.isGetter = true; -function context_EventContext_deltaTime__P3283_mk(s) { +function context_EventContext_deltaTime__P3256_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_deltaTime__P3283, depth: s.depth + 1, + parent: s, fn: context_EventContext_deltaTime__P3256, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -5024,8 +4860,7 @@ function context_EventContext_deltaTime__P3283_mk(s) { - -function context_eventContext__P3291(s) { +function context_eventContext__P3264(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5035,10 +4870,10 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_numops_toBoolDecr(globals.eventContexts___5089); + r0 = pxsim_numops_toBoolDecr(globals.eventContexts___5078); if (!r0) { step = 1; continue; } - s.tmp_0 = r0 = globals.eventContexts___5089; - r0 = pxsim_Array__length(globals.eventContexts___5089); + s.tmp_0 = r0 = globals.eventContexts___5078; + r0 = pxsim_Array__length(globals.eventContexts___5078); s.tmp_2 = r0; r0 = (s.tmp_2 - 1); s.tmp_1 = r0; @@ -5053,12 +4888,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_eventContext__P3291.info = {"start":6751,"length":136,"line":206,"column":4,"endLine":208,"endColumn":5,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"eventContext","argumentNames":[]} +context_eventContext__P3264.info = {"start":6751,"length":136,"line":206,"column":4,"endLine":208,"endColumn":5,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"eventContext","argumentNames":[]} -function context_eventContext__P3291_mk(s) { +function context_eventContext__P3264_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_eventContext__P3291, depth: s.depth + 1, + parent: s, fn: context_eventContext__P3264, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -5069,8 +4904,7 @@ function context_eventContext__P3291_mk(s) { - -function context_EventContext_registerFrameHandler__P3286(s) { +function context_EventContext_registerFrameHandler__P3259(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5080,8 +4914,8 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.fn___6818 = undefined; - s.i___6827 = undefined; + s.fn___6863 = undefined; + s.i___6872 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); @@ -5089,7 +4923,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventContext__C3278_VT)) failedCast(r0, context_EventContext__C3278_VT); + if (!checkSubtype(r0, context_EventContext__C3251_VT)) failedCast(r0, context_EventContext__C3251_VT); r0 = s.arg0.fields["frameCallbacks"]; s.tmp_2 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_2); @@ -5102,20 +4936,20 @@ switch (step) { r0 = pxsim_Array__mk(); s.tmp_4 = r0; r0 = (s.tmp_3).fields["frameCallbacks"] = (s.tmp_4); - s.tmp_0 = context_EventContext_registerFrameCallbacks__P5087_mk(s); + s.tmp_0 = context_EventContext_registerFrameCallbacks__P5076_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 227; s.pc = 8; return s.tmp_0; + s.callLocIdx = 220; s.pc = 8; return s.tmp_0; case 8: r0 = s.retval; case 1: case 2: - r0 = pxsim_pxtcore_mkClassInstance(context_FrameCallback__C3275_VT); - s.fn___6818 = (r0); - r0 = (s.fn___6818).fields["order"] = (s.arg1); - r0 = (s.fn___6818).fields["handler"] = (s.arg2); - s.i___6827 = (0); + r0 = pxsim_pxtcore_mkClassInstance(context_FrameCallback__C3248_VT); + s.fn___6863 = (r0); + r0 = (s.fn___6863).fields["order"] = (s.arg1); + r0 = (s.fn___6863).fields["handler"] = (s.arg2); + s.i___6872 = (0); case 3: - s.tmp_1 = r0 = s.i___6827; + s.tmp_1 = r0 = s.i___6872; r0 = s.arg0.fields["frameCallbacks"]; s.tmp_3 = r0; r0 = pxsim_Array__length(s.tmp_3); @@ -5126,7 +4960,7 @@ switch (step) { if (!r0) { step = 6; continue; } r0 = s.arg0.fields["frameCallbacks"]; s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_6, s.i___6827); + r0 = pxsim_Array__getAt(s.tmp_6, s.i___6872); r0 = r0.fields["order"]; s.tmp_5 = r0; r0 = (s.tmp_5 > s.arg1); @@ -5135,29 +4969,29 @@ switch (step) { if (!r0) { step = 4; continue; } r0 = s.arg0.fields["frameCallbacks"]; s.tmp_7 = r0; - r0 = pxsim_Array_.insertAt(s.tmp_7, s.i___6827, s.fn___6818); - r0 = s.fn___6818; + r0 = pxsim_Array_.insertAt(s.tmp_7, s.i___6872, s.fn___6863); + r0 = s.fn___6863; { step = 7; continue; } case 4: case 5: - r0 = (s.i___6827 + 1); - s.i___6827 = (r0); + r0 = (s.i___6872 + 1); + s.i___6872 = (r0); { step = 3; continue; } case 6: r0 = s.arg0.fields["frameCallbacks"]; s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.fn___6818); - r0 = s.fn___6818; + r0 = pxsim_Array__push(s.tmp_0, s.fn___6863); + r0 = s.fn___6863; case 7: return leave(s, r0) default: oops() } } } -context_EventContext_registerFrameHandler__P3286.info = {"start":4519,"length":643,"line":140,"column":8,"endLine":157,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"registerFrameHandler","argumentNames":["this","order","handler"]} +context_EventContext_registerFrameHandler__P3259.info = {"start":4519,"length":643,"line":140,"column":8,"endLine":157,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"registerFrameHandler","argumentNames":["this","order","handler"]} -function context_EventContext_registerFrameHandler__P3286_mk(s) { +function context_EventContext_registerFrameHandler__P3259_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_registerFrameHandler__P3286, depth: s.depth + 1, + parent: s, fn: context_EventContext_registerFrameHandler__P3259, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -5167,8 +5001,8 @@ function context_EventContext_registerFrameHandler__P3286_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, - fn___6818: undefined, - i___6827: undefined, + fn___6863: undefined, + i___6872: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -5177,8 +5011,7 @@ function context_EventContext_registerFrameHandler__P3286_mk(s) { - -function context_EventContext_registerFrameCallbacks__P5087(s) { +function context_EventContext_registerFrameCallbacks__P5076(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5188,13 +5021,13 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.worker___6861 = undefined; + s.worker___6906 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventContext__C3278_VT)) failedCast(r0, context_EventContext__C3278_VT); + if (!checkSubtype(r0, context_EventContext__C3251_VT)) failedCast(r0, context_EventContext__C3251_VT); r0 = s.arg0.fields["frameCallbacks"]; s.tmp_2 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_2); @@ -5207,14 +5040,14 @@ switch (step) { case 1: case 2: r0 = s.arg0.fields["frameWorker"]; - s.worker___6861 = (r0); - r0 = pxsim_pxtcore_mkAction(2, context_EventContext_registerFrameCallbacks_inline__P6866); + s.worker___6906 = (r0); + r0 = pxsim_pxtcore_mkAction(2, context_EventContext_registerFrameCallbacks_inline__P6911); s.tmp_0 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.worker___6861); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.worker___6906); s.tmp_1 = control_runInParallel__P2441_mk(s); s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 223; s.pc = 4; return s.tmp_1; + s.callLocIdx = 216; s.pc = 4; return s.tmp_1; case 4: r0 = s.retval; case 3: @@ -5222,25 +5055,24 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_EventContext_registerFrameCallbacks__P5087.info = {"start":3325,"length":895,"line":102,"column":8,"endLine":126,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"registerFrameCallbacks","argumentNames":["this"]} +context_EventContext_registerFrameCallbacks__P5076.info = {"start":3325,"length":895,"line":102,"column":8,"endLine":126,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"registerFrameCallbacks","argumentNames":["this"]} -function context_EventContext_registerFrameCallbacks__P5087_mk(s) { +function context_EventContext_registerFrameCallbacks__P5076_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_registerFrameCallbacks__P5087, depth: s.depth + 1, + parent: s, fn: context_EventContext_registerFrameCallbacks__P5076, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - worker___6861: undefined, + worker___6906: undefined, arg0: undefined, } } - -function context_EventContext_registerFrameCallbacks_inline__P6866(s) { +function context_EventContext_registerFrameCallbacks_inline__P6911(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5250,18 +5082,18 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.delay___6896 = undefined; + s.delay___6941 = undefined; r0 = s.caps[0].fields["runningCallbacks"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkAction(1, context_EventContext_registerFrameCallbacks_inline__P6872); + r0 = pxsim_pxtcore_mkAction(1, context_EventContext_registerFrameCallbacks_inline__P6917); s.tmp_1 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.caps[0]); s.tmp_2 = pauseUntil__P2811_mk(s); s.tmp_2.arg0 = s.tmp_1; s.tmp_2.arg1 = undefined; - s.callLocIdx = 220; s.pc = 5; return s.tmp_2; + s.callLocIdx = 213; s.pc = 5; return s.tmp_2; case 5: r0 = s.retval; case 1: @@ -5281,15 +5113,15 @@ switch (step) { s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 4; continue; } - s.tmp_2 = context_EventContext_runCallbacks__P5086_mk(s); + s.tmp_2 = context_EventContext_runCallbacks__P5075_mk(s); s.tmp_2.arg0 = s.caps[0]; - s.callLocIdx = 221; s.pc = 6; return s.tmp_2; + s.callLocIdx = 214; s.pc = 6; return s.tmp_2; case 6: r0 = s.retval; - s.delay___6896 = (r0); + s.delay___6941 = (r0); s.tmp_0 = pause__P2371_mk(s); - s.tmp_0.arg0 = s.delay___6896; - s.callLocIdx = 222; s.pc = 7; return s.tmp_0; + s.tmp_0.arg0 = s.delay___6941; + s.callLocIdx = 215; s.pc = 7; return s.tmp_0; case 7: r0 = s.retval; { step = 3; continue; } @@ -5299,24 +5131,23 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_EventContext_registerFrameCallbacks_inline__P6866.info = {"start":3486,"length":723,"line":106,"column":34,"endLine":125,"endColumn":13,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":[]} +context_EventContext_registerFrameCallbacks_inline__P6911.info = {"start":3486,"length":723,"line":106,"column":34,"endLine":125,"endColumn":13,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":[]} -function context_EventContext_registerFrameCallbacks_inline__P6866_mk(s) { +function context_EventContext_registerFrameCallbacks_inline__P6911_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_registerFrameCallbacks_inline__P6866, depth: s.depth + 1, + parent: s, fn: context_EventContext_registerFrameCallbacks_inline__P6911, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - delay___6896: undefined, + delay___6941: undefined, } } - -function context_EventContext_registerFrameCallbacks_inline__P6872(s) { +function context_EventContext_registerFrameCallbacks_inline__P6917(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5334,12 +5165,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_EventContext_registerFrameCallbacks_inline__P6872.info = {"start":3717,"length":28,"line":110,"column":31,"endLine":110,"endColumn":59,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":[]} +context_EventContext_registerFrameCallbacks_inline__P6917.info = {"start":3717,"length":28,"line":110,"column":31,"endLine":110,"endColumn":59,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":[]} -function context_EventContext_registerFrameCallbacks_inline__P6872_mk(s) { +function context_EventContext_registerFrameCallbacks_inline__P6917_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_registerFrameCallbacks_inline__P6872, depth: s.depth + 1, + parent: s, fn: context_EventContext_registerFrameCallbacks_inline__P6917, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -5348,8 +5179,7 @@ function context_EventContext_registerFrameCallbacks_inline__P6872_mk(s) { - -function context_EventContext_runCallbacks__P5086(s) { +function context_EventContext_runCallbacks__P5075(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5359,68 +5189,68 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.loopStart___6905 = undefined; - s.f___6918 = undefined; - s.unnamed42___U2 = undefined; - s.unnamed43___U3 = undefined; - s.now___6923 = undefined; - s.runtime___6926 = undefined; - s.realTimeInSample___6945 = undefined; - s.fps___6954 = undefined; - s.delay___7023 = undefined; + s.loopStart___6950 = undefined; + s.f___6963 = undefined; + s.unnamed48___U2 = undefined; + s.unnamed49___U3 = undefined; + s.now___6968 = undefined; + s.runtime___6971 = undefined; + s.realTimeInSample___6990 = undefined; + s.fps___6999 = undefined; + s.delay___7068 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventContext__C3278_VT)) failedCast(r0, context_EventContext__C3278_VT); + if (!checkSubtype(r0, context_EventContext__C3251_VT)) failedCast(r0, context_EventContext__C3251_VT); r0 = pxsim.control.millis(); - s.loopStart___6905 = (r0); + s.loopStart___6950 = (r0); s.tmp_0 = r0 = s.arg0; r0 = s.arg0.fields["prevTimeMillis"]; s.tmp_2 = r0; - r0 = (s.loopStart___6905 - s.tmp_2); + r0 = (s.loopStart___6950 - s.tmp_2); s.tmp_1 = r0; r0 = (s.tmp_0).fields["deltaTimeMillis"] = (s.tmp_1); - r0 = (s.arg0).fields["prevTimeMillis"] = (s.loopStart___6905); - s.f___6918 = (undefined); + r0 = (s.arg0).fields["prevTimeMillis"] = (s.loopStart___6950); + s.f___6963 = (undefined); r0 = s.arg0.fields["frameCallbacks"]; - s.unnamed42___U2 = (r0); - s.unnamed43___U3 = (0); + s.unnamed48___U2 = (r0); + s.unnamed49___U3 = (0); case 1: - s.tmp_0 = r0 = s.unnamed43___U3; - r0 = pxsim_Array__length(s.unnamed42___U2); + s.tmp_0 = r0 = s.unnamed49___U3; + r0 = pxsim_Array__length(s.unnamed48___U2); s.tmp_1 = r0; r0 = (s.tmp_0 < s.tmp_1); if (!r0) { step = 2; continue; } - r0 = pxsim_Array__getAt(s.unnamed42___U2, s.unnamed43___U3); - s.f___6918 = (r0); + r0 = pxsim_Array__getAt(s.unnamed48___U2, s.unnamed49___U3); + s.f___6963 = (r0); s.tmp_2 = if_handler_1_mk(s); - s.tmp_2.arg0 = s.f___6918; + s.tmp_2.arg0 = s.f___6963; if (!s.tmp_2.arg0.vtable.iface) { setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "handler"), 1); - s.callLocIdx = 218; s.pc = 11; return s.tmp_2; + s.callLocIdx = 211; s.pc = 11; return s.tmp_2; } else { s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["handler"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["handler"], 1); s.callLocIdx = 218; s.pc = 11; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 218; s.pc = 11; return s.tmp_2;; } - else { s.callLocIdx = 218; s.pc = 11; return s.tmp_2; } + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["handler"], 1); s.callLocIdx = 211; s.pc = 11; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 211; s.pc = 11; return s.tmp_2;; } + else { s.callLocIdx = 211; s.pc = 11; return s.tmp_2; } } case 11: r0 = s.retval; - r0 = (s.unnamed43___U3 + 1); - s.unnamed43___U3 = (r0); + r0 = (s.unnamed49___U3 + 1); + s.unnamed49___U3 = (r0); { step = 1; continue; } case 2: - s.unnamed42___U2 = (undefined); + s.unnamed48___U2 = (undefined); r0 = pxsim.control.millis(); - s.now___6923 = (r0); - r0 = (s.now___6923 - s.loopStart___6905); - s.runtime___6926 = (r0); + s.now___6968 = (r0); + r0 = (s.now___6968 - s.loopStart___6950); + s.runtime___6971 = (r0); s.tmp_0 = r0 = s.arg0; r0 = s.tmp_0.fields["timeInSample"]; s.tmp_2 = r0; - r0 = (s.tmp_2 + s.runtime___6926); + r0 = (s.tmp_2 + s.runtime___6971); s.tmp_1 = r0; r0 = (s.tmp_0).fields["timeInSample"] = (s.tmp_1); s.tmp_0 = r0 = s.arg0; @@ -5448,9 +5278,9 @@ switch (step) { if (!r0) { step = 9; continue; } r0 = s.arg0.fields["lastPerfDump"]; s.tmp_4 = r0; - r0 = (s.now___6923 - s.tmp_4); - s.realTimeInSample___6945 = (r0); - r0 = (s.arg0).fields["lastPerfDump"] = (s.now___6923); + r0 = (s.now___6968 - s.tmp_4); + s.realTimeInSample___6990 = (r0); + r0 = (s.arg0).fields["lastPerfDump"] = (s.now___6968); r0 = s.arg0.fields["framesInSample"]; s.tmp_0 = r0; r0 = s.arg0.fields["timeInSample"]; @@ -5458,8 +5288,8 @@ switch (step) { r0 = (s.tmp_2 / 1000); s.tmp_1 = r0; r0 = (s.tmp_0 / s.tmp_1); - s.fps___6954 = (r0); - r0 = pxsim.Math_.round(s.fps___6954); + s.fps___6999 = (r0); + r0 = pxsim.Math_.round(s.fps___6999); s.tmp_1 = r0; if ((s.tmp_1) && (s.tmp_1).vtable) { setupResume(s, 12); @@ -5471,21 +5301,21 @@ switch (step) { r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_String__concat("fps:", s.tmp_0); - globals.context_EventContext_lastStats___3280 = (r0); - r0 = (s.fps___6954 < 99); + globals.context_EventContext_lastStats___3253 = (r0); + r0 = (s.fps___6999 < 99); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 5; continue; } - if ((globals.context_EventContext_lastStats___3280) && (globals.context_EventContext_lastStats___3280).vtable) { + if ((globals.context_EventContext_lastStats___3253) && (globals.context_EventContext_lastStats___3253).vtable) { setupResume(s, 13); - pxsim_String__stringConv(globals.context_EventContext_lastStats___3280); + pxsim_String__stringConv(globals.context_EventContext_lastStats___3253); checkResumeConsumed(); return; - } else { s.retval = (globals.context_EventContext_lastStats___3280) + ""; } + } else { s.retval = (globals.context_EventContext_lastStats___3253) + ""; } case 13: r0 = s.retval; s.tmp_1 = r0; - r0 = (s.fps___6954 * 10); + r0 = (s.fps___6999 * 10); s.tmp_7 = r0; r0 = pxsim.Math_.round(s.tmp_7); s.tmp_6 = r0; @@ -5512,7 +5342,7 @@ switch (step) { r0 = s.retval; s.tmp_2 = r0; r0 = pxsim_String__concat(s.tmp_1, s.tmp_2); - globals.context_EventContext_lastStats___3280 = (r0); + globals.context_EventContext_lastStats___3253 = (r0); case 5: case 6: r0 = pxsim.control.profilingEnabled(); @@ -5521,7 +5351,7 @@ switch (step) { if (!r0) { step = 7; continue; } r0 = pxsim_String_.mkEmpty(); s.tmp_9 = r0; - r0 = (s.fps___6954 * 100); + r0 = (s.fps___6999 * 100); s.tmp_12 = r0; r0 = (s.tmp_12 | 0); s.tmp_11 = r0; @@ -5568,12 +5398,12 @@ switch (step) { s.tmp_4 = r0; r0 = pxsim_String__concat(s.tmp_4, "ms/"); s.tmp_3 = r0; - if ((s.realTimeInSample___6945) && (s.realTimeInSample___6945).vtable) { + if ((s.realTimeInSample___6990) && (s.realTimeInSample___6990).vtable) { setupResume(s, 19); - pxsim_String__stringConv(s.realTimeInSample___6945); + pxsim_String__stringConv(s.realTimeInSample___6990); checkResumeConsumed(); return; - } else { s.retval = (s.realTimeInSample___6945) + ""; } + } else { s.retval = (s.realTimeInSample___6990) + ""; } case 19: r0 = s.retval; s.tmp_17 = r0; @@ -5592,22 +5422,22 @@ switch (step) { case 10: s.tmp_0 = Math_max__P2159_mk(s); s.tmp_0.arg0 = 1; - r0 = (20 - s.runtime___6926); + r0 = (20 - s.runtime___6971); s.tmp_0.arg1 = r0; - s.callLocIdx = 219; s.pc = 20; return s.tmp_0; + s.callLocIdx = 212; s.pc = 20; return s.tmp_0; case 20: r0 = s.retval; - s.delay___7023 = (r0); - r0 = s.delay___7023; + s.delay___7068 = (r0); + r0 = s.delay___7068; return leave(s, r0) default: oops() } } } -context_EventContext_runCallbacks__P5086.info = {"start":1877,"length":1395,"line":68,"column":8,"endLine":99,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"runCallbacks","argumentNames":["this"]} +context_EventContext_runCallbacks__P5075.info = {"start":1877,"length":1395,"line":68,"column":8,"endLine":99,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"runCallbacks","argumentNames":["this"]} -function context_EventContext_runCallbacks__P5086_mk(s) { +function context_EventContext_runCallbacks__P5075_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_runCallbacks__P5086, depth: s.depth + 1, + parent: s, fn: context_EventContext_runCallbacks__P5075, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -5627,22 +5457,21 @@ function context_EventContext_runCallbacks__P5086_mk(s) { tmp_15: undefined, tmp_16: undefined, tmp_17: undefined, - loopStart___6905: undefined, - f___6918: undefined, - unnamed42___U2: undefined, - unnamed43___U3: undefined, - now___6923: undefined, - runtime___6926: undefined, - realTimeInSample___6945: undefined, - fps___6954: undefined, - delay___7023: undefined, + loopStart___6950: undefined, + f___6963: undefined, + unnamed48___U2: undefined, + unnamed49___U3: undefined, + now___6968: undefined, + runtime___6971: undefined, + realTimeInSample___6990: undefined, + fps___6999: undefined, + delay___7068: undefined, arg0: undefined, } } - function pauseUntil__P2811(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5670,7 +5499,7 @@ switch (step) { s.tmp_2 = lambda_1_mk(s); s.tmp_2.argL = s.arg0; setupLambda(s.tmp_2, s.tmp_2.argL); - s.callLocIdx = 124; s.pc = 8; return s.tmp_2; + s.callLocIdx = 129; s.pc = 8; return s.tmp_2; case 8: r0 = s.retval; case 2: @@ -5694,7 +5523,7 @@ switch (step) { s.tmp_0.arg0 = s.arg1; s.tmp_0.arg1 = s.arg0; s.tmp_0.arg2 = undefined; - s.callLocIdx = 125; s.pc = 9; return s.tmp_0; + s.callLocIdx = 130; s.pc = 9; return s.tmp_0; case 9: r0 = s.retval; case 7: @@ -5722,7 +5551,6 @@ function pauseUntil__P2811_mk(s) { - function control___queuePollEvent__P2810(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5733,16 +5561,16 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ev___7045 = undefined; + s.ev___7090 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(control_PollEvent__C4927_VT); + r0 = pxsim_pxtcore_mkClassInstance(control_PollEvent__C4939_VT); s.tmp_0 = r0; - s.tmp_1 = control_PollEvent_constructor__P4928_mk(s); + s.tmp_1 = control_PollEvent_constructor__P4940_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 1023; r0 = pxsim.control.allocateNotifyEvent(); @@ -5755,11 +5583,11 @@ switch (step) { s.tmp_2 = r0; r0 = pxsim_Boolean__bang(s.tmp_2); s.tmp_1.arg6 = r0; - s.callLocIdx = 122; s.pc = 5; return s.tmp_1; + s.callLocIdx = 127; s.pc = 5; return s.tmp_1; case 5: r0 = s.retval; - s.ev___7045 = (s.tmp_0); - r0 = pxsim_numops_toBoolDecr(globals._pollEventQueue___4930); + s.ev___7090 = (s.tmp_0); + r0 = pxsim_numops_toBoolDecr(globals._pollEventQueue___4942); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; @@ -5767,29 +5595,29 @@ switch (step) { if (!r0) { step = 1; continue; } r0 = pxsim_Array__mk(); s.tmp_2 = r0; - r0 = pxsim_Array__push(s.tmp_2, s.ev___7045); - globals._pollEventQueue___4930 = (s.tmp_2); + r0 = pxsim_Array__push(s.tmp_2, s.ev___7090); + globals._pollEventQueue___4942 = (s.tmp_2); s.tmp_0 = control_runInParallel__P2441_mk(s); - s.tmp_0.arg0 = control_pollEvents__P4931; - s.callLocIdx = 123; s.pc = 6; return s.tmp_0; + s.tmp_0.arg0 = control_pollEvents__P4943; + s.callLocIdx = 128; s.pc = 6; return s.tmp_0; case 6: r0 = s.retval; { step = 2; continue; } case 1: - r0 = pxsim_Array__push(globals._pollEventQueue___4930, s.ev___7045); + r0 = pxsim_Array__push(globals._pollEventQueue___4942, s.ev___7090); case 2: r0 = pxsim_numops_toBoolDecr(s.arg2); if (!r0) { step = 3; continue; } - r0 = s.ev___7045.fields["eid"]; + r0 = s.ev___7090.fields["eid"]; s.tmp_0 = r0; - r0 = s.ev___7045.fields["vid"]; + r0 = s.ev___7090.fields["vid"]; s.tmp_1 = r0; r0 = pxsim.control.onEvent(s.tmp_0, s.tmp_1, s.arg2, 0); { step = 4; continue; } case 3: - r0 = s.ev___7045.fields["eid"]; + r0 = s.ev___7090.fields["eid"]; s.tmp_0 = r0; - r0 = s.ev___7045.fields["vid"]; + r0 = s.ev___7090.fields["vid"]; s.tmp_1 = r0; setupResume(s, 7); pxsim.control.waitForEvent(s.tmp_0, s.tmp_1); @@ -5812,7 +5640,7 @@ function control___queuePollEvent__P2810_mk(s) { tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - ev___7045: undefined, + ev___7090: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -5821,8 +5649,7 @@ function control___queuePollEvent__P2810_mk(s) { - -function control_pollEvents__P4931(s) { +function control_pollEvents__P4943(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5832,39 +5659,39 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.now___7089 = undefined; - s.i___7092 = undefined; - s.ev___7098 = undefined; + s.now___7134 = undefined; + s.i___7137 = undefined; + s.ev___7143 = undefined; case 1: - r0 = pxsim_Array__length(globals._pollEventQueue___4930); + r0 = pxsim_Array__length(globals._pollEventQueue___4942); s.tmp_1 = r0; r0 = (s.tmp_1 > 0); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 12; continue; } r0 = pxsim.control.millis(); - s.now___7089 = (r0); - s.i___7092 = (0); + s.now___7134 = (r0); + s.i___7137 = (0); case 2: - s.tmp_1 = r0 = s.i___7092; - r0 = pxsim_Array__length(globals._pollEventQueue___4930); + s.tmp_1 = r0 = s.i___7137; + r0 = pxsim_Array__length(globals._pollEventQueue___4942); s.tmp_2 = r0; r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 11; continue; } - r0 = pxsim_Array__getAt(globals._pollEventQueue___4930, s.i___7092); - s.ev___7098 = (r0); + r0 = pxsim_Array__getAt(globals._pollEventQueue___4942, s.i___7137); + s.ev___7143 = (r0); s.tmp_1 = if_condition_1_mk(s); - s.tmp_1.arg0 = s.ev___7098; + s.tmp_1.arg0 = s.ev___7143; if (!s.tmp_1.arg0.vtable.iface) { setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "condition"), 1); - s.callLocIdx = 119; s.pc = 13; return s.tmp_1; + s.callLocIdx = 124; s.pc = 13; return s.tmp_1; } else { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["condition"]; - if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["condition"], 1); s.callLocIdx = 119; s.pc = 13; return s.tmp_1; } - else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 119; s.pc = 13; return s.tmp_1;; } - else { s.callLocIdx = 119; s.pc = 13; return s.tmp_1; } + if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["condition"], 1); s.callLocIdx = 124; s.pc = 13; return s.tmp_1; } + else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 124; s.pc = 13; return s.tmp_1;; } + else { s.callLocIdx = 124; s.pc = 13; return s.tmp_1; } } case 13: r0 = s.retval; @@ -5874,7 +5701,7 @@ switch (step) { r0 = s.tmp_0; { step = 6; continue; } case 3: - r0 = s.ev___7098.fields["timeOut"]; + r0 = s.ev___7143.fields["timeOut"]; s.tmp_3 = r0; r0 = (s.tmp_3 > 0); s.tmp_2 = r0; @@ -5883,11 +5710,11 @@ switch (step) { r0 = s.tmp_2; { step = 5; continue; } case 4: - r0 = s.ev___7098.fields["start"]; + r0 = s.ev___7143.fields["start"]; s.tmp_5 = r0; - r0 = (s.now___7089 - s.tmp_5); + r0 = (s.now___7134 - s.tmp_5); s.tmp_4 = r0; - r0 = s.ev___7098.fields["timeOut"]; + r0 = s.ev___7143.fields["timeOut"]; s.tmp_6 = r0; r0 = (s.tmp_4 > s.tmp_6); case 5: @@ -5899,50 +5726,50 @@ switch (step) { s.tmp_8 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_8); if (!r0) { step = 9; continue; } - r0 = s.ev___7098.fields["eid"]; + r0 = s.ev___7143.fields["eid"]; s.tmp_9 = r0; - r0 = s.ev___7098.fields["vid"]; + r0 = s.ev___7143.fields["vid"]; s.tmp_10 = r0; r0 = pxsim.control.raiseEvent(s.tmp_9, s.tmp_10, 1); - r0 = s.ev___7098.fields["once"]; + r0 = s.ev___7143.fields["once"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 7; continue; } s.tmp_1 = helpers_arraySplice__P2129_mk(s); - s.tmp_1.arg0 = globals._pollEventQueue___4930; - s.tmp_1.arg1 = s.i___7092; + s.tmp_1.arg0 = globals._pollEventQueue___4942; + s.tmp_1.arg1 = s.i___7137; s.tmp_1.arg2 = 1; - s.callLocIdx = 120; s.pc = 14; return s.tmp_1; + s.callLocIdx = 125; s.pc = 14; return s.tmp_1; case 14: r0 = s.retval; - r0 = (s.i___7092 - 1); - s.i___7092 = (r0); + r0 = (s.i___7137 - 1); + s.i___7137 = (r0); case 7: case 8: case 9: case 10: - r0 = (s.i___7092 + 1); - s.i___7092 = (r0); + r0 = (s.i___7137 + 1); + s.i___7137 = (r0); { step = 2; continue; } case 11: s.tmp_0 = pause__P2371_mk(s); s.tmp_0.arg0 = 50; - s.callLocIdx = 121; s.pc = 15; return s.tmp_0; + s.callLocIdx = 126; s.pc = 15; return s.tmp_0; case 15: r0 = s.retval; { step = 1; continue; } case 12: - globals._pollEventQueue___4930 = (undefined); + globals._pollEventQueue___4942 = (undefined); r0 = undefined; return leave(s, r0) default: oops() } } } -control_pollEvents__P4931.info = {"start":618,"length":638,"line":20,"column":4,"endLine":37,"endColumn":5,"fileName":"pxt_modules/core/poll.ts","functionName":"pollEvents","argumentNames":[]} +control_pollEvents__P4943.info = {"start":618,"length":638,"line":20,"column":4,"endLine":37,"endColumn":5,"fileName":"pxt_modules/core/poll.ts","functionName":"pollEvents","argumentNames":[]} -function control_pollEvents__P4931_mk(s) { +function control_pollEvents__P4943_mk(s) { checkStack(s.depth); return { - parent: s, fn: control_pollEvents__P4931, depth: s.depth + 1, + parent: s, fn: control_pollEvents__P4943, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -5955,15 +5782,14 @@ function control_pollEvents__P4931_mk(s) { tmp_8: undefined, tmp_9: undefined, tmp_10: undefined, - now___7089: undefined, - i___7092: undefined, - ev___7098: undefined, + now___7134: undefined, + i___7137: undefined, + ev___7143: undefined, } } - function helpers_arraySplice__P2129(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -5974,7 +5800,7 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.i___7147 = undefined; + s.i___7192 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); @@ -5988,15 +5814,15 @@ switch (step) { { step = 5; continue; } case 1: case 2: - s.i___7147 = (0); + s.i___7192 = (0); case 3: - r0 = (s.i___7147 < s.arg2); + r0 = (s.i___7192 < s.arg2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 4; continue; } r0 = pxsim_Array_.removeAt(s.arg0, s.arg1); - r0 = (s.i___7147 + 1); - s.i___7147 = (r0); + r0 = (s.i___7192 + 1); + s.i___7192 = (r0); { step = 3; continue; } case 4: case 5: @@ -6012,7 +5838,7 @@ function helpers_arraySplice__P2129_mk(s) { parent: s, fn: helpers_arraySplice__P2129, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - i___7147: undefined, + i___7192: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -6021,8 +5847,7 @@ function helpers_arraySplice__P2129_mk(s) { - -function control_PollEvent_constructor__P4928(s) { +function control_PollEvent_constructor__P4940(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6043,7 +5868,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, control_PollEvent__C4927_VT)) failedCast(r0, control_PollEvent__C4927_VT); + if (!checkSubtype(r0, control_PollEvent__C4939_VT)) failedCast(r0, control_PollEvent__C4939_VT); r0 = (s.arg0).fields["eid"] = (s.arg1); r0 = (s.arg0).fields["vid"] = (s.arg2); r0 = (s.arg0).fields["start"] = (s.arg3); @@ -6054,12 +5879,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -control_PollEvent_constructor__P4928.info = {"start":239,"length":316,"line":8,"column":8,"endLine":15,"endColumn":9,"fileName":"pxt_modules/core/poll.ts","functionName":"inline","argumentNames":["this","eid","vid","start","timeOut","condition","once"]} +control_PollEvent_constructor__P4940.info = {"start":239,"length":316,"line":8,"column":8,"endLine":15,"endColumn":9,"fileName":"pxt_modules/core/poll.ts","functionName":"inline","argumentNames":["this","eid","vid","start","timeOut","condition","once"]} -function control_PollEvent_constructor__P4928_mk(s) { +function control_PollEvent_constructor__P4940_mk(s) { checkStack(s.depth); return { - parent: s, fn: control_PollEvent_constructor__P4928, depth: s.depth + 1, + parent: s, fn: control_PollEvent_constructor__P4940, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, arg1: undefined, @@ -6073,8 +5898,7 @@ function control_PollEvent_constructor__P4928_mk(s) { - -function user_interface_base_Scene_activate__P3693(s) { +function user_interface_base_Scene_activate__P3666(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6089,21 +5913,21 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); - s.tmp_0 = user_interface_base_profile__P3843_mk(s); - s.callLocIdx = 584; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); + s.tmp_0 = user_interface_base_profile__P3816_mk(s); + s.callLocIdx = 576; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene_activate__P3693.info = {"start":1505,"length":44,"line":48,"column":23,"endLine":50,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"activate","argumentNames":["this"]} +user_interface_base_Scene_activate__P3666.info = {"start":1505,"length":44,"line":48,"column":23,"endLine":50,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"activate","argumentNames":["this"]} -function user_interface_base_Scene_activate__P3693_mk(s) { +function user_interface_base_Scene_activate__P3666_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_activate__P3693, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_activate__P3666, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -6112,8 +5936,7 @@ function user_interface_base_Scene_activate__P3693_mk(s) { - -function user_interface_base_profile__P3843(s) { +function user_interface_base_profile__P3816(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6127,20 +5950,19 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_profile__P3843.info = {"start":258,"length":34,"line":8,"column":4,"endLine":10,"endColumn":5,"fileName":"pxt_modules/user-interface-base/options.ts","functionName":"profile","argumentNames":[]} +user_interface_base_profile__P3816.info = {"start":258,"length":34,"line":8,"column":4,"endLine":10,"endColumn":5,"fileName":"pxt_modules/user-interface-base/options.ts","functionName":"profile","argumentNames":[]} -function user_interface_base_profile__P3843_mk(s) { +function user_interface_base_profile__P3816_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_profile__P3843, depth: s.depth + 1, + parent: s, fn: user_interface_base_profile__P3816, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, } } - -function user_interface_base_Scene_startup__P3691(s) { +function user_interface_base_Scene_startup__P3664(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6155,16 +5977,16 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); - r0 = pxsim_numops_toBoolDecr(globals.user_interface_base_Options_menuProfiling___3842); + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); + r0 = pxsim_numops_toBoolDecr(globals.user_interface_base_Options_menuProfiling___3815); if (!r0) { step = 1; continue; } - s.tmp_0 = context_onEvent__P3274_mk(s); + s.tmp_0 = context_onEvent__P3247_mk(s); s.tmp_0.arg0 = 2049; - r0 = globals.menu___3272.fields["id"]; + r0 = globals.menu___3245.fields["id"]; s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = user_interface_base_Scene_startup_inline__P7192; + s.tmp_0.arg2 = user_interface_base_Scene_startup_inline__P7237; s.tmp_0.arg3 = 16; - s.callLocIdx = 583; s.pc = 3; return s.tmp_0; + s.callLocIdx = 575; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; case 1: @@ -6173,12 +5995,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Scene_startup__P3691.info = {"start":1126,"length":315,"line":34,"column":23,"endLine":44,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"startup","argumentNames":["this"]} +user_interface_base_Scene_startup__P3664.info = {"start":1126,"length":315,"line":34,"column":23,"endLine":44,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"startup","argumentNames":["this"]} -function user_interface_base_Scene_startup__P3691_mk(s) { +function user_interface_base_Scene_startup__P3664_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_startup__P3691, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_startup__P3664, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -6187,8 +6009,7 @@ function user_interface_base_Scene_startup__P3691_mk(s) { - -function user_interface_base_Scene_startup_inline__P7192(s) { +function user_interface_base_Scene_startup_inline__P7237(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6203,20 +6024,19 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Scene_startup_inline__P7192.info = {"start":1323,"length":76,"line":39,"column":20,"endLine":41,"endColumn":21,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} +user_interface_base_Scene_startup_inline__P7237.info = {"start":1323,"length":76,"line":39,"column":20,"endLine":41,"endColumn":21,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Scene_startup_inline__P7192_mk(s) { +function user_interface_base_Scene_startup_inline__P7237_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_startup_inline__P7192, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_startup_inline__P7237, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, } } - -function context_onEvent__P3274(s) { +function context_onEvent__P3247(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6226,7 +6046,7 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ctx___7201 = undefined; + s.ctx___7246 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); @@ -6234,12 +6054,12 @@ switch (step) { s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - s.tmp_0 = context_eventContext__P3291_mk(s); - s.callLocIdx = 215; s.pc = 3; return s.tmp_0; + s.tmp_0 = context_eventContext__P3264_mk(s); + s.callLocIdx = 208; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; - s.ctx___7201 = (r0); - r0 = pxsim_numops_toBoolDecr(s.ctx___7201); + s.ctx___7246 = (r0); + r0 = pxsim_numops_toBoolDecr(s.ctx___7246); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; @@ -6248,13 +6068,13 @@ switch (step) { r0 = pxsim.control.onEvent(s.arg0, s.arg1, s.arg2, s.arg3); { step = 2; continue; } case 1: - s.tmp_0 = context_EventContext_registerHandler__P3288_mk(s); - s.tmp_0.arg0 = s.ctx___7201; + s.tmp_0 = context_EventContext_registerHandler__P3261_mk(s); + s.tmp_0.arg0 = s.ctx___7246; s.tmp_0.arg1 = s.arg0; s.tmp_0.arg2 = s.arg1; s.tmp_0.arg3 = s.arg2; s.tmp_0.arg4 = s.arg3; - s.callLocIdx = 216; s.pc = 4; return s.tmp_0; + s.callLocIdx = 209; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; case 2: @@ -6262,16 +6082,16 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_onEvent__P3274.info = {"start":25,"length":309,"line":2,"column":4,"endLine":8,"endColumn":5,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"onEvent","argumentNames":["src","value","handler","flags"]} +context_onEvent__P3247.info = {"start":25,"length":309,"line":2,"column":4,"endLine":8,"endColumn":5,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"onEvent","argumentNames":["src","value","handler","flags"]} -function context_onEvent__P3274_mk(s) { +function context_onEvent__P3247_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_onEvent__P3274, depth: s.depth + 1, + parent: s, fn: context_onEvent__P3247, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - ctx___7201: undefined, + ctx___7246: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -6281,8 +6101,7 @@ function context_onEvent__P3274_mk(s) { - -function context_EventContext_registerHandler__P3288(s) { +function context_EventContext_registerHandler__P3261(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6292,10 +6111,10 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.h___7224 = undefined; - s.unnamed48___U1 = undefined; - s.unnamed49___U2 = undefined; - s.hn___7247 = undefined; + s.h___7269 = undefined; + s.unnamed54___U1 = undefined; + s.unnamed55___U2 = undefined; + s.hn___7292 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); @@ -6305,20 +6124,20 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventContext__C3278_VT)) failedCast(r0, context_EventContext__C3278_VT); - s.h___7224 = (undefined); + if (!checkSubtype(r0, context_EventContext__C3251_VT)) failedCast(r0, context_EventContext__C3251_VT); + s.h___7269 = (undefined); r0 = s.arg0.fields["handlers"]; - s.unnamed48___U1 = (r0); - s.unnamed49___U2 = (0); + s.unnamed54___U1 = (r0); + s.unnamed55___U2 = (0); case 1: - s.tmp_0 = r0 = s.unnamed49___U2; - r0 = pxsim_Array__length(s.unnamed48___U1); + s.tmp_0 = r0 = s.unnamed55___U2; + r0 = pxsim_Array__length(s.unnamed54___U1); s.tmp_1 = r0; r0 = (s.tmp_0 < s.tmp_1); if (!r0) { step = 6; continue; } - r0 = pxsim_Array__getAt(s.unnamed48___U1, s.unnamed49___U2); - s.h___7224 = (r0); - r0 = s.h___7224.fields["src"]; + r0 = pxsim_Array__getAt(s.unnamed54___U1, s.unnamed55___U2); + s.h___7269 = (r0); + r0 = s.h___7269.fields["src"]; s.tmp_3 = r0; r0 = (s.tmp_3 == s.arg1); s.tmp_2 = r0; @@ -6327,7 +6146,7 @@ switch (step) { r0 = s.tmp_2; { step = 3; continue; } case 2: - r0 = s.h___7224.fields["value"]; + r0 = s.h___7269.fields["value"]; s.tmp_4 = r0; r0 = (s.tmp_4 == s.arg2); case 3: @@ -6335,34 +6154,34 @@ switch (step) { s.tmp_5 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_5); if (!r0) { step = 4; continue; } - r0 = (s.h___7224).fields["flags"] = (s.arg4); - r0 = (s.h___7224).fields["handler"] = (s.arg3); + r0 = (s.h___7269).fields["flags"] = (s.arg4); + r0 = (s.h___7269).fields["handler"] = (s.arg3); { step = 7; continue; } case 4: case 5: - r0 = (s.unnamed49___U2 + 1); - s.unnamed49___U2 = (r0); + r0 = (s.unnamed55___U2 + 1); + s.unnamed55___U2 = (r0); { step = 1; continue; } case 6: - s.unnamed48___U1 = (undefined); - r0 = pxsim_pxtcore_mkClassInstance(context_EventHandler__C5081_VT); + s.unnamed54___U1 = (undefined); + r0 = pxsim_pxtcore_mkClassInstance(context_EventHandler__C5070_VT); s.tmp_0 = r0; - s.tmp_1 = context_EventHandler_constructor__P5084_mk(s); + s.tmp_1 = context_EventHandler_constructor__P5073_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = s.arg1; s.tmp_1.arg2 = s.arg2; s.tmp_1.arg3 = s.arg3; s.tmp_1.arg4 = s.arg4; - s.callLocIdx = 228; s.pc = 8; return s.tmp_1; + s.callLocIdx = 221; s.pc = 8; return s.tmp_1; case 8: r0 = s.retval; - s.hn___7247 = (s.tmp_0); + s.hn___7292 = (s.tmp_0); r0 = s.arg0.fields["handlers"]; s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.hn___7247); - s.tmp_0 = context_EventHandler_register__P5082_mk(s); - s.tmp_0.arg0 = s.hn___7247; - s.callLocIdx = 229; s.pc = 9; return s.tmp_0; + r0 = pxsim_Array__push(s.tmp_0, s.hn___7292); + s.tmp_0 = context_EventHandler_register__P5071_mk(s); + s.tmp_0.arg0 = s.hn___7292; + s.callLocIdx = 222; s.pc = 9; return s.tmp_0; case 9: r0 = s.retval; case 7: @@ -6370,12 +6189,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_EventContext_registerHandler__P3288.info = {"start":5417,"length":525,"line":166,"column":8,"endLine":179,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"registerHandler","argumentNames":["this","src","value","handler","flags"]} +context_EventContext_registerHandler__P3261.info = {"start":5417,"length":525,"line":166,"column":8,"endLine":179,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"registerHandler","argumentNames":["this","src","value","handler","flags"]} -function context_EventContext_registerHandler__P3288_mk(s) { +function context_EventContext_registerHandler__P3261_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_registerHandler__P3288, depth: s.depth + 1, + parent: s, fn: context_EventContext_registerHandler__P3261, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -6383,10 +6202,10 @@ function context_EventContext_registerHandler__P3288_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - h___7224: undefined, - unnamed48___U1: undefined, - unnamed49___U2: undefined, - hn___7247: undefined, + h___7269: undefined, + unnamed54___U1: undefined, + unnamed55___U2: undefined, + hn___7292: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -6397,8 +6216,7 @@ function context_EventContext_registerHandler__P3288_mk(s) { - -function context_EventHandler_register__P5082(s) { +function context_EventHandler_register__P5071(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6413,8 +6231,8 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventHandler__C5081_VT)) failedCast(r0, context_EventHandler__C5081_VT); - r0 = pxsim_pxtcore_mkAction(1, context_EventHandler_register_inline__P7268); + if (!checkSubtype(r0, context_EventHandler__C5070_VT)) failedCast(r0, context_EventHandler__C5070_VT); + r0 = pxsim_pxtcore_mkAction(1, context_EventHandler_register_inline__P7313); s.tmp_0 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); r0 = s.arg0.fields["src"]; @@ -6428,12 +6246,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_EventHandler_register__P5082.info = {"start":634,"length":157,"line":23,"column":8,"endLine":27,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"register","argumentNames":["this"]} +context_EventHandler_register__P5071.info = {"start":634,"length":157,"line":23,"column":8,"endLine":27,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"register","argumentNames":["this"]} -function context_EventHandler_register__P5082_mk(s) { +function context_EventHandler_register__P5071_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventHandler_register__P5082, depth: s.depth + 1, + parent: s, fn: context_EventHandler_register__P5071, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -6445,8 +6263,7 @@ function context_EventHandler_register__P5082_mk(s) { - -function context_EventHandler_register_inline__P7268(s) { +function context_EventHandler_register_inline__P7313(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6464,12 +6281,12 @@ switch (step) { s.tmp_1.arg0 = s.caps[0]; if (!s.tmp_1.arg0.vtable.iface) { setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "handler"), 1); - s.callLocIdx = 217; s.pc = 3; return s.tmp_1; + s.callLocIdx = 210; s.pc = 3; return s.tmp_1; } else { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["handler"]; - if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["handler"], 1); s.callLocIdx = 217; s.pc = 3; return s.tmp_1; } - else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 217; s.pc = 3; return s.tmp_1;; } - else { s.callLocIdx = 217; s.pc = 3; return s.tmp_1; } + if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["handler"], 1); s.callLocIdx = 210; s.pc = 3; return s.tmp_1; } + else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 210; s.pc = 3; return s.tmp_1;; } + else { s.callLocIdx = 210; s.pc = 3; return s.tmp_1; } } case 3: r0 = s.retval; @@ -6479,12 +6296,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_EventHandler_register_inline__P7268.info = {"start":697,"length":71,"line":24,"column":50,"endLine":26,"endColumn":13,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":[]} +context_EventHandler_register_inline__P7313.info = {"start":697,"length":71,"line":24,"column":50,"endLine":26,"endColumn":13,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":[]} -function context_EventHandler_register_inline__P7268_mk(s) { +function context_EventHandler_register_inline__P7313_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventHandler_register_inline__P7268, depth: s.depth + 1, + parent: s, fn: context_EventHandler_register_inline__P7313, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -6493,8 +6310,7 @@ function context_EventHandler_register_inline__P7268_mk(s) { - -function context_EventHandler_constructor__P5084(s) { +function context_EventHandler_constructor__P5073(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6513,7 +6329,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventHandler__C5081_VT)) failedCast(r0, context_EventHandler__C5081_VT); + if (!checkSubtype(r0, context_EventHandler__C5070_VT)) failedCast(r0, context_EventHandler__C5070_VT); r0 = (s.arg0).fields["src"] = (s.arg1); r0 = (s.arg0).fields["value"] = (s.arg2); r0 = (s.arg0).fields["handler"] = (s.arg3); @@ -6522,12 +6338,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_EventHandler_constructor__P5084.info = {"start":459,"length":165,"line":16,"column":8,"endLine":21,"endColumn":13,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":["this","src","value","handler","flags"]} +context_EventHandler_constructor__P5073.info = {"start":459,"length":165,"line":16,"column":8,"endLine":21,"endColumn":13,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":["this","src","value","handler","flags"]} -function context_EventHandler_constructor__P5084_mk(s) { +function context_EventHandler_constructor__P5073_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventHandler_constructor__P5084, depth: s.depth + 1, + parent: s, fn: context_EventHandler_constructor__P5073, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, arg1: undefined, @@ -6539,8 +6355,7 @@ function context_EventHandler_constructor__P5084_mk(s) { - -function context_pushEventContext__P3292(s) { +function context_pushEventContext__P3265(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6550,63 +6365,62 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ctx___7279 = undefined; - s.n___7285 = undefined; - r0 = pxsim_numops_toBoolDecr(globals.eventContexts___5089); + s.ctx___7324 = undefined; + s.n___7330 = undefined; + r0 = pxsim_numops_toBoolDecr(globals.eventContexts___5078); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } r0 = pxsim_Array__mk(); - globals.eventContexts___5089 = (r0); + globals.eventContexts___5078 = (r0); case 1: case 2: - s.tmp_0 = context_eventContext__P3291_mk(s); - s.callLocIdx = 230; s.pc = 5; return s.tmp_0; + s.tmp_0 = context_eventContext__P3264_mk(s); + s.callLocIdx = 223; s.pc = 5; return s.tmp_0; case 5: r0 = s.retval; - s.ctx___7279 = (r0); - r0 = pxsim_numops_toBoolDecr(s.ctx___7279); + s.ctx___7324 = (r0); + r0 = pxsim_numops_toBoolDecr(s.ctx___7324); if (!r0) { step = 3; continue; } - s.tmp_0 = context_EventContext_unregister__P3285_mk(s); - s.tmp_0.arg0 = s.ctx___7279; - s.callLocIdx = 231; s.pc = 6; return s.tmp_0; + s.tmp_0 = context_EventContext_unregister__P3258_mk(s); + s.tmp_0.arg0 = s.ctx___7324; + s.callLocIdx = 224; s.pc = 6; return s.tmp_0; case 6: r0 = s.retval; case 3: case 4: - r0 = pxsim_pxtcore_mkClassInstance(context_EventContext__C3278_VT); + r0 = pxsim_pxtcore_mkClassInstance(context_EventContext__C3251_VT); s.tmp_0 = r0; - s.tmp_1 = context_EventContext_constructor__P3282_mk(s); + s.tmp_1 = context_EventContext_constructor__P3255_mk(s); s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 232; s.pc = 7; return s.tmp_1; + s.callLocIdx = 225; s.pc = 7; return s.tmp_1; case 7: r0 = s.retval; - s.n___7285 = (s.tmp_0); - r0 = pxsim_Array__push(globals.eventContexts___5089, s.n___7285); - r0 = s.n___7285; + s.n___7330 = (s.tmp_0); + r0 = pxsim_Array__push(globals.eventContexts___5078, s.n___7330); + r0 = s.n___7330; return leave(s, r0) default: oops() } } } -context_pushEventContext__P3292.info = {"start":6967,"length":340,"line":213,"column":4,"endLine":224,"endColumn":5,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"pushEventContext","argumentNames":[]} +context_pushEventContext__P3265.info = {"start":6967,"length":340,"line":213,"column":4,"endLine":224,"endColumn":5,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"pushEventContext","argumentNames":[]} -function context_pushEventContext__P3292_mk(s) { +function context_pushEventContext__P3265_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_pushEventContext__P3292, depth: s.depth + 1, + parent: s, fn: context_pushEventContext__P3265, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - ctx___7279: undefined, - n___7285: undefined, + ctx___7324: undefined, + n___7330: undefined, } } - -function context_EventContext_constructor__P3282(s) { +function context_EventContext_constructor__P3255(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6621,7 +6435,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventContext__C3278_VT)) failedCast(r0, context_EventContext__C3278_VT); + if (!checkSubtype(r0, context_EventContext__C3251_VT)) failedCast(r0, context_EventContext__C3251_VT); s.tmp_0 = r0 = s.arg0; r0 = pxsim_Array__mk(); s.tmp_1 = r0; @@ -6631,26 +6445,26 @@ switch (step) { r0 = (s.arg0).fields["deltaTimeMillis"] = (0); r0 = (s.arg0).fields["frameWorker"] = (0); r0 = (s.arg0).fields["idleCallbacks"] = (undefined); - r0 = pxsim_numops_toBoolDecr(globals.context_EventContext_lastStats___3280); + r0 = pxsim_numops_toBoolDecr(globals.context_EventContext_lastStats___3253); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } r0 = pxsim_String_.mkEmpty(); - globals.context_EventContext_lastStats___3280 = (r0); + globals.context_EventContext_lastStats___3253 = (r0); case 1: case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -context_EventContext_constructor__P3282.info = {"start":1435,"length":347,"line":52,"column":8,"endLine":62,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":["this"]} +context_EventContext_constructor__P3255.info = {"start":1435,"length":347,"line":52,"column":8,"endLine":62,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"inline","argumentNames":["this"]} -function context_EventContext_constructor__P3282_mk(s) { +function context_EventContext_constructor__P3255_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_constructor__P3282, depth: s.depth + 1, + parent: s, fn: context_EventContext_constructor__P3255, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -6660,8 +6474,7 @@ function context_EventContext_constructor__P3282_mk(s) { - -function context_EventContext_unregister__P3285(s) { +function context_EventContext_unregister__P3258(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6671,37 +6484,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.h___7314 = undefined; - s.unnamed46___U1 = undefined; - s.unnamed47___U2 = undefined; + s.h___7359 = undefined; + s.unnamed52___U1 = undefined; + s.unnamed53___U2 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventContext__C3278_VT)) failedCast(r0, context_EventContext__C3278_VT); - s.h___7314 = (undefined); + if (!checkSubtype(r0, context_EventContext__C3251_VT)) failedCast(r0, context_EventContext__C3251_VT); + s.h___7359 = (undefined); r0 = s.arg0.fields["handlers"]; - s.unnamed46___U1 = (r0); - s.unnamed47___U2 = (0); + s.unnamed52___U1 = (r0); + s.unnamed53___U2 = (0); case 1: - s.tmp_0 = r0 = s.unnamed47___U2; - r0 = pxsim_Array__length(s.unnamed46___U1); + s.tmp_0 = r0 = s.unnamed53___U2; + r0 = pxsim_Array__length(s.unnamed52___U1); s.tmp_1 = r0; r0 = (s.tmp_0 < s.tmp_1); if (!r0) { step = 2; continue; } - r0 = pxsim_Array__getAt(s.unnamed46___U1, s.unnamed47___U2); - s.h___7314 = (r0); - s.tmp_2 = context_EventHandler_unregister__P5083_mk(s); - s.tmp_2.arg0 = s.h___7314; - s.callLocIdx = 226; s.pc = 3; return s.tmp_2; + r0 = pxsim_Array__getAt(s.unnamed52___U1, s.unnamed53___U2); + s.h___7359 = (r0); + s.tmp_2 = context_EventHandler_unregister__P5072_mk(s); + s.tmp_2.arg0 = s.h___7359; + s.callLocIdx = 219; s.pc = 3; return s.tmp_2; case 3: r0 = s.retval; - r0 = (s.unnamed47___U2 + 1); - s.unnamed47___U2 = (r0); + r0 = (s.unnamed53___U2 + 1); + s.unnamed53___U2 = (r0); { step = 1; continue; } case 2: - s.unnamed46___U1 = (undefined); + s.unnamed52___U1 = (undefined); s.tmp_0 = r0 = s.arg0; r0 = s.tmp_0.fields["frameWorker"]; s.tmp_2 = r0; @@ -6712,27 +6525,26 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_EventContext_unregister__P3285.info = {"start":4378,"length":131,"line":134,"column":8,"endLine":138,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"unregister","argumentNames":["this"]} +context_EventContext_unregister__P3258.info = {"start":4378,"length":131,"line":134,"column":8,"endLine":138,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"unregister","argumentNames":["this"]} -function context_EventContext_unregister__P3285_mk(s) { +function context_EventContext_unregister__P3258_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_unregister__P3285, depth: s.depth + 1, + parent: s, fn: context_EventContext_unregister__P3258, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - h___7314: undefined, - unnamed46___U1: undefined, - unnamed47___U2: undefined, + h___7359: undefined, + unnamed52___U1: undefined, + unnamed53___U2: undefined, arg0: undefined, } } - -function context_EventHandler_unregister__P5083(s) { +function context_EventHandler_unregister__P5072(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6747,24 +6559,24 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, context_EventHandler__C5081_VT)) failedCast(r0, context_EventHandler__C5081_VT); + if (!checkSubtype(r0, context_EventHandler__C5070_VT)) failedCast(r0, context_EventHandler__C5070_VT); r0 = s.arg0.fields["src"]; s.tmp_0 = r0; r0 = s.arg0.fields["value"]; s.tmp_1 = r0; r0 = s.arg0.fields["flags"]; s.tmp_2 = r0; - r0 = pxsim.control.onEvent(s.tmp_0, s.tmp_1, context_doNothing__P5085, s.tmp_2); + r0 = pxsim.control.onEvent(s.tmp_0, s.tmp_1, context_doNothing__P5074, s.tmp_2); r0 = undefined; return leave(s, r0) default: oops() } } } -context_EventHandler_unregister__P5083.info = {"start":801,"length":98,"line":29,"column":8,"endLine":31,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"unregister","argumentNames":["this"]} +context_EventHandler_unregister__P5072.info = {"start":801,"length":98,"line":29,"column":8,"endLine":31,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"unregister","argumentNames":["this"]} -function context_EventHandler_unregister__P5083_mk(s) { +function context_EventHandler_unregister__P5072_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventHandler_unregister__P5083, depth: s.depth + 1, + parent: s, fn: context_EventHandler_unregister__P5072, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -6775,8 +6587,7 @@ function context_EventHandler_unregister__P5083_mk(s) { - -function context_doNothing__P5085(s) { +function context_doNothing__P5074(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6790,20 +6601,19 @@ switch (step) { return leave(s, r0) default: oops() } } } -context_doNothing__P5085.info = {"start":911,"length":24,"line":34,"column":4,"endLine":34,"endColumn":28,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"doNothing","argumentNames":[]} +context_doNothing__P5074.info = {"start":911,"length":24,"line":34,"column":4,"endLine":34,"endColumn":28,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"doNothing","argumentNames":[]} -function context_doNothing__P5085_mk(s) { +function context_doNothing__P5074_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_doNothing__P5085, depth: s.depth + 1, + parent: s, fn: context_doNothing__P5074, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, } } - -function user_interface_base_Scene_deactivate__P3694(s) { +function user_interface_base_Scene_deactivate__P3667(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6818,21 +6628,21 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); - s.tmp_0 = user_interface_base_profile__P3843_mk(s); - s.callLocIdx = 585; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); + s.tmp_0 = user_interface_base_profile__P3816_mk(s); + s.callLocIdx = 577; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene_deactivate__P3694.info = {"start":1574,"length":46,"line":52,"column":23,"endLine":54,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"deactivate","argumentNames":["this"]} +user_interface_base_Scene_deactivate__P3667.info = {"start":1574,"length":46,"line":52,"column":23,"endLine":54,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"deactivate","argumentNames":["this"]} -function user_interface_base_Scene_deactivate__P3694_mk(s) { +function user_interface_base_Scene_deactivate__P3667_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_deactivate__P3694, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_deactivate__P3667, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -6841,8 +6651,7 @@ function user_interface_base_Scene_deactivate__P3694_mk(s) { - -function user_interface_base_SceneManager_currScene__P5269(s) { +function user_interface_base_SceneManager_currScene__P5258(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6857,7 +6666,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_SceneManager__C3701_VT)) failedCast(r0, user_interface_base_SceneManager__C3701_VT); + if (!checkSubtype(r0, user_interface_base_SceneManager__C3674_VT)) failedCast(r0, user_interface_base_SceneManager__C3674_VT); r0 = s.arg0.fields["scenes"]; s.tmp_1 = r0; r0 = pxsim_Array__length(s.tmp_1); @@ -6881,12 +6690,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_SceneManager_currScene__P5269.info = {"start":4824,"length":178,"line":152,"column":8,"endLine":157,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"currScene","argumentNames":["this"]} +user_interface_base_SceneManager_currScene__P5258.info = {"start":4824,"length":178,"line":152,"column":8,"endLine":157,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"currScene","argumentNames":["this"]} -function user_interface_base_SceneManager_currScene__P5269_mk(s) { +function user_interface_base_SceneManager_currScene__P5258_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_SceneManager_currScene__P5269, depth: s.depth + 1, + parent: s, fn: user_interface_base_SceneManager_currScene__P5258, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -6900,8 +6709,7 @@ function user_interface_base_SceneManager_currScene__P5269_mk(s) { - -function microcode_Home_constructor__P4360(s) { +function microcode_Home_constructor__P4515(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6917,31 +6725,31 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Home__C4359_VT)) failedCast(r0, microcode_Home__C4359_VT); + if (!checkSubtype(r0, microcode_Home__C4514_VT)) failedCast(r0, microcode_Home__C4514_VT); r0 = (s.arg0).fields["backgroundCaptured_"] = (false); s.tmp_0 = r0 = s.arg0; - r0 = (0 - globals.user_interface_base_Screen_HEIGHT___3440); + r0 = (0 - globals.user_interface_base_Screen_HEIGHT___3413); s.tmp_2 = r0; r0 = (s.tmp_2 >> 1); s.tmp_1 = r0; r0 = (s.tmp_0).fields["yOffset"] = (s.tmp_1); - s.tmp_3 = user_interface_base_CursorScene_constructor__P3830_mk(s); + s.tmp_3 = user_interface_base_CursorScene_constructor__P3803_mk(s); s.tmp_3.arg0 = s.arg0; s.tmp_3.arg1 = s.arg1; s.tmp_3.arg2 = undefined; - s.callLocIdx = 1499; s.pc = 1; return s.tmp_3; + s.callLocIdx = 1777; s.pc = 1; return s.tmp_3; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Home_constructor__P4360.info = {"start":452,"length":65,"line":10,"column":8,"endLine":12,"endColumn":9,"fileName":"home.ts","functionName":"inline","argumentNames":["this","app"]} +microcode_Home_constructor__P4515.info = {"start":530,"length":65,"line":12,"column":8,"endLine":14,"endColumn":9,"fileName":"home.ts","functionName":"inline","argumentNames":["this","app"]} -function microcode_Home_constructor__P4360_mk(s) { +function microcode_Home_constructor__P4515_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Home_constructor__P4360, depth: s.depth + 1, + parent: s, fn: microcode_Home_constructor__P4515, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -6954,8 +6762,7 @@ function microcode_Home_constructor__P4360_mk(s) { - -function user_interface_base_CursorScene_constructor__P3830(s) { +function user_interface_base_CursorScene_constructor__P3803(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -6972,19 +6779,19 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); r0 = (s.arg0).fields["backgroundCaptured_"] = (false); - s.tmp_0 = user_interface_base_Scene_constructor__P3690_mk(s); + s.tmp_0 = user_interface_base_Scene_constructor__P3663_mk(s); s.tmp_0.arg0 = s.arg0; s.tmp_0.arg1 = s.arg1; s.tmp_0.arg2 = "scene"; - s.callLocIdx = 814; s.pc = 3; return s.tmp_0; + s.callLocIdx = 805; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; - s.tmp_0 = user_interface_base_Scene_backgroundColor__P3689_mk(s); + s.tmp_0 = user_interface_base_Scene_backgroundColor__P3662_mk(s); s.tmp_0.arg0 = s.arg0; s.tmp_0.arg1 = 11; - s.callLocIdx = 815; s.pc = 4; return s.tmp_0; + s.callLocIdx = 806; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; r0 = pxsim_numops_toBoolDecr(s.arg2); @@ -6998,12 +6805,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_constructor__P3830.info = {"start":534,"length":218,"line":16,"column":4,"endLine":24,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":["this","app","navigator"]} +user_interface_base_CursorScene_constructor__P3803.info = {"start":534,"length":218,"line":16,"column":4,"endLine":24,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":["this","app","navigator"]} -function user_interface_base_CursorScene_constructor__P3830_mk(s) { +function user_interface_base_CursorScene_constructor__P3803_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_constructor__P3830, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_constructor__P3803, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -7014,8 +6821,7 @@ function user_interface_base_CursorScene_constructor__P3830_mk(s) { - -function user_interface_base_Scene_backgroundColor__P3689(s) { +function user_interface_base_Scene_backgroundColor__P3662(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7031,18 +6837,18 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); r0 = (s.arg0).fields["color_"] = (s.arg1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene_backgroundColor__P3689.info = {"start":883,"length":69,"line":25,"column":8,"endLine":27,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"backgroundColor","argumentNames":["this","v"]} +user_interface_base_Scene_backgroundColor__P3662.info = {"start":883,"length":69,"line":25,"column":8,"endLine":27,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"backgroundColor","argumentNames":["this","v"]} -function user_interface_base_Scene_backgroundColor__P3689_mk(s) { +function user_interface_base_Scene_backgroundColor__P3662_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_backgroundColor__P3689, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_backgroundColor__P3662, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, arg1: undefined, @@ -7051,8 +6857,7 @@ function user_interface_base_Scene_backgroundColor__P3689_mk(s) { - -function user_interface_base_Scene_backgroundColor__P3688(s) { +function user_interface_base_Scene_backgroundColor__P3661(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7067,18 +6872,18 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); r0 = s.arg0.fields["color_"]; return leaveAccessor(s, r0) default: oops() } } } -user_interface_base_Scene_backgroundColor__P3688.info = {"start":803,"length":71,"line":22,"column":8,"endLine":24,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"backgroundColor","argumentNames":["this"]} -user_interface_base_Scene_backgroundColor__P3688.isGetter = true; +user_interface_base_Scene_backgroundColor__P3661.info = {"start":803,"length":71,"line":22,"column":8,"endLine":24,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"backgroundColor","argumentNames":["this"]} +user_interface_base_Scene_backgroundColor__P3661.isGetter = true; -function user_interface_base_Scene_backgroundColor__P3688_mk(s) { +function user_interface_base_Scene_backgroundColor__P3661_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_backgroundColor__P3688, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_backgroundColor__P3661, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, } } @@ -7086,8 +6891,7 @@ function user_interface_base_Scene_backgroundColor__P3688_mk(s) { - -function user_interface_base_Scene_constructor__P3690(s) { +function user_interface_base_Scene_constructor__P3663(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7104,15 +6908,15 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); r0 = (s.arg0).fields["app"] = (s.arg1); r0 = (s.arg0).fields["name"] = (s.arg2); r0 = (s.arg0).fields["backgroundCaptured_"] = (false); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 582; s.pc = 1; return s.tmp_1; + s.callLocIdx = 574; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); @@ -7121,12 +6925,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Scene_constructor__P3690.info = {"start":962,"length":139,"line":29,"column":8,"endLine":32,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":["this","app","name"]} +user_interface_base_Scene_constructor__P3663.info = {"start":962,"length":139,"line":29,"column":8,"endLine":32,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":["this","app","name"]} -function user_interface_base_Scene_constructor__P3690_mk(s) { +function user_interface_base_Scene_constructor__P3663_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_constructor__P3690, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_constructor__P3663, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -7138,8 +6942,7 @@ function user_interface_base_Scene_constructor__P3690_mk(s) { - -function user_interface_base_Affine_constructor__P3358(s) { +function user_interface_base_Affine_constructor__P3331(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7154,14 +6957,14 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Affine__C3351_VT)) failedCast(r0, user_interface_base_Affine__C3351_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); + if (!checkSubtype(r0, user_interface_base_Affine__C3324_VT)) failedCast(r0, user_interface_base_Affine__C3324_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = 0; s.tmp_1.arg2 = 0; - s.callLocIdx = 307; s.pc = 1; return s.tmp_1; + s.callLocIdx = 300; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; r0 = (s.arg0).fields["localPos_"] = (s.tmp_0); @@ -7169,12 +6972,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Affine_constructor__P3358.info = {"start":1324,"length":65,"line":43,"column":8,"endLine":45,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"inline","argumentNames":["this"]} +user_interface_base_Affine_constructor__P3331.info = {"start":1324,"length":65,"line":43,"column":8,"endLine":45,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"inline","argumentNames":["this"]} -function user_interface_base_Affine_constructor__P3358_mk(s) { +function user_interface_base_Affine_constructor__P3331_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Affine_constructor__P3358, depth: s.depth + 1, + parent: s, fn: user_interface_base_Affine_constructor__P3331, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -7184,8 +6987,7 @@ function user_interface_base_Affine_constructor__P3358_mk(s) { - -function user_interface_base_SceneManager_constructor__P3703(s) { +function user_interface_base_SceneManager_constructor__P3676(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7200,7 +7002,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_SceneManager__C3701_VT)) failedCast(r0, user_interface_base_SceneManager__C3701_VT); + if (!checkSubtype(r0, user_interface_base_SceneManager__C3674_VT)) failedCast(r0, user_interface_base_SceneManager__C3674_VT); s.tmp_0 = r0 = s.arg0; r0 = pxsim_Array__mk(); s.tmp_1 = r0; @@ -7209,12 +7011,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_SceneManager_constructor__P3703.info = {"start":4045,"length":54,"line":123,"column":8,"endLine":125,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":["this"]} +user_interface_base_SceneManager_constructor__P3676.info = {"start":4045,"length":54,"line":123,"column":8,"endLine":125,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"inline","argumentNames":["this"]} -function user_interface_base_SceneManager_constructor__P3703_mk(s) { +function user_interface_base_SceneManager_constructor__P3676_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_SceneManager_constructor__P3703, depth: s.depth + 1, + parent: s, fn: user_interface_base_SceneManager_constructor__P3676, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -7224,8 +7026,7 @@ function user_interface_base_SceneManager_constructor__P3703_mk(s) { - -function controller_setRepeatDefault__P3262(s) { +function controller_setRepeatDefault__P3235(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7240,18 +7041,18 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - globals.defaultRepeatDelay___5067 = (s.arg0); - globals.defaultRepeatInterval___5069 = (s.arg1); + globals.defaultRepeatDelay___5056 = (s.arg0); + globals.defaultRepeatInterval___5058 = (s.arg1); r0 = undefined; return leave(s, r0) default: oops() } } } -controller_setRepeatDefault__P3262.info = {"start":9452,"length":151,"line":280,"column":4,"endLine":283,"endColumn":5,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"setRepeatDefault","argumentNames":["delay","interval"]} +controller_setRepeatDefault__P3235.info = {"start":9452,"length":151,"line":280,"column":4,"endLine":283,"endColumn":5,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"setRepeatDefault","argumentNames":["delay","interval"]} -function controller_setRepeatDefault__P3262_mk(s) { +function controller_setRepeatDefault__P3235_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_setRepeatDefault__P3262, depth: s.depth + 1, + parent: s, fn: controller_setRepeatDefault__P3235, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, arg1: undefined, @@ -7260,8 +7061,7 @@ function controller_setRepeatDefault__P3262_mk(s) { - -function microcode_runProgram__P4297(s) { +function microcode_runProgram__P4449(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7275,64 +7075,45 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(globals.theInterpreter___5755); + r0 = pxsim_numops_toBoolDecr(globals.theInterpreter___5944); if (!r0) { step = 1; continue; } - s.tmp_0 = microcode_Interpreter_stop__P4613_mk(s); - s.tmp_0.arg0 = globals.theInterpreter___5755; - s.callLocIdx = 1128; s.pc = 5; return s.tmp_0; - case 5: + s.tmp_0 = microcode_Interpreter_stop__P4764_mk(s); + s.tmp_0.arg0 = globals.theInterpreter___5944; + s.callLocIdx = 1404; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; case 1: case 2: - r0 = pxsim_numops_toBoolDecr(globals.runtimeHost___5753); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_MicrobitHost__C4592_VT); - s.tmp_2 = r0; - s.tmp_3 = microcode_MicrobitHost_constructor__P4593_mk(s); - s.tmp_3.arg0 = s.tmp_2; - s.callLocIdx = 1129; s.pc = 6; return s.tmp_3; - case 6: - r0 = s.retval; - globals.runtimeHost___5753 = (s.tmp_2); - case 3: - case 4: - r0 = pxsim_pxtcore_mkClassInstance(microcode_Interpreter__C4605_VT); + r0 = pxsim_pxtcore_mkClassInstance(microcode_Interpreter__C4754_VT); s.tmp_0 = r0; - s.tmp_1 = microcode_Interpreter_constructor__P4608_mk(s); + s.tmp_1 = microcode_Interpreter_constructor__P4759_mk(s); s.tmp_1.arg0 = s.tmp_0; s.tmp_1.arg1 = s.arg0; - s.tmp_1.arg2 = globals.runtimeHost___5753; - s.callLocIdx = 1130; s.pc = 7; return s.tmp_1; - case 7: + s.tmp_1.arg2 = globals.runtimeHost___4743; + s.callLocIdx = 1405; s.pc = 4; return s.tmp_1; + case 4: r0 = s.retval; - globals.theInterpreter___5755 = (s.tmp_0); + globals.theInterpreter___5944 = (s.tmp_0); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_runProgram__P4297.info = {"start":1906,"length":222,"line":68,"column":4,"endLine":72,"endColumn":5,"fileName":"app.ts","functionName":"runProgram","argumentNames":["prog"]} +microcode_runProgram__P4449.info = {"start":2178,"length":163,"line":76,"column":4,"endLine":79,"endColumn":5,"fileName":"app.ts","functionName":"runProgram","argumentNames":["prog"]} -function microcode_runProgram__P4297_mk(s) { +function microcode_runProgram__P4449_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_runProgram__P4297, depth: s.depth + 1, + parent: s, fn: microcode_runProgram__P4449, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, } } - -function microcode_Interpreter_constructor__P4608(s) { +function microcode_Interpreter_constructor__P4759(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7342,12 +7123,12 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.v___7442 = undefined; - s.unnamed60___U1 = undefined; - s.unnamed61___U2 = undefined; - s.v___7450 = undefined; - s.unnamed62___U4 = undefined; - s.unnamed63___U5 = undefined; + s.v___7482 = undefined; + s.unnamed66___U1 = undefined; + s.unnamed67___U2 = undefined; + s.tid___7491 = undefined; + s.unnamed68___U4 = undefined; + s.unnamed69___U5 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); @@ -7355,7 +7136,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); r0 = (s.arg0).fields["program"] = (s.arg1); r0 = (s.arg0).fields["host"] = (s.arg2); r0 = (s.arg0).fields["hasErrors"] = (false); @@ -7366,36 +7147,38 @@ switch (step) { s.tmp_1 = r0; r0 = (s.tmp_0).fields["ruleClosures"] = (s.tmp_1); s.tmp_2 = r0 = s.arg0; - r0 = pxsim_Array__mk(); + r0 = pxsim_pxtrt.mkMap(); s.tmp_3 = r0; - r0 = (s.tmp_2).fields["sensors"] = (s.tmp_3); + r0 = (s.tmp_2).fields["state"] = (s.tmp_3); s.tmp_4 = r0 = s.arg0; r0 = pxsim_pxtrt.mkMap(); s.tmp_5 = r0; - r0 = (s.tmp_4).fields["state"] = (s.tmp_5); + r0 = (s.tmp_4).fields["newState"] = (s.tmp_5); s.tmp_6 = r0 = s.arg0; r0 = pxsim_pxtrt.mkMap(); s.tmp_7 = r0; - r0 = (s.tmp_6).fields["newState"] = (s.tmp_7); + r0 = (s.tmp_6).fields["sensors"] = (s.tmp_7); + r0 = (s.arg0).fields["eventQueueActive"] = (false); s.tmp_8 = r0 = s.arg0; r0 = pxsim_Array__mk(); s.tmp_9 = r0; r0 = (s.tmp_8).fields["eventQueue"] = (s.tmp_9); + r0 = (s.arg0).fields["startSensorsActive"] = (false); s.tmp_10 = if_emitClearScreen_1_mk(s); r0 = s.arg0.fields["host"]; s.tmp_10.arg0 = r0; if (!s.tmp_10.arg0.vtable.iface) { setupLambda(s.tmp_10, pxsim_pxtrt.mapGetByString(s.tmp_10.arg0, "emitClearScreen"), 1); - s.callLocIdx = 1738; s.pc = 5; return s.tmp_10; + s.callLocIdx = 2060; s.pc = 5; return s.tmp_10; } else { s.tmp_10.fn = s.tmp_10.arg0.vtable.iface["emitClearScreen"]; - if (s.tmp_10.fn == null) { setupLambda(s.tmp_10, s.tmp_10.arg0.fields["emitClearScreen"], 1); s.callLocIdx = 1738; s.pc = 5; return s.tmp_10; } - else if (s.tmp_10.fn.isGetter) { s.tmp_10.stage2Call = true; s.callLocIdx = 1738; s.pc = 5; return s.tmp_10;; } - else { s.callLocIdx = 1738; s.pc = 5; return s.tmp_10; } + if (s.tmp_10.fn == null) { setupLambda(s.tmp_10, s.tmp_10.arg0.fields["emitClearScreen"], 1); s.callLocIdx = 2060; s.pc = 5; return s.tmp_10; } + else if (s.tmp_10.fn.isGetter) { s.tmp_10.stage2Call = true; s.callLocIdx = 2060; s.pc = 5; return s.tmp_10;; } + else { s.callLocIdx = 2060; s.pc = 5; return s.tmp_10; } } case 5: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_inline__P7435); + r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_inline__P7474); s.tmp_0 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); s.tmp_1 = if_registerOnSensorEvent_2_mk(s); @@ -7404,81 +7187,84 @@ switch (step) { s.tmp_1.arg1 = s.tmp_0; if (!s.tmp_1.arg0.vtable.iface) { setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "registerOnSensorEvent"), 2); - s.callLocIdx = 1740; s.pc = 6; return s.tmp_1; + s.callLocIdx = 2062; s.pc = 6; return s.tmp_1; } else { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["registerOnSensorEvent"]; - if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["registerOnSensorEvent"], 2); s.callLocIdx = 1740; s.pc = 6; return s.tmp_1; } - else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 1740; s.pc = 6; return s.tmp_1;; } - else { s.callLocIdx = 1740; s.pc = 6; return s.tmp_1; } + if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["registerOnSensorEvent"], 2); s.callLocIdx = 2062; s.pc = 6; return s.tmp_1; } + else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 2062; s.pc = 6; return s.tmp_1;; } + else { s.callLocIdx = 2062; s.pc = 6; return s.tmp_1; } } case 6: r0 = s.retval; - s.v___7442 = (undefined); - s.unnamed60___U1 = (globals.vars___5901); - s.unnamed61___U2 = (0); + s.v___7482 = (undefined); + r0 = pxsim_pxtrt.keysOf(globals.vars2tids___6117); + s.unnamed66___U1 = (r0); + s.unnamed67___U2 = (0); case 1: - s.tmp_0 = r0 = s.unnamed61___U2; - r0 = pxsim_Array__length(s.unnamed60___U1); + s.tmp_0 = r0 = s.unnamed67___U2; + r0 = pxsim_Array__length(s.unnamed66___U1); s.tmp_1 = r0; r0 = (s.tmp_0 < s.tmp_1); if (!r0) { step = 2; continue; } - r0 = pxsim_Array__getAt(s.unnamed60___U1, s.unnamed61___U2); - s.v___7442 = (r0); + r0 = pxsim_Array__getAt(s.unnamed66___U1, s.unnamed67___U2); + s.v___7482 = (r0); r0 = s.arg0.fields["state"]; s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_2, s.v___7442, 0); - r0 = (s.unnamed61___U2 + 1); - s.unnamed61___U2 = (r0); + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_2, s.v___7482, 0); + r0 = (s.unnamed67___U2 + 1); + s.unnamed67___U2 = (r0); { step = 1; continue; } case 2: - s.unnamed60___U1 = (undefined); - s.v___7450 = (undefined); - r0 = pxsim_pxtrt.keysOf(globals.sensorInfo___5895); - s.unnamed62___U4 = (r0); - s.unnamed63___U5 = (0); + s.unnamed66___U1 = (undefined); + s.tid___7491 = (undefined); + s.unnamed68___U4 = (globals.sensorTids___6136); + s.unnamed69___U5 = (0); case 3: - s.tmp_0 = r0 = s.unnamed63___U5; - r0 = pxsim_Array__length(s.unnamed62___U4); + s.tmp_0 = r0 = s.unnamed69___U5; + r0 = pxsim_Array__length(s.unnamed68___U4); s.tmp_1 = r0; r0 = (s.tmp_0 < s.tmp_1); if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.unnamed62___U4, s.unnamed63___U5); - s.v___7450 = (r0); - r0 = s.arg0.fields["state"]; + r0 = pxsim_Array__getAt(s.unnamed68___U4, s.unnamed69___U5); + s.tid___7491 = (r0); + r0 = s.arg0.fields["sensors"]; s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_2, s.v___7450, 0); - r0 = (s.unnamed63___U5 + 1); - s.unnamed63___U5 = (r0); + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_2, s.tid___7491, undefined); + r0 = (s.unnamed69___U5 + 1); + s.unnamed69___U5 = (r0); { step = 3; continue; } case 4: - s.unnamed62___U4 = (undefined); - r0 = (s.arg0).fields["running"] = (true); - s.tmp_0 = microcode_Interpreter_setupEventQueue__P5917_mk(s); + s.unnamed68___U4 = (undefined); + r0 = s.arg0.fields["sensors"]; + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_0, 17, 0); + s.tmp_0 = microcode_Interpreter_startSensors__P6146_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1741; s.pc = 7; return s.tmp_0; + s.callLocIdx = 2063; s.pc = 7; return s.tmp_0; case 7: r0 = s.retval; - s.tmp_0 = microcode_Interpreter_switchPage__P5914_mk(s); + r0 = (s.arg0).fields["running"] = (true); + s.tmp_0 = microcode_Interpreter_setupEventQueue__P6144_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 0; - s.callLocIdx = 1742; s.pc = 8; return s.tmp_0; + s.callLocIdx = 2064; s.pc = 8; return s.tmp_0; case 8: r0 = s.retval; - s.tmp_0 = microcode_Interpreter_startSensors__P5919_mk(s); + s.tmp_0 = microcode_Interpreter_switchPage__P6141_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1743; s.pc = 9; return s.tmp_0; + s.tmp_0.arg1 = 0; + s.callLocIdx = 2065; s.pc = 9; return s.tmp_0; case 9: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_constructor__P4608.info = {"start":15755,"length":496,"line":451,"column":8,"endLine":461,"endColumn":9,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["this","program","host"]} +microcode_Interpreter_constructor__P4759.info = {"start":15986,"length":638,"line":475,"column":8,"endLine":490,"endColumn":9,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["this","program","host"]} -function microcode_Interpreter_constructor__P4608_mk(s) { +function microcode_Interpreter_constructor__P4759_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_constructor__P4608, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_constructor__P4759, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -7491,12 +7277,12 @@ function microcode_Interpreter_constructor__P4608_mk(s) { tmp_8: undefined, tmp_9: undefined, tmp_10: undefined, - v___7442: undefined, - unnamed60___U1: undefined, - unnamed61___U2: undefined, - v___7450: undefined, - unnamed62___U4: undefined, - unnamed63___U5: undefined, + v___7482: undefined, + unnamed66___U1: undefined, + unnamed67___U2: undefined, + tid___7491: undefined, + unnamed68___U4: undefined, + unnamed69___U5: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -7505,8 +7291,7 @@ function microcode_Interpreter_constructor__P4608_mk(s) { - -function microcode_Interpreter_inline__P7435(s) { +function microcode_Interpreter_inline__P7474(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7521,23 +7306,24 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = microcode_Interpreter_onSensorEvent__P4612_mk(s); + s.tmp_0 = microcode_Interpreter_onSensorEvent__P4763_mk(s); s.tmp_0.arg0 = s.caps[0]; s.tmp_0.arg1 = s.arg0; s.tmp_0.arg2 = s.arg1; - s.callLocIdx = 1739; s.pc = 1; return s.tmp_0; + s.tmp_0.arg3 = s.arg1; + s.callLocIdx = 2061; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_inline__P7435.info = {"start":15910,"length":34,"line":453,"column":44,"endLine":453,"endColumn":78,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["t","f"]} +microcode_Interpreter_inline__P7474.info = {"start":16141,"length":53,"line":477,"column":44,"endLine":478,"endColumn":43,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["t","f"]} -function microcode_Interpreter_inline__P7435_mk(s) { +function microcode_Interpreter_inline__P7474_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_inline__P7435, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_inline__P7474, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -7547,8 +7333,7 @@ function microcode_Interpreter_inline__P7435_mk(s) { - -function microcode_Interpreter_startSensors__P5919(s) { +function microcode_Interpreter_switchPage__P6141(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7560,82 +7345,84 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = s.arg0.fields["sensors"]; - s.tmp_0 = r0; - s.tmp_2 = Sensor_getFromName__P4619_mk(s); - s.tmp_2.arg0 = "Light"; - s.callLocIdx = 1807; s.pc = 1; return s.tmp_2; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + s.tmp_0 = microcode_Interpreter_stopAllRules__P6140_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2068; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); - r0 = s.arg0.fields["sensors"]; + r0 = (s.arg0).fields["currentPage"] = (s.arg1); + r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_switchPage_inline__P7522); s.tmp_0 = r0; - s.tmp_2 = Sensor_getFromName__P4619_mk(s); - s.tmp_2.arg0 = "Temperature"; - s.callLocIdx = 1808; s.pc = 2; return s.tmp_2; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["program"]; + r0 = r0.fields["pages"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["currentPage"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + r0 = r0.fields["rules"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2070; s.pc = 2; return s.tmp_1; case 2: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); - r0 = s.arg0.fields["sensors"]; + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - s.tmp_2 = Sensor_getFromName__P4619_mk(s); - s.tmp_2.arg0 = "Magnet"; - s.callLocIdx = 1809; s.pc = 3; return s.tmp_2; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 3); + s.tmp_1 = microcode_Interpreter_addEvent__P4762_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2071; s.pc = 3; return s.tmp_1; case 3: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); - r0 = s.arg0.fields["sensors"]; + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - s.tmp_2 = Sensor_getFromName__P4619_mk(s); - s.tmp_2.arg0 = "Microphone"; - s.callLocIdx = 1810; s.pc = 4; return s.tmp_2; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 0); + r0 = pxsim_pxtrt.keysOf(globals.vars2tids___6117); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "updatedVars", s.tmp_1); + s.tmp_2 = microcode_Interpreter_addEvent__P4762_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.tmp_0; + s.callLocIdx = 2072; s.pc = 4; return s.tmp_2; case 4: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); - r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_startSensors_inline__P7487); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["sensors"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1813; s.pc = 5; return s.tmp_1; + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleClosures"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = microcode_Interpreter_switchPage_inline__P7545; + s.callLocIdx = 2074; s.pc = 5; return s.tmp_0; case 5: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_startSensors_inline__P7498); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim.control.inBackground(s.tmp_0); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_startSensors__P5919.info = {"start":24449,"length":1593,"line":664,"column":8,"endLine":698,"endColumn":9,"fileName":"interpreter.ts","functionName":"startSensors","argumentNames":["this"]} +microcode_Interpreter_switchPage__P6141.info = {"start":16766,"length":772,"line":497,"column":8,"endLine":514,"endColumn":9,"fileName":"interpreter.ts","functionName":"switchPage","argumentNames":["this","page"]} -function microcode_Interpreter_startSensors__P5919_mk(s) { +function microcode_Interpreter_switchPage__P6141_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_startSensors__P5919, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_switchPage__P6141, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Interpreter_startSensors_inline__P7487(s) { +function microcode_Interpreter_switchPage_inline__P7522(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7647,43 +7434,44 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.caps[0].fields["state"]; + r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleClosure__C6095_VT); s.tmp_0 = r0; - r0 = s.arg0.fields["name"]; - s.tmp_1 = r0; - s.tmp_3 = microcode_Interpreter_getSensorValue__P5918_mk(s); - s.tmp_3.arg0 = s.caps[0]; - s.tmp_3.arg1 = s.arg0; - s.callLocIdx = 1812; s.pc = 1; return s.tmp_3; + s.tmp_1 = microcode_RuleClosure_constructor__P6115_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.arg1; + s.tmp_1.arg2 = s.arg0; + s.tmp_1.arg3 = s.caps[0]; + s.callLocIdx = 2069; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; + r0 = s.caps[0].fields["ruleClosures"]; s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_0, s.tmp_1, s.tmp_2); + r0 = pxsim_Array__push(s.tmp_2, s.tmp_0); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_startSensors_inline__P7487.info = {"start":24789,"length":85,"line":670,"column":33,"endLine":672,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["s"]} +microcode_Interpreter_switchPage_inline__P7522.info = {"start":16972,"length":101,"line":501,"column":63,"endLine":503,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["r","index"]} -function microcode_Interpreter_startSensors_inline__P7487_mk(s) { +function microcode_Interpreter_switchPage_inline__P7522_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_startSensors_inline__P7487, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_switchPage_inline__P7522, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Interpreter_startSensors_inline__P7498(s) { +function microcode_Interpreter_switchPage_inline__P7545(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7693,50 +7481,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = microcode_RuleClosure_start__P6097_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = true; + s.callLocIdx = 2073; s.pc = 1; return s.tmp_0; case 1: - r0 = s.caps[0].fields["running"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_startSensors_inline__P7505); - s.tmp_1 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.caps[0]); - s.tmp_2 = helpers_arrayForEach__P2138_mk(s); - r0 = s.caps[0].fields["sensors"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_1; - s.callLocIdx = 1823; s.pc = 3; return s.tmp_2; - case 3: - r0 = s.retval; - setupResume(s, 4); - pxsim.basic.pause(300); - checkResumeConsumed(); - return; - case 4: r0 = s.retval; - { step = 1; continue; } - case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_startSensors_inline__P7498.info = {"start":24910,"length":1121,"line":674,"column":33,"endLine":697,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":[]} +microcode_Interpreter_switchPage_inline__P7545.info = {"start":17507,"length":20,"line":513,"column":38,"endLine":513,"endColumn":58,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function microcode_Interpreter_startSensors_inline__P7498_mk(s) { +function microcode_Interpreter_switchPage_inline__P7545_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_startSensors_inline__P7498, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_switchPage_inline__P7545, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, + arg0: undefined, } } - -function microcode_Interpreter_startSensors_inline__P7505(s) { +function microcode_RuleClosure_start__P6097(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7746,136 +7519,88 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.oldReading___7507 = undefined; - s.newReading___7514 = undefined; - s.normalized___7518 = undefined; - s.delta___7524 = undefined; + s.time___7565 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.caps[0].fields["state"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["name"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.tmp_1); - s.oldReading___7507 = (r0); - s.tmp_0 = microcode_Interpreter_getSensorValue__P5918_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 1815; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - s.newReading___7514 = (r0); - s.tmp_0 = if_normalized_1_mk(s); - s.tmp_1 = r0 = globals.sensorInfo___5895; - r0 = s.arg0.fields["name"]; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["interp"]; + r0 = r0.fields["running"]; s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.tmp_2); - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "normalized"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["normalized"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["normalized"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1817; s.pc = 12; return s.tmp_0; } - } - case 12: - r0 = s.retval; - s.normalized___7518 = (r0); - s.tmp_0 = Math_abs__P2157_mk(s); - r0 = (s.newReading___7514 - s.oldReading___7507); - s.tmp_0.arg0 = r0; - s.callLocIdx = 1818; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - s.delta___7524 = (r0); - s.tmp_0 = r0 = s.normalized___7518; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } + if (!r0) { step = 1; continue; } r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = (s.newReading___7514 != s.oldReading___7507); + r0 = s.arg0.fields["actionRunning"]; case 2: // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); if (!r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 6; continue; } + r0 = s.tmp_3; + { step = 4; continue; } case 3: - r0 = pxsim_numops_toBoolDecr(s.normalized___7518); - s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 4; continue; } - r0 = s.tmp_2; - { step = 5; continue; } + r0 = s.arg0.fields["backgroundActive"]; case 4: - r0 = (s.delta___7524 >= 1); - case 5: // jmp value (already in r0) s.tmp_4 = r0; - r0 = s.tmp_4; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 5; continue; } + { step = 11; continue; } + case 5: case 6: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 9; continue; } - r0 = s.caps[0].fields["state"]; - s.tmp_6 = r0; - r0 = s.arg0.fields["name"]; - s.tmp_7 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_6, s.tmp_7, s.newReading___7514); - r0 = (s.newReading___7514 > s.oldReading___7507); + s.tmp_5 = microcode_RuleClosure_reset__P6098_mk(s); + s.tmp_5.arg0 = s.arg0; + s.callLocIdx = 2002; s.pc = 12; return s.tmp_5; + case 12: + r0 = s.retval; + s.tmp_0 = microcode_RuleClosure_getWakeTime__P6114_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2003; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + s.time___7565 = (r0); + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 7; continue; } - r0 = 0; + r0 = s.tmp_0; { step = 8; continue; } case 7: - r0 = 1; + r0 = (s.time___7565 > 0); case 8: // jmp value (already in r0) - s.tmp_1 = r0; - s.tmp_2 = microcode_Interpreter_onSensorEvent__P4612_mk(s); - s.tmp_2.arg0 = s.caps[0]; - s.tmp_3 = if_tid_1_mk(s); - s.tmp_4 = r0 = globals.sensorInfo___5895; - r0 = s.arg0.fields["name"]; - s.tmp_5 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_4, s.tmp_5); - s.tmp_3.arg0 = r0; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "tid"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["tid"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["tid"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1821; s.pc = 15; return s.tmp_3; } - } - case 15: - r0 = s.retval; - s.tmp_2.arg1 = r0; - s.tmp_2.arg2 = s.tmp_1; - s.callLocIdx = 1822; s.pc = 14; return s.tmp_2; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 9; continue; } + s.tmp_3 = microcode_RuleClosure_timerOrSequenceRule__P6104_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 2004; s.pc = 14; return s.tmp_3; case 14: r0 = s.retval; case 9: case 10: + case 11: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_startSensors_inline__P7505.info = {"start":25059,"length":902,"line":677,"column":41,"endLine":694,"endColumn":21,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["s"]} +microcode_RuleClosure_start__P6097.info = {"start":2291,"length":341,"line":76,"column":8,"endLine":86,"endColumn":9,"fileName":"interpreter.ts","functionName":"start","argumentNames":["this","timer"]} -function microcode_Interpreter_startSensors_inline__P7505_mk(s) { +function microcode_RuleClosure_start__P6097_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_startSensors_inline__P7505, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_start__P6097, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -7883,20 +7608,15 @@ function microcode_Interpreter_startSensors_inline__P7505_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - oldReading___7507: undefined, - newReading___7514: undefined, - normalized___7518: undefined, - delta___7524: undefined, + time___7565: undefined, arg0: undefined, + arg1: undefined, } } - -function Math_abs__P2157(s) { +function microcode_RuleClosure_timerOrSequenceRule__P6104(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7910,38 +7630,84 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (s.arg0 < 0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["backgroundActive"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = (0 - s.arg0); - { step = 2; continue; } + s.tmp_1 = microcode_Interpreter_error__P4765_mk(s); + r0 = s.arg0.fields["interp"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_3 = r0; + if ((s.tmp_3) && (s.tmp_3).vtable) { + setupResume(s, 9); + pxsim_String__stringConv(s.tmp_3); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_3) + ""; } + case 9: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_String__concat("trying to spawn another background fiber for ", s.tmp_2); + s.tmp_1.arg1 = r0; + s.callLocIdx = 2022; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; case 1: - r0 = s.arg0; case 2: - // jmp value (already in r0) + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + { step = 7; continue; } + case 3: + case 4: + r0 = s.arg0.fields["actionRunning"]; + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 5; continue; } + { step = 7; continue; } + case 5: + case 6: + r0 = (s.arg0).fields["actionRunning"] = (true); + r0 = pxsim_pxtcore_mkAction(1, microcode_RuleClosure_timerOrSequenceRule_inline__P7597); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = control_runInBackground__P2442_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 2032; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + case 7: + r0 = undefined; return leave(s, r0) default: oops() } } } -Math_abs__P2157.info = {"start":16120,"length":77,"line":539,"column":4,"endLine":541,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"abs","argumentNames":["x"]} +microcode_RuleClosure_timerOrSequenceRule__P6104.info = {"start":5189,"length":1738,"line":161,"column":8,"endLine":205,"endColumn":9,"fileName":"interpreter.ts","functionName":"timerOrSequenceRule","argumentNames":["this"]} -function Math_abs__P2157_mk(s) { +function microcode_RuleClosure_timerOrSequenceRule__P6104_mk(s) { checkStack(s.depth); return { - parent: s, fn: Math_abs__P2157, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_timerOrSequenceRule__P6104, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function microcode_Interpreter_getSensorValue__P5918(s) { +function microcode_RuleClosure_timerOrSequenceRule_inline__P7597(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -7951,66 +7717,162 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.gen1to5___7569 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - s.gen1to5___7569 = (gen1to5_inline__P7570); - s.tmp_1 = if_normalized_1_mk(s); - s.tmp_2 = r0 = globals.sensorInfo___5895; - r0 = s.arg1.fields["name"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_2, s.tmp_3); - s.tmp_1.arg0 = r0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "normalized"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["normalized"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["normalized"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1803; s.pc = 3; return s.tmp_1; } - } - case 3: + r0 = (s.caps[0]).fields["backgroundActive"] = (true); + case 1: + s.tmp_1 = microcode_RuleClosure_ok__P6103_mk(s); + s.tmp_1.arg0 = s.caps[0]; + s.callLocIdx = 2023; s.pc = 15; return s.tmp_1; + case 15: r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_4 = lambda_2_mk(s); - s.tmp_4.argL = s.gen1to5___7569; - s.tmp_5 = Sensor_getNormalisedReading__P4623_mk(s); - s.tmp_5.arg0 = s.arg1; - s.callLocIdx = 1804; s.pc = 5; return s.tmp_5; - case 5: + if (!r0) { step = 12; continue; } + r0 = s.caps[0].fields["wakeTime"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 > 0); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 6; continue; } + r0 = s.caps[0].fields["wakeTime"]; + s.tmp_4 = r0; + setupResume(s, 16); + pxsim.basic.pause(s.tmp_4); + checkResumeConsumed(); + return; + case 16: r0 = s.retval; - s.tmp_4.arg0 = r0; - setupLambda(s.tmp_4, s.tmp_4.argL); - s.callLocIdx = 1805; s.pc = 4; return s.tmp_4; + r0 = (s.caps[0]).fields["wakeTime"] = (0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 4); + r0 = s.caps[0].fields["index"]; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ruleIndex", s.tmp_1); + s.tmp_2 = microcode_Interpreter_addEvent__P4762_mk(s); + r0 = s.caps[0].fields["interp"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + s.callLocIdx = 2024; s.pc = 17; return s.tmp_2; + case 17: + r0 = s.retval; + r0 = (s.caps[0]).fields["timerGoAhead"] = (false); + case 2: + s.tmp_1 = microcode_RuleClosure_ok__P6103_mk(s); + s.tmp_1.arg0 = s.caps[0]; + s.callLocIdx = 2025; s.pc = 18; return s.tmp_1; + case 18: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 3; continue; } + r0 = s.tmp_0; + { step = 4; continue; } + case 3: + r0 = s.caps[0].fields["timerGoAhead"]; + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 5; continue; } + setupResume(s, 19); + pxsim.basic.pause(1); + checkResumeConsumed(); + return; + case 19: r0 = s.retval; { step = 2; continue; } - case 1: - s.tmp_6 = Sensor_getReading__P4622_mk(s); - s.tmp_6.arg0 = s.arg1; - s.callLocIdx = 1806; s.pc = 6; return s.tmp_6; + case 5: case 6: + case 7: + s.tmp_3 = microcode_RuleClosure_ok__P6103_mk(s); + s.tmp_3.arg0 = s.caps[0]; + s.callLocIdx = 2026; s.pc = 20; return s.tmp_3; + case 20: r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = s.tmp_7; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + { step = 12; continue; } + case 8: + case 9: + s.tmp_4 = microcode_RuleClosure_runAction__P6112_mk(s); + s.tmp_4.arg0 = s.caps[0]; + s.callLocIdx = 2027; s.pc = 21; return s.tmp_4; + case 21: + r0 = s.retval; + s.tmp_3 = microcode_RuleClosure_ok__P6103_mk(s); + s.tmp_3.arg0 = s.caps[0]; + s.callLocIdx = 2028; s.pc = 22; return s.tmp_3; + case 22: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + { step = 12; continue; } + case 10: + case 11: + s.tmp_4 = microcode_RuleClosure_checkForLoopFinish__P6106_mk(s); + s.tmp_4.arg0 = s.caps[0]; + s.callLocIdx = 2029; s.pc = 23; return s.tmp_4; + case 23: + r0 = s.retval; + setupResume(s, 24); + pxsim.basic.pause(5); + checkResumeConsumed(); + return; + case 24: + r0 = s.retval; + { step = 1; continue; } + case 12: + r0 = (s.caps[0]).fields["backgroundActive"] = (false); + s.tmp_2 = microcode_RuleDefn_sensor__P4202_mk(s); + r0 = s.caps[0].fields["rule"]; + s.tmp_2.arg0 = r0; + s.callLocIdx = 2030; s.pc = 25; return s.tmp_2; + case 25: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 == 14); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + r0 = pxsim_pxtrt.mkMap(); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "kind", 5); + r0 = s.caps[0].fields["index"]; + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "ruleIndex", s.tmp_4); + s.tmp_5 = microcode_Interpreter_addEvent__P4762_mk(s); + r0 = s.caps[0].fields["interp"]; + s.tmp_5.arg0 = r0; + s.tmp_5.arg1 = s.tmp_3; + s.callLocIdx = 2031; s.pc = 26; return s.tmp_5; + case 26: + r0 = s.retval; + case 13: + case 14: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_getSensorValue__P5918.info = {"start":24170,"length":269,"line":657,"column":8,"endLine":662,"endColumn":9,"fileName":"interpreter.ts","functionName":"getSensorValue","argumentNames":["this","sensor"]} +microcode_RuleClosure_timerOrSequenceRule_inline__P7597.info = {"start":5667,"length":1249,"line":172,"column":36,"endLine":204,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":[]} -function microcode_Interpreter_getSensorValue__P5918_mk(s) { +function microcode_RuleClosure_timerOrSequenceRule_inline__P7597_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_getSensorValue__P5918, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_timerOrSequenceRule_inline__P7597, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -8018,18 +7880,12 @@ function microcode_Interpreter_getSensorValue__P5918_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - gen1to5___7569: undefined, - arg0: undefined, - arg1: undefined, } } - -function gen1to5_inline__P7570(s) { +function microcode_RuleDefn_sensor__P4202(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8043,31 +7899,46 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (4 * s.arg0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + r0 = s.arg0.fields["sensors"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); s.tmp_1 = r0; - r0 = pxsim.Math_.round(s.tmp_1); + r0 = (s.tmp_1 == 0); s.tmp_0 = r0; - r0 = (s.tmp_0 + 1); - return leave(s, r0) + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = 10; + { step = 3; continue; } + case 1: + case 2: + r0 = s.arg0.fields["sensors"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, 0); + case 3: + return leaveAccessor(s, r0) default: oops() } } } -gen1to5_inline__P7570.info = {"start":24239,"length":36,"line":658,"column":28,"endLine":658,"endColumn":64,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["v"]} +microcode_RuleDefn_sensor__P4202.info = {"start":2314,"length":134,"line":82,"column":8,"endLine":85,"endColumn":9,"fileName":"language.ts","functionName":"sensor","argumentNames":["this"]} +microcode_RuleDefn_sensor__P4202.isGetter = true; -function gen1to5_inline__P7570_mk(s) { +function microcode_RuleDefn_sensor__P4202_mk(s) { checkStack(s.depth); return { - parent: s, fn: gen1to5_inline__P7570, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_sensor__P4202, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function Sensor_getReading__P4622(s) { +function microcode_RuleClosure_checkForLoopFinish__P6106(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8077,44 +7948,332 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.actionKind___7672 = undefined; + s.m___7703 = undefined; + s.loopBound___7725 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, Sensor__C4617_VT)) failedCast(r0, Sensor__C4617_VT); - s.tmp_0 = if_sensorFn_1_mk(s); + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["actionRunning"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 17; continue; } + case 1: + case 2: + setupResume(s, 18); + pxsim.control.waitMicros(50000); + checkResumeConsumed(); + return; + case 18: + r0 = s.retval; + s.tmp_0 = microcode_RuleClosure_getActionKind__P6109_mk(s); s.tmp_0.arg0 = s.arg0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "sensorFn"), 1); - s.callLocIdx = 1867; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["sensorFn"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["sensorFn"], 1); s.callLocIdx = 1867; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1867; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1867; s.pc = 1; return s.tmp_0; } + s.callLocIdx = 2034; s.pc = 19; return s.tmp_0; + case 19: + r0 = s.retval; + s.actionKind___7672 = (r0); + r0 = (s.actionKind___7672 === 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = s.tmp_0; + { step = 4; continue; } + case 3: + s.tmp_2 = microcode_getTid__P4194_mk(s); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, 0); + s.tmp_2.arg0 = r0; + s.callLocIdx = 2035; s.pc = 20; return s.tmp_2; + case 20: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 == 51); + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 5; continue; } + s.tmp_5 = microcode_RuleClosure_reset__P6098_mk(s); + s.tmp_5.arg0 = s.arg0; + s.callLocIdx = 2036; s.pc = 21; return s.tmp_5; + case 21: + r0 = s.retval; + { step = 17; continue; } + case 5: + case 6: + s.tmp_3 = microcode_RuleClosure_atLoop__P6105_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 2037; s.pc = 22; return s.tmp_3; + case 22: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.tmp_4 = r0 = s.arg0; + r0 = s.tmp_4.fields["modifierIndex"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 + 1); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["modifierIndex"] = (s.tmp_5); + case 7: + case 8: + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_4 = r0; + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); + s.m___7703 = (r0); + s.tmp_2 = microcode_getTid__P4194_mk(s); + s.tmp_2.arg0 = s.m___7703; + s.callLocIdx = 2038; s.pc = 23; return s.tmp_2; + case 23: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 == 178); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_4 = r0; + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_7 = r0; + r0 = pxsim_Array__length(s.tmp_7); + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = (s.tmp_4 == s.tmp_5); + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 9; continue; } + r0 = (s.arg0).fields["modifierIndex"] = (0); + { step = 12; continue; } + case 9: + s.tmp_0 = microcode_Interpreter_getValue__P4766_mk(s); + r0 = s.arg0.fields["interp"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = helpers_arraySlice__P2144_mk(s); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = undefined; + s.callLocIdx = 2039; s.pc = 25; return s.tmp_1; + case 25: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = 0; + s.callLocIdx = 2040; s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + s.loopBound___7725 = (r0); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["loopIndex"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["loopIndex"] = (s.tmp_1); + r0 = s.arg0.fields["loopIndex"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 >= s.loopBound___7725); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + s.tmp_2 = microcode_RuleClosure_reset__P6098_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 2041; s.pc = 26; return s.tmp_2; + case 26: + r0 = s.retval; + { step = 11; continue; } + case 10: + r0 = (s.arg0).fields["modifierIndex"] = (0); + case 11: + case 12: + case 13: + case 14: + { step = 16; continue; } + case 15: + s.tmp_0 = microcode_RuleClosure_reset__P6098_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2042; s.pc = 27; return s.tmp_0; + case 27: + r0 = s.retval; + case 16: + case 17: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_RuleClosure_checkForLoopFinish__P6106.info = {"start":7186,"length":1559,"line":215,"column":8,"endLine":252,"endColumn":9,"fileName":"interpreter.ts","functionName":"checkForLoopFinish","argumentNames":["this"]} + +function microcode_RuleClosure_checkForLoopFinish__P6106_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_RuleClosure_checkForLoopFinish__P6106, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + actionKind___7672: undefined, + m___7703: undefined, + loopBound___7725: undefined, + arg0: undefined, +} } + + + + +function helpers_arraySlice__P2144(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.res___7755 = undefined; + s.len___7757 = undefined; + s.i___7791 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; } + r0 = pxsim_Array__mk(); + s.res___7755 = (r0); + r0 = pxsim_Array__length(s.arg0); + s.len___7757 = (r0); + r0 = (s.arg1 === undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.arg1 = (0); + { step = 4; continue; } case 1: + r0 = (s.arg1 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = Math_max__P2159_mk(s); + r0 = (s.len___7757 + s.arg1); + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = 0; + s.callLocIdx = 10; s.pc = 16; return s.tmp_1; + case 16: r0 = s.retval; + s.arg1 = (r0); + case 2: + case 3: + case 4: + r0 = (s.arg1 > s.len___7757); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = s.res___7755; + { step = 15; continue; } + case 5: + case 6: + r0 = (s.arg2 === undefined); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 7; continue; } + s.arg2 = (s.len___7757); + { step = 10; continue; } + case 7: + r0 = (s.arg2 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + r0 = (s.len___7757 + s.arg2); + s.arg2 = (r0); + case 8: + case 9: + case 10: + r0 = (s.arg2 > s.len___7757); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + s.arg2 = (s.len___7757); + case 11: + case 12: + s.i___7791 = (s.arg1); + case 13: + r0 = (s.i___7791 < s.arg2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 14; continue; } + s.tmp_1 = r0 = s.res___7755; + r0 = pxsim_Array__getAt(s.arg0, s.i___7791); + s.tmp_2 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); + r0 = (s.i___7791 + 1); + s.i___7791 = (r0); + { step = 13; continue; } + case 14: + r0 = s.res___7755; + case 15: return leave(s, r0) default: oops() } } } -Sensor_getReading__P4622.info = {"start":7440,"length":59,"line":197,"column":4,"endLine":199,"endColumn":5,"fileName":"sensors.ts","functionName":"getReading","argumentNames":["this"]} +helpers_arraySlice__P2144.info = {"start":9027,"length":690,"line":303,"column":4,"endLine":328,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arraySlice","argumentNames":["arr","start","end"]} -function Sensor_getReading__P4622_mk(s) { +function helpers_arraySlice__P2144_mk(s) { checkStack(s.depth); return { - parent: s, fn: Sensor_getReading__P4622, depth: s.depth + 1, + parent: s, fn: helpers_arraySlice__P2144, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + res___7755: undefined, + len___7757: undefined, + i___7791: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function Sensor_getNormalisedReading__P4623(s) { +function microcode_Interpreter_getValue__P4766(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8124,48 +8283,155 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tokens___7809 = undefined; + s.rnd___7811 = undefined; + s.i___7822 = undefined; + s.m___7828 = undefined; + s.max___7837 = undefined; + s.result___7865 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, Sensor__C4617_VT)) failedCast(r0, Sensor__C4617_VT); - s.tmp_1 = Math_abs__P2157_mk(s); - s.tmp_2 = Sensor_getReading__P4622_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1868; s.pc = 2; return s.tmp_2; - case 2: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1869; s.pc = 1; return s.tmp_1; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = pxsim_Array__mk(); + s.tokens___7809 = (r0); + s.rnd___7811 = (rnd_inline__P7812); + s.i___7822 = (0); case 1: + s.tmp_1 = r0 = s.i___7822; + r0 = pxsim_Array__length(s.arg1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = pxsim_Array__getAt(s.arg1, s.i___7822); + s.m___7828 = (r0); + s.tmp_2 = microcode_getTid__P4194_mk(s); + s.tmp_2.arg0 = s.m___7828; + s.callLocIdx = 2148; s.pc = 7; return s.tmp_2; + case 7: r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 == 177); s.tmp_0 = r0; - r0 = s.arg0.fields["range"]; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_4 = r0 = s.i___7822; + r0 = pxsim_Array__length(s.arg1); + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = (s.tmp_4 == s.tmp_5); s.tmp_3 = r0; - r0 = (s.tmp_0 / s.tmp_3); + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 2; continue; } + r0 = 6; + { step = 3; continue; } + case 2: + s.tmp_7 = microcode_Interpreter_getValue__P4766_mk(s); + s.tmp_7.arg0 = s.arg0; + s.tmp_8 = helpers_arraySlice__P2144_mk(s); + s.tmp_8.arg0 = s.arg1; + r0 = (s.i___7822 + 1); + s.tmp_8.arg1 = r0; + s.tmp_8.arg2 = undefined; + s.callLocIdx = 2149; s.pc = 9; return s.tmp_8; + case 9: + r0 = s.retval; + s.tmp_7.arg1 = r0; + s.tmp_7.arg2 = 0; + s.callLocIdx = 2150; s.pc = 8; return s.tmp_7; + case 8: + r0 = s.retval; + case 3: + // jmp value (already in r0) + s.tmp_9 = r0; + s.max___7837 = (s.tmp_9); + s.tmp_0 = r0 = s.tokens___7809; + s.tmp_3 = lambda_2_mk(s); + s.tmp_3.argL = s.rnd___7811; + s.tmp_3.arg0 = s.max___7837; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 2151; s.pc = 10; return s.tmp_3; + case 10: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops.toString(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + { step = 6; continue; } + { step = 5; continue; } + case 4: + s.tmp_0 = r0 = s.tokens___7809; + s.tmp_2 = microcode_Interpreter_getExprValue__P6147_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.m___7828; + s.callLocIdx = 2152; s.pc = 11; return s.tmp_2; + case 11: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + case 5: + r0 = (s.i___7822 + 1); + s.i___7822 = (r0); + { step = 1; continue; } + case 6: + r0 = pxsim_pxtcore_mkClassInstance(parser_Parser__C4779_VT); + s.tmp_0 = r0; + s.tmp_1 = parser_Parser_constructor__P4780_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.tokens___7809; + s.callLocIdx = 2153; s.pc = 12; return s.tmp_1; + case 12: + r0 = s.retval; + s.tmp_2 = parser_Parser_parse__P4782_mk(s); + s.tmp_2.arg0 = s.tmp_0; + s.tmp_2.arg1 = 0; + s.callLocIdx = 2154; s.pc = 13; return s.tmp_2; + case 13: + r0 = s.retval; + s.result___7865 = (r0); + r0 = s.result___7865; return leave(s, r0) default: oops() } } } -Sensor_getNormalisedReading__P4623.info = {"start":7504,"length":94,"line":200,"column":4,"endLine":202,"endColumn":5,"fileName":"sensors.ts","functionName":"getNormalisedReading","argumentNames":["this"]} +microcode_Interpreter_getValue__P4766.info = {"start":29450,"length":825,"line":811,"column":8,"endLine":829,"endColumn":9,"fileName":"interpreter.ts","functionName":"getValue","argumentNames":["this","tiles","defl"]} -function Sensor_getNormalisedReading__P4623_mk(s) { +function microcode_Interpreter_getValue__P4766_mk(s) { checkStack(s.depth); return { - parent: s, fn: Sensor_getNormalisedReading__P4623, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_getValue__P4766, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tokens___7809: undefined, + rnd___7811: undefined, + i___7822: undefined, + m___7828: undefined, + max___7837: undefined, + result___7865: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function Sensor_getName__P4620(s) { +function rnd_inline__P7812(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8179,27 +8445,33 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, Sensor__C4617_VT)) failedCast(r0, Sensor__C4617_VT); - r0 = s.arg0.fields["name"]; + r0 = pxsim.Math_.random(); + s.tmp_2 = r0; + r0 = (s.tmp_2 * s.arg0); + s.tmp_1 = r0; + r0 = pxsim.Math_.floor(s.tmp_1); + s.tmp_0 = r0; + r0 = (s.tmp_0 + 1); return leave(s, r0) default: oops() } } } -Sensor_getName__P4620.info = {"start":7320,"length":50,"line":191,"column":4,"endLine":193,"endColumn":5,"fileName":"sensors.ts","functionName":"getName","argumentNames":["this"]} +rnd_inline__P7812.info = {"start":29577,"length":52,"line":813,"column":24,"endLine":813,"endColumn":76,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["max"]} -function Sensor_getName__P4620_mk(s) { +function rnd_inline__P7812_mk(s) { checkStack(s.depth); return { - parent: s, fn: Sensor_getName__P4620, depth: s.depth + 1, + parent: s, fn: rnd_inline__P7812, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, } } - -function helpers_arrayForEach__P2138(s) { +function parser_Parser_constructor__P4780(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8209,49 +8481,26 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___7606 = undefined; - s.i___7609 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__length(s.arg0); - s.len___7606 = (r0); - s.i___7609 = (0); - case 1: - r0 = (s.i___7609 < s.len___7606); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = lambda_3_mk(s); - s.tmp_1.argL = s.arg1; - r0 = pxsim_Array__getAt(s.arg0, s.i___7609); - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.i___7609; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 6; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - r0 = (s.i___7609 + 1); - s.i___7609 = (r0); - { step = 1; continue; } - case 2: + r0 = s.arg0; + if (!checkSubtype(r0, parser_Parser__C4779_VT)) failedCast(r0, parser_Parser__C4779_VT); + r0 = (s.arg0).fields["tokens"] = (s.arg1); + r0 = (s.arg0).fields["index"] = (0); r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_arrayForEach__P2138.info = {"start":7439,"length":250,"line":254,"column":4,"endLine":259,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayForEach","argumentNames":["arr","callbackfn"]} +parser_Parser_constructor__P4780.info = {"start":2458,"length":39,"line":82,"column":8,"endLine":82,"endColumn":47,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["this","tokens"]} -function helpers_arrayForEach__P2138_mk(s) { +function parser_Parser_constructor__P4780_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arrayForEach__P2138, depth: s.depth + 1, + parent: s, fn: parser_Parser_constructor__P4780, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - len___7606: undefined, - i___7609: undefined, arg0: undefined, arg1: undefined, } } @@ -8259,8 +8508,7 @@ function helpers_arrayForEach__P2138_mk(s) { - -function Sensor_getFromName__P4619(s) { +function parser_Parser_parse__P4782(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8270,540 +8518,166 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.token___7877 = undefined; + s.prefixParser___7879 = undefined; + s.lhs___7890 = undefined; + s.precRight___7893 = undefined; + s.infixParser___7902 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 == "Accel. X"); + r0 = s.arg0; + if (!checkSubtype(r0, parser_Parser__C4779_VT)) failedCast(r0, parser_Parser__C4779_VT); + s.tmp_0 = parser_Parser_next__P6212_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2173; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + s.token___7877 = (r0); + s.tmp_0 = parser_Parser_prefixParser__P6214_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.token___7877; + s.callLocIdx = 2174; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + s.prefixParser___7879 = (r0); + r0 = pxsim_numops_toBoolDecr(s.prefixParser___7879); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_pxtcore_mkClassInstance(parser_Error__C6148_VT); + s.tmp_2 = r0; + s.tmp_3 = parser_Error_constructor__P6149_mk(s); + s.tmp_3.arg0 = s.tmp_2; + if ((s.token___7877) && (s.token___7877).vtable) { + setupResume(s, 12); + pxsim_String__stringConv(s.token___7877); + checkResumeConsumed(); + return; + } else { s.retval = (s.token___7877) + ""; } + case 12: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_String__concat("Unexpected prefix token ", s.tmp_4); + s.tmp_3.arg1 = r0; + s.callLocIdx = 2175; s.pc = 11; return s.tmp_3; + case 11: + r0 = s.retval; + r0 = pxsim_pxtcore.throwValue(s.tmp_2); case 1: - r0 = (s.arg0 == "Accelerometer X"); case 2: - // jmp value (already in r0) + s.tmp_5 = lambda_2_mk(s); + s.tmp_5.argL = s.prefixParser___7879; + s.tmp_5.arg0 = s.token___7877; + setupLambda(s.tmp_5, s.tmp_5.argL); + s.callLocIdx = 2176; s.pc = 13; return s.tmp_5; + case 13: + r0 = s.retval; + s.lhs___7890 = (r0); + s.tmp_0 = parser_Parser_precOf__P4781_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = s.arg0.fields["tokens"]; s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 4; continue; } + r0 = s.arg0.fields["index"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 2178; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; + s.precRight___7893 = (r0); case 3: - r0 = (s.arg0 == "AX"); + r0 = (s.arg1 < s.precRight___7893); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + s.tmp_1 = parser_Parser_next__P6212_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 2179; s.pc = 15; return s.tmp_1; + case 15: + r0 = s.retval; + s.token___7877 = (r0); + s.tmp_1 = parser_Parser_infixParser__P6215_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.token___7877; + s.callLocIdx = 2180; s.pc = 16; return s.tmp_1; + case 16: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = s.tmp_0; + { step = 5; continue; } case 4: + r0 = undefined; + case 5: // jmp value (already in r0) s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 5; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mkMap(); + s.infixParser___7902 = (s.tmp_2); + r0 = pxsim_numops_toBoolDecr(s.infixParser___7902); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = pxsim_pxtcore_mkClassInstance(parser_Error__C6148_VT); + s.tmp_2 = r0; + s.tmp_3 = parser_Error_constructor__P6149_mk(s); + s.tmp_3.arg0 = s.tmp_2; + if ((s.token___7877) && (s.token___7877).vtable) { + setupResume(s, 18); + pxsim_String__stringConv(s.token___7877); + checkResumeConsumed(); + return; + } else { s.retval = (s.token___7877) + ""; } + case 18: + r0 = s.retval; s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "name", "Accel. X"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "rName", "AX"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "f", f_inline__P7632); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "min", -2048); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "max", 2048); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "isJacdacSensor", false); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "setupFn", setupFn_inline__P7638); - s.tmp_5 = Sensor_constructor__P4618_mk(s); - s.tmp_5.arg0 = s.tmp_3; - s.tmp_5.arg1 = s.tmp_4; - s.callLocIdx = 1854; s.pc = 70; return s.tmp_5; - case 70: + r0 = pxsim_String__concat("Unexpected infix or postfix token ", s.tmp_4); + s.tmp_3.arg1 = r0; + s.callLocIdx = 2182; s.pc = 17; return s.tmp_3; + case 17: r0 = s.retval; - r0 = s.tmp_3; - { step = 69; continue; } - { step = 68; continue; } - case 5: - r0 = (s.arg0 == "Accel. Y"); - s.tmp_6 = r0; - r0 = pxsim_numops_toBool(s.tmp_6); - if (!r0) { step = 6; continue; } - r0 = s.tmp_6; - { step = 7; continue; } + r0 = pxsim_pxtcore.throwValue(s.tmp_2); case 6: - r0 = (s.arg0 == "Accelerometer Y"); case 7: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = pxsim_numops_toBool(s.tmp_7); - if (!r0) { step = 8; continue; } - r0 = s.tmp_7; - { step = 9; continue; } - case 8: - r0 = (s.arg0 == "AY"); - case 9: - // jmp value (already in r0) - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 10; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_9 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_10 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "name", "Accel. Y"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "rName", "AY"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "f", f_inline__P7652); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "min", -2048); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "max", 2048); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "isJacdacSensor", false); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "setupFn", setupFn_inline__P7658); - s.tmp_11 = Sensor_constructor__P4618_mk(s); - s.tmp_11.arg0 = s.tmp_9; - s.tmp_11.arg1 = s.tmp_10; - s.callLocIdx = 1855; s.pc = 71; return s.tmp_11; - case 71: + s.tmp_5 = lambda_3_mk(s); + s.tmp_5.argL = s.infixParser___7902; + s.tmp_5.arg0 = s.lhs___7890; + s.tmp_5.arg1 = s.token___7877; + setupLambda(s.tmp_5, s.tmp_5.argL); + s.callLocIdx = 2183; s.pc = 19; return s.tmp_5; + case 19: r0 = s.retval; - r0 = s.tmp_9; - { step = 69; continue; } - { step = 67; continue; } - case 10: - r0 = (s.arg0 == "Accel. Z"); - s.tmp_12 = r0; - r0 = pxsim_numops_toBool(s.tmp_12); - if (!r0) { step = 11; continue; } - r0 = s.tmp_12; - { step = 12; continue; } - case 11: - r0 = (s.arg0 == "Accelerometer Z"); - case 12: - // jmp value (already in r0) - s.tmp_13 = r0; - r0 = pxsim_numops_toBool(s.tmp_13); - if (!r0) { step = 13; continue; } - r0 = s.tmp_13; - { step = 14; continue; } - case 13: - r0 = (s.arg0 == "AZ"); - case 14: - // jmp value (already in r0) - s.tmp_14 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_14); - if (!r0) { step = 15; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_15 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_16 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "name", "Accel. Z"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "rName", "AZ"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "f", f_inline__P7672); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "min", -2048); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "max", 2048); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "isJacdacSensor", false); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "setupFn", setupFn_inline__P7678); - s.tmp_17 = Sensor_constructor__P4618_mk(s); - s.tmp_17.arg0 = s.tmp_15; - s.tmp_17.arg1 = s.tmp_16; - s.callLocIdx = 1856; s.pc = 72; return s.tmp_17; - case 72: - r0 = s.retval; - r0 = s.tmp_15; - { step = 69; continue; } - { step = 66; continue; } - case 15: - r0 = (s.arg0 == "Pitch"); - s.tmp_18 = r0; - r0 = pxsim_numops_toBool(s.tmp_18); - if (!r0) { step = 16; continue; } - r0 = s.tmp_18; - { step = 17; continue; } - case 16: - r0 = (s.arg0 == "P"); - case 17: - // jmp value (already in r0) - s.tmp_19 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_19); - if (!r0) { step = 18; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_20 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_21 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "name", "Pitch"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "rName", "P"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "f", f_inline__P7689); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "min", -180); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "max", 180); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "isJacdacSensor", false); - s.tmp_22 = Sensor_constructor__P4618_mk(s); - s.tmp_22.arg0 = s.tmp_20; - s.tmp_22.arg1 = s.tmp_21; - s.callLocIdx = 1857; s.pc = 73; return s.tmp_22; - case 73: - r0 = s.retval; - r0 = s.tmp_20; - { step = 69; continue; } - { step = 65; continue; } - case 18: - r0 = (s.arg0 == "Roll"); - s.tmp_23 = r0; - r0 = pxsim_numops_toBool(s.tmp_23); - if (!r0) { step = 19; continue; } - r0 = s.tmp_23; - { step = 20; continue; } - case 19: - r0 = (s.arg0 == "R"); + s.lhs___7890 = (r0); + s.tmp_0 = parser_Parser_precOf__P4781_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = s.arg0.fields["tokens"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 2185; s.pc = 20; return s.tmp_0; case 20: - // jmp value (already in r0) - s.tmp_24 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_24); - if (!r0) { step = 21; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_25 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_26 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "name", "Roll"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "rName", "R"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "f", f_inline__P7702); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "min", -180); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "max", 180); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "isJacdacSensor", false); - s.tmp_27 = Sensor_constructor__P4618_mk(s); - s.tmp_27.arg0 = s.tmp_25; - s.tmp_27.arg1 = s.tmp_26; - s.callLocIdx = 1858; s.pc = 74; return s.tmp_27; - case 74: - r0 = s.retval; - r0 = s.tmp_25; - { step = 69; continue; } - { step = 64; continue; } - case 21: - r0 = (s.arg0 == "A. Pin 0"); - s.tmp_28 = r0; - r0 = pxsim_numops_toBool(s.tmp_28); - if (!r0) { step = 22; continue; } - r0 = s.tmp_28; - { step = 23; continue; } - case 22: - r0 = (s.arg0 == "Analog Pin 0"); - case 23: - // jmp value (already in r0) - s.tmp_29 = r0; - r0 = pxsim_numops_toBool(s.tmp_29); - if (!r0) { step = 24; continue; } - r0 = s.tmp_29; - { step = 25; continue; } - case 24: - r0 = (s.arg0 == "AP0"); - case 25: - // jmp value (already in r0) - s.tmp_30 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_30); - if (!r0) { step = 26; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_31 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_32 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "name", "A. Pin 0"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "rName", "AP0"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "f", f_inline__P7718); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "min", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "max", 3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "isJacdacSensor", false); - s.tmp_33 = Sensor_constructor__P4618_mk(s); - s.tmp_33.arg0 = s.tmp_31; - s.tmp_33.arg1 = s.tmp_32; - s.callLocIdx = 1859; s.pc = 75; return s.tmp_33; - case 75: - r0 = s.retval; - r0 = s.tmp_31; - { step = 69; continue; } - { step = 63; continue; } - case 26: - r0 = (s.arg0 == "A. Pin 1"); - s.tmp_34 = r0; - r0 = pxsim_numops_toBool(s.tmp_34); - if (!r0) { step = 27; continue; } - r0 = s.tmp_34; - { step = 28; continue; } - case 27: - r0 = (s.arg0 == "Analog Pin 1"); - case 28: - // jmp value (already in r0) - s.tmp_35 = r0; - r0 = pxsim_numops_toBool(s.tmp_35); - if (!r0) { step = 29; continue; } - r0 = s.tmp_35; - { step = 30; continue; } - case 29: - r0 = (s.arg0 == "AP1"); - case 30: - // jmp value (already in r0) - s.tmp_36 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_36); - if (!r0) { step = 31; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_37 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_38 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "name", "A. Pin 1"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "rName", "AP1"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "f", f_inline__P7733); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "min", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "max", 3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "isJacdacSensor", false); - s.tmp_39 = Sensor_constructor__P4618_mk(s); - s.tmp_39.arg0 = s.tmp_37; - s.tmp_39.arg1 = s.tmp_38; - s.callLocIdx = 1860; s.pc = 76; return s.tmp_39; - case 76: - r0 = s.retval; - r0 = s.tmp_37; - { step = 69; continue; } - { step = 62; continue; } - case 31: - r0 = (s.arg0 == "A. Pin 2"); - s.tmp_40 = r0; - r0 = pxsim_numops_toBool(s.tmp_40); - if (!r0) { step = 32; continue; } - r0 = s.tmp_40; - { step = 33; continue; } - case 32: - r0 = (s.arg0 == "Analog Pin 2"); - case 33: - // jmp value (already in r0) - s.tmp_41 = r0; - r0 = pxsim_numops_toBool(s.tmp_41); - if (!r0) { step = 34; continue; } - r0 = s.tmp_41; - { step = 35; continue; } - case 34: - r0 = (s.arg0 == "AP2"); - case 35: - // jmp value (already in r0) - s.tmp_42 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_42); - if (!r0) { step = 36; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_43 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_44 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_44, "name", "A. Pin 2"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_44, "rName", "AP2"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_44, "f", f_inline__P7748); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_44, "min", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_44, "max", 3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_44, "isJacdacSensor", false); - s.tmp_45 = Sensor_constructor__P4618_mk(s); - s.tmp_45.arg0 = s.tmp_43; - s.tmp_45.arg1 = s.tmp_44; - s.callLocIdx = 1861; s.pc = 77; return s.tmp_45; - case 77: - r0 = s.retval; - r0 = s.tmp_43; - { step = 69; continue; } - { step = 61; continue; } - case 36: - r0 = (s.arg0 == "Light"); - s.tmp_46 = r0; - r0 = pxsim_numops_toBool(s.tmp_46); - if (!r0) { step = 37; continue; } - r0 = s.tmp_46; - { step = 38; continue; } - case 37: - r0 = (s.arg0 == "L"); - case 38: - // jmp value (already in r0) - s.tmp_47 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_47); - if (!r0) { step = 39; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_48 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_49 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_49, "name", "Light"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_49, "rName", "L"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_49, "f", f_inline__P7760); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_49, "min", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_49, "max", 255); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_49, "isJacdacSensor", false); - s.tmp_50 = Sensor_constructor__P4618_mk(s); - s.tmp_50.arg0 = s.tmp_48; - s.tmp_50.arg1 = s.tmp_49; - s.callLocIdx = 1862; s.pc = 78; return s.tmp_50; - case 78: - r0 = s.retval; - r0 = s.tmp_48; - { step = 69; continue; } - { step = 60; continue; } - case 39: - r0 = (s.arg0 == "Temp."); - s.tmp_51 = r0; - r0 = pxsim_numops_toBool(s.tmp_51); - if (!r0) { step = 40; continue; } - r0 = s.tmp_51; - { step = 41; continue; } - case 40: - r0 = (s.arg0 == "Temperature"); - case 41: - // jmp value (already in r0) - s.tmp_52 = r0; - r0 = pxsim_numops_toBool(s.tmp_52); - if (!r0) { step = 42; continue; } - r0 = s.tmp_52; - { step = 43; continue; } - case 42: - r0 = (s.arg0 == "T"); - case 43: - // jmp value (already in r0) - s.tmp_53 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_53); - if (!r0) { step = 44; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_54 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_55 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_55, "name", "Temperature"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_55, "rName", "T"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_55, "f", f_inline__P7773); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_55, "min", -40); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_55, "max", 100); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_55, "isJacdacSensor", false); - s.tmp_56 = Sensor_constructor__P4618_mk(s); - s.tmp_56.arg0 = s.tmp_54; - s.tmp_56.arg1 = s.tmp_55; - s.callLocIdx = 1863; s.pc = 79; return s.tmp_56; - case 79: - r0 = s.retval; - r0 = s.tmp_54; - { step = 69; continue; } - { step = 59; continue; } - case 44: - r0 = (s.arg0 == "Magnet"); - s.tmp_57 = r0; - r0 = pxsim_numops_toBool(s.tmp_57); - if (!r0) { step = 45; continue; } - r0 = s.tmp_57; - { step = 46; continue; } - case 45: - r0 = (s.arg0 == "M"); - case 46: - // jmp value (already in r0) - s.tmp_58 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_58); - if (!r0) { step = 47; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_59 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_60 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_60, "name", "Magnet"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_60, "rName", "M"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_60, "f", f_inline__P7785); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_60, "min", -5000); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_60, "max", 5000); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_60, "isJacdacSensor", false); - s.tmp_61 = Sensor_constructor__P4618_mk(s); - s.tmp_61.arg0 = s.tmp_59; - s.tmp_61.arg1 = s.tmp_60; - s.callLocIdx = 1864; s.pc = 80; return s.tmp_61; - case 80: - r0 = s.retval; - r0 = s.tmp_59; - { step = 69; continue; } - { step = 58; continue; } - case 47: - r0 = (s.arg0 == "Volume"); - s.tmp_62 = r0; - r0 = pxsim_numops_toBool(s.tmp_62); - if (!r0) { step = 48; continue; } - r0 = s.tmp_62; - { step = 49; continue; } - case 48: - r0 = (s.arg0 == "Microphone"); - case 49: - // jmp value (already in r0) - s.tmp_63 = r0; - r0 = pxsim_numops_toBool(s.tmp_63); - if (!r0) { step = 50; continue; } - r0 = s.tmp_63; - { step = 51; continue; } - case 50: - r0 = (s.arg0 == "V"); - case 51: - // jmp value (already in r0) - s.tmp_64 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_64); - if (!r0) { step = 52; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_65 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_66 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_66, "name", "Microphone"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_66, "rName", "V"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_66, "f", f_inline__P7801); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_66, "min", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_66, "max", 255); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_66, "isJacdacSensor", false); - s.tmp_67 = Sensor_constructor__P4618_mk(s); - s.tmp_67.arg0 = s.tmp_65; - s.tmp_67.arg1 = s.tmp_66; - s.callLocIdx = 1865; s.pc = 81; return s.tmp_67; - case 81: - r0 = s.retval; - r0 = s.tmp_65; - { step = 69; continue; } - { step = 57; continue; } - case 52: - r0 = (s.arg0 == "Compass"); - s.tmp_68 = r0; - r0 = pxsim_numops_toBool(s.tmp_68); - if (!r0) { step = 53; continue; } - r0 = s.tmp_68; - { step = 54; continue; } - case 53: - r0 = (s.arg0 == "C"); - case 54: - // jmp value (already in r0) - s.tmp_69 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_69); - if (!r0) { step = 55; continue; } - r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4617_VT); - s.tmp_70 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_71 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_71, "name", "Compass"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_71, "rName", "C"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_71, "f", f_inline__P7811); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_71, "min", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_71, "max", 360); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_71, "isJacdacSensor", false); - s.tmp_72 = Sensor_constructor__P4618_mk(s); - s.tmp_72.arg0 = s.tmp_70; - s.tmp_72.arg1 = s.tmp_71; - s.callLocIdx = 1866; s.pc = 82; return s.tmp_72; - case 82: r0 = s.retval; - r0 = s.tmp_70; - { step = 69; continue; } - { step = 56; continue; } - case 55: - r0 = undefined; - { step = 69; continue; } - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - r0 = undefined; - case 69: + s.precRight___7893 = (r0); + { step = 3; continue; } + case 8: + r0 = s.lhs___7890; return leave(s, r0) default: oops() } } } -Sensor_getFromName__P4619.info = {"start":2537,"length":4692,"line":52,"column":4,"endLine":185,"endColumn":5,"fileName":"sensors.ts","functionName":"getFromName","argumentNames":["name"]} +parser_Parser_parse__P4782.info = {"start":2620,"length":880,"line":88,"column":8,"endLine":111,"endColumn":9,"fileName":"exprparser.ts","functionName":"parse","argumentNames":["this","prec"]} -function Sensor_getFromName__P4619_mk(s) { +function parser_Parser_parse__P4782_mk(s) { checkStack(s.depth); return { - parent: s, fn: Sensor_getFromName__P4619, depth: s.depth + 1, + parent: s, fn: parser_Parser_parse__P4782, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -8811,81 +8685,19 @@ function Sensor_getFromName__P4619_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, - tmp_27: undefined, - tmp_28: undefined, - tmp_29: undefined, - tmp_30: undefined, - tmp_31: undefined, - tmp_32: undefined, - tmp_33: undefined, - tmp_34: undefined, - tmp_35: undefined, - tmp_36: undefined, - tmp_37: undefined, - tmp_38: undefined, - tmp_39: undefined, - tmp_40: undefined, - tmp_41: undefined, - tmp_42: undefined, - tmp_43: undefined, - tmp_44: undefined, - tmp_45: undefined, - tmp_46: undefined, - tmp_47: undefined, - tmp_48: undefined, - tmp_49: undefined, - tmp_50: undefined, - tmp_51: undefined, - tmp_52: undefined, - tmp_53: undefined, - tmp_54: undefined, - tmp_55: undefined, - tmp_56: undefined, - tmp_57: undefined, - tmp_58: undefined, - tmp_59: undefined, - tmp_60: undefined, - tmp_61: undefined, - tmp_62: undefined, - tmp_63: undefined, - tmp_64: undefined, - tmp_65: undefined, - tmp_66: undefined, - tmp_67: undefined, - tmp_68: undefined, - tmp_69: undefined, - tmp_70: undefined, - tmp_71: undefined, - tmp_72: undefined, + token___7877: undefined, + prefixParser___7879: undefined, + lhs___7890: undefined, + precRight___7893: undefined, + infixParser___7902: undefined, arg0: undefined, + arg1: undefined, } } - -function f_inline__P7632(s) { +function parser_Parser_postfixParser__P6216(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8895,24 +8707,32 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.acceleration(0); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, parser_Parser__C4779_VT)) failedCast(r0, parser_Parser__C4779_VT); + r0 = undefined; return leave(s, r0) default: oops() } } } -f_inline__P7632.info = {"start":2778,"length":37,"line":57,"column":19,"endLine":57,"endColumn":56,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Parser_postfixParser__P6216.info = {"start":2099,"length":349,"line":73,"column":8,"endLine":80,"endColumn":9,"fileName":"exprparser.ts","functionName":"postfixParser","argumentNames":["this","t"]} -function f_inline__P7632_mk(s) { +function parser_Parser_postfixParser__P6216_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7632, depth: s.depth + 1, + parent: s, fn: parser_Parser_postfixParser__P6216, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, } } - -function setupFn_inline__P7638(s) { +function parser_Parser_infixParser__P6215(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8922,25 +8742,47 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.setAccelerometerRange(1); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, parser_Parser__C4779_VT)) failedCast(r0, parser_Parser__C4779_VT); + r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___6151, s.arg1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkAction(2, parser_Parser_infixParser_inline__P7932); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg1); + r0 = pxsim_pxtrt_stclo(s.tmp_1, 1, s.arg0); + r0 = s.tmp_1; + { step = 3; continue; } + case 1: + case 2: r0 = undefined; + case 3: return leave(s, r0) default: oops() } } } -setupFn_inline__P7638.info = {"start":2936,"length":76,"line":61,"column":25,"endLine":62,"endColumn":70,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Parser_infixParser__P6215.info = {"start":1844,"length":245,"line":65,"column":8,"endLine":71,"endColumn":9,"fileName":"exprparser.ts","functionName":"infixParser","argumentNames":["this","t"]} -function setupFn_inline__P7638_mk(s) { +function parser_Parser_infixParser__P6215_mk(s) { checkStack(s.depth); return { - parent: s, fn: setupFn_inline__P7638, depth: s.depth + 1, + parent: s, fn: parser_Parser_infixParser__P6215, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, + arg1: undefined, } } - -function f_inline__P7652(s) { +function parser_Parser_infixParser_inline__P7932(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8950,24 +8792,67 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.acceleration(1); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + s.tmp_0 = if_fun_3_mk(s); + r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___6151, s.caps[0]); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg0; + s.tmp_1 = parser_Parser_parse__P4782_mk(s); + s.tmp_1.arg0 = s.caps[1]; + s.tmp_2 = if_prec_1_mk(s); + r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___6151, s.caps[0]); + s.tmp_2.arg0 = r0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "prec"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["prec"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["prec"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 2169; s.pc = 3; return s.tmp_2; } + } + case 3: + r0 = s.retval; + s.tmp_1.arg1 = r0; + s.callLocIdx = 2170; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg2 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "fun"), 3); + s.callLocIdx = 2171; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["fun"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["fun"], 3); s.callLocIdx = 2171; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 2171; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 2171; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; return leave(s, r0) default: oops() } } } -f_inline__P7652.info = {"start":3271,"length":37,"line":72,"column":19,"endLine":72,"endColumn":56,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Parser_infixParser_inline__P7932.info = {"start":1940,"length":96,"line":67,"column":23,"endLine":68,"endColumn":70,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["lhs","token"]} -function f_inline__P7652_mk(s) { +function parser_Parser_infixParser_inline__P7932_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7652, depth: s.depth + 1, + parent: s, fn: parser_Parser_infixParser_inline__P7932, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, + arg1: undefined, } } - -function setupFn_inline__P7658(s) { +function parser_Parser_peek__P6213(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -8977,25 +8862,36 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.setAccelerometerRange(1); - r0 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, parser_Parser__C4779_VT)) failedCast(r0, parser_Parser__C4779_VT); + r0 = s.arg0.fields["tokens"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); return leave(s, r0) default: oops() } } } -setupFn_inline__P7658.info = {"start":3429,"length":76,"line":76,"column":25,"endLine":77,"endColumn":70,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Parser_peek__P6213.info = {"start":1234,"length":69,"line":44,"column":8,"endLine":46,"endColumn":9,"fileName":"exprparser.ts","functionName":"peek","argumentNames":["this"]} -function setupFn_inline__P7658_mk(s) { +function parser_Parser_peek__P6213_mk(s) { checkStack(s.depth); return { - parent: s, fn: setupFn_inline__P7658, depth: s.depth + 1, + parent: s, fn: parser_Parser_peek__P6213, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function f_inline__P7672(s) { +function parser_Parser_precOf__P4781(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9005,24 +8901,58 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.acceleration(2); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, parser_Parser__C4779_VT)) failedCast(r0, parser_Parser__C4779_VT); + r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___6151, s.arg1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = if_prec_1_mk(s); + r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___6151, s.arg1); + s.tmp_1.arg0 = r0; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "prec"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["prec"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["prec"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 2172; s.pc = 3; return s.tmp_1; } + } + case 3: + r0 = s.retval; + { step = 2; continue; } + case 1: + r0 = 0; + case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = s.tmp_2; return leave(s, r0) default: oops() } } } -f_inline__P7672.info = {"start":3764,"length":37,"line":87,"column":19,"endLine":87,"endColumn":56,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Parser_precOf__P4781.info = {"start":2507,"length":103,"line":84,"column":8,"endLine":86,"endColumn":9,"fileName":"exprparser.ts","functionName":"precOf","argumentNames":["this","token"]} -function f_inline__P7672_mk(s) { +function parser_Parser_precOf__P4781_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7672, depth: s.depth + 1, + parent: s, fn: parser_Parser_precOf__P4781, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, + arg1: undefined, } } - -function setupFn_inline__P7678(s) { +function parser_Error_constructor__P6149(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9032,25 +8962,39 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.setAccelerometerRange(1); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, parser_Error__C6148_VT)) failedCast(r0, parser_Error__C6148_VT); + r0 = (s.arg0).fields["msg"] = (s.arg1); + s.tmp_0 = console_log__P2528_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 2164; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -setupFn_inline__P7678.info = {"start":3922,"length":76,"line":91,"column":25,"endLine":92,"endColumn":70,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Error_constructor__P6149.info = {"start":192,"length":72,"line":10,"column":8,"endLine":12,"endColumn":9,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["this","msg"]} -function setupFn_inline__P7678_mk(s) { +function parser_Error_constructor__P6149_mk(s) { checkStack(s.depth); return { - parent: s, fn: setupFn_inline__P7678, depth: s.depth + 1, + parent: s, fn: parser_Error_constructor__P6149, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, + arg1: undefined, } } - -function f_inline__P7689(s) { +function console_log__P2528(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9060,24 +9004,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.rotation(0); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = console_add__P2524_mk(s); + s.tmp_0.arg0 = 1; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 38; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -f_inline__P7689.info = {"start":4174,"length":36,"line":98,"column":19,"endLine":98,"endColumn":55,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +console_log__P2528.info = {"start":1314,"length":86,"line":55,"column":4,"endLine":57,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"log","argumentNames":["value"]} -function f_inline__P7689_mk(s) { +function console_log__P2528_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7689, depth: s.depth + 1, + parent: s, fn: console_log__P2528, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, } } - -function f_inline__P7702(s) { +function console_add__P2524(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9087,24 +9042,91 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.rotation(1); + s.text___7971 = undefined; + s.i___7985 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = (s.arg0 < globals.minPriority___2523); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 7; continue; } + case 1: + case 2: + s.tmp_1 = console_inspect__P2530_mk(s); + s.tmp_1.arg0 = s.arg1; + s.tmp_1.arg1 = 20; + s.callLocIdx = 35; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.text___7971 = (r0); + if ((s.text___7971) && (s.text___7971).vtable) { + setupResume(s, 9); + pxsim_String__stringConv(s.text___7971); + checkResumeConsumed(); + return; + } else { s.retval = (s.text___7971) + ""; } + case 9: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_String__concat(s.tmp_0, "\n"); + s.text___7971 = (r0); + r0 = pxsim.control.__log(s.arg0, s.text___7971); + r0 = pxsim_numops_toBoolDecr(globals.listeners___4865); + if (!r0) { step = 5; continue; } + s.i___7985 = (0); + case 3: + s.tmp_1 = r0 = s.i___7985; + r0 = pxsim_Array__length(globals.listeners___4865); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_3 = lambda_3_mk(s); + r0 = pxsim_Array__getAt(globals.listeners___4865, s.i___7985); + s.tmp_3.argL = r0; + s.tmp_3.arg0 = s.arg0; + s.tmp_3.arg1 = s.text___7971; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 36; s.pc = 10; return s.tmp_3; + case 10: + r0 = s.retval; + r0 = (s.i___7985 + 1); + s.i___7985 = (r0); + { step = 3; continue; } + case 4: + case 5: + case 6: + case 7: + r0 = undefined; return leave(s, r0) default: oops() } } } -f_inline__P7702.info = {"start":4476,"length":35,"line":107,"column":19,"endLine":107,"endColumn":54,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +console_add__P2524.info = {"start":508,"length":386,"line":25,"column":4,"endLine":35,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"add","argumentNames":["priority","message"]} -function f_inline__P7702_mk(s) { +function console_add__P2524_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7702, depth: s.depth + 1, + parent: s, fn: console_add__P2524, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + text___7971: undefined, + i___7985: undefined, + arg0: undefined, + arg1: undefined, } } - -function f_inline__P7718(s) { +function console_inspect__P2530(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9114,27 +9136,238 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.pins.analogReadPin(100); - s.tmp_0 = r0; - r0 = (s.tmp_0 / 340); - return leave(s, r0) - default: oops() -} } } -f_inline__P7718.info = {"start":4815,"length":44,"line":116,"column":19,"endLine":116,"endColumn":63,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} + s.asArr___8016 = undefined; + s.asString___8034 = undefined; + s.keys___8046 = undefined; + s.snipped___8050 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = pxsim_pxtcore.typeOf(s.arg0); + s.tmp_1 = r0; + r0 = (s.tmp_1 == "string"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.arg0; + { step = 17; continue; } + { step = 16; continue; } + case 1: + r0 = pxsim_pxtcore.typeOf(s.arg0); + s.tmp_3 = r0; + r0 = (s.tmp_3 == "number"); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 2; continue; } + r0 = pxsim_String_.mkEmpty(); + s.tmp_4 = r0; + if ((s.arg0) && (s.arg0).vtable) { + setupResume(s, 18); + pxsim_String__stringConv(s.arg0); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg0) + ""; } + case 18: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat(s.tmp_4, s.tmp_5); + { step = 17; continue; } + { step = 15; continue; } + case 2: + r0 = pxsim_Array_.isArray(s.arg0); + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 5; continue; } + s.asArr___8016 = (s.arg0); + r0 = pxsim_Array__length(s.asArr___8016); + s.tmp_1 = r0; + r0 = (s.tmp_1 <= s.arg1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_2 = helpers_arrayJoin__P2132_mk(s); + s.tmp_2.arg0 = s.asArr___8016; + s.tmp_2.arg1 = ","; + s.callLocIdx = 39; s.pc = 19; return s.tmp_2; + case 19: + r0 = s.retval; + { step = 17; continue; } + { step = 4; continue; } + case 3: + r0 = pxsim_String_.mkEmpty(); + s.tmp_4 = r0; + s.tmp_7 = helpers_arrayJoin__P2132_mk(s); + s.tmp_8 = helpers_arraySlice__P2144_mk(s); + s.tmp_8.arg0 = s.asArr___8016; + s.tmp_8.arg1 = 0; + s.tmp_8.arg2 = s.arg1; + s.callLocIdx = 40; s.pc = 21; return s.tmp_8; + case 21: + r0 = s.retval; + s.tmp_7.arg0 = r0; + s.tmp_7.arg1 = ","; + s.callLocIdx = 41; s.pc = 20; return s.tmp_7; + case 20: + r0 = s.retval; + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 22); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 22: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat(s.tmp_4, s.tmp_5); + s.tmp_3 = r0; + r0 = pxsim_String__concat(s.tmp_3, "..."); + { step = 17; continue; } + case 4: + { step = 14; continue; } + case 5: + if ((s.arg0) && (s.arg0).vtable) { + setupResume(s, 23); + pxsim_String__stringConv(s.arg0); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg0) + ""; } + case 23: + r0 = s.retval; + s.tmp_9 = r0; + r0 = pxsim_String_.mkEmpty(); + s.tmp_10 = r0; + r0 = pxsim_String__concat(s.tmp_9, s.tmp_10); + s.asString___8034 = (r0); + r0 = (s.asString___8034 != "[object Object]"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 6; continue; } + r0 = s.tmp_0; + { step = 7; continue; } + case 6: + r0 = (s.asString___8034 != "[Object]"); + case 7: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 8; continue; } + r0 = s.asString___8034; + { step = 17; continue; } + case 8: + case 9: + r0 = pxsim_pxtrt.keysOf(s.arg0); + s.keys___8046 = (r0); + r0 = pxsim_Array__length(s.keys___8046); + s.tmp_0 = r0; + r0 = (s.tmp_0 > s.arg1); + s.snipped___8050 = (r0); + r0 = pxsim_numops_toBoolDecr(s.snipped___8050); + if (!r0) { step = 10; continue; } + s.tmp_0 = helpers_arraySlice__P2144_mk(s); + s.tmp_0.arg0 = s.keys___8046; + s.tmp_0.arg1 = 0; + s.tmp_0.arg2 = s.arg1; + s.callLocIdx = 42; s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + s.keys___8046 = (r0); + case 10: + case 11: + r0 = pxsim_pxtcore_mkAction(1, console_inspect_inline__P8067); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_numops_toBoolDecr(s.snipped___8050); + if (!r0) { step = 12; continue; } + r0 = "\n ..."; + { step = 13; continue; } + case 12: + r0 = pxsim_String_.mkEmpty(); + case 13: + // jmp value (already in r0) + s.tmp_1 = r0; + s.tmp_7 = helpers_arrayReduce__P2141_mk(s); + s.tmp_7.arg0 = s.keys___8046; + s.tmp_7.arg1 = s.tmp_0; + r0 = pxsim_String_.mkEmpty(); + s.tmp_7.arg2 = r0; + s.callLocIdx = 43; s.pc = 25; return s.tmp_7; + case 25: + r0 = s.retval; + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 26); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 26: + r0 = s.retval; + s.tmp_5 = r0; + if ((s.tmp_1) && (s.tmp_1).vtable) { + setupResume(s, 27); + pxsim_String__stringConv(s.tmp_1); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_1) + ""; } + case 27: + r0 = s.retval; + s.tmp_8 = r0; + r0 = pxsim_String__concat(s.tmp_5, s.tmp_8); + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 28); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 28: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat("{", s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_String__concat(s.tmp_2, "\n}"); + { step = 17; continue; } + case 14: + case 15: + case 16: + r0 = undefined; + case 17: + return leave(s, r0) + default: oops() +} } } +console_inspect__P2530.info = {"start":2002,"length":1165,"line":75,"column":4,"endLine":107,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"inspect","argumentNames":["obj","maxElements"]} -function f_inline__P7718_mk(s) { +function console_inspect__P2530_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7718, depth: s.depth + 1, + parent: s, fn: console_inspect__P2530, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + asArr___8016: undefined, + asString___8034: undefined, + keys___8046: undefined, + snipped___8050: undefined, + arg0: undefined, + arg1: undefined, } } - -function f_inline__P7733(s) { +function console_inspect_inline__P8067(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9144,27 +9377,82 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.pins.analogReadPin(101); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + if ((s.arg0) && (s.arg0).vtable) { + setupResume(s, 1); + pxsim_String__stringConv(s.arg0); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg0) + ""; } + case 1: + r0 = s.retval; s.tmp_0 = r0; - r0 = (s.tmp_0 / 340); + if ((s.arg1) && (s.arg1).vtable) { + setupResume(s, 2); + pxsim_String__stringConv(s.arg1); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg1) + ""; } + case 2: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat("\n ", s.tmp_5); + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_4, ": "); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.caps[0], s.arg1); + s.tmp_7 = r0; + if ((s.tmp_7) && (s.tmp_7).vtable) { + setupResume(s, 3); + pxsim_String__stringConv(s.tmp_7); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_7) + ""; } + case 3: + r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_6); + s.tmp_2 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 4); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 4: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); return leave(s, r0) default: oops() } } } -f_inline__P7733.info = {"start":5158,"length":44,"line":125,"column":19,"endLine":125,"endColumn":63,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +console_inspect_inline__P8067.info = {"start":3003,"length":61,"line":101,"column":16,"endLine":101,"endColumn":77,"fileName":"pxt_modules/core/console.ts","functionName":"inline","argumentNames":["prev","currKey"]} -function f_inline__P7733_mk(s) { +function console_inspect_inline__P8067_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7733, depth: s.depth + 1, + parent: s, fn: console_inspect_inline__P8067, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + arg0: undefined, + arg1: undefined, } } - -function f_inline__P7748(s) { +function helpers_arrayReduce__P2141(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9174,27 +9462,61 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.pins.analogReadPin(102); + s.len___8094 = undefined; + s.i___8097 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + r0 = pxsim_Array__length(s.arg0); + s.len___8094 = (r0); + s.i___8097 = (0); + case 1: + r0 = (s.i___8097 < s.len___8094); s.tmp_0 = r0; - r0 = (s.tmp_0 / 340); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = lambda_4_mk(s); + s.tmp_1.argL = s.arg1; + s.tmp_1.arg0 = s.arg2; + r0 = pxsim_Array__getAt(s.arg0, s.i___8097); + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.i___8097; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 9; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.arg2 = (r0); + r0 = (s.i___8097 + 1); + s.i___8097 = (r0); + { step = 1; continue; } + case 2: + r0 = s.arg2; return leave(s, r0) default: oops() } } } -f_inline__P7748.info = {"start":5501,"length":44,"line":134,"column":19,"endLine":134,"endColumn":63,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +helpers_arrayReduce__P2141.info = {"start":8316,"length":317,"line":280,"column":4,"endLine":286,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayReduce","argumentNames":["arr","callbackfn","initialValue"]} -function f_inline__P7748_mk(s) { +function helpers_arrayReduce__P2141_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7748, depth: s.depth + 1, + parent: s, fn: helpers_arrayReduce__P2141, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + len___8094: undefined, + i___8097: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function f_inline__P7760(s) { +function helpers_arrayJoin__P2132(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9204,24 +9526,152 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.lightLevel(); + s.r___8122 = undefined; + s.len___8123 = undefined; + s.i___8126 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = (s.arg1 === undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = (s.arg1 === null); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 3; continue; } + s.arg1 = (","); + case 3: + case 4: + r0 = pxsim_String_.mkEmpty(); + s.r___8122 = (r0); + r0 = pxsim_Array__length(s.arg0); + s.len___8123 = (r0); + s.i___8126 = (0); + case 5: + r0 = (s.i___8126 < s.len___8123); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 14; continue; } + r0 = (s.i___8126 > 0); + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (r0) { step = 6; continue; } + r0 = s.tmp_1; + { step = 7; continue; } + case 6: + r0 = s.arg1; + case 7: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 8; continue; } + if ((s.r___8122) && (s.r___8122).vtable) { + setupResume(s, 15); + pxsim_String__stringConv(s.r___8122); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___8122) + ""; } + case 15: + r0 = s.retval; + s.tmp_3 = r0; + if ((s.arg1) && (s.arg1).vtable) { + setupResume(s, 16); + pxsim_String__stringConv(s.arg1); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg1) + ""; } + case 16: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); + s.r___8122 = (r0); + case 8: + case 9: + r0 = pxsim_Array__getAt(s.arg0, s.i___8126); + s.tmp_1 = r0; + r0 = (s.tmp_1 === undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 10; continue; } + r0 = s.tmp_0; + { step = 11; continue; } + case 10: + r0 = pxsim_Array__getAt(s.arg0, s.i___8126); + s.tmp_2 = r0; + r0 = (s.tmp_2 === null); + case 11: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 12; continue; } + r0 = pxsim_String_.mkEmpty(); + { step = 13; continue; } + case 12: + r0 = pxsim_Array__getAt(s.arg0, s.i___8126); + case 13: + // jmp value (already in r0) + s.tmp_4 = r0; + if ((s.r___8122) && (s.r___8122).vtable) { + setupResume(s, 17); + pxsim_String__stringConv(s.r___8122); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___8122) + ""; } + case 17: + r0 = s.retval; + s.tmp_5 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 18); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 18: + r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_String__concat(s.tmp_5, s.tmp_6); + s.r___8122 = (r0); + r0 = (s.i___8126 + 1); + s.i___8126 = (r0); + { step = 5; continue; } + case 14: + r0 = s.r___8122; return leave(s, r0) default: oops() } } } -f_inline__P7760.info = {"start":5808,"length":24,"line":143,"column":19,"endLine":143,"endColumn":43,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +helpers_arrayJoin__P2132.info = {"start":4133,"length":432,"line":157,"column":4,"endLine":170,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayJoin","argumentNames":["arr","sep"]} -function f_inline__P7760_mk(s) { +function helpers_arrayJoin__P2132_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7760, depth: s.depth + 1, + parent: s, fn: helpers_arrayJoin__P2132, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + r___8122: undefined, + len___8123: undefined, + i___8126: undefined, + arg0: undefined, + arg1: undefined, } } - -function f_inline__P7773(s) { +function parser_Parser_prefixParser__P6214(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9231,24 +9681,75 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.temperature(); + s.num___8166 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, parser_Parser__C4779_VT)) failedCast(r0, parser_Parser__C4779_VT); + r0 = pxsim_String_.toNumber(s.arg1); + s.num___8166 = (r0); + s.tmp_3 = isNaN__P2122_mk(s); + s.tmp_3.arg0 = s.num___8166; + s.callLocIdx = 2165; s.pc = 6; return s.tmp_3; + case 6: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkAction(1, parser_Parser_prefixParser_inline__P8174); + s.tmp_4 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_4, 0, s.num___8166); + r0 = s.tmp_4; + { step = 5; continue; } + { step = 4; continue; } + case 1: + r0 = (s.arg1 === "("); + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 2; continue; } + r0 = pxsim_pxtcore_mkAction(1, parser_Parser_prefixParser_inline__P8179); + s.tmp_6 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_6, 0, s.arg0); + r0 = s.tmp_6; + { step = 5; continue; } + case 2: + case 3: + case 4: + r0 = undefined; + case 5: return leave(s, r0) default: oops() } } } -f_inline__P7773.info = {"start":6128,"length":25,"line":152,"column":19,"endLine":152,"endColumn":44,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Parser_prefixParser__P6214.info = {"start":1313,"length":521,"line":48,"column":8,"endLine":63,"endColumn":9,"fileName":"exprparser.ts","functionName":"prefixParser","argumentNames":["this","t"]} -function f_inline__P7773_mk(s) { +function parser_Parser_prefixParser__P6214_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7773, depth: s.depth + 1, + parent: s, fn: parser_Parser_prefixParser__P6214, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + num___8166: undefined, + arg0: undefined, + arg1: undefined, } } - -function f_inline__P7785(s) { +function parser_Parser_prefixParser_inline__P8174(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9258,24 +9759,28 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.magneticForce(3); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.caps[0]; return leave(s, r0) default: oops() } } } -f_inline__P7785.info = {"start":6422,"length":45,"line":161,"column":19,"endLine":161,"endColumn":64,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Parser_prefixParser_inline__P8174.info = {"start":1449,"length":8,"line":51,"column":23,"endLine":51,"endColumn":31,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["t"]} -function f_inline__P7785_mk(s) { +function parser_Parser_prefixParser_inline__P8174_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7785, depth: s.depth + 1, + parent: s, fn: parser_Parser_prefixParser_inline__P8174, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, } } - -function f_inline__P7801(s) { +function parser_Parser_prefixParser_inline__P8179(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9285,24 +9790,63 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.soundLevel(); + s.expr___8181 = undefined; + s.next___8185 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = parser_Parser_parse__P4782_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 0; + s.callLocIdx = 2166; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.expr___8181 = (r0); + s.tmp_0 = parser_Parser_next__P6212_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 2167; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.next___8185 = (r0); + r0 = (s.next___8185 !== ")"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkClassInstance(parser_Error__C6148_VT); + s.tmp_1 = r0; + s.tmp_2 = parser_Error_constructor__P6149_mk(s); + s.tmp_2.arg0 = s.tmp_1; + s.tmp_2.arg1 = "expected )"; + s.callLocIdx = 2168; s.pc = 5; return s.tmp_2; + case 5: + r0 = s.retval; + r0 = pxsim_pxtcore.throwValue(s.tmp_1); + case 1: + case 2: + r0 = s.expr___8181; return leave(s, r0) default: oops() } } } -f_inline__P7801.info = {"start":6767,"length":24,"line":170,"column":19,"endLine":170,"endColumn":43,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +parser_Parser_prefixParser_inline__P8179.info = {"start":1517,"length":264,"line":53,"column":23,"endLine":60,"endColumn":17,"fileName":"exprparser.ts","functionName":"inline","argumentNames":["t"]} -function f_inline__P7801_mk(s) { +function parser_Parser_prefixParser_inline__P8179_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7801, depth: s.depth + 1, + parent: s, fn: parser_Parser_prefixParser_inline__P8179, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + expr___8181: undefined, + next___8185: undefined, + arg0: undefined, } } - -function f_inline__P7811(s) { +function isNaN__P2122(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9312,24 +9856,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim.input.compassHeading(); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (s.arg0 - 0); + s.arg0 = (r0); + r0 = (s.arg0 !== s.arg0); return leave(s, r0) default: oops() } } } -f_inline__P7811.info = {"start":7060,"length":28,"line":179,"column":19,"endLine":179,"endColumn":47,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} +isNaN__P2122.info = {"start":169,"length":80,"line":12,"column":0,"endLine":15,"endColumn":1,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"isNaN","argumentNames":["x"]} -function f_inline__P7811_mk(s) { +function isNaN__P2122_mk(s) { checkStack(s.depth); return { - parent: s, fn: f_inline__P7811, depth: s.depth + 1, + parent: s, fn: isNaN__P2122, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, } } - -function Sensor_constructor__P4618(s) { +function parser_Parser_next__P6212(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9341,171 +9891,40 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, Sensor__C4617_VT)) failedCast(r0, Sensor__C4617_VT); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_name_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "name"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["name"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["name"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1845; s.pc = 3; return s.tmp_2; } - } - case 3: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["name"] = (s.tmp_1); + if (!checkSubtype(r0, parser_Parser__C4779_VT)) failedCast(r0, parser_Parser__C4779_VT); s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_rName_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "rName"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["rName"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["rName"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1846; s.pc = 4; return s.tmp_2; } - } - case 4: - r0 = s.retval; + r0 = s.tmp_0.fields["index"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["radioName"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_min_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "min"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["min"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["min"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1847; s.pc = 5; return s.tmp_2; } - } - case 5: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["minimum"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_max_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "max"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["max"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["max"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1848; s.pc = 6; return s.tmp_2; } - } - case 6: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["maximum"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_3 = Math_abs__P2157_mk(s); - r0 = s.arg0.fields["minimum"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 1849; s.pc = 7; return s.tmp_3; - case 7: - r0 = s.retval; - s.tmp_2 = r0; - r0 = s.arg0.fields["maximum"]; - s.tmp_4 = r0; - r0 = (s.tmp_2 + s.tmp_4); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["range"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_f_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "f"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["f"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["f"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1850; s.pc = 8; return s.tmp_2; } - } - case 8: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["sensorFn"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_isJacdacSensor_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "isJacdacSensor"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["isJacdacSensor"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["isJacdacSensor"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1851; s.pc = 9; return s.tmp_2; } - } - case 9: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["isJacdacSensor"] = (s.tmp_1); - s.tmp_2 = if_setupFn_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "setupFn"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["setupFn"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["setupFn"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1852; s.pc = 10; return s.tmp_2; } - } - case 10: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 != null); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = if_setupFn_1_mk(s); - s.tmp_3.arg0 = s.arg1; - if (!s.tmp_3.arg0.vtable.iface) { - setupLambda(s.tmp_3, pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "setupFn"), 1); - s.callLocIdx = 1853; s.pc = 11; return s.tmp_3; - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["setupFn"]; - if (s.tmp_3.fn == null) { setupLambda(s.tmp_3, s.tmp_3.arg0.fields["setupFn"], 1); s.callLocIdx = 1853; s.pc = 11; return s.tmp_3; } - else if (s.tmp_3.fn.isGetter) { s.tmp_3.stage2Call = true; s.callLocIdx = 1853; s.pc = 11; return s.tmp_3;; } - else { s.callLocIdx = 1853; s.pc = 11; return s.tmp_3; } - } - case 11: - r0 = s.retval; - case 1: - case 2: - r0 = undefined; + r0 = (s.tmp_0).fields["index"] = (s.tmp_1); + r0 = s.arg0.fields["tokens"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, s.tmp_2); return leave(s, r0) default: oops() } } } -Sensor_constructor__P4618.info = {"start":1372,"length":660,"line":20,"column":4,"endLine":40,"endColumn":5,"fileName":"sensors.ts","functionName":"inline","argumentNames":["this","opts"]} +parser_Parser_next__P6212.info = {"start":1154,"length":71,"line":41,"column":8,"endLine":43,"endColumn":9,"fileName":"exprparser.ts","functionName":"next","argumentNames":["this"]} -function Sensor_constructor__P4618_mk(s) { +function parser_Parser_next__P6212_mk(s) { checkStack(s.depth); return { - parent: s, fn: Sensor_constructor__P4618, depth: s.depth + 1, + parent: s, fn: parser_Parser_next__P6212, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_Interpreter_switchPage__P5914(s) { +function microcode_Interpreter_getExprValue__P6147(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9515,66 +9934,193 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tid___8210 = undefined; + s.kind___8226 = undefined; + s.param___8230 = undefined; + s.lookupVar___8234 = undefined; + s.lookupSensor___8242 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - s.tmp_0 = microcode_Interpreter_stopAllRules__P5913_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1746; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 2140; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + s.tid___8210 = (r0); + s.tmp_0 = r0 = s.tid___8210; + r0 = pxsim_pxtcore.switch_eq(213, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(212, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(211, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(210, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(220, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(221, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(224, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(225, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(222, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(223, s.tmp_0); + if (r0) { step = 10; continue; } + r0 = s.tmp_0; + { step = 11; continue; } case 1: + r0 = "/"; + { step = 16; continue; } + case 2: + r0 = "*"; + { step = 16; continue; } + case 3: + r0 = "-"; + { step = 16; continue; } + case 4: + r0 = "+"; + { step = 16; continue; } + case 5: + r0 = "=="; + { step = 16; continue; } + case 6: + r0 = "!="; + { step = 16; continue; } + case 7: + r0 = ">"; + { step = 16; continue; } + case 8: + r0 = ">="; + { step = 16; continue; } + case 9: + r0 = "<"; + { step = 16; continue; } + case 10: + r0 = "<="; + { step = 16; continue; } + case 11: + s.tmp_1 = microcode_getKind__P4431_mk(s); + s.tmp_1.arg0 = s.arg1; + s.callLocIdx = 2141; s.pc = 18; return s.tmp_1; + case 18: r0 = s.retval; - r0 = (s.arg0).fields["currentPage"] = (s.arg1); - r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_switchPage_inline__P7881); + s.kind___8226 = (r0); + s.tmp_0 = microcode_getParam__P4433_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 2142; s.pc = 19; return s.tmp_0; + case 19: + r0 = s.retval; + s.param___8230 = (r0); + r0 = pxsim_pxtcore_mkAction(1, lookupVar_inline__P8235); s.tmp_0 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["program"]; - r0 = r0.fields["pages"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["currentPage"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); - r0 = r0.fields["rules"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1748; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - r0 = pxsim_pxtrt.mkMap(); + s.lookupVar___8234 = (s.tmp_0); + r0 = pxsim_pxtcore_mkAction(1, lookupSensor_inline__P8243); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 3); - s.tmp_1 = microcode_Interpreter_addEvent__P4611_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1749; s.pc = 3; return s.tmp_1; - case 3: + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.lookupSensor___8242 = (s.tmp_0); + s.tmp_0 = r0 = s.kind___8226; + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 13; continue; } + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + if (r0) { step = 14; continue; } + r0 = s.tmp_0; + { step = 15; continue; } + case 12: + s.tmp_1 = lambda_2_mk(s); + s.tmp_1.argL = s.lookupSensor___8242; + s.tmp_1.arg0 = s.tid___8210; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 2144; s.pc = 20; return s.tmp_1; + case 20: r0 = s.retval; - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleClosures"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = microcode_Interpreter_switchPage_inline__P7898; - s.callLocIdx = 1751; s.pc = 4; return s.tmp_0; - case 4: + { step = 16; continue; } + case 13: + r0 = pxsim_numops.toString(s.param___8230); + { step = 16; continue; } + case 14: + s.tmp_2 = lambda_2_mk(s); + s.tmp_2.argL = s.lookupVar___8234; + s.tmp_2.arg0 = s.param___8230; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 2145; s.pc = 21; return s.tmp_2; + case 21: + r0 = s.retval; + { step = 16; continue; } + case 15: + s.tmp_3 = microcode_Interpreter_error__P4765_mk(s); + s.tmp_3.arg0 = s.arg0; + if ((s.kind___8226) && (s.kind___8226).vtable) { + setupResume(s, 23); + pxsim_String__stringConv(s.kind___8226); + checkResumeConsumed(); + return; + } else { s.retval = (s.kind___8226) + ""; } + case 23: + r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_String__concat("can't emit kind ", s.tmp_6); + s.tmp_5 = r0; + r0 = pxsim_String__concat(s.tmp_5, " for "); + s.tmp_4 = r0; + s.tmp_9 = microcode_getTid__P4194_mk(s); + s.tmp_9.arg0 = s.arg1; + s.callLocIdx = 2146; s.pc = 24; return s.tmp_9; + case 24: + r0 = s.retval; + s.tmp_8 = r0; + if ((s.tmp_8) && (s.tmp_8).vtable) { + setupResume(s, 25); + pxsim_String__stringConv(s.tmp_8); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_8) + ""; } + case 25: + r0 = s.retval; + s.tmp_7 = r0; + r0 = pxsim_String__concat(s.tmp_4, s.tmp_7); + s.tmp_3.arg1 = r0; + s.callLocIdx = 2147; s.pc = 22; return s.tmp_3; + case 22: r0 = s.retval; r0 = undefined; + { step = 16; continue; } + r0 = undefined; + case 16: return leave(s, r0) default: oops() } } } -microcode_Interpreter_switchPage__P5914.info = {"start":16393,"length":533,"line":468,"column":8,"endLine":480,"endColumn":9,"fileName":"interpreter.ts","functionName":"switchPage","argumentNames":["this","page"]} +microcode_Interpreter_getExprValue__P6147.info = {"start":27679,"length":1761,"line":764,"column":8,"endLine":809,"endColumn":9,"fileName":"interpreter.ts","functionName":"getExprValue","argumentNames":["this","expr"]} -function microcode_Interpreter_switchPage__P5914_mk(s) { +function microcode_Interpreter_getExprValue__P6147_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_switchPage__P5914, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_getExprValue__P6147, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tid___8210: undefined, + kind___8226: undefined, + param___8230: undefined, + lookupVar___8234: undefined, + lookupSensor___8242: undefined, arg0: undefined, arg1: undefined, } } @@ -9582,8 +10128,7 @@ function microcode_Interpreter_switchPage__P5914_mk(s) { - -function microcode_Interpreter_switchPage_inline__P7881(s) { +function lookupVar_inline__P8235(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9595,45 +10140,32 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleClosure__C5877_VT); + r0 = s.caps[0].fields["state"]; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.arg0); s.tmp_0 = r0; - s.tmp_1 = microcode_RuleClosure_constructor__P5893_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.arg1; - s.tmp_1.arg2 = s.arg0; - s.tmp_1.arg3 = s.caps[0]; - s.callLocIdx = 1747; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - r0 = s.caps[0].fields["ruleClosures"]; - s.tmp_2 = r0; - r0 = pxsim_Array__push(s.tmp_2, s.tmp_0); - r0 = undefined; + r0 = pxsim_numops.toString(s.tmp_0); return leave(s, r0) default: oops() } } } -microcode_Interpreter_switchPage_inline__P7881.info = {"start":16599,"length":101,"line":472,"column":63,"endLine":474,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["r","index"]} +lookupVar_inline__P8235.info = {"start":28656,"length":90,"line":790,"column":30,"endLine":792,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["v"]} -function microcode_Interpreter_switchPage_inline__P7881_mk(s) { +function lookupVar_inline__P8235_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_switchPage_inline__P7881, depth: s.depth + 1, + parent: s, fn: lookupVar_inline__P8235, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_Interpreter_switchPage_inline__P7898(s) { +function lookupSensor_inline__P8243(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9643,36 +10175,55 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.sensorTid___8245 = undefined; + s.val___8249 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleClosure_start__P5879_mk(s); + s.tmp_0 = microcode_getParam__P4433_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = true; - s.callLocIdx = 1750; s.pc = 1; return s.tmp_0; - case 1: + s.callLocIdx = 2143; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - r0 = undefined; + s.sensorTid___8245 = (r0); + r0 = s.caps[0].fields["sensors"]; + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.sensorTid___8245); + s.val___8249 = (r0); + r0 = (s.val___8249 !== undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_numops.toString(s.val___8249); + { step = 2; continue; } + case 1: + r0 = "0"; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_Interpreter_switchPage_inline__P7898.info = {"start":16895,"length":20,"line":479,"column":38,"endLine":479,"endColumn":58,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +lookupSensor_inline__P8243.info = {"start":28780,"length":206,"line":793,"column":33,"endLine":797,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["tid"]} -function microcode_Interpreter_switchPage_inline__P7898_mk(s) { +function lookupSensor_inline__P8243_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_switchPage_inline__P7898, depth: s.depth + 1, + parent: s, fn: lookupSensor_inline__P8243, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + sensorTid___8245: undefined, + val___8249: undefined, arg0: undefined, } } - -function microcode_RuleClosure_start__P5879(s) { +function microcode_getParam__P4433(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9682,75 +10233,301 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.time___7907 = undefined; + s.tid___8286 = undefined; + s.modEditor___8350 = undefined; + s.str___8353 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["actionRunning"]; + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1379; s.pc = 50; return s.tmp_0; + case 50: + r0 = s.retval; + s.tid___8286 = (r0); + s.tmp_1 = microcode_isConstant__P4415_mk(s); + s.tmp_1.arg0 = s.tid___8286; + s.callLocIdx = 1380; s.pc = 51; return s.tmp_1; + case 51: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - { step = 7; continue; } + r0 = (s.tid___8286 - 78); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + { step = 49; continue; } case 1: case 2: - s.tmp_1 = microcode_RuleClosure_getWakeTime__P5892_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1689; s.pc = 8; return s.tmp_1; - case 8: + s.tmp_4 = microcode_isPage__P5930_mk(s); + s.tmp_4.arg0 = s.tid___8286; + s.callLocIdx = 1381; s.pc = 52; return s.tmp_4; + case 52: r0 = s.retval; - s.time___7907 = (r0); - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); if (!r0) { step = 3; continue; } - r0 = s.tmp_0; - { step = 4; continue; } + r0 = (s.tid___8286 - 150); + s.tmp_5 = r0; + r0 = (s.tmp_5 + 1); + { step = 49; continue; } case 3: - r0 = (s.time___7907 > 0); case 4: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 5; continue; } - s.tmp_3 = microcode_RuleClosure_timerOrSequenceRule__P5884_mk(s); - s.tmp_3.arg0 = s.arg0; - s.callLocIdx = 1690; s.pc = 9; return s.tmp_3; - case 9: + s.tmp_7 = microcode_isAccelerometerEvent__P5925_mk(s); + s.tmp_7.arg0 = s.tid___8286; + s.callLocIdx = 1382; s.pc = 53; return s.tmp_7; + case 53: r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_numops_toBool(s.tmp_6); + if (!r0) { step = 5; continue; } + r0 = s.tmp_6; + { step = 6; continue; } case 5: + s.tmp_8 = microcode_isPressReleaseEvent__P5923_mk(s); + s.tmp_8.arg0 = s.tid___8286; + s.callLocIdx = 1383; s.pc = 54; return s.tmp_8; + case 54: + r0 = s.retval; case 6: + // jmp value (already in r0) + s.tmp_9 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_9); + if (!r0) { step = 7; continue; } + r0 = s.tid___8286; + { step = 49; continue; } case 7: - r0 = undefined; + case 8: + s.tmp_10 = r0 = s.tid___8286; + r0 = pxsim_pxtcore.switch_eq(255, s.tmp_10); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(254, s.tmp_10); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(19, s.tmp_10); + if (r0) { step = 13; continue; } + r0 = pxsim_pxtcore.switch_eq(48, s.tmp_10); + if (r0) { step = 14; continue; } + r0 = pxsim_pxtcore.switch_eq(95, s.tmp_10); + if (r0) { step = 15; continue; } + r0 = pxsim_pxtcore.switch_eq(173, s.tmp_10); + if (r0) { step = 16; continue; } + r0 = pxsim_pxtcore.switch_eq(20, s.tmp_10); + if (r0) { step = 17; continue; } + r0 = pxsim_pxtcore.switch_eq(49, s.tmp_10); + if (r0) { step = 18; continue; } + r0 = pxsim_pxtcore.switch_eq(96, s.tmp_10); + if (r0) { step = 19; continue; } + r0 = pxsim_pxtcore.switch_eq(174, s.tmp_10); + if (r0) { step = 20; continue; } + r0 = pxsim_pxtcore.switch_eq(21, s.tmp_10); + if (r0) { step = 21; continue; } + r0 = pxsim_pxtcore.switch_eq(50, s.tmp_10); + if (r0) { step = 22; continue; } + r0 = pxsim_pxtcore.switch_eq(97, s.tmp_10); + if (r0) { step = 23; continue; } + r0 = pxsim_pxtcore.switch_eq(175, s.tmp_10); + if (r0) { step = 24; continue; } + r0 = pxsim_pxtcore.switch_eq(180, s.tmp_10); + if (r0) { step = 25; continue; } + r0 = pxsim_pxtcore.switch_eq(176, s.tmp_10); + if (r0) { step = 26; continue; } + r0 = pxsim_pxtcore.switch_eq(206, s.tmp_10); + if (r0) { step = 27; continue; } + r0 = pxsim_pxtcore.switch_eq(207, s.tmp_10); + if (r0) { step = 28; continue; } + r0 = pxsim_pxtcore.switch_eq(208, s.tmp_10); + if (r0) { step = 29; continue; } + r0 = pxsim_pxtcore.switch_eq(98, s.tmp_10); + if (r0) { step = 30; continue; } + r0 = pxsim_pxtcore.switch_eq(101, s.tmp_10); + if (r0) { step = 31; continue; } + r0 = pxsim_pxtcore.switch_eq(111, s.tmp_10); + if (r0) { step = 32; continue; } + r0 = pxsim_pxtcore.switch_eq(99, s.tmp_10); + if (r0) { step = 33; continue; } + r0 = pxsim_pxtcore.switch_eq(100, s.tmp_10); + if (r0) { step = 34; continue; } + r0 = pxsim_pxtcore.switch_eq(110, s.tmp_10); + if (r0) { step = 35; continue; } + r0 = pxsim_pxtcore.switch_eq(204, s.tmp_10); + if (r0) { step = 36; continue; } + r0 = pxsim_pxtcore.switch_eq(205, s.tmp_10); + if (r0) { step = 37; continue; } + r0 = pxsim_pxtcore.switch_eq(104, s.tmp_10); + if (r0) { step = 38; continue; } + r0 = pxsim_pxtcore.switch_eq(102, s.tmp_10); + if (r0) { step = 39; continue; } + r0 = pxsim_pxtcore.switch_eq(103, s.tmp_10); + if (r0) { step = 40; continue; } + r0 = pxsim_pxtcore.switch_eq(105, s.tmp_10); + if (r0) { step = 41; continue; } + r0 = pxsim_pxtcore.switch_eq(106, s.tmp_10); + if (r0) { step = 42; continue; } + r0 = pxsim_pxtcore.switch_eq(107, s.tmp_10); + if (r0) { step = 43; continue; } + r0 = pxsim_pxtcore.switch_eq(83, s.tmp_10); + if (r0) { step = 44; continue; } + r0 = pxsim_pxtcore.switch_eq(84, s.tmp_10); + if (r0) { step = 45; continue; } + r0 = pxsim_pxtcore.switch_eq(86, s.tmp_10); + if (r0) { step = 46; continue; } + r0 = pxsim_pxtcore.switch_eq(85, s.tmp_10); + if (r0) { step = 47; continue; } + r0 = s.tmp_10; + { step = 48; continue; } + case 9: + case 10: + s.modEditor___8350 = (s.arg0); + s.tmp_0 = if_num_1_mk(s); + s.tmp_1 = microcode_DigitEditor__C4559_v0_1_mk(s); + s.tmp_1.arg0 = s.modEditor___8350; + if (!checkSubtype(s.tmp_1.arg0, microcode_DigitEditor__C4559_VT)) failedCast(s.tmp_1.arg0, microcode_DigitEditor__C4559_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.getField; + s.pc = 56; return s.tmp_1; + case 56: + r0 = s.retval; + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "num"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["num"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["num"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 1384; s.pc = 55; return s.tmp_0; } + } + case 55: + r0 = s.retval; + s.str___8353 = (r0); + s.tmp_1 = r0 = s.str___8353; + r0 = pxsim_String_.mkEmpty(); + s.tmp_2 = r0; + r0 = (s.tmp_1 == s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + r0 = 0; + { step = 12; continue; } + case 11: + r0 = pxsim_String_.toNumber(s.str___8353); + case 12: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; + { step = 49; continue; } + case 13: + case 14: + case 15: + case 16: + r0 = "cup_x"; + { step = 49; continue; } + case 17: + case 18: + case 19: + case 20: + r0 = "cup_y"; + { step = 49; continue; } + case 21: + case 22: + case 23: + case 24: + r0 = "cup_z"; + { step = 49; continue; } + case 25: + r0 = 16; + { step = 49; continue; } + case 26: + r0 = 17; + { step = 49; continue; } + case 27: + r0 = 27; + { step = 49; continue; } + case 28: + r0 = 22; + { step = 49; continue; } + case 29: + r0 = 18; + { step = 49; continue; } + case 30: + case 31: + case 32: + r0 = 2; + { step = 49; continue; } + case 33: + case 34: + case 35: + r0 = 1; + { step = 49; continue; } + case 36: + r0 = 1; + { step = 49; continue; } + case 37: + r0 = 2; + { step = 49; continue; } + case 38: + r0 = 268435251; + { step = 49; continue; } + case 39: + r0 = 268435249; + { step = 49; continue; } + case 40: + r0 = 268435250; + { step = 49; continue; } + case 41: + r0 = 268435248; + { step = 49; continue; } + case 42: + r0 = 268435252; + { step = 49; continue; } + case 43: + r0 = 268435258; + { step = 49; continue; } + case 44: + r0 = 250; + { step = 49; continue; } + case 45: + r0 = 1000; + { step = 49; continue; } + case 46: + r0 = 5000; + { step = 49; continue; } + case 47: + r0 = -1000; + { step = 49; continue; } + case 48: + r0 = s.tid___8286; + case 49: return leave(s, r0) default: oops() } } } -microcode_RuleClosure_start__P5879.info = {"start":2639,"length":189,"line":86,"column":8,"endLine":90,"endColumn":9,"fileName":"interpreter.ts","functionName":"start","argumentNames":["this","timer"]} +microcode_getParam__P4433.info = {"start":28576,"length":3327,"line":857,"column":4,"endLine":934,"endColumn":5,"fileName":"tiles.ts","functionName":"getParam","argumentNames":["tile"]} -function microcode_RuleClosure_start__P5879_mk(s) { +function microcode_getParam__P4433_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_start__P5879, depth: s.depth + 1, + parent: s, fn: microcode_getParam__P4433, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - time___7907: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tid___8286: undefined, + modEditor___8350: undefined, + str___8353: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_RuleClosure_timerOrSequenceRule__P5884(s) { +function microcode_DigitEditor_getField__P4561(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9765,84 +10542,25 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["backgroundActive"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_Interpreter_error__P4614_mk(s); - r0 = s.arg0.fields["interp"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_3 = r0; - if ((s.tmp_3) && (s.tmp_3).vtable) { - setupResume(s, 9); - pxsim_String__stringConv(s.tmp_3); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_3) + ""; } - case 9: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_String__concat("trying to spawn another background fiber for ", s.tmp_2); - s.tmp_1.arg1 = r0; - s.callLocIdx = 1705; s.pc = 8; return s.tmp_1; - case 8: - r0 = s.retval; - case 1: - case 2: - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["actuators"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - { step = 7; continue; } - case 3: - case 4: - r0 = s.arg0.fields["actionRunning"]; - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 5; continue; } - { step = 7; continue; } - case 5: - case 6: - r0 = (s.arg0).fields["actionRunning"] = (true); - r0 = pxsim_pxtcore_mkAction(1, microcode_RuleClosure_timerOrSequenceRule_inline__P7941); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = control_runInBackground__P2442_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1710; s.pc = 10; return s.tmp_1; - case 10: - r0 = s.retval; - case 7: - r0 = undefined; + if (!checkSubtype(r0, microcode_DigitEditor__C4559_VT)) failedCast(r0, microcode_DigitEditor__C4559_VT); + r0 = s.arg0.fields["field"]; return leave(s, r0) default: oops() } } } -microcode_RuleClosure_timerOrSequenceRule__P5884.info = {"start":5322,"length":1721,"line":159,"column":8,"endLine":201,"endColumn":9,"fileName":"interpreter.ts","functionName":"timerOrSequenceRule","argumentNames":["this"]} +microcode_DigitEditor_getField__P4561.info = {"start":3038,"length":52,"line":106,"column":8,"endLine":108,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getField","argumentNames":["this"]} -function microcode_RuleClosure_timerOrSequenceRule__P5884_mk(s) { +function microcode_DigitEditor_getField__P4561_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_timerOrSequenceRule__P5884, depth: s.depth + 1, + parent: s, fn: microcode_DigitEditor_getField__P4561, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, } } - -function microcode_RuleClosure_timerOrSequenceRule_inline__P7941(s) { +function microcode_isPressReleaseEvent__P5923(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -9852,160 +10570,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.actionKind___7980 = undefined; - r0 = (s.caps[0]).fields["backgroundActive"] = (true); - case 1: - r0 = s.caps[0].fields["actionRunning"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - r0 = s.caps[0].fields["wakeTime"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 > 0); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 6; continue; } - r0 = s.caps[0].fields["wakeTime"]; - s.tmp_3 = r0; - setupResume(s, 15); - pxsim.basic.pause(s.tmp_3); - checkResumeConsumed(); - return; - case 15: - r0 = s.retval; - r0 = (s.caps[0]).fields["wakeTime"] = (0); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 4); - r0 = s.caps[0].fields["index"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ruleIndex", s.tmp_1); - s.tmp_2 = microcode_Interpreter_addEvent__P4611_mk(s); - r0 = s.caps[0].fields["interp"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - s.callLocIdx = 1706; s.pc = 16; return s.tmp_2; - case 16: - r0 = s.retval; - r0 = (s.caps[0]).fields["timerGoAhead"] = (false); - case 2: - r0 = s.caps[0].fields["actionRunning"]; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (70 <= s.arg0); s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 3; continue; } + if (r0) { step = 1; continue; } r0 = s.tmp_0; - { step = 4; continue; } - case 3: - r0 = s.caps[0].fields["timerGoAhead"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 5; continue; } - setupResume(s, 17); - pxsim.basic.pause(1); - checkResumeConsumed(); - return; - case 17: - r0 = s.retval; { step = 2; continue; } - case 5: - case 6: - case 7: - r0 = s.caps[0].fields["actionRunning"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - { step = 14; continue; } - case 8: - case 9: - s.tmp_3 = microcode_RuleClosure_runAction__P5891_mk(s); - s.tmp_3.arg0 = s.caps[0]; - s.callLocIdx = 1707; s.pc = 18; return s.tmp_3; - case 18: - r0 = s.retval; - s.tmp_0 = microcode_RuleClosure_getActionKind__P5888_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1708; s.pc = 19; return s.tmp_0; - case 19: - r0 = s.retval; - s.actionKind___7980 = (r0); - r0 = (s.actionKind___7980 === 1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 10; continue; } - s.tmp_1 = r0 = s.caps[0]; - r0 = s.tmp_1.fields["modifierIndex"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["modifierIndex"] = (s.tmp_2); - { step = 11; continue; } - case 10: - s.tmp_0 = r0 = s.caps[0]; - r0 = s.caps[0].fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["modifierIndex"] = (s.tmp_1); - case 11: - r0 = s.caps[0].fields["actionRunning"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); + case 1: + r0 = (s.arg0 <= 77); + case 2: + // jmp value (already in r0) s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 12; continue; } - { step = 14; continue; } - case 12: - case 13: - s.tmp_3 = microcode_RuleClosure_checkForLoopFinish__P5885_mk(s); - s.tmp_3.arg0 = s.caps[0]; - s.callLocIdx = 1709; s.pc = 20; return s.tmp_3; - case 20: - r0 = s.retval; - setupResume(s, 21); - pxsim.basic.pause(5); - checkResumeConsumed(); - return; - case 21: - r0 = s.retval; - { step = 1; continue; } - case 14: - r0 = (s.caps[0]).fields["backgroundActive"] = (false); - r0 = undefined; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_RuleClosure_timerOrSequenceRule_inline__P7941.info = {"start":5800,"length":1232,"line":170,"column":36,"endLine":200,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":[]} +microcode_isPressReleaseEvent__P5923.info = {"start":8732,"length":172,"line":272,"column":4,"endLine":277,"endColumn":5,"fileName":"tiles.ts","functionName":"isPressReleaseEvent","argumentNames":["tidEnum"]} -function microcode_RuleClosure_timerOrSequenceRule_inline__P7941_mk(s) { +function microcode_isPressReleaseEvent__P5923_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_timerOrSequenceRule_inline__P7941, depth: s.depth + 1, + parent: s, fn: microcode_isPressReleaseEvent__P5923, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - actionKind___7980: undefined, + arg0: undefined, } } - -function microcode_RuleClosure_checkForLoopFinish__P5885(s) { +function microcode_isAccelerometerEvent__P5925(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10015,186 +10614,64 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.m___8021 = undefined; - s.loopBound___8043 = undefined; - s.wake___8074 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["actionRunning"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (90 <= s.arg0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 15; continue; } + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = (s.arg0 <= 94); case 2: - setupResume(s, 16); - pxsim.control.waitMicros(50000); - checkResumeConsumed(); - return; - case 16: - r0 = s.retval; - r0 = s.arg0.fields["modifierIndex"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_4 = r0; - r0 = s.arg0.fields["modifierIndex"]; - s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); - s.m___8021 = (r0); - s.tmp_2 = microcode_getTid__P4041_mk(s); - s.tmp_2.arg0 = s.m___8021; - s.callLocIdx = 1711; s.pc = 17; return s.tmp_2; - case 17: - r0 = s.retval; + // jmp value (already in r0) s.tmp_1 = r0; - r0 = (s.tmp_1 == 178); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = s.arg0.fields["modifierIndex"]; - s.tmp_4 = r0; - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_7 = r0; - r0 = pxsim_Array__length(s.tmp_7); - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = (s.tmp_4 == s.tmp_5); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); + r0 = pxsim_numops_toBool(s.tmp_1); if (!r0) { step = 3; continue; } - r0 = (s.arg0).fields["modifierIndex"] = (0); + r0 = s.tmp_1; { step = 6; continue; } case 3: - s.tmp_0 = microcode_Interpreter_constantFold__P4615_mk(s); - r0 = s.arg0.fields["interp"]; - s.tmp_0.arg0 = r0; - s.tmp_1 = helpers_arraySlice__P2144_mk(s); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["modifierIndex"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = undefined; - s.callLocIdx = 1712; s.pc = 19; return s.tmp_1; - case 19: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = 0; - s.callLocIdx = 1713; s.pc = 18; return s.tmp_0; - case 18: - r0 = s.retval; - s.loopBound___8043 = (r0); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["loopIndex"]; + r0 = (108 <= s.arg0); s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["loopIndex"] = (s.tmp_1); - r0 = s.arg0.fields["loopIndex"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 >= s.loopBound___8043); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_2 = microcode_RuleClosure_kill__P5880_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1714; s.pc = 20; return s.tmp_2; - case 20: - r0 = s.retval; + r0 = pxsim_numops_toBool(s.tmp_2); + if (r0) { step = 4; continue; } + r0 = s.tmp_2; { step = 5; continue; } case 4: - r0 = (s.arg0).fields["modifierIndex"] = (0); + r0 = (s.arg0 <= 109); case 5: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; case 6: - case 7: - case 8: - { step = 14; continue; } - case 9: - s.tmp_0 = microcode_RuleClosure_kill__P5880_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1715; s.pc = 21; return s.tmp_0; - case 21: - r0 = s.retval; - s.tmp_2 = microcode_RuleDefn_sensor__P4049_mk(s); - r0 = s.arg0.fields["rule"]; - s.tmp_2.arg0 = r0; - s.callLocIdx = 1716; s.pc = 22; return s.tmp_2; - case 22: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 == 14); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 12; continue; } - s.tmp_3 = microcode_RuleClosure_getWakeTime__P5892_mk(s); - s.tmp_3.arg0 = s.arg0; - s.callLocIdx = 1717; s.pc = 23; return s.tmp_3; - case 23: - r0 = s.retval; - s.wake___8074 = (r0); - r0 = (s.wake___8074 > 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 10; continue; } - r0 = (s.arg0).fields["actionRunning"] = (true); - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - r0 = undefined; + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = s.tmp_4; return leave(s, r0) default: oops() } } } -microcode_RuleClosure_checkForLoopFinish__P5885.info = {"start":7053,"length":1486,"line":203,"column":8,"endLine":238,"endColumn":9,"fileName":"interpreter.ts","functionName":"checkForLoopFinish","argumentNames":["this"]} +microcode_isAccelerometerEvent__P5925.info = {"start":9210,"length":285,"line":291,"column":4,"endLine":298,"endColumn":5,"fileName":"tiles.ts","functionName":"isAccelerometerEvent","argumentNames":["tidEnum"]} -function microcode_RuleClosure_checkForLoopFinish__P5885_mk(s) { +function microcode_isAccelerometerEvent__P5925_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_checkForLoopFinish__P5885, depth: s.depth + 1, + parent: s, fn: microcode_isAccelerometerEvent__P5925, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - m___8021: undefined, - loopBound___8043: undefined, - wake___8074: undefined, arg0: undefined, } } - -function microcode_RuleDefn_sensor__P4049(s) { +function microcode_isPage__P5930(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10208,91 +10685,37 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - r0 = s.arg0.fields["sensors"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); + r0 = (150 <= s.arg0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = 10; - { step = 3; continue; } + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = (s.arg0 <= 154); case 2: - r0 = s.arg0.fields["sensors"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_3, 0); - case 3: - return leaveAccessor(s, r0) + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; + return leave(s, r0) default: oops() } } } -microcode_RuleDefn_sensor__P4049.info = {"start":2258,"length":134,"line":81,"column":8,"endLine":84,"endColumn":9,"fileName":"language.ts","functionName":"sensor","argumentNames":["this"]} -microcode_RuleDefn_sensor__P4049.isGetter = true; +microcode_isPage__P5930.info = {"start":10632,"length":161,"line":342,"column":4,"endLine":347,"endColumn":5,"fileName":"tiles.ts","functionName":"isPage","argumentNames":["tidEnum"]} -function microcode_RuleDefn_sensor__P4049_mk(s) { +function microcode_isPage__P5930_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleDefn_sensor__P4049, depth: s.depth + 1, + parent: s, fn: microcode_isPage__P5930, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, -} } - - - - - -function microcode_RuleClosure_kill__P5880(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = (s.arg0).fields["wakeTime"] = (0); - r0 = (s.arg0).fields["actionRunning"] = (false); - r0 = (s.arg0).fields["modifierIndex"] = (0); - r0 = (s.arg0).fields["loopIndex"] = (0); - setupResume(s, 1); - pxsim.basic.pause(0); - checkResumeConsumed(); - return; - case 1: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_RuleClosure_kill__P5880.info = {"start":2838,"length":300,"line":92,"column":8,"endLine":100,"endColumn":9,"fileName":"interpreter.ts","functionName":"kill","argumentNames":["this"]} - -function microcode_RuleClosure_kill__P5880_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleClosure_kill__P5880, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, } } - -function helpers_arraySlice__P2144(s) { +function microcode_isConstant__P4415(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10302,114 +10725,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.res___8103 = undefined; - s.len___8105 = undefined; - s.i___8139 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_Array__mk(); - s.res___8103 = (r0); - r0 = pxsim_Array__length(s.arg0); - s.len___8105 = (r0); - r0 = (s.arg1 === undefined); + r0 = (78 <= s.arg0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.arg1 = (0); - { step = 4; continue; } + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = (s.arg1 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = Math_max__P2159_mk(s); - r0 = (s.len___8105 + s.arg1); - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = 0; - s.callLocIdx = 10; s.pc = 16; return s.tmp_1; - case 16: - r0 = s.retval; - s.arg1 = (r0); + r0 = (s.arg0 <= 82); case 2: - case 3: - case 4: - r0 = (s.arg1 > s.len___8105); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = s.res___8103; - { step = 15; continue; } - case 5: - case 6: - r0 = (s.arg2 === undefined); + // jmp value (already in r0) s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 7; continue; } - s.arg2 = (s.len___8105); - { step = 10; continue; } - case 7: - r0 = (s.arg2 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - r0 = (s.len___8105 + s.arg2); - s.arg2 = (r0); - case 8: - case 9: - case 10: - r0 = (s.arg2 > s.len___8105); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 11; continue; } - s.arg2 = (s.len___8105); - case 11: - case 12: - s.i___8139 = (s.arg1); - case 13: - r0 = (s.i___8139 < s.arg2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - s.tmp_1 = r0 = s.res___8103; - r0 = pxsim_Array__getAt(s.arg0, s.i___8139); - s.tmp_2 = r0; - r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); - r0 = (s.i___8139 + 1); - s.i___8139 = (r0); - { step = 13; continue; } - case 14: - r0 = s.res___8103; - case 15: + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -helpers_arraySlice__P2144.info = {"start":9027,"length":690,"line":303,"column":4,"endLine":328,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arraySlice","argumentNames":["arr","start","end"]} +microcode_isConstant__P4415.info = {"start":9617,"length":156,"line":304,"column":4,"endLine":308,"endColumn":5,"fileName":"tiles.ts","functionName":"isConstant","argumentNames":["tidEnum"]} -function helpers_arraySlice__P2144_mk(s) { +function microcode_isConstant__P4415_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arraySlice__P2144, depth: s.depth + 1, + parent: s, fn: microcode_isConstant__P4415, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - res___8103: undefined, - len___8105: undefined, - i___8139: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_Interpreter_constantFold__P4615(s) { +function microcode_getKind__P4431(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10419,89 +10769,39 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.result___8157 = undefined; - s.t___8160 = undefined; - s.unnamed66___U2 = undefined; - s.unnamed67___U3 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - s.result___8157 = (s.arg2); - s.t___8160 = (undefined); - s.unnamed66___U2 = (s.arg1); - s.unnamed67___U3 = (0); - case 1: - s.tmp_0 = r0 = s.unnamed67___U3; - r0 = pxsim_Array__length(s.unnamed66___U2); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.unnamed66___U2, s.unnamed67___U3); - s.t___8160 = (r0); - s.tmp_4 = microcode_getKind__P4280_mk(s); - s.tmp_4.arg0 = s.t___8160; - s.callLocIdx = 1836; s.pc = 5; return s.tmp_4; - case 5: + s.tmp_0 = microcode_getKindTid__P4432_mk(s); + s.tmp_1 = microcode_getTid__P4194_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1376; s.pc = 2; return s.tmp_1; + case 2: r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_3 == 1); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 2; continue; } - s.tmp_5 = r0 = s.result___8157; - s.tmp_7 = microcode_getParam__P4282_mk(s); - s.tmp_7.arg0 = s.t___8160; - s.callLocIdx = 1837; s.pc = 6; return s.tmp_7; - case 6: + s.tmp_0.arg0 = r0; + s.callLocIdx = 1377; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - s.tmp_6 = r0; - r0 = (s.tmp_5 + s.tmp_6); - s.result___8157 = (r0); - case 2: - case 3: - r0 = (s.unnamed67___U3 + 1); - s.unnamed67___U3 = (r0); - { step = 1; continue; } - case 4: - s.unnamed66___U2 = (undefined); - r0 = s.result___8157; return leave(s, r0) default: oops() } } } -microcode_Interpreter_constantFold__P4615.info = {"start":28150,"length":241,"line":758,"column":8,"endLine":764,"endColumn":9,"fileName":"interpreter.ts","functionName":"constantFold","argumentNames":["this","tiles","defl"]} +microcode_getKind__P4431.info = {"start":26099,"length":83,"line":790,"column":4,"endLine":792,"endColumn":5,"fileName":"tiles.ts","functionName":"getKind","argumentNames":["tile"]} -function microcode_Interpreter_constantFold__P4615_mk(s) { +function microcode_getKind__P4431_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_constantFold__P4615, depth: s.depth + 1, + parent: s, fn: microcode_getKind__P4431, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - result___8157: undefined, - t___8160: undefined, - unnamed66___U2: undefined, - unnamed67___U3: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_getParam__P4282(s) { +function microcode_getKindTid__P4432(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10511,332 +10811,209 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___8175 = undefined; - s.modEditor___8248 = undefined; - s.str___8251 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1101; s.pc = 53; return s.tmp_0; - case 53: - r0 = s.retval; - s.tid___8175 = (r0); - s.tmp_1 = microcode_isModifierConstant__P4259_mk(s); - s.tmp_1.arg0 = s.tid___8175; - s.callLocIdx = 1102; s.pc = 54; return s.tmp_1; + s.tmp_1 = microcode_isConstant__P4415_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1378; s.pc = 54; return s.tmp_1; case 54: r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = (s.tid___8175 - 155); - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - { step = 52; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = (s.arg0 == 255); case 2: - s.tmp_4 = microcode_isFilterConstant__P4258_mk(s); - s.tmp_4.arg0 = s.tid___8175; - s.callLocIdx = 1103; s.pc = 55; return s.tmp_4; - case 55: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); if (!r0) { step = 3; continue; } - r0 = (s.tid___8175 - 78); - s.tmp_5 = r0; - r0 = (s.tmp_5 + 1); - { step = 52; continue; } + r0 = s.tmp_2; + { step = 4; continue; } case 3: + r0 = (s.arg0 == 254); case 4: - s.tmp_7 = microcode_isPage__P5741_mk(s); - s.tmp_7.arg0 = s.tid___8175; - s.callLocIdx = 1104; s.pc = 56; return s.tmp_7; - case 56: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); if (!r0) { step = 5; continue; } - r0 = (s.tid___8175 - 150); - s.tmp_8 = r0; - r0 = (s.tmp_8 + 1); - { step = 52; continue; } + r0 = 1; + { step = 53; continue; } case 5: case 6: - s.tmp_10 = microcode_isLedColor__P5742_mk(s); - s.tmp_10.arg0 = s.tid___8175; - s.callLocIdx = 1105; s.pc = 57; return s.tmp_10; - case 57: - r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_9); - if (!r0) { step = 7; continue; } - r0 = "led_solid"; - { step = 52; continue; } - case 7: - case 8: - s.tmp_12 = microcode_isCarModifier__P5744_mk(s); - s.tmp_12.arg0 = s.tid___8175; - s.callLocIdx = 1106; s.pc = 58; return s.tmp_12; - case 58: - r0 = s.retval; - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 9; continue; } - r0 = 11; - { step = 52; continue; } - case 9: - case 10: - s.tmp_14 = microcode_isAccelerometerEvent__P5735_mk(s); - s.tmp_14.arg0 = s.tid___8175; - s.callLocIdx = 1107; s.pc = 59; return s.tmp_14; - case 59: - r0 = s.retval; - s.tmp_13 = r0; - r0 = pxsim_numops_toBool(s.tmp_13); - if (!r0) { step = 11; continue; } - r0 = s.tmp_13; - { step = 12; continue; } - case 11: - s.tmp_15 = microcode_isPressReleaseEvent__P5734_mk(s); - s.tmp_15.arg0 = s.tid___8175; - s.callLocIdx = 1108; s.pc = 60; return s.tmp_15; - case 60: - r0 = s.retval; - case 12: - // jmp value (already in r0) - s.tmp_16 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_16); - if (!r0) { step = 13; continue; } - r0 = s.tid___8175; - { step = 52; continue; } - case 13: - case 14: - s.tmp_17 = r0 = s.tid___8175; - r0 = pxsim_pxtcore.switch_eq(255, s.tmp_17); + s.tmp_4 = r0 = s.arg0; + r0 = pxsim_pxtcore.switch_eq(98, s.tmp_4); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(99, s.tmp_4); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(100, s.tmp_4); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(101, s.tmp_4); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(90, s.tmp_4); + if (r0) { step = 11; continue; } + r0 = pxsim_pxtcore.switch_eq(91, s.tmp_4); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq(92, s.tmp_4); + if (r0) { step = 13; continue; } + r0 = pxsim_pxtcore.switch_eq(93, s.tmp_4); + if (r0) { step = 14; continue; } + r0 = pxsim_pxtcore.switch_eq(94, s.tmp_4); if (r0) { step = 15; continue; } - r0 = pxsim_pxtcore.switch_eq(19, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(109, s.tmp_4); + if (r0) { step = 16; continue; } + r0 = pxsim_pxtcore.switch_eq(108, s.tmp_4); + if (r0) { step = 17; continue; } + r0 = pxsim_pxtcore.switch_eq(87, s.tmp_4); if (r0) { step = 18; continue; } - r0 = pxsim_pxtcore.switch_eq(48, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(88, s.tmp_4); if (r0) { step = 19; continue; } - r0 = pxsim_pxtcore.switch_eq(95, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(110, s.tmp_4); if (r0) { step = 20; continue; } - r0 = pxsim_pxtcore.switch_eq(173, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(111, s.tmp_4); if (r0) { step = 21; continue; } - r0 = pxsim_pxtcore.switch_eq(20, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(73, s.tmp_4); if (r0) { step = 22; continue; } - r0 = pxsim_pxtcore.switch_eq(49, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(74, s.tmp_4); if (r0) { step = 23; continue; } - r0 = pxsim_pxtcore.switch_eq(96, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(77, s.tmp_4); if (r0) { step = 24; continue; } - r0 = pxsim_pxtcore.switch_eq(174, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(70, s.tmp_4); if (r0) { step = 25; continue; } - r0 = pxsim_pxtcore.switch_eq(21, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(71, s.tmp_4); if (r0) { step = 26; continue; } - r0 = pxsim_pxtcore.switch_eq(50, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(72, s.tmp_4); if (r0) { step = 27; continue; } - r0 = pxsim_pxtcore.switch_eq(97, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(27, s.tmp_4); if (r0) { step = 28; continue; } - r0 = pxsim_pxtcore.switch_eq(175, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(18, s.tmp_4); if (r0) { step = 29; continue; } - r0 = pxsim_pxtcore.switch_eq(98, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(22, s.tmp_4); if (r0) { step = 30; continue; } - r0 = pxsim_pxtcore.switch_eq(101, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(16, s.tmp_4); if (r0) { step = 31; continue; } - r0 = pxsim_pxtcore.switch_eq(111, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(17, s.tmp_4); if (r0) { step = 32; continue; } - r0 = pxsim_pxtcore.switch_eq(99, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(25, s.tmp_4); if (r0) { step = 33; continue; } - r0 = pxsim_pxtcore.switch_eq(100, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(26, s.tmp_4); if (r0) { step = 34; continue; } - r0 = pxsim_pxtcore.switch_eq(110, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(176, s.tmp_4); if (r0) { step = 35; continue; } - r0 = pxsim_pxtcore.switch_eq(204, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(180, s.tmp_4); if (r0) { step = 36; continue; } - r0 = pxsim_pxtcore.switch_eq(205, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(206, s.tmp_4); if (r0) { step = 37; continue; } - r0 = pxsim_pxtcore.switch_eq(104, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(207, s.tmp_4); if (r0) { step = 38; continue; } - r0 = pxsim_pxtcore.switch_eq(102, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(208, s.tmp_4); if (r0) { step = 39; continue; } - r0 = pxsim_pxtcore.switch_eq(103, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(19, s.tmp_4); if (r0) { step = 40; continue; } - r0 = pxsim_pxtcore.switch_eq(105, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(20, s.tmp_4); if (r0) { step = 41; continue; } - r0 = pxsim_pxtcore.switch_eq(106, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(21, s.tmp_4); if (r0) { step = 42; continue; } - r0 = pxsim_pxtcore.switch_eq(107, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(48, s.tmp_4); if (r0) { step = 43; continue; } - r0 = pxsim_pxtcore.switch_eq(83, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(49, s.tmp_4); if (r0) { step = 44; continue; } - r0 = pxsim_pxtcore.switch_eq(84, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(50, s.tmp_4); if (r0) { step = 45; continue; } - r0 = pxsim_pxtcore.switch_eq(86, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(95, s.tmp_4); if (r0) { step = 46; continue; } - r0 = pxsim_pxtcore.switch_eq(85, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(96, s.tmp_4); if (r0) { step = 47; continue; } - r0 = pxsim_pxtcore.switch_eq(53, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(97, s.tmp_4); if (r0) { step = 48; continue; } - r0 = pxsim_pxtcore.switch_eq(54, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(173, s.tmp_4); if (r0) { step = 49; continue; } - r0 = pxsim_pxtcore.switch_eq(55, s.tmp_17); + r0 = pxsim_pxtcore.switch_eq(174, s.tmp_4); if (r0) { step = 50; continue; } - r0 = s.tmp_17; - { step = 51; continue; } + r0 = pxsim_pxtcore.switch_eq(175, s.tmp_4); + if (r0) { step = 51; continue; } + r0 = s.tmp_4; + { step = 52; continue; } + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: case 15: - s.modEditor___8248 = (s.arg0); - s.tmp_0 = if_num_1_mk(s); - s.tmp_1 = microcode_DecimalEditor__C4417_v0_1_mk(s); - s.tmp_1.arg0 = s.modEditor___8248; - if (!checkSubtype(s.tmp_1.arg0, microcode_DecimalEditor__C4417_VT)) failedCast(s.tmp_1.arg0, microcode_DecimalEditor__C4417_VT); - s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.getField; - s.pc = 62; return s.tmp_1; - case 62: - r0 = s.retval; - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "num"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["num"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["num"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1109; s.pc = 61; return s.tmp_0; } - } - case 61: - r0 = s.retval; - s.str___8251 = (r0); - s.tmp_1 = r0 = s.str___8251; - r0 = pxsim_String_.mkEmpty(); - s.tmp_2 = r0; - r0 = (s.tmp_1 == s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 16; continue; } - r0 = 0; - { step = 17; continue; } case 16: - r0 = pxsim_String_.toNumber(s.str___8251); case 17: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; - { step = 52; continue; } case 18: case 19: case 20: case 21: - r0 = "cup_x"; - { step = 52; continue; } case 22: case 23: case 24: case 25: - r0 = "cup_y"; - { step = 52; continue; } case 26: case 27: + r0 = 3; + { step = 53; continue; } case 28: case 29: - r0 = "cup_z"; - { step = 52; continue; } case 30: case 31: case 32: - r0 = 1; - { step = 52; continue; } case 33: case 34: case 35: - r0 = 0; - { step = 52; continue; } case 36: - r0 = 0; - { step = 52; continue; } case 37: - r0 = 1; - { step = 52; continue; } case 38: - r0 = 268435251; - { step = 52; continue; } case 39: - r0 = 268435249; - { step = 52; continue; } + r0 = 4; + { step = 53; continue; } case 40: - r0 = 268435250; - { step = 52; continue; } case 41: - r0 = 268435248; - { step = 52; continue; } case 42: - r0 = 268435252; - { step = 52; continue; } case 43: - r0 = 268435258; - { step = 52; continue; } case 44: - r0 = 250; - { step = 52; continue; } case 45: - r0 = 1000; - { step = 52; continue; } case 46: - r0 = 5000; - { step = 52; continue; } case 47: - r0 = -1000; - { step = 52; continue; } case 48: - r0 = 6; - { step = 52; continue; } case 49: case 50: - r0 = 2; - { step = 52; continue; } case 51: - r0 = s.tid___8175; + r0 = 2; + { step = 53; continue; } case 52: + r0 = undefined; + case 53: return leave(s, r0) default: oops() } } } -microcode_getParam__P4282.info = {"start":27508,"length":3187,"line":805,"column":4,"endLine":879,"endColumn":5,"fileName":"tiles.ts","functionName":"getParam","argumentNames":["tile"]} +microcode_getKindTid__P4432.info = {"start":26188,"length":2382,"line":794,"column":4,"endLine":855,"endColumn":5,"fileName":"tiles.ts","functionName":"getKindTid","argumentNames":["tid"]} -function microcode_getParam__P4282_mk(s) { +function microcode_getKindTid__P4432_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getParam__P4282, depth: s.depth + 1, + parent: s, fn: microcode_getKindTid__P4432, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tid___8175: undefined, - modEditor___8248: undefined, - str___8251: undefined, arg0: undefined, } } - -function microcode_DecimalEditor_getField__P4420(s) { +function microcode_RuleClosure_atLoop__P6105(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10851,26 +11028,64 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalEditor__C4417_VT)) failedCast(r0, microcode_DecimalEditor__C4417_VT); - r0 = s.arg0.fields["field"]; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_5 = microcode_getTid__P4194_mk(s); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_6 = r0; + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_7 = r0; + r0 = pxsim_Array__getAt(s.tmp_6, s.tmp_7); + s.tmp_5.arg0 = r0; + s.callLocIdx = 2033; s.pc = 3; return s.tmp_5; + case 3: + r0 = s.retval; + s.tmp_4 = r0; + r0 = (s.tmp_4 == 178); + case 2: + // jmp value (already in r0) + s.tmp_8 = r0; + r0 = s.tmp_8; return leave(s, r0) default: oops() } } } -microcode_DecimalEditor_getField__P4420.info = {"start":3038,"length":52,"line":105,"column":8,"endLine":107,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getField","argumentNames":["this"]} +microcode_RuleClosure_atLoop__P6105.info = {"start":6937,"length":239,"line":207,"column":8,"endLine":213,"endColumn":9,"fileName":"interpreter.ts","functionName":"atLoop","argumentNames":["this"]} -function microcode_DecimalEditor_getField__P4420_mk(s) { +function microcode_RuleClosure_atLoop__P6105_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalEditor_getField__P4420, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_atLoop__P6105, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, arg0: undefined, } } - -function microcode_isPressReleaseEvent__P5734(s) { +function microcode_getTid__P4194(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10884,38 +11099,35 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (70 <= s.arg0); + r0 = s.arg0; + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["tid"]; + { step = 3; continue; } case 1: - r0 = (s.arg0 <= 77); case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = s.arg0; + case 3: return leave(s, r0) default: oops() } } } -microcode_isPressReleaseEvent__P5734.info = {"start":8404,"length":172,"line":265,"column":4,"endLine":270,"endColumn":5,"fileName":"tiles.ts","functionName":"isPressReleaseEvent","argumentNames":["tidEnum"]} +microcode_getTid__P4194.info = {"start":1692,"length":130,"line":58,"column":4,"endLine":61,"endColumn":5,"fileName":"language.ts","functionName":"getTid","argumentNames":["tile"]} -function microcode_isPressReleaseEvent__P5734_mk(s) { +function microcode_getTid__P4194_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isPressReleaseEvent__P5734, depth: s.depth + 1, + parent: s, fn: microcode_getTid__P4194, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } - -function microcode_isAccelerometerEvent__P5735(s) { +function microcode_RuleClosure_getActionKind__P6109(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10929,47 +11141,40 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (90 <= s.arg0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = undefined; + { step = 3; continue; } case 1: - r0 = (s.arg0 <= 94); case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 6; continue; } - case 3: - r0 = (108 <= s.arg0); - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 4; continue; } - r0 = s.tmp_2; - { step = 5; continue; } - case 4: - r0 = (s.arg0 <= 109); - case 5: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; - case 6: - // jmp value (already in r0) + s.tmp_3 = microcode_getActionKind__P6094_mk(s); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; s.tmp_4 = r0; - r0 = s.tmp_4; + r0 = pxsim_Array__getAt(s.tmp_4, 0); + s.tmp_3.arg0 = r0; + s.callLocIdx = 2044; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + case 3: return leave(s, r0) default: oops() } } } -microcode_isAccelerometerEvent__P5735.info = {"start":8582,"length":285,"line":272,"column":4,"endLine":279,"endColumn":5,"fileName":"tiles.ts","functionName":"isAccelerometerEvent","argumentNames":["tidEnum"]} +microcode_RuleClosure_getActionKind__P6109.info = {"start":9067,"length":157,"line":264,"column":8,"endLine":267,"endColumn":9,"fileName":"interpreter.ts","functionName":"getActionKind","argumentNames":["this"]} -function microcode_isAccelerometerEvent__P5735_mk(s) { +function microcode_RuleClosure_getActionKind__P6109_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isAccelerometerEvent__P5735, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_getActionKind__P6109, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -10982,8 +11187,7 @@ function microcode_isAccelerometerEvent__P5735_mk(s) { - -function microcode_isCarModifier__P5744(s) { +function microcode_getActionKind__P6094(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -10997,38 +11201,50 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (190 <= s.arg0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(51, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(47, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(52, s.tmp_0); + if (r0) { step = 6; continue; } r0 = s.tmp_0; - { step = 2; continue; } + { step = 7; continue; } case 1: - r0 = (s.arg0 <= 203); case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + case 3: + case 4: + case 5: + case 6: + r0 = 2; + { step = 8; continue; } + case 7: + r0 = 1; + case 8: return leave(s, r0) default: oops() } } } -microcode_isCarModifier__P5744.info = {"start":10607,"length":152,"line":345,"column":4,"endLine":349,"endColumn":5,"fileName":"tiles.ts","functionName":"isCarModifier","argumentNames":["tidEnum"]} +microcode_getActionKind__P6094.info = {"start":1376,"length":411,"line":46,"column":4,"endLine":57,"endColumn":5,"fileName":"interpreter.ts","functionName":"getActionKind","argumentNames":["action"]} -function microcode_isCarModifier__P5744_mk(s) { +function microcode_getActionKind__P6094_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isCarModifier__P5744, depth: s.depth + 1, + parent: s, fn: microcode_getActionKind__P6094, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } - -function microcode_isLedColor__P5742(s) { +function microcode_RuleClosure_runAction__P6112(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11038,42 +11254,178 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.actuator___8563 = undefined; + s.param___8568 = undefined; + s.mod___8592 = undefined; + s.modEditor___8599 = undefined; + s.mod___8605 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (182 <= s.arg0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, 0); + s.actuator___8563 = (r0); + s.param___8568 = (undefined); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } + if (!r0) { step = 1; continue; } r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = (s.arg0 <= 187); + s.tmp_4 = microcode_getTid__P4194_mk(s); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, 0); + s.tmp_4.arg0 = r0; + s.callLocIdx = 2051; s.pc = 12; return s.tmp_4; + case 12: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_3 == 178); case 2: // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 3; continue; } + s.tmp_7 = microcode_defaultModifier__P4420_mk(s); + s.tmp_7.arg0 = s.actuator___8563; + s.callLocIdx = 2052; s.pc = 13; return s.tmp_7; + case 13: + r0 = s.retval; + s.param___8568 = (r0); + { step = 9; continue; } + case 3: + s.tmp_0 = r0 = s.actuator___8563; + r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = s.tmp_0; + { step = 7; continue; } + case 4: + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.mod___8592 = (r0); + s.modEditor___8599 = (s.mod___8592); + s.tmp_0 = microcode_ModifierEditor__C4543_v0_1_mk(s); + s.tmp_0.arg0 = s.modEditor___8599; + if (!checkSubtype(s.tmp_0.arg0, microcode_ModifierEditor__C4543_VT)) failedCast(s.tmp_0.arg0, microcode_ModifierEditor__C4543_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getField; + s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; + s.param___8568 = (r0); + { step = 8; continue; } + case 5: + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + s.mod___8605 = (r0); + s.tmp_0 = microcode_MelodyEditor_getNoteSequence__P4597_mk(s); + s.tmp_0.arg0 = s.mod___8605; + s.callLocIdx = 2053; s.pc = 15; return s.tmp_0; + case 15: + r0 = s.retval; + s.param___8568 = (r0); + { step = 8; continue; } + case 6: + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["modifierIndex"]; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + s.param___8568 = (r0); + { step = 8; continue; } + case 7: + s.tmp_0 = microcode_RuleClosure_getParamInstant__P6110_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2054; s.pc = 16; return s.tmp_0; + case 16: + r0 = s.retval; + s.param___8568 = (r0); + case 8: + case 9: + s.tmp_0 = microcode_Interpreter_runAction__P4760_mk(s); + r0 = s.arg0.fields["interp"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.actuator___8563; + s.tmp_0.arg3 = s.param___8568; + s.callLocIdx = 2055; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + s.tmp_2 = microcode_RuleClosure_getActionKind__P6109_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 2056; s.pc = 18; return s.tmp_2; + case 18: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 === 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + s.tmp_3 = microcode_Interpreter_processNewState__P4761_mk(s); + r0 = s.arg0.fields["interp"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 2057; s.pc = 19; return s.tmp_3; + case 19: + r0 = s.retval; + case 10: + case 11: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_isLedColor__P5742.info = {"start":10179,"length":183,"line":330,"column":4,"endLine":335,"endColumn":5,"fileName":"tiles.ts","functionName":"isLedColor","argumentNames":["tidEnum"]} +microcode_RuleClosure_runAction__P6112.info = {"start":10393,"length":1486,"line":300,"column":8,"endLine":333,"endColumn":9,"fileName":"interpreter.ts","functionName":"runAction","argumentNames":["this"]} -function microcode_isLedColor__P5742_mk(s) { +function microcode_RuleClosure_runAction__P6112_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isLedColor__P5742, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_runAction__P6112, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + actuator___8563: undefined, + param___8568: undefined, + mod___8592: undefined, + modEditor___8599: undefined, + mod___8605: undefined, arg0: undefined, } } - -function microcode_isPage__P5741(s) { +function microcode_Interpreter_processNewState__P4761(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11083,42 +11435,68 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.updatedVars___8638 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (150 <= s.arg0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = s.arg0.fields["newState"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_pxtrt.keysOf(s.tmp_0); + s.updatedVars___8638 = (r0); + r0 = pxsim_Array__length(s.updatedVars___8638); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_processNewState_inline__P8647); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg0); + s.tmp_2 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2.arg0 = s.updatedVars___8638; + s.tmp_2.arg1 = s.tmp_1; + s.callLocIdx = 2079; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "updatedVars", s.updatedVars___8638); + s.tmp_1 = microcode_Interpreter_addEvent__P4762_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2080; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; case 1: - r0 = (s.arg0 <= 154); case 2: - // jmp value (already in r0) + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = (s.tmp_0).fields["newState"] = (s.tmp_1); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_isPage__P5741.info = {"start":10012,"length":161,"line":323,"column":4,"endLine":328,"endColumn":5,"fileName":"tiles.ts","functionName":"isPage","argumentNames":["tidEnum"]} +microcode_Interpreter_processNewState__P4761.info = {"start":18619,"length":468,"line":543,"column":8,"endLine":555,"endColumn":9,"fileName":"interpreter.ts","functionName":"processNewState","argumentNames":["this"]} -function microcode_isPage__P5741_mk(s) { +function microcode_Interpreter_processNewState__P4761_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isPage__P5741, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_processNewState__P4761, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + updatedVars___8638: undefined, arg0: undefined, } } - -function microcode_isFilterConstant__P4258(s) { +function microcode_Interpreter_processNewState_inline__P8647(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11132,38 +11510,36 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (78 <= s.arg0); + r0 = s.caps[0].fields["state"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 82); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + s.tmp_1 = r0 = s.arg0; + r0 = s.caps[0].fields["newState"]; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_3, s.arg0); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_0, s.tmp_1, s.tmp_2); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_isFilterConstant__P4258.info = {"start":8989,"length":162,"line":285,"column":4,"endLine":289,"endColumn":5,"fileName":"tiles.ts","functionName":"isFilterConstant","argumentNames":["tidEnum"]} +microcode_Interpreter_processNewState_inline__P8647.info = {"start":18779,"length":77,"line":546,"column":36,"endLine":548,"endColumn":17,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["k"]} -function microcode_isFilterConstant__P4258_mk(s) { +function microcode_Interpreter_processNewState_inline__P8647_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isFilterConstant__P4258, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_processNewState_inline__P8647, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function microcode_isModifierConstant__P4259(s) { +function microcode_Interpreter_runAction__P4760(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11173,42 +11549,104 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.varName___8676 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = (155 <= s.arg0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + s.tmp_0 = r0 = s.arg2; + r0 = pxsim_pxtcore.switch_eq(40, s.tmp_0); if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(48, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(49, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(50, s.tmp_0); + if (r0) { step = 6; continue; } r0 = s.tmp_0; - { step = 2; continue; } + { step = 7; continue; } case 1: - r0 = (s.arg0 <= 159); - case 2: - // jmp value (already in r0) + r0 = pxsim_numops_toBoolDecr(s.arg3); + if (!r0) { step = 2; continue; } + r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "kind", 2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "index", s.arg3); + s.tmp_2 = microcode_Interpreter_addEvent__P4762_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.tmp_1; + s.callLocIdx = 2075; s.pc = 9; return s.tmp_2; + case 9: + r0 = s.retval; + case 2: + case 3: + { step = 8; continue; } + case 4: + case 5: + case 6: + s.tmp_0 = microcode_getParam__P4433_mk(s); + s.tmp_0.arg0 = s.arg2; + s.callLocIdx = 2076; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + s.varName___8676 = (r0); + s.tmp_0 = microcode_Interpreter_updateState__P6142_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = s.varName___8676; + s.tmp_0.arg3 = s.arg3; + s.callLocIdx = 2077; s.pc = 11; return s.tmp_0; + case 11: + r0 = s.retval; + { step = 8; continue; } + case 7: + s.tmp_0 = if_execute_3_mk(s); + r0 = s.arg0.fields["host"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg2; + s.tmp_0.arg2 = s.arg3; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "execute"), 3); + s.callLocIdx = 2078; s.pc = 12; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["execute"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["execute"], 3); s.callLocIdx = 2078; s.pc = 12; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 2078; s.pc = 12; return s.tmp_0;; } + else { s.callLocIdx = 2078; s.pc = 12; return s.tmp_0; } + } + case 12: + r0 = s.retval; + case 8: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_isModifierConstant__P4259.info = {"start":9338,"length":180,"line":298,"column":4,"endLine":303,"endColumn":5,"fileName":"tiles.ts","functionName":"isModifierConstant","argumentNames":["tidEnum"]} +microcode_Interpreter_runAction__P4760.info = {"start":17548,"length":883,"line":516,"column":8,"endLine":536,"endColumn":9,"fileName":"interpreter.ts","functionName":"runAction","argumentNames":["this","ruleIndex","action","param"]} -function microcode_isModifierConstant__P4259_mk(s) { +function microcode_Interpreter_runAction__P4760_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isModifierConstant__P4259, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_runAction__P4760, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + varName___8676: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function microcode_getKind__P4280(s) { +function microcode_Interpreter_updateState__P6142(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11220,38 +11658,56 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getKindTid__P4281_mk(s); - s.tmp_1 = microcode_getTid__P4041_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1093; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1094; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = s.arg0.fields["newState"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = r0 = s.arg0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_4 = r0; + r0 = (s.tmp_3).fields["newState"] = (s.tmp_4); case 1: - r0 = s.retval; + case 2: + r0 = s.arg0.fields["newState"]; + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_0, s.arg2, s.arg3); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_getKind__P4280.info = {"start":24183,"length":83,"line":722,"column":4,"endLine":724,"endColumn":5,"fileName":"tiles.ts","functionName":"getKind","argumentNames":["tile"]} +microcode_Interpreter_updateState__P6142.info = {"start":18441,"length":168,"line":538,"column":8,"endLine":541,"endColumn":9,"fileName":"interpreter.ts","functionName":"updateState","argumentNames":["this","ruleIndex","varName","v"]} -function microcode_getKind__P4280_mk(s) { +function microcode_Interpreter_updateState__P6142_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getKind__P4280, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_updateState__P6142, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function microcode_getKindTid__P4281(s) { +function microcode_RuleClosure_getParamInstant__P6110(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11261,301 +11717,567 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.actuator___8704 = undefined; + s.targetPage___8731 = undefined; + s.m___8733 = undefined; + s.unnamed62___U3 = undefined; + s.unnamed63___U4 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_1 = microcode_isLineEvent__P5736_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1095; s.pc = 74; return s.tmp_1; - case 74: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = pxsim_Array__getAt(s.tmp_0, 0); + s.actuator___8704 = (r0); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_2 = microcode_isFilterConstant__P4258_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1096; s.pc = 75; return s.tmp_2; - case 75: + s.tmp_3 = microcode_defaultModifier__P4420_mk(s); + s.tmp_3.arg0 = s.actuator___8704; + s.callLocIdx = 2045; s.pc = 14; return s.tmp_3; + case 14: r0 = s.retval; + { step = 13; continue; } + case 1: case 2: - // jmp value (already in r0) + s.tmp_4 = r0 = s.actuator___8704; + r0 = pxsim_pxtcore.switch_eq(48, s.tmp_4); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(49, s.tmp_4); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(50, s.tmp_4); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(51, s.tmp_4); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(45, s.tmp_4); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(46, s.tmp_4); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(40, s.tmp_4); + if (r0) { step = 9; continue; } + r0 = s.tmp_4; + { step = 12; continue; } + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + s.tmp_5 = microcode_Interpreter_getValue__P4766_mk(s); + r0 = s.arg0.fields["interp"]; + s.tmp_5.arg0 = r0; + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.tmp_5.arg1 = r0; + s.tmp_5.arg2 = 0; + s.callLocIdx = 2046; s.pc = 15; return s.tmp_5; + case 15: + r0 = s.retval; + { step = 13; continue; } + case 9: + s.targetPage___8731 = (1); + s.m___8733 = (undefined); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["modifiers"]; + s.unnamed62___U3 = (r0); + s.unnamed63___U4 = (0); + case 10: + s.tmp_0 = r0 = s.unnamed63___U4; + r0 = pxsim_Array__length(s.unnamed62___U3); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 11; continue; } + r0 = pxsim_Array__getAt(s.unnamed62___U3, s.unnamed63___U4); + s.m___8733 = (r0); + s.tmp_2 = microcode_getParam__P4433_mk(s); + s.tmp_2.arg0 = s.m___8733; + s.callLocIdx = 2047; s.pc = 16; return s.tmp_2; + case 16: + r0 = s.retval; + s.targetPage___8731 = (r0); + r0 = (s.unnamed63___U4 + 1); + s.unnamed63___U4 = (r0); + { step = 10; continue; } + case 11: + s.unnamed62___U3 = (undefined); + r0 = s.targetPage___8731; + { step = 13; continue; } + case 12: + r0 = undefined; + case 13: + return leave(s, r0) + default: oops() +} } } +microcode_RuleClosure_getParamInstant__P6110.info = {"start":9234,"length":920,"line":269,"column":8,"endLine":291,"endColumn":9,"fileName":"interpreter.ts","functionName":"getParamInstant","argumentNames":["this"]} + +function microcode_RuleClosure_getParamInstant__P6110_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_RuleClosure_getParamInstant__P6110, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + actuator___8704: undefined, + targetPage___8731: undefined, + m___8733: undefined, + unnamed62___U3: undefined, + unnamed63___U4: undefined, + arg0: undefined, +} } + + + + +function microcode_MelodyEditor_getNoteSequence__P4597(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.notes___8743 = undefined; + s.result___8751 = undefined; + s.n___8753 = undefined; + s.unnamed58___U3 = undefined; + s.unnamed59___U4 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyEditor__C4591_VT)) failedCast(r0, microcode_MelodyEditor__C4591_VT); + s.tmp_0 = helpers_stringSplit__P2151_mk(s); + s.tmp_1 = if_notes_1_mk(s); + r0 = s.arg0.fields["field"]; + s.tmp_1.arg0 = r0; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "notes"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["notes"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["notes"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1853; s.pc = 6; return s.tmp_1; } + } + case 6: + r0 = s.retval; + s.tmp_0.arg0 = r0; + r0 = pxsim_String_.mkEmpty(); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = undefined; + s.callLocIdx = 1854; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.notes___8743 = (r0); + r0 = pxsim_String_.mkEmpty(); + s.result___8751 = (r0); + s.n___8753 = (undefined); + s.unnamed58___U3 = (s.notes___8743); + s.unnamed59___U4 = (0); + case 1: + s.tmp_0 = r0 = s.unnamed59___U4; + r0 = pxsim_Array__length(s.unnamed58___U3); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.unnamed58___U3, s.unnamed59___U4); + s.n___8753 = (r0); + r0 = (s.n___8753 == "."); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 2; continue; } + if ((s.result___8751) && (s.result___8751).vtable) { + setupResume(s, 7); + pxsim_String__stringConv(s.result___8751); + checkResumeConsumed(); + return; + } else { s.retval = (s.result___8751) + ""; } + case 7: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat(s.tmp_3, "- "); + s.result___8751 = (r0); + { step = 3; continue; } + case 2: + if ((s.result___8751) && (s.result___8751).vtable) { + setupResume(s, 8); + pxsim_String__stringConv(s.result___8751); + checkResumeConsumed(); + return; + } else { s.retval = (s.result___8751) + ""; } + case 8: + r0 = s.retval; + s.tmp_0 = r0; + s.tmp_5 = r0 = globals.noteNames___4583; + s.tmp_7 = parseInt__P2126_mk(s); + s.tmp_7.arg0 = s.n___8753; + s.tmp_7.arg1 = undefined; + s.callLocIdx = 1855; s.pc = 9; return s.tmp_7; + case 9: + r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 10); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 10: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat(s.tmp_3, " "); + s.tmp_2 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 11); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 11: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.result___8751 = (r0); + case 3: + r0 = (s.unnamed59___U4 + 1); + s.unnamed59___U4 = (r0); + { step = 1; continue; } + case 4: + s.unnamed58___U3 = (undefined); + r0 = s.result___8751; + return leave(s, r0) + default: oops() +} } } +microcode_MelodyEditor_getNoteSequence__P4597.info = {"start":8690,"length":292,"line":289,"column":8,"endLine":297,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNoteSequence","argumentNames":["this"]} + +function microcode_MelodyEditor_getNoteSequence__P4597_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MelodyEditor_getNoteSequence__P4597, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + notes___8743: undefined, + result___8751: undefined, + n___8753: undefined, + unnamed58___U3: undefined, + unnamed59___U4: undefined, + arg0: undefined, +} } + + + + +function parseInt__P2126(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.start___8795 = undefined; + s.sign___8825 = undefined; + s.output___8870 = undefined; + s.hasDigit___8871 = undefined; + s.i___8872 = undefined; + s.code___8879 = undefined; + s.val___8886 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = pxsim_numops_toBoolDecr(s.arg0); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 6; continue; } + case 1: + r0 = (s.arg1 != null); + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (r0) { step = 2; continue; } + r0 = s.tmp_2; + { step = 5; continue; } + case 2: + r0 = (s.arg1 < 2); s.tmp_3 = r0; r0 = pxsim_numops_toBool(s.tmp_3); if (!r0) { step = 3; continue; } r0 = s.tmp_3; { step = 4; continue; } case 3: - s.tmp_4 = microcode_isModifierConstant__P4259_mk(s); - s.tmp_4.arg0 = s.arg0; - s.callLocIdx = 1097; s.pc = 76; return s.tmp_4; - case 76: - r0 = s.retval; + r0 = (s.arg1 > 36); case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = s.tmp_4; + case 5: // jmp value (already in r0) s.tmp_5 = r0; - r0 = pxsim_numops_toBool(s.tmp_5); - if (!r0) { step = 5; continue; } r0 = s.tmp_5; - { step = 6; continue; } - case 5: - r0 = (s.arg0 == 204); case 6: // jmp value (already in r0) s.tmp_6 = r0; - r0 = pxsim_numops_toBool(s.tmp_6); + r0 = pxsim_numops_toBoolDecr(s.tmp_6); if (!r0) { step = 7; continue; } - r0 = s.tmp_6; - { step = 8; continue; } + r0 = NaN; + { step = 46; continue; } case 7: - r0 = (s.arg0 == 205); case 8: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = pxsim_numops_toBool(s.tmp_7); - if (!r0) { step = 9; continue; } - r0 = s.tmp_7; - { step = 10; continue; } + s.start___8795 = (0); case 9: - r0 = (s.arg0 == 255); + s.tmp_1 = r0 = s.start___8795; + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 10; continue; } + r0 = s.tmp_0; + { step = 11; continue; } case 10: - // jmp value (already in r0) - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 11; continue; } - r0 = 1; - { step = 73; continue; } + s.tmp_3 = helpers_isWhitespace__P2153_mk(s); + r0 = pxsim_String_.charCodeAt(s.arg0, s.start___8795); + s.tmp_3.arg0 = r0; + s.callLocIdx = 0; s.pc = 47; return s.tmp_3; + case 47: + r0 = s.retval; case 11: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 12; continue; } + r0 = (s.start___8795 + 1); + s.start___8795 = (r0); + { step = 9; continue; } case 12: - s.tmp_10 = microcode_isTimespan__P5739_mk(s); - s.tmp_10.arg0 = s.arg0; - s.callLocIdx = 1098; s.pc = 77; return s.tmp_10; - case 77: - r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_9); + s.tmp_1 = r0 = s.start___8795; + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 === s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 13; continue; } - r0 = 5; - { step = 73; continue; } + r0 = NaN; + { step = 46; continue; } case 13: case 14: - s.tmp_12 = microcode_isPage__P5741_mk(s); - s.tmp_12.arg0 = s.arg0; - s.callLocIdx = 1099; s.pc = 78; return s.tmp_12; - case 78: - r0 = s.retval; - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 15; continue; } - r0 = 3; - { step = 73; continue; } + s.sign___8825 = (1); + r0 = pxsim_String_.charAt(s.arg0, s.start___8795); + s.tmp_0 = r0; + r0 = pxsim_pxtcore.switch_eq("-", s.tmp_0); + if (r0) { step = 15; continue; } + r0 = pxsim_pxtcore.switch_eq("+", s.tmp_0); + if (r0) { step = 16; continue; } + r0 = s.tmp_0; + { step = 17; continue; } case 15: + s.sign___8825 = (-1); case 16: - s.tmp_14 = microcode_isCarModifier__P5744_mk(s); - s.tmp_14.arg0 = s.arg0; - s.callLocIdx = 1100; s.pc = 79; return s.tmp_14; - case 79: - r0 = s.retval; - s.tmp_13 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_13); - if (!r0) { step = 17; continue; } - r0 = 10; - { step = 73; continue; } + r0 = (s.start___8795 + 1); + s.start___8795 = (r0); case 17: + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 18; continue; } + r0 = s.tmp_0; + { step = 19; continue; } case 18: - s.tmp_15 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq(17, s.tmp_15); - if (r0) { step = 19; continue; } - r0 = pxsim_pxtcore.switch_eq(25, s.tmp_15); - if (r0) { step = 20; continue; } - r0 = pxsim_pxtcore.switch_eq(26, s.tmp_15); - if (r0) { step = 21; continue; } - r0 = pxsim_pxtcore.switch_eq(176, s.tmp_15); - if (r0) { step = 22; continue; } - r0 = pxsim_pxtcore.switch_eq(180, s.tmp_15); - if (r0) { step = 23; continue; } - r0 = pxsim_pxtcore.switch_eq(177, s.tmp_15); - if (r0) { step = 24; continue; } - r0 = pxsim_pxtcore.switch_eq(98, s.tmp_15); - if (r0) { step = 25; continue; } - r0 = pxsim_pxtcore.switch_eq(99, s.tmp_15); - if (r0) { step = 26; continue; } - r0 = pxsim_pxtcore.switch_eq(100, s.tmp_15); - if (r0) { step = 27; continue; } - r0 = pxsim_pxtcore.switch_eq(101, s.tmp_15); - if (r0) { step = 28; continue; } - r0 = pxsim_pxtcore.switch_eq(90, s.tmp_15); - if (r0) { step = 29; continue; } - r0 = pxsim_pxtcore.switch_eq(91, s.tmp_15); - if (r0) { step = 30; continue; } - r0 = pxsim_pxtcore.switch_eq(92, s.tmp_15); - if (r0) { step = 31; continue; } - r0 = pxsim_pxtcore.switch_eq(93, s.tmp_15); - if (r0) { step = 32; continue; } - r0 = pxsim_pxtcore.switch_eq(94, s.tmp_15); - if (r0) { step = 33; continue; } - r0 = pxsim_pxtcore.switch_eq(109, s.tmp_15); - if (r0) { step = 34; continue; } - r0 = pxsim_pxtcore.switch_eq(108, s.tmp_15); - if (r0) { step = 35; continue; } - r0 = pxsim_pxtcore.switch_eq(87, s.tmp_15); - if (r0) { step = 36; continue; } - r0 = pxsim_pxtcore.switch_eq(88, s.tmp_15); - if (r0) { step = 37; continue; } - r0 = pxsim_pxtcore.switch_eq(110, s.tmp_15); - if (r0) { step = 38; continue; } - r0 = pxsim_pxtcore.switch_eq(111, s.tmp_15); - if (r0) { step = 39; continue; } - r0 = pxsim_pxtcore.switch_eq(73, s.tmp_15); - if (r0) { step = 40; continue; } - r0 = pxsim_pxtcore.switch_eq(74, s.tmp_15); - if (r0) { step = 41; continue; } - r0 = pxsim_pxtcore.switch_eq(77, s.tmp_15); - if (r0) { step = 42; continue; } - r0 = pxsim_pxtcore.switch_eq(70, s.tmp_15); - if (r0) { step = 43; continue; } - r0 = pxsim_pxtcore.switch_eq(71, s.tmp_15); - if (r0) { step = 44; continue; } - r0 = pxsim_pxtcore.switch_eq(72, s.tmp_15); - if (r0) { step = 45; continue; } - r0 = pxsim_pxtcore.switch_eq(44, s.tmp_15); - if (r0) { step = 46; continue; } - r0 = pxsim_pxtcore.switch_eq(41, s.tmp_15); - if (r0) { step = 47; continue; } - r0 = pxsim_pxtcore.switch_eq(43, s.tmp_15); - if (r0) { step = 48; continue; } - r0 = pxsim_pxtcore.switch_eq(47, s.tmp_15); - if (r0) { step = 49; continue; } - r0 = pxsim_pxtcore.switch_eq(52, s.tmp_15); - if (r0) { step = 50; continue; } - r0 = pxsim_pxtcore.switch_eq(45, s.tmp_15); - if (r0) { step = 51; continue; } - r0 = pxsim_pxtcore.switch_eq(46, s.tmp_15); - if (r0) { step = 52; continue; } - r0 = pxsim_pxtcore.switch_eq(53, s.tmp_15); - if (r0) { step = 53; continue; } - r0 = pxsim_pxtcore.switch_eq(54, s.tmp_15); - if (r0) { step = 54; continue; } - r0 = pxsim_pxtcore.switch_eq(55, s.tmp_15); - if (r0) { step = 55; continue; } - r0 = pxsim_pxtcore.switch_eq(27, s.tmp_15); - if (r0) { step = 56; continue; } - r0 = pxsim_pxtcore.switch_eq(18, s.tmp_15); - if (r0) { step = 57; continue; } - r0 = pxsim_pxtcore.switch_eq(22, s.tmp_15); - if (r0) { step = 58; continue; } - r0 = pxsim_pxtcore.switch_eq(16, s.tmp_15); - if (r0) { step = 59; continue; } - r0 = pxsim_pxtcore.switch_eq(19, s.tmp_15); - if (r0) { step = 60; continue; } - r0 = pxsim_pxtcore.switch_eq(20, s.tmp_15); - if (r0) { step = 61; continue; } - r0 = pxsim_pxtcore.switch_eq(21, s.tmp_15); - if (r0) { step = 62; continue; } - r0 = pxsim_pxtcore.switch_eq(48, s.tmp_15); - if (r0) { step = 63; continue; } - r0 = pxsim_pxtcore.switch_eq(49, s.tmp_15); - if (r0) { step = 64; continue; } - r0 = pxsim_pxtcore.switch_eq(50, s.tmp_15); - if (r0) { step = 65; continue; } - r0 = pxsim_pxtcore.switch_eq(95, s.tmp_15); - if (r0) { step = 66; continue; } - r0 = pxsim_pxtcore.switch_eq(96, s.tmp_15); - if (r0) { step = 67; continue; } - r0 = pxsim_pxtcore.switch_eq(97, s.tmp_15); - if (r0) { step = 68; continue; } - r0 = pxsim_pxtcore.switch_eq(173, s.tmp_15); - if (r0) { step = 69; continue; } - r0 = pxsim_pxtcore.switch_eq(174, s.tmp_15); - if (r0) { step = 70; continue; } - r0 = pxsim_pxtcore.switch_eq(175, s.tmp_15); - if (r0) { step = 71; continue; } - r0 = s.tmp_15; - { step = 72; continue; } + r0 = (s.arg1 == 16); case 19: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (r0) { step = 20; continue; } + r0 = s.tmp_2; + { step = 21; continue; } case 20: + r0 = pxsim_String_.charAt(s.arg0, s.start___8795); + s.tmp_3 = r0; + r0 = ("0" === s.tmp_3); case 21: - r0 = 8; - { step = 73; continue; } + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (r0) { step = 22; continue; } + r0 = s.tmp_4; + { step = 25; continue; } case 22: - r0 = 6; - { step = 73; continue; } + s.tmp_7 = r0 = s.arg0; + r0 = (s.start___8795 + 1); + s.tmp_8 = r0; + r0 = pxsim_String_.charAt(s.tmp_7, s.tmp_8); + s.tmp_6 = r0; + r0 = ("x" === s.tmp_6); + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (!r0) { step = 23; continue; } + r0 = s.tmp_5; + { step = 24; continue; } case 23: - r0 = 7; - { step = 73; continue; } + s.tmp_10 = r0 = s.arg0; + r0 = (s.start___8795 + 1); + s.tmp_11 = r0; + r0 = pxsim_String_.charAt(s.tmp_10, s.tmp_11); + s.tmp_9 = r0; + r0 = ("X" === s.tmp_9); case 24: - r0 = 9; - { step = 73; continue; } + // jmp value (already in r0) + s.tmp_12 = r0; + r0 = s.tmp_12; case 25: + // jmp value (already in r0) + s.tmp_13 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_13); + if (!r0) { step = 26; continue; } + s.arg1 = (16); + r0 = (s.start___8795 + 2); + s.start___8795 = (r0); + { step = 29; continue; } case 26: + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 27; continue; } + s.arg1 = (10); case 27: case 28: case 29: + s.output___8870 = (0); + s.hasDigit___8871 = (false); + s.i___8872 = (s.start___8795); case 30: + s.tmp_1 = r0 = s.i___8872; + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 45; continue; } + r0 = pxsim_String_.charCodeAt(s.arg0, s.i___8872); + s.tmp_3 = r0; + r0 = (s.tmp_3 | 32); + s.code___8879 = (r0); + s.val___8886 = (undefined); + r0 = (s.code___8879 >= 48); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 31; continue; } + r0 = s.tmp_0; + { step = 32; continue; } case 31: + r0 = (s.code___8879 < 58); case 32: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 33; continue; } + r0 = (s.code___8879 - 48); + s.val___8886 = (r0); + { step = 38; continue; } case 33: + r0 = (s.code___8879 >= 97); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 34; continue; } + r0 = s.tmp_0; + { step = 35; continue; } case 34: + r0 = (s.code___8879 < 123); case 35: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 36; continue; } + r0 = (10 + s.code___8879); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 97); + s.val___8886 = (r0); case 36: case 37: case 38: + r0 = (s.val___8886 == undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 39; continue; } + r0 = s.tmp_0; + { step = 40; continue; } case 39: + r0 = (s.val___8886 >= s.arg1); case 40: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 43; continue; } + r0 = pxsim_numops_toBoolDecr(s.hasDigit___8871); + s.tmp_3 = r0; + r0 = pxsim_Boolean__bang(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 41; continue; } + r0 = NaN; + { step = 46; continue; } case 41: case 42: + { step = 45; continue; } case 43: case 44: + s.hasDigit___8871 = (true); + r0 = (s.output___8870 * s.arg1); + s.tmp_0 = r0; + r0 = (s.tmp_0 + s.val___8886); + s.output___8870 = (r0); + r0 = (s.i___8872 + 1); + s.i___8872 = (r0); + { step = 30; continue; } case 45: - r0 = 4; - { step = 73; continue; } + r0 = (s.sign___8825 * s.output___8870); case 46: - case 47: - case 48: - case 49: - case 50: - r0 = 11; - { step = 73; continue; } - case 51: - case 52: - case 53: - case 54: - case 55: - r0 = 10; - { step = 73; continue; } - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - r0 = 2; - { step = 73; continue; } - case 72: - r0 = undefined; - case 73: return leave(s, r0) default: oops() } } } -microcode_getKindTid__P4281.info = {"start":24272,"length":3230,"line":726,"column":4,"endLine":803,"endColumn":5,"fileName":"tiles.ts","functionName":"getKindTid","argumentNames":["tid"]} +parseInt__P2126.info = {"start":1064,"length":1690,"line":44,"column":0,"endLine":103,"endColumn":1,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"parseInt","argumentNames":["text","radix"]} -function microcode_getKindTid__P4281_mk(s) { +function parseInt__P2126_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getKindTid__P4281, depth: s.depth + 1, + parent: s, fn: parseInt__P2126, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -11571,16 +12293,21 @@ function microcode_getKindTid__P4281_mk(s) { tmp_11: undefined, tmp_12: undefined, tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, + start___8795: undefined, + sign___8825: undefined, + output___8870: undefined, + hasDigit___8871: undefined, + i___8872: undefined, + code___8879: undefined, + val___8886: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_isTimespan__P5739(s) { +function helpers_isWhitespace__P2153(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11594,38 +12321,64 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (83 <= s.arg0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_pxtcore.switch_eq(9, s.tmp_0); if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(11, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(12, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(32, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(160, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(65279, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(10, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(13, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(8232, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(8233, s.tmp_0); + if (r0) { step = 10; continue; } + r0 = s.tmp_0; + { step = 11; continue; } case 1: - r0 = (s.arg0 <= 86); case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + r0 = true; + { step = 12; continue; } + case 11: + r0 = false; + { step = 12; continue; } + r0 = undefined; + case 12: return leave(s, r0) default: oops() } } } -microcode_isTimespan__P5739.info = {"start":9711,"length":181,"line":312,"column":4,"endLine":317,"endColumn":5,"fileName":"tiles.ts","functionName":"isTimespan","argumentNames":["tidEnum"]} +helpers_isWhitespace__P2153.info = {"start":14864,"length":674,"line":503,"column":4,"endLine":520,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"isWhitespace","argumentNames":["c"]} -function microcode_isTimespan__P5739_mk(s) { +function helpers_isWhitespace__P2153_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isTimespan__P5739, depth: s.depth + 1, + parent: s, fn: helpers_isWhitespace__P2153, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } - -function microcode_isLineEvent__P5736(s) { +function helpers_stringSplit__P2151(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11635,42 +12388,185 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.A___8945 = undefined; + s.lim___8947 = undefined; + s.s___8963 = undefined; + s.p___8966 = undefined; + s.R___8967 = undefined; + s.z___8981 = undefined; + s.T___8994 = undefined; + s.q___8995 = undefined; + s.e___9001 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = (102 <= s.arg0); + r0 = pxsim_Array__mk(); + s.A___8945 = (r0); + s.lim___8947 = (0); + r0 = (s.arg2 === undefined); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = (536870912 - 1); + s.lim___8947 = (r0); + { step = 4; continue; } case 1: - r0 = (s.arg0 <= 107); + r0 = (s.arg2 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.lim___8947 = (0); + { step = 3; continue; } case 2: - // jmp value (already in r0) + r0 = (s.arg2 | 0); + s.lim___8947 = (r0); + case 3: + case 4: + r0 = pxsim_String_.length(s.arg0); + s.s___8963 = (r0); + s.p___8966 = (0); + s.R___8967 = (s.arg1); + r0 = (s.lim___8947 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = s.A___8945; + { step = 21; continue; } + case 5: + case 6: + r0 = (s.arg1 === undefined); s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 7; continue; } + r0 = pxsim_Array_.setAt(s.A___8945, 0, s.arg0); + r0 = s.A___8945; + { step = 21; continue; } + case 7: + case 8: + r0 = (s.s___8963 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + s.tmp_1 = helpers_splitMatch__P4818_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = 0; + s.tmp_1.arg2 = s.R___8967; + s.callLocIdx = 23; s.pc = 22; return s.tmp_1; + case 22: + r0 = s.retval; + s.z___8981 = (r0); + r0 = (s.z___8981 > -1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = s.A___8945; + { step = 21; continue; } + case 9: + case 10: + r0 = pxsim_Array_.setAt(s.A___8945, 0, s.arg0); + r0 = s.A___8945; + { step = 21; continue; } + case 11: + case 12: + s.q___8995 = (s.p___8966); + case 13: + r0 = (s.q___8995 != s.s___8963); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 20; continue; } + s.tmp_1 = helpers_splitMatch__P4818_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.q___8995; + s.tmp_1.arg2 = s.R___8967; + s.callLocIdx = 24; s.pc = 23; return s.tmp_1; + case 23: + r0 = s.retval; + s.e___9001 = (r0); + r0 = (s.e___9001 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 14; continue; } + r0 = (s.q___8995 + 1); + s.q___8995 = (r0); + { step = 19; continue; } + case 14: + r0 = (s.e___9001 == s.p___8966); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + r0 = (s.q___8995 + 1); + s.q___8995 = (r0); + { step = 18; continue; } + case 15: + s.tmp_0 = helpers_stringSlice__P2148_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.p___8966; + s.tmp_0.arg2 = s.q___8995; + s.callLocIdx = 25; s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + s.T___8994 = (r0); + r0 = pxsim_Array__push(s.A___8945, s.T___8994); + r0 = pxsim_Array__length(s.A___8945); + s.tmp_1 = r0; + r0 = (s.tmp_1 == s.lim___8947); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 16; continue; } + r0 = s.A___8945; + { step = 21; continue; } + case 16: + case 17: + s.p___8966 = (s.e___9001); + s.q___8995 = (s.p___8966); + case 18: + case 19: + { step = 13; continue; } + case 20: + s.tmp_0 = helpers_stringSlice__P2148_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.p___8966; + s.tmp_0.arg2 = s.q___8995; + s.callLocIdx = 26; s.pc = 25; return s.tmp_0; + case 25: + r0 = s.retval; + s.T___8994 = (r0); + r0 = pxsim_Array__push(s.A___8945, s.T___8994); + r0 = s.A___8945; + case 21: return leave(s, r0) default: oops() } } } -microcode_isLineEvent__P5736.info = {"start":8873,"length":110,"line":281,"column":4,"endLine":283,"endColumn":5,"fileName":"tiles.ts","functionName":"isLineEvent","argumentNames":["tidEnum"]} +helpers_stringSplit__P2151.info = {"start":12919,"length":1319,"line":434,"column":4,"endLine":478,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringSplit","argumentNames":["S","separator","limit"]} -function microcode_isLineEvent__P5736_mk(s) { +function helpers_stringSplit__P2151_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isLineEvent__P5736, depth: s.depth + 1, + parent: s, fn: helpers_stringSplit__P2151, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + A___8945: undefined, + lim___8947: undefined, + s___8963: undefined, + p___8966: undefined, + R___8967: undefined, + z___8981: undefined, + T___8994: undefined, + q___8995: undefined, + e___9001: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_getTid__P4041(s) { +function helpers_splitMatch__P4818(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11680,40 +12576,84 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.r___9046 = undefined; + s.s___9049 = undefined; + s.i___9059 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); + r0 = pxsim_String_.length(s.arg2); + s.r___9046 = (r0); + r0 = pxsim_String_.length(s.arg0); + s.s___9049 = (r0); + r0 = (s.arg1 + s.r___9046); + s.tmp_1 = r0; + r0 = (s.tmp_1 > s.s___9049); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["tid"]; - { step = 3; continue; } + r0 = -1; + { step = 7; continue; } case 1: case 2: - r0 = s.arg0; + s.i___9059 = (0); case 3: + r0 = (s.i___9059 < s.r___9046); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_3 = r0 = s.arg0; + r0 = (s.arg1 + s.i___9059); + s.tmp_4 = r0; + r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_String_.charAt(s.arg2, s.i___9059); + s.tmp_5 = r0; + r0 = (s.tmp_2 != s.tmp_5); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = -1; + { step = 7; continue; } + case 4: + case 5: + r0 = (s.i___9059 + 1); + s.i___9059 = (r0); + { step = 3; continue; } + case 6: + r0 = (s.arg1 + s.r___9046); + case 7: return leave(s, r0) default: oops() } } } -microcode_getTid__P4041.info = {"start":1636,"length":130,"line":57,"column":4,"endLine":60,"endColumn":5,"fileName":"language.ts","functionName":"getTid","argumentNames":["tile"]} +helpers_splitMatch__P4818.info = {"start":14244,"length":289,"line":480,"column":4,"endLine":489,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"splitMatch","argumentNames":["S","q","R"]} -function microcode_getTid__P4041_mk(s) { +function helpers_splitMatch__P4818_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getTid__P4041, depth: s.depth + 1, + parent: s, fn: helpers_splitMatch__P4818, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + r___9046: undefined, + s___9049: undefined, + i___9059: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_RuleClosure_getActionKind__P5888(s) { +function microcode_ModifierEditor_getField__P4547(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11728,53 +12668,25 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["actuators"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = undefined; - { step = 3; continue; } - case 1: - case 2: - s.tmp_3 = microcode_getActionKind__P5876_mk(s); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["actuators"]; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, 0); - s.tmp_3.arg0 = r0; - s.callLocIdx = 1719; s.pc = 4; return s.tmp_3; - case 4: - r0 = s.retval; - case 3: + if (!checkSubtype(r0, microcode_ModifierEditor__C4543_VT)) failedCast(r0, microcode_ModifierEditor__C4543_VT); + r0 = null; return leave(s, r0) default: oops() } } } -microcode_RuleClosure_getActionKind__P5888.info = {"start":8861,"length":157,"line":250,"column":8,"endLine":253,"endColumn":9,"fileName":"interpreter.ts","functionName":"getActionKind","argumentNames":["this"]} +microcode_ModifierEditor_getField__P4547.info = {"start":1159,"length":51,"line":42,"column":8,"endLine":44,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getField","argumentNames":["this"]} -function microcode_RuleClosure_getActionKind__P5888_mk(s) { +function microcode_ModifierEditor_getField__P4547_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_getActionKind__P5888, depth: s.depth + 1, + parent: s, fn: microcode_ModifierEditor_getField__P4547, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, } } - -function microcode_getActionKind__P5876(s) { +function microcode_defaultModifier__P4420(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11784,46 +12696,113 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.mod___9100 = undefined; + s.modEditor___9104 = undefined; + s.mod___9109 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(54, s.tmp_0); if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(55, s.tmp_0); if (r0) { step = 2; continue; } r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(52, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(47, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(51, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(48, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(49, s.tmp_0); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(50, s.tmp_0); + if (r0) { step = 11; continue; } r0 = s.tmp_0; - { step = 4; continue; } + { step = 12; continue; } case 1: case 2: + r0 = 205; + { step = 13; continue; } case 3: - r0 = 1; - { step = 5; continue; } + r0 = 163; + { step = 13; continue; } case 4: - r0 = 0; + r0 = 194; + { step = 13; continue; } case 5: + r0 = 188; + { step = 13; continue; } + case 6: + s.tmp_1 = microcode_getEditor__P4598_mk(s); + s.tmp_1.arg0 = 160; + s.callLocIdx = 1337; s.pc = 14; return s.tmp_1; + case 14: + r0 = s.retval; + s.mod___9100 = (r0); + s.modEditor___9104 = (s.mod___9100); + s.tmp_0 = microcode_ModifierEditor__C4543_v0_1_mk(s); + s.tmp_0.arg0 = s.modEditor___9104; + if (!checkSubtype(s.tmp_0.arg0, microcode_ModifierEditor__C4543_VT)) failedCast(s.tmp_0.arg0, microcode_ModifierEditor__C4543_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getField; + s.pc = 15; return s.tmp_0; + case 15: + r0 = s.retval; + { step = 13; continue; } + case 7: + s.tmp_1 = microcode_getEditor__P4598_mk(s); + s.tmp_1.arg0 = 179; + s.callLocIdx = 1338; s.pc = 16; return s.tmp_1; + case 16: + r0 = s.retval; + s.mod___9109 = (r0); + s.tmp_0 = microcode_MelodyEditor_getNoteSequence__P4597_mk(s); + s.tmp_0.arg0 = s.mod___9109; + s.callLocIdx = 1339; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + { step = 13; continue; } + case 8: + case 9: + case 10: + case 11: + r0 = 0; + { step = 13; continue; } + case 12: + r0 = undefined; + { step = 13; continue; } + r0 = undefined; + case 13: return leave(s, r0) default: oops() } } } -microcode_getActionKind__P5876.info = {"start":1854,"length":281,"line":59,"column":4,"endLine":67,"endColumn":5,"fileName":"interpreter.ts","functionName":"getActionKind","argumentNames":["action"]} +microcode_defaultModifier__P4420.info = {"start":13363,"length":1188,"line":427,"column":4,"endLine":455,"endColumn":5,"fileName":"tiles.ts","functionName":"defaultModifier","argumentNames":["tid"]} -function microcode_getActionKind__P5876_mk(s) { +function microcode_defaultModifier__P4420_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getActionKind__P5876, depth: s.depth + 1, + parent: s, fn: microcode_defaultModifier__P4420, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + mod___9100: undefined, + modEditor___9104: undefined, + mod___9109: undefined, arg0: undefined, } } - -function microcode_RuleClosure_runAction__P5891(s) { +function microcode_getEditor__P4598(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11833,156 +12812,143 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.actuator___8507 = undefined; - s.param___8512 = undefined; - s.mod___8527 = undefined; - s.modEditor___8534 = undefined; - s.mod___8540 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["actuators"]; + r0 = (s.arg0 == 160); s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, 0); - s.actuator___8507 = (r0); - s.param___8512 = (undefined); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim_numops_toBoolDecr(globals.iconEditorTile___6016); s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); + r0 = pxsim_Boolean__bang(s.tmp_2); s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_1); if (!r0) { step = 1; continue; } - s.tmp_3 = microcode_defaultModifier__P4262_mk(s); - s.tmp_3.arg0 = s.actuator___8507; - s.callLocIdx = 1727; s.pc = 10; return s.tmp_3; - case 10: + r0 = pxsim_pxtcore_mkClassInstance(microcode_IconEditor__C4572_VT); + s.tmp_3 = r0; + s.tmp_4 = microcode_IconEditor_constructor__P4574_mk(s); + s.tmp_4.arg0 = s.tmp_3; + s.tmp_4.arg1 = null; + s.callLocIdx = 1856; s.pc = 18; return s.tmp_4; + case 18: r0 = s.retval; - s.param___8512 = (r0); - { step = 7; continue; } + globals.iconEditorTile___6016 = (s.tmp_3); + r0 = (globals.iconEditorTile___6016).fields["firstInstance"] = (true); case 1: - s.tmp_0 = r0 = s.actuator___8507; - r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = s.tmp_0; - { step = 5; continue; } case 2: - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["modifierIndex"]; - s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); - s.mod___8527 = (r0); - s.modEditor___8534 = (s.mod___8527); - s.tmp_0 = microcode_ModifierEditor__C4403_v0_1_mk(s); - s.tmp_0.arg0 = s.modEditor___8534; - if (!checkSubtype(s.tmp_0.arg0, microcode_ModifierEditor__C4403_VT)) failedCast(s.tmp_0.arg0, microcode_ModifierEditor__C4403_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getField; - s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - s.param___8512 = (r0); - { step = 6; continue; } + r0 = globals.iconEditorTile___6016; + { step = 17; continue; } + { step = 16; continue; } case 3: - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; + r0 = (s.arg0 == 179); s.tmp_0 = r0; - r0 = s.arg0.fields["modifierIndex"]; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = pxsim_numops_toBoolDecr(globals.melodyEditorTile___6018); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); - s.mod___8540 = (r0); - s.tmp_0 = microcode_MelodyEditor_getNoteSequence__P4455_mk(s); - s.tmp_0.arg0 = s.mod___8540; - s.callLocIdx = 1728; s.pc = 12; return s.tmp_0; - case 12: + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = pxsim_pxtcore_mkClassInstance(microcode_MelodyEditor__C4591_VT); + s.tmp_3 = r0; + s.tmp_4 = microcode_MelodyEditor_constructor__P4593_mk(s); + s.tmp_4.arg0 = s.tmp_3; + s.tmp_4.arg1 = null; + s.callLocIdx = 1857; s.pc = 19; return s.tmp_4; + case 19: r0 = s.retval; - s.param___8512 = (r0); - { step = 6; continue; } + globals.melodyEditorTile___6018 = (s.tmp_3); + r0 = (globals.melodyEditorTile___6018).fields["firstInstance"] = (true); case 4: - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["modifierIndex"]; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); - s.param___8512 = (r0); - { step = 6; continue; } case 5: - s.tmp_0 = microcode_RuleClosure_getParamInstant__P5889_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1729; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - s.param___8512 = (r0); + r0 = globals.melodyEditorTile___6018; + { step = 17; continue; } + { step = 15; continue; } case 6: - case 7: - s.tmp_0 = microcode_Interpreter_runAction__P4609_mk(s); - r0 = s.arg0.fields["interp"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.actuator___8507; - s.tmp_0.arg3 = s.param___8512; - s.callLocIdx = 1730; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - s.tmp_2 = microcode_RuleClosure_getActionKind__P5888_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1731; s.pc = 15; return s.tmp_2; - case 15: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 === 0); + r0 = (s.arg0 == 255); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.tmp_3 = microcode_Interpreter_processNewState__P4610_mk(s); - r0 = s.arg0.fields["interp"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 1732; s.pc = 16; return s.tmp_3; - case 16: + if (!r0) { step = 9; continue; } + r0 = pxsim_numops_toBoolDecr(globals.decimalEditorTile___6020); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 7; continue; } + r0 = pxsim_pxtcore_mkClassInstance(microcode_DigitEditor__C4559_VT); + s.tmp_3 = r0; + s.tmp_4 = microcode_DigitEditor_constructor__P4560_mk(s); + s.tmp_4.arg0 = s.tmp_3; + s.tmp_4.arg1 = undefined; + s.tmp_4.arg2 = false; + s.callLocIdx = 1858; s.pc = 20; return s.tmp_4; + case 20: r0 = s.retval; + globals.decimalEditorTile___6020 = (s.tmp_3); + r0 = (globals.decimalEditorTile___6020).fields["firstInstance"] = (true); + case 7: case 8: + r0 = globals.decimalEditorTile___6020; + { step = 17; continue; } + { step = 14; continue; } case 9: + r0 = (s.arg0 == 254); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 12; continue; } + r0 = pxsim_numops_toBoolDecr(globals.posIntEditorTile___6022); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 10; continue; } + r0 = pxsim_pxtcore_mkClassInstance(microcode_DigitEditor__C4559_VT); + s.tmp_3 = r0; + s.tmp_4 = microcode_DigitEditor_constructor__P4560_mk(s); + s.tmp_4.arg0 = s.tmp_3; + s.tmp_4.arg1 = undefined; + s.tmp_4.arg2 = true; + s.callLocIdx = 1859; s.pc = 21; return s.tmp_4; + case 21: + r0 = s.retval; + globals.posIntEditorTile___6022 = (s.tmp_3); + r0 = (globals.posIntEditorTile___6022).fields["firstInstance"] = (true); + case 10: + case 11: + r0 = globals.posIntEditorTile___6022; + { step = 17; continue; } + case 12: + case 13: + case 14: + case 15: + case 16: r0 = undefined; + case 17: return leave(s, r0) default: oops() } } } -microcode_RuleClosure_runAction__P5891.info = {"start":10248,"length":1572,"line":287,"column":8,"endLine":320,"endColumn":9,"fileName":"interpreter.ts","functionName":"runAction","argumentNames":["this"]} +microcode_getEditor__P4598.info = {"start":9205,"length":1105,"line":304,"column":4,"endLine":331,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"getEditor","argumentNames":["tid"]} -function microcode_RuleClosure_runAction__P5891_mk(s) { +function microcode_getEditor__P4598_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_runAction__P5891, depth: s.depth + 1, + parent: s, fn: microcode_getEditor__P4598, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - actuator___8507: undefined, - param___8512: undefined, - mod___8527: undefined, - modEditor___8534: undefined, - mod___8540: undefined, + tmp_4: undefined, arg0: undefined, } } - -function microcode_Interpreter_processNewState__P4610(s) { +function microcode_DigitEditor_constructor__P4560(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -11992,69 +12958,93 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.updatedVars___8573 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = s.arg0.fields["newState"]; - s.tmp_0 = r0; - r0 = pxsim_pxtrt.keysOf(s.tmp_0); - s.updatedVars___8573 = (r0); - r0 = pxsim_Array__length(s.updatedVars___8573); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!checkSubtype(r0, microcode_DigitEditor__C4559_VT)) failedCast(r0, microcode_DigitEditor__C4559_VT); + r0 = (s.arg0).fields["field"] = (s.arg1); + r0 = (s.arg0).fields["posInt"] = (s.arg2); + r0 = pxsim_numops_toBoolDecr(s.arg2); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_processNewState_inline__P8582); - s.tmp_1 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg0); - s.tmp_2 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2.arg0 = s.updatedVars___8573; - s.tmp_2.arg1 = s.tmp_1; - s.callLocIdx = 1756; s.pc = 3; return s.tmp_2; - case 3: - r0 = s.retval; - r0 = pxsim_pxtrt.mkMap(); + r0 = 254; + { step = 2; continue; } + case 1: + r0 = 255; + case 2: + // jmp value (already in r0) s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "updatedVars", s.updatedVars___8573); - s.tmp_1 = microcode_Interpreter_addEvent__P4611_mk(s); + s.tmp_1 = microcode_ModifierEditor_constructor__P4544_mk(s); s.tmp_1.arg0 = s.arg0; s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1757; s.pc = 4; return s.tmp_1; - case 4: + s.callLocIdx = 1828; s.pc = 5; return s.tmp_1; + case 5: r0 = s.retval; - case 1: - case 2: - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtrt.mkMap(); + r0 = pxsim_pxtcore_mkClassInstance(microcode_DigitWidgetEditor__C4551_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_DigitWidgetEditor_constructor__P4552_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.arg2; + s.callLocIdx = 1829; s.pc = 6; return s.tmp_1; + case 6: + r0 = s.retval; + r0 = (s.arg0).fields["fieldEditor"] = (s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 3; continue; } + r0 = s.arg1; + { step = 4; continue; } + case 3: + s.tmp_0 = microcode_FieldEditor__C5998_v0_1_mk(s); + r0 = s.arg0.fields["fieldEditor"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_0.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.init; + s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + case 4: + // jmp value (already in r0) s.tmp_1 = r0; - r0 = (s.tmp_0).fields["newState"] = (s.tmp_1); + s.tmp_2 = r0 = s.arg0; + s.tmp_4 = microcode_FieldEditor__C5998_v1_2_mk(s); + r0 = s.arg0.fields["fieldEditor"]; + s.tmp_4.arg0 = r0; + s.tmp_4.arg1 = s.tmp_1; + if (!checkSubtype(s.tmp_4.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_4.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.clone; + s.pc = 8; return s.tmp_4; + case 8: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["field"] = (s.tmp_3); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_processNewState__P4610.info = {"start":18007,"length":468,"line":509,"column":8,"endLine":521,"endColumn":9,"fileName":"interpreter.ts","functionName":"processNewState","argumentNames":["this"]} +microcode_DigitEditor_constructor__P4560.info = {"start":2696,"length":332,"line":98,"column":8,"endLine":104,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","field","posInt"]} -function microcode_Interpreter_processNewState__P4610_mk(s) { +function microcode_DigitEditor_constructor__P4560_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_processNewState__P4610, depth: s.depth + 1, + parent: s, fn: microcode_DigitEditor_constructor__P4560, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - updatedVars___8573: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_Interpreter_processNewState_inline__P8582(s) { +function microcode_FieldEditor_init__P5999(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12068,37 +13058,61 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.caps[0].fields["state"]; - s.tmp_0 = r0; - s.tmp_1 = r0 = s.arg0; - r0 = s.caps[0].fields["newState"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_3, s.arg0); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_0, s.tmp_1, s.tmp_2); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_FieldEditor__C5998_VT)) failedCast(r0, microcode_FieldEditor__C5998_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_processNewState_inline__P8582.info = {"start":18167,"length":77,"line":512,"column":36,"endLine":514,"endColumn":17,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["k"]} +microcode_FieldEditor_init__P5999.info = {"start":413,"length":52,"line":12,"column":8,"endLine":14,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"init","argumentNames":["this"]} -function microcode_Interpreter_processNewState_inline__P8582_mk(s) { +function microcode_FieldEditor_init__P5999_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_processNewState_inline__P8582, depth: s.depth + 1, + parent: s, fn: microcode_FieldEditor_init__P5999, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, } } +function microcode_FieldEditor_clone__P6000(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_FieldEditor__C5998_VT)) failedCast(r0, microcode_FieldEditor__C5998_VT); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_FieldEditor_clone__P6000.info = {"start":474,"length":63,"line":15,"column":8,"endLine":17,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"clone","argumentNames":["this","field"]} + +function microcode_FieldEditor_clone__P6000_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_FieldEditor_clone__P6000, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, +} } + + + -function microcode_Interpreter_runAction__P4609(s) { +function microcode_DigitWidgetEditor_constructor__P4552(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12108,105 +13122,67 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.varName___8612 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - s.tmp_0 = r0 = s.arg2; - r0 = pxsim_pxtcore.switch_eq(40, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(48, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(49, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(50, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = s.tmp_0; - { step = 7; continue; } - case 1: - r0 = pxsim_numops_toBoolDecr(s.arg3); - if (!r0) { step = 2; continue; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "kind", 2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "index", s.arg3); - s.tmp_2 = microcode_Interpreter_addEvent__P4611_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = s.tmp_1; - s.callLocIdx = 1752; s.pc = 9; return s.tmp_2; - case 9: - r0 = s.retval; - case 2: - case 3: - { step = 8; continue; } - case 4: - case 5: - case 6: - s.tmp_0 = microcode_getParam__P4282_mk(s); - s.tmp_0.arg0 = s.arg2; - s.callLocIdx = 1753; s.pc = 10; return s.tmp_0; - case 10: - r0 = s.retval; - s.varName___8612 = (r0); - s.tmp_0 = microcode_Interpreter_updateState__P5915_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = s.varName___8612; - s.tmp_0.arg3 = s.arg3; - s.callLocIdx = 1754; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - { step = 8; continue; } - case 7: - s.tmp_0 = if_execute_3_mk(s); - r0 = s.arg0.fields["host"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg2; - s.tmp_0.arg2 = s.arg3; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "execute"), 3); - s.callLocIdx = 1755; s.pc = 12; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["execute"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["execute"], 3); s.callLocIdx = 1755; s.pc = 12; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1755; s.pc = 12; return s.tmp_0;; } - else { s.callLocIdx = 1755; s.pc = 12; return s.tmp_0; } - } - case 12: - r0 = s.retval; - case 8: + if (!checkSubtype(r0, microcode_DigitWidgetEditor__C4551_VT)) failedCast(r0, microcode_DigitWidgetEditor__C4551_VT); + r0 = (s.arg0).fields["posInt"] = (s.arg1); + r0 = undefined; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_runAction__P4609.info = {"start":16936,"length":883,"line":482,"column":8,"endLine":502,"endColumn":9,"fileName":"interpreter.ts","functionName":"runAction","argumentNames":["this","ruleIndex","action","param"]} +microcode_DigitWidgetEditor_constructor__P4552.info = {"start":1577,"length":68,"line":61,"column":8,"endLine":63,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","posInt"]} -function microcode_Interpreter_runAction__P4609_mk(s) { +function microcode_DigitWidgetEditor_constructor__P4552_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_runAction__P4609, depth: s.depth + 1, + parent: s, fn: microcode_DigitWidgetEditor_constructor__P4552, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - varName___8612: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, } } +function microcode_FieldEditor_constructor__P6005(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_FieldEditor__C5998_VT)) failedCast(r0, microcode_FieldEditor__C5998_VT); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_FieldEditor_constructor__P6005.info = {"start":388,"length":16,"line":11,"column":8,"endLine":11,"endColumn":24,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this"]} + +function microcode_FieldEditor_constructor__P6005_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_FieldEditor_constructor__P6005, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function microcode_Interpreter_updateState__P5915(s) { +function microcode_ModifierEditor_constructor__P4544(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12219,56 +13195,31 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = s.arg0.fields["newState"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = r0 = s.arg0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_4 = r0; - r0 = (s.tmp_3).fields["newState"] = (s.tmp_4); - case 1: - case 2: - r0 = s.arg0.fields["newState"]; - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_0, s.arg2, s.arg3); + if (!checkSubtype(r0, microcode_ModifierEditor__C4543_VT)) failedCast(r0, microcode_ModifierEditor__C4543_VT); + r0 = (s.arg0).fields["tid"] = (s.arg1); + r0 = (s.arg0).fields["firstInstance"] = (false); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_updateState__P5915.info = {"start":17829,"length":168,"line":504,"column":8,"endLine":507,"endColumn":9,"fileName":"interpreter.ts","functionName":"updateState","argumentNames":["this","ruleIndex","varName","v"]} +microcode_ModifierEditor_constructor__P4544.info = {"start":1004,"length":82,"line":37,"column":8,"endLine":39,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","tid"]} -function microcode_Interpreter_updateState__P5915_mk(s) { +function microcode_ModifierEditor_constructor__P4544_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_updateState__P5915, depth: s.depth + 1, + parent: s, fn: microcode_ModifierEditor_constructor__P4544, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function microcode_RuleClosure_getParamInstant__P5889(s) { +function microcode_MelodyEditor_constructor__P4593(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12278,145 +13229,76 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.actuator___8640 = undefined; - s.targetPage___8667 = undefined; - s.m___8669 = undefined; - s.unnamed56___U3 = undefined; - s.unnamed57___U4 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["actuators"]; - s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, 0); - s.actuator___8640 = (r0); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); + if (!checkSubtype(r0, microcode_MelodyEditor__C4591_VT)) failedCast(r0, microcode_MelodyEditor__C4591_VT); + s.tmp_0 = microcode_ModifierEditor_constructor__P4544_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = 179; + s.callLocIdx = 1849; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = (s.arg0).fields["firstInstance"] = (false); + r0 = pxsim_pxtcore_mkClassInstance(microcode_MelodyFieldEditor__C4584_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = undefined; + r0 = (s.arg0).fields["fieldEditor"] = (s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.arg1); if (!r0) { step = 1; continue; } - s.tmp_3 = microcode_defaultModifier__P4262_mk(s); - s.tmp_3.arg0 = s.actuator___8640; - s.callLocIdx = 1720; s.pc = 16; return s.tmp_3; - case 16: - r0 = s.retval; - { step = 15; continue; } + r0 = s.arg1; + { step = 2; continue; } case 1: - case 2: - s.tmp_4 = r0 = s.actuator___8640; - r0 = pxsim_pxtcore.switch_eq(48, s.tmp_4); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(49, s.tmp_4); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(50, s.tmp_4); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(51, s.tmp_4); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(45, s.tmp_4); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(46, s.tmp_4); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(40, s.tmp_4); - if (r0) { step = 9; continue; } - r0 = s.tmp_4; - { step = 14; continue; } - case 3: + s.tmp_0 = microcode_FieldEditor__C5998_v0_1_mk(s); + r0 = s.arg0.fields["fieldEditor"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_0.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.init; + s.pc = 4; return s.tmp_0; case 4: - case 5: - case 6: - case 7: - case 8: - s.tmp_5 = microcode_Interpreter_getValue__P4616_mk(s); - r0 = s.arg0.fields["interp"]; - s.tmp_5.arg0 = r0; - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.tmp_5.arg1 = r0; - s.tmp_5.arg2 = 0; - s.callLocIdx = 1721; s.pc = 17; return s.tmp_5; - case 17: r0 = s.retval; - { step = 15; continue; } - case 9: - s.targetPage___8667 = (1); - s.m___8669 = (undefined); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["modifiers"]; - s.unnamed56___U3 = (r0); - s.unnamed57___U4 = (0); - case 10: - s.tmp_0 = r0 = s.unnamed57___U4; - r0 = pxsim_Array__length(s.unnamed56___U3); + case 2: + // jmp value (already in r0) s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 13; continue; } - r0 = pxsim_Array__getAt(s.unnamed56___U3, s.unnamed57___U4); - s.m___8669 = (r0); - s.tmp_4 = microcode_getKind__P4280_mk(s); - s.tmp_4.arg0 = s.m___8669; - s.callLocIdx = 1722; s.pc = 18; return s.tmp_4; - case 18: + s.tmp_2 = r0 = s.arg0; + s.tmp_4 = microcode_FieldEditor__C5998_v1_2_mk(s); + r0 = s.arg0.fields["fieldEditor"]; + s.tmp_4.arg0 = r0; + s.tmp_4.arg1 = s.tmp_1; + if (!checkSubtype(s.tmp_4.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_4.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.clone; + s.pc = 5; return s.tmp_4; + case 5: r0 = s.retval; s.tmp_3 = r0; - r0 = (s.tmp_3 == 3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 11; continue; } - s.tmp_5 = microcode_getParam__P4282_mk(s); - s.tmp_5.arg0 = s.m___8669; - s.callLocIdx = 1723; s.pc = 19; return s.tmp_5; - case 19: - r0 = s.retval; - s.targetPage___8667 = (r0); - case 11: - case 12: - r0 = (s.unnamed57___U4 + 1); - s.unnamed57___U4 = (r0); - { step = 10; continue; } - case 13: - s.unnamed56___U3 = (undefined); - r0 = s.targetPage___8667; - { step = 15; continue; } - case 14: + r0 = (s.tmp_2).fields["field"] = (s.tmp_3); r0 = undefined; - case 15: return leave(s, r0) default: oops() } } } -microcode_RuleClosure_getParamInstant__P5889.info = {"start":9028,"length":981,"line":255,"column":8,"endLine":278,"endColumn":9,"fileName":"interpreter.ts","functionName":"getParamInstant","argumentNames":["this"]} +microcode_MelodyEditor_constructor__P4593.info = {"start":7831,"length":308,"line":264,"column":8,"endLine":271,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","field"]} -function microcode_RuleClosure_getParamInstant__P5889_mk(s) { +function microcode_MelodyEditor_constructor__P4593_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_getParamInstant__P5889, depth: s.depth + 1, + parent: s, fn: microcode_MelodyEditor_constructor__P4593, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - actuator___8640: undefined, - targetPage___8667: undefined, - m___8669: undefined, - unnamed56___U3: undefined, - unnamed57___U4: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Interpreter_getValue__P4616(s) { +function microcode_IconEditor_constructor__P4574(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12426,156 +13308,75 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tokens___8686 = undefined; - s.rnd___8688 = undefined; - s.i___8699 = undefined; - s.m___8705 = undefined; - s.max___8714 = undefined; - s.result___8742 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = pxsim_Array__mk(); - s.tokens___8686 = (r0); - s.rnd___8688 = (rnd_inline__P8689); - s.i___8699 = (0); - case 1: - s.tmp_1 = r0 = s.i___8699; - r0 = pxsim_Array__length(s.arg1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = pxsim_Array__getAt(s.arg1, s.i___8699); - s.m___8705 = (r0); - s.tmp_2 = microcode_getTid__P4041_mk(s); - s.tmp_2.arg0 = s.m___8705; - s.callLocIdx = 1838; s.pc = 7; return s.tmp_2; - case 7: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 == 177); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_4 = r0 = s.i___8699; - r0 = pxsim_Array__length(s.arg1); - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = (s.tmp_4 == s.tmp_5); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 2; continue; } - r0 = 2; - { step = 3; continue; } - case 2: - s.tmp_7 = microcode_Interpreter_constantFold__P4615_mk(s); - s.tmp_7.arg0 = s.arg0; - s.tmp_8 = helpers_arraySlice__P2144_mk(s); - s.tmp_8.arg0 = s.arg1; - r0 = (s.i___8699 + 1); - s.tmp_8.arg1 = r0; - s.tmp_8.arg2 = undefined; - s.callLocIdx = 1839; s.pc = 9; return s.tmp_8; - case 9: - r0 = s.retval; - s.tmp_7.arg1 = r0; - s.tmp_7.arg2 = 0; - s.callLocIdx = 1840; s.pc = 8; return s.tmp_7; - case 8: - r0 = s.retval; + if (!checkSubtype(r0, microcode_IconEditor__C4572_VT)) failedCast(r0, microcode_IconEditor__C4572_VT); + s.tmp_0 = microcode_ModifierEditor_constructor__P4544_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = 160; + s.callLocIdx = 1835; s.pc = 3; return s.tmp_0; case 3: - // jmp value (already in r0) - s.tmp_9 = r0; - s.max___8714 = (s.tmp_9); - s.tmp_0 = r0 = s.tokens___8686; - s.tmp_3 = lambda_2_mk(s); - s.tmp_3.argL = s.rnd___8688; - s.tmp_3.arg0 = s.max___8714; - setupLambda(s.tmp_3, s.tmp_3.argL); - s.callLocIdx = 1841; s.pc = 10; return s.tmp_3; - case 10: r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops.toString(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); - { step = 6; continue; } - { step = 5; continue; } + r0 = pxsim_pxtcore_mkClassInstance(microcode_IconFieldEditor__C4565_VT); + s.tmp_0 = r0; + r0 = undefined; + r0 = (s.arg0).fields["fieldEditor"] = (s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 1; continue; } + r0 = s.arg1; + { step = 2; continue; } + case 1: + s.tmp_0 = microcode_FieldEditor__C5998_v0_1_mk(s); + r0 = s.arg0.fields["fieldEditor"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_0.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.init; + s.pc = 4; return s.tmp_0; case 4: - s.tmp_0 = r0 = s.tokens___8686; - s.tmp_2 = microcode_Interpreter_getExprValue__P5920_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = s.m___8705; - s.callLocIdx = 1842; s.pc = 11; return s.tmp_2; - case 11: r0 = s.retval; + case 2: + // jmp value (already in r0) s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + s.tmp_2 = r0 = s.arg0; + s.tmp_4 = microcode_FieldEditor__C5998_v1_2_mk(s); + r0 = s.arg0.fields["fieldEditor"]; + s.tmp_4.arg0 = r0; + s.tmp_4.arg1 = s.tmp_1; + if (!checkSubtype(s.tmp_4.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_4.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.clone; + s.pc = 5; return s.tmp_4; case 5: - r0 = (s.i___8699 + 1); - s.i___8699 = (r0); - { step = 1; continue; } - case 6: - r0 = pxsim_pxtcore_mkClassInstance(parser_Parser__C4628_VT); - s.tmp_0 = r0; - s.tmp_1 = parser_Parser_constructor__P4629_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.tokens___8686; - s.callLocIdx = 1843; s.pc = 12; return s.tmp_1; - case 12: - r0 = s.retval; - s.tmp_2 = parser_Parser_parse__P4631_mk(s); - s.tmp_2.arg0 = s.tmp_0; - s.tmp_2.arg1 = 0; - s.callLocIdx = 1844; s.pc = 13; return s.tmp_2; - case 13: r0 = s.retval; - s.result___8742 = (r0); - r0 = s.result___8742; + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["field"] = (s.tmp_3); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_getValue__P4616.info = {"start":28401,"length":800,"line":766,"column":8,"endLine":784,"endColumn":9,"fileName":"interpreter.ts","functionName":"getValue","argumentNames":["this","tiles","defl"]} +microcode_IconEditor_constructor__P4574.info = {"start":5025,"length":265,"line":176,"column":8,"endLine":182,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","field"]} -function microcode_Interpreter_getValue__P4616_mk(s) { +function microcode_IconEditor_constructor__P4574_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_getValue__P4616, depth: s.depth + 1, + parent: s, fn: microcode_IconEditor_constructor__P4574, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tokens___8686: undefined, - rnd___8688: undefined, - i___8699: undefined, - m___8705: undefined, - max___8714: undefined, - result___8742: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function rnd_inline__P8689(s) { +function microcode_RuleClosure_ok__P6103(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12589,34 +13390,72 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim.Math_.random(); - s.tmp_2 = r0; - r0 = (s.tmp_2 * s.arg0); - s.tmp_1 = r0; - r0 = pxsim.Math_.floor(s.tmp_1); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["interp"]; + r0 = r0.fields["running"]; s.tmp_0 = r0; - r0 = (s.tmp_0 + 1); + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = s.arg0.fields["actionRunning"]; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -rnd_inline__P8689.info = {"start":28528,"length":52,"line":768,"column":24,"endLine":768,"endColumn":76,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["max"]} +microcode_RuleClosure_ok__P6103.info = {"start":5094,"length":85,"line":157,"column":8,"endLine":159,"endColumn":9,"fileName":"interpreter.ts","functionName":"ok","argumentNames":["this"]} -function rnd_inline__P8689_mk(s) { +function microcode_RuleClosure_ok__P6103_mk(s) { checkStack(s.depth); return { - parent: s, fn: rnd_inline__P8689, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_ok__P6103, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, arg0: undefined, } } +function control_runInBackground__P2442(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim.control.inBackground(s.arg0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +control_runInBackground__P2442.info = {"start":316,"length":87,"line":15,"column":4,"endLine":17,"endColumn":5,"fileName":"pxt_modules/core/control.ts","functionName":"runInBackground","argumentNames":["a"]} + +function control_runInBackground__P2442_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: control_runInBackground__P2442, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function parser_Parser_constructor__P4629(s) { +function microcode_Interpreter_error__P4765(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12632,20 +13471,25 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, parser_Parser__C4628_VT)) failedCast(r0, parser_Parser__C4628_VT); - r0 = (s.arg0).fields["tokens"] = (s.arg1); - r0 = (s.arg0).fields["index"] = (0); + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + s.tmp_0 = console_log__P2528_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 2139; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = pxsim_pxtrt.panic(123); r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_constructor__P4629.info = {"start":2458,"length":39,"line":82,"column":8,"endLine":82,"endColumn":47,"fileName":"parser.ts","functionName":"inline","argumentNames":["this","tokens"]} +microcode_Interpreter_error__P4765.info = {"start":27572,"length":97,"line":759,"column":8,"endLine":762,"endColumn":9,"fileName":"interpreter.ts","functionName":"error","argumentNames":["this","msg"]} -function parser_Parser_constructor__P4629_mk(s) { +function microcode_Interpreter_error__P4765_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_constructor__P4629, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_error__P4765, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, arg1: undefined, } } @@ -12653,8 +13497,7 @@ function parser_Parser_constructor__P4629_mk(s) { - -function parser_Parser_parse__P4631(s) { +function microcode_RuleClosure_getWakeTime__P6114(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12664,187 +13507,156 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.token___8754 = undefined; - s.prefixParser___8756 = undefined; - s.lhs___8767 = undefined; - s.precRight___8770 = undefined; - s.infixParser___8779 = undefined; + s.sensor___9257 = undefined; + s.period___9268 = undefined; + s.randomPeriod___9269 = undefined; + s.m___9271 = undefined; + s.unnamed64___U4 = undefined; + s.unnamed65___U5 = undefined; + s.param___9275 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, parser_Parser__C4628_VT)) failedCast(r0, parser_Parser__C4628_VT); - s.tmp_0 = parser_Parser_next__P5985_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1879; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - s.token___8754 = (r0); - s.tmp_0 = parser_Parser_prefixParser__P5987_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.token___8754; - s.callLocIdx = 1880; s.pc = 10; return s.tmp_0; - case 10: + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = (s.arg0).fields["wakeTime"] = (0); + s.tmp_0 = microcode_RuleDefn_sensor__P4202_mk(s); + r0 = s.arg0.fields["rule"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 2058; s.pc = 18; return s.tmp_0; + case 18: r0 = s.retval; - s.prefixParser___8756 = (r0); - r0 = pxsim_numops_toBoolDecr(s.prefixParser___8756); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + s.sensor___9257 = (r0); + r0 = (s.sensor___9257 == 14); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkClassInstance(parser_Error__C5921_VT); - s.tmp_2 = r0; - s.tmp_3 = parser_Error_constructor__P5922_mk(s); - s.tmp_3.arg0 = s.tmp_2; - if ((s.token___8754) && (s.token___8754).vtable) { - setupResume(s, 12); - pxsim_String__stringConv(s.token___8754); - checkResumeConsumed(); - return; - } else { s.retval = (s.token___8754) + ""; } - case 12: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat("Unexpected prefix token ", s.tmp_4); - s.tmp_3.arg1 = r0; - s.callLocIdx = 1881; s.pc = 11; return s.tmp_3; - case 11: - r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.tmp_2); + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = (s.sensor___9257 == 10); case 2: - s.tmp_5 = lambda_2_mk(s); - s.tmp_5.argL = s.prefixParser___8756; - s.tmp_5.arg0 = s.token___8754; - setupLambda(s.tmp_5, s.tmp_5.argL); - s.callLocIdx = 1882; s.pc = 13; return s.tmp_5; - case 13: - r0 = s.retval; - s.lhs___8767 = (r0); - s.tmp_0 = parser_Parser_precOf__P4630_mk(s); - s.tmp_0.arg0 = s.arg0; - r0 = s.arg0.fields["tokens"]; + // jmp value (already in r0) s.tmp_1 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1884; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - s.precRight___8770 = (r0); + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 15; continue; } + s.period___9268 = (0); + s.randomPeriod___9269 = (0); + s.m___9271 = (undefined); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["filters"]; + s.unnamed64___U4 = (r0); + s.unnamed65___U5 = (0); case 3: - r0 = (s.arg1 < s.precRight___8770); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.tmp_1 = parser_Parser_next__P5985_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1885; s.pc = 15; return s.tmp_1; - case 15: - r0 = s.retval; - s.token___8754 = (r0); - s.tmp_1 = parser_Parser_infixParser__P5988_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.token___8754; - s.callLocIdx = 1886; s.pc = 16; return s.tmp_1; - case 16: + s.tmp_0 = r0 = s.unnamed65___U5; + r0 = pxsim_Array__length(s.unnamed64___U4); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 6; continue; } + r0 = pxsim_Array__getAt(s.unnamed64___U4, s.unnamed65___U5); + s.m___9271 = (r0); + s.tmp_2 = microcode_getParam__P4433_mk(s); + s.tmp_2.arg0 = s.m___9271; + s.callLocIdx = 2059; s.pc = 19; return s.tmp_2; + case 19: r0 = s.retval; + s.param___9275 = (r0); + r0 = (s.param___9275 >= 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 4; continue; } - r0 = s.tmp_0; + r0 = (s.period___9268 + s.param___9275); + s.period___9268 = (r0); { step = 5; continue; } case 4: - r0 = undefined; + s.tmp_0 = r0 = s.randomPeriod___9269; + r0 = (0 - s.param___9275); + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); + s.randomPeriod___9269 = (r0); case 5: + r0 = (s.unnamed65___U5 + 1); + s.unnamed65___U5 = (r0); + { step = 3; continue; } + case 6: + s.unnamed64___U4 = (undefined); + r0 = (s.sensor___9257 == 14); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 7; continue; } + r0 = s.tmp_0; + { step = 8; continue; } + case 7: + r0 = (s.period___9268 == 0); + case 8: // jmp value (already in r0) - s.tmp_2 = r0; - s.infixParser___8779 = (s.tmp_2); - r0 = pxsim_numops_toBoolDecr(s.infixParser___8779); s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = pxsim_numops_toBool(s.tmp_1); + if (r0) { step = 9; continue; } + r0 = s.tmp_1; + { step = 10; continue; } + case 9: + r0 = (s.randomPeriod___9269 == 0); + case 10: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 11; continue; } + s.period___9268 = (1000); + case 11: + case 12: + r0 = (s.randomPeriod___9269 > 0); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = pxsim_pxtcore_mkClassInstance(parser_Error__C5921_VT); - s.tmp_2 = r0; - s.tmp_3 = parser_Error_constructor__P5922_mk(s); - s.tmp_3.arg0 = s.tmp_2; - if ((s.token___8754) && (s.token___8754).vtable) { - setupResume(s, 18); - pxsim_String__stringConv(s.token___8754); - checkResumeConsumed(); - return; - } else { s.retval = (s.token___8754) + ""; } - case 18: - r0 = s.retval; + if (!r0) { step = 13; continue; } + s.tmp_1 = r0 = s.period___9268; + r0 = pxsim.Math_.random(); s.tmp_4 = r0; - r0 = pxsim_String__concat("Unexpected infix or postfix token ", s.tmp_4); - s.tmp_3.arg1 = r0; - s.callLocIdx = 1888; s.pc = 17; return s.tmp_3; - case 17: - r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.tmp_2); - case 6: - case 7: - s.tmp_5 = lambda_3_mk(s); - s.tmp_5.argL = s.infixParser___8779; - s.tmp_5.arg0 = s.lhs___8767; - s.tmp_5.arg1 = s.token___8754; - setupLambda(s.tmp_5, s.tmp_5.argL); - s.callLocIdx = 1889; s.pc = 19; return s.tmp_5; - case 19: - r0 = s.retval; - s.lhs___8767 = (r0); - s.tmp_0 = parser_Parser_precOf__P4630_mk(s); - s.tmp_0.arg0 = s.arg0; - r0 = s.arg0.fields["tokens"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["index"]; + r0 = (s.tmp_4 * s.randomPeriod___9269); + s.tmp_3 = r0; + r0 = pxsim.Math_.floor(s.tmp_3); s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1891; s.pc = 20; return s.tmp_0; - case 20: - r0 = s.retval; - s.precRight___8770 = (r0); - { step = 3; continue; } - case 8: - r0 = s.lhs___8767; + r0 = (s.tmp_1 + s.tmp_2); + s.period___9268 = (r0); + case 13: + case 14: + r0 = (s.arg0).fields["wakeTime"] = (s.period___9268); + r0 = s.period___9268; + { step = 17; continue; } + case 15: + case 16: + r0 = 0; + case 17: return leave(s, r0) default: oops() } } } -parser_Parser_parse__P4631.info = {"start":2620,"length":880,"line":88,"column":8,"endLine":111,"endColumn":9,"fileName":"parser.ts","functionName":"parse","argumentNames":["this","prec"]} +microcode_RuleClosure_getWakeTime__P6114.info = {"start":11972,"length":1049,"line":339,"column":8,"endLine":367,"endColumn":9,"fileName":"interpreter.ts","functionName":"getWakeTime","argumentNames":["this"]} -function parser_Parser_parse__P4631_mk(s) { +function microcode_RuleClosure_getWakeTime__P6114_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_parse__P4631, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_getWakeTime__P6114, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - token___8754: undefined, - prefixParser___8756: undefined, - lhs___8767: undefined, - precRight___8770: undefined, - infixParser___8779: undefined, + sensor___9257: undefined, + period___9268: undefined, + randomPeriod___9269: undefined, + m___9271: undefined, + unnamed64___U4: undefined, + unnamed65___U5: undefined, + param___9275: undefined, arg0: undefined, - arg1: undefined, } } - -function parser_Parser_postfixParser__P5989(s) { +function microcode_RuleClosure_reset__P6098(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12856,31 +13668,32 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, parser_Parser__C4628_VT)) failedCast(r0, parser_Parser__C4628_VT); + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = (s.arg0).fields["wakeTime"] = (0); + r0 = (s.arg0).fields["actionRunning"] = (false); + r0 = (s.arg0).fields["modifierIndex"] = (0); + r0 = (s.arg0).fields["loopIndex"] = (0); r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_postfixParser__P5989.info = {"start":2099,"length":349,"line":73,"column":8,"endLine":80,"endColumn":9,"fileName":"parser.ts","functionName":"postfixParser","argumentNames":["this","t"]} +microcode_RuleClosure_reset__P6098.info = {"start":2642,"length":162,"line":88,"column":8,"endLine":93,"endColumn":9,"fileName":"interpreter.ts","functionName":"reset","argumentNames":["this"]} -function parser_Parser_postfixParser__P5989_mk(s) { +function microcode_RuleClosure_reset__P6098_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_postfixParser__P5989, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_reset__P6098, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, - arg1: undefined, } } - -function parser_Parser_infixParser__P5988(s) { +function microcode_Interpreter_addEvent__P4762(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12896,33 +13709,37 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, parser_Parser__C4628_VT)) failedCast(r0, parser_Parser__C4628_VT); - r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___5924, s.arg1); + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = s.arg0.fields["running"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkAction(2, parser_Parser_infixParser_inline__P8809); - s.tmp_1 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg1); - r0 = pxsim_pxtrt_stclo(s.tmp_1, 1, s.arg0); - r0 = s.tmp_1; { step = 3; continue; } case 1: case 2: - r0 = undefined; + r0 = s.arg0.fields["eventQueue"]; + s.tmp_3 = r0; + r0 = pxsim_Array__push(s.tmp_3, s.arg1); case 3: + r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_infixParser__P5988.info = {"start":1844,"length":245,"line":65,"column":8,"endLine":71,"endColumn":9,"fileName":"parser.ts","functionName":"infixParser","argumentNames":["this","t"]} +microcode_Interpreter_addEvent__P4762.info = {"start":21569,"length":128,"line":623,"column":8,"endLine":626,"endColumn":9,"fileName":"interpreter.ts","functionName":"addEvent","argumentNames":["this","event"]} -function parser_Parser_infixParser__P5988_mk(s) { +function microcode_Interpreter_addEvent__P4762_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_infixParser__P5988, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_addEvent__P4762, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, arg1: undefined, } } @@ -12930,8 +13747,7 @@ function parser_Parser_infixParser__P5988_mk(s) { - -function parser_Parser_infixParser_inline__P8809(s) { +function microcode_RuleClosure_constructor__P6115(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -12944,65 +13760,42 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - s.tmp_0 = if_fun_3_mk(s); - r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___5924, s.caps[0]); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg0; - s.tmp_1 = parser_Parser_parse__P4631_mk(s); - s.tmp_1.arg0 = s.caps[1]; - s.tmp_2 = if_prec_1_mk(s); - r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___5924, s.caps[0]); - s.tmp_2.arg0 = r0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "prec"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["prec"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["prec"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1875; s.pc = 3; return s.tmp_2; } - } - case 3: - r0 = s.retval; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1876; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg2 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "fun"), 3); - s.callLocIdx = 1877; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["fun"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["fun"], 3); s.callLocIdx = 1877; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1877; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1877; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = (s.arg0).fields["index"] = (s.arg1); + r0 = (s.arg0).fields["rule"] = (s.arg2); + r0 = (s.arg0).fields["interp"] = (s.arg3); + r0 = (s.arg0).fields["backgroundActive"] = (false); + r0 = (s.arg0).fields["wakeTime"] = (0); + r0 = (s.arg0).fields["actionRunning"] = (false); + r0 = (s.arg0).fields["modifierIndex"] = (0); + r0 = (s.arg0).fields["loopIndex"] = (0); + r0 = (s.arg0).fields["timerGoAhead"] = (false); + r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_infixParser_inline__P8809.info = {"start":1940,"length":96,"line":67,"column":23,"endLine":68,"endColumn":70,"fileName":"parser.ts","functionName":"inline","argumentNames":["lhs","token"]} +microcode_RuleClosure_constructor__P6115.info = {"start":2072,"length":134,"line":66,"column":8,"endLine":70,"endColumn":12,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["this","index","rule","interp"]} -function parser_Parser_infixParser_inline__P8809_mk(s) { +function microcode_RuleClosure_constructor__P6115_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_infixParser_inline__P8809, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_constructor__P6115, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function parser_Parser_peek__P5986(s) { +function helpers_arrayForEach__P2138(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13012,37 +13805,57 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.len___9337 = undefined; + s.i___9340 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, parser_Parser__C4628_VT)) failedCast(r0, parser_Parser__C4628_VT); - r0 = s.arg0.fields["tokens"]; + r0 = pxsim_Array__length(s.arg0); + s.len___9337 = (r0); + s.i___9340 = (0); + case 1: + r0 = (s.i___9340 < s.len___9337); s.tmp_0 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = lambda_3_mk(s); + s.tmp_1.argL = s.arg1; + r0 = pxsim_Array__getAt(s.arg0, s.i___9340); + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.i___9340; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 6; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + r0 = (s.i___9340 + 1); + s.i___9340 = (r0); + { step = 1; continue; } + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_peek__P5986.info = {"start":1234,"length":69,"line":44,"column":8,"endLine":46,"endColumn":9,"fileName":"parser.ts","functionName":"peek","argumentNames":["this"]} +helpers_arrayForEach__P2138.info = {"start":7439,"length":250,"line":254,"column":4,"endLine":259,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayForEach","argumentNames":["arr","callbackfn"]} -function parser_Parser_peek__P5986_mk(s) { +function helpers_arrayForEach__P2138_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_peek__P5986, depth: s.depth + 1, + parent: s, fn: helpers_arrayForEach__P2138, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + len___9337: undefined, + i___9340: undefined, arg0: undefined, + arg1: undefined, } } - -function parser_Parser_precOf__P4630(s) { +function microcode_Interpreter_stopAllRules__P6140(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13054,57 +13867,41 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, parser_Parser__C4628_VT)) failedCast(r0, parser_Parser__C4628_VT); - r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___5924, s.arg1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = if_prec_1_mk(s); - r0 = pxsim_pxtrt.mapGetGeneric(globals.infixOps___5924, s.arg1); - s.tmp_1.arg0 = r0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "prec"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["prec"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["prec"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1878; s.pc = 3; return s.tmp_1; } - } - case 3: - r0 = s.retval; - { step = 2; continue; } + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleClosures"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = microcode_Interpreter_stopAllRules_inline__P9356; + s.callLocIdx = 2067; s.pc = 1; return s.tmp_0; case 1: - r0 = 0; - case 2: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = s.tmp_2; + r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ruleClosures"] = (s.tmp_1); + r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_precOf__P4630.info = {"start":2507,"length":103,"line":84,"column":8,"endLine":86,"endColumn":9,"fileName":"parser.ts","functionName":"precOf","argumentNames":["this","token"]} +microcode_Interpreter_stopAllRules__P6140.info = {"start":16634,"length":122,"line":492,"column":8,"endLine":495,"endColumn":9,"fileName":"interpreter.ts","functionName":"stopAllRules","argumentNames":["this"]} -function parser_Parser_precOf__P4630_mk(s) { +function microcode_Interpreter_stopAllRules__P6140_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_precOf__P4630, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_stopAllRules__P6140, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function parser_Error_constructor__P5922(s) { +function microcode_Interpreter_stopAllRules_inline__P9356(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13116,38 +13913,32 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, parser_Error__C5921_VT)) failedCast(r0, parser_Error__C5921_VT); - r0 = (s.arg0).fields["msg"] = (s.arg1); - s.tmp_0 = console_log__P2528_mk(s); - s.tmp_0.arg0 = s.arg1; - s.callLocIdx = 1870; s.pc = 1; return s.tmp_0; + s.tmp_0 = microcode_RuleClosure_kill__P6099_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2066; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Error_constructor__P5922.info = {"start":192,"length":72,"line":10,"column":8,"endLine":12,"endColumn":9,"fileName":"parser.ts","functionName":"inline","argumentNames":["this","msg"]} +microcode_Interpreter_stopAllRules_inline__P9356.info = {"start":16697,"length":13,"line":493,"column":38,"endLine":493,"endColumn":51,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["r"]} -function parser_Error_constructor__P5922_mk(s) { +function microcode_Interpreter_stopAllRules_inline__P9356_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Error_constructor__P5922, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_stopAllRules_inline__P9356, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function console_log__P2528(s) { +function microcode_RuleClosure_kill__P6099(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13157,36 +13948,95 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.resource___9364 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = console_add__P2524_mk(s); - s.tmp_0.arg0 = 1; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 40; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + s.tmp_0 = microcode_RuleClosure_getOutputResource__P6108_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2005; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + s.resource___9364 = (r0); + r0 = (s.resource___9364 == 1000); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim.led.stopAnimation(); + { step = 4; continue; } case 1: + r0 = (s.resource___9364 == 1001); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = music_stopAllSounds__P2704_mk(s); + s.callLocIdx = 2006; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + case 2: + case 3: + case 4: + r0 = (s.arg0).fields["actionRunning"] = (false); + case 5: + r0 = s.arg0.fields["wakeTime"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 > 0); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 6; continue; } + r0 = s.tmp_0; + { step = 7; continue; } + case 6: + r0 = s.arg0.fields["backgroundActive"]; + case 7: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 8; continue; } + setupResume(s, 11); + pxsim.basic.pause(0); + checkResumeConsumed(); + return; + case 11: + r0 = s.retval; + { step = 5; continue; } + case 8: + s.tmp_0 = microcode_RuleClosure_reset__P6098_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2008; s.pc = 12; return s.tmp_0; + case 12: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -console_log__P2528.info = {"start":1314,"length":86,"line":55,"column":4,"endLine":57,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"log","argumentNames":["value"]} +microcode_RuleClosure_kill__P6099.info = {"start":2814,"length":503,"line":95,"column":8,"endLine":106,"endColumn":9,"fileName":"interpreter.ts","functionName":"kill","argumentNames":["this"]} -function console_log__P2528_mk(s) { +function microcode_RuleClosure_kill__P6099_mk(s) { checkStack(s.depth); return { - parent: s, fn: console_log__P2528, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_kill__P6099, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + resource___9364: undefined, arg0: undefined, } } - -function console_add__P2524(s) { +function microcode_RuleClosure_waitingOnTimer__P6113(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13196,92 +14046,33 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.text___8848 = undefined; - s.i___8862 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 < globals.minPriority___2523); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 7; continue; } - case 1: - case 2: - s.tmp_1 = console_inspect__P2530_mk(s); - s.tmp_1.arg0 = s.arg1; - s.tmp_1.arg1 = 20; - s.callLocIdx = 37; s.pc = 8; return s.tmp_1; - case 8: - r0 = s.retval; - s.text___8848 = (r0); - if ((s.text___8848) && (s.text___8848).vtable) { - setupResume(s, 9); - pxsim_String__stringConv(s.text___8848); - checkResumeConsumed(); - return; - } else { s.retval = (s.text___8848) + ""; } - case 9: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String__concat(s.tmp_0, "\n"); - s.text___8848 = (r0); - r0 = pxsim.control.__log(s.arg0, s.text___8848); - r0 = pxsim_numops_toBoolDecr(globals.listeners___4853); - if (!r0) { step = 5; continue; } - s.i___8862 = (0); - case 3: - s.tmp_1 = r0 = s.i___8862; - r0 = pxsim_Array__length(globals.listeners___4853); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["wakeTime"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_3 = lambda_3_mk(s); - r0 = pxsim_Array__getAt(globals.listeners___4853, s.i___8862); - s.tmp_3.argL = r0; - s.tmp_3.arg0 = s.arg0; - s.tmp_3.arg1 = s.text___8848; - setupLambda(s.tmp_3, s.tmp_3.argL); - s.callLocIdx = 38; s.pc = 10; return s.tmp_3; - case 10: - r0 = s.retval; - r0 = (s.i___8862 + 1); - s.i___8862 = (r0); - { step = 3; continue; } - case 4: - case 5: - case 6: - case 7: - r0 = undefined; + r0 = (s.tmp_0 > 0); return leave(s, r0) default: oops() } } } -console_add__P2524.info = {"start":508,"length":386,"line":25,"column":4,"endLine":35,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"add","argumentNames":["priority","message"]} +microcode_RuleClosure_waitingOnTimer__P6113.info = {"start":11889,"length":73,"line":335,"column":8,"endLine":337,"endColumn":9,"fileName":"interpreter.ts","functionName":"waitingOnTimer","argumentNames":["this"]} -function console_add__P2524_mk(s) { +function microcode_RuleClosure_waitingOnTimer__P6113_mk(s) { checkStack(s.depth); return { - parent: s, fn: console_add__P2524, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_waitingOnTimer__P6113, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - text___8848: undefined, - i___8862: undefined, arg0: undefined, - arg1: undefined, } } - -function console_inspect__P2530(s) { +function music_stopAllSounds__P2704(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13291,239 +14082,73 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.asArr___8893 = undefined; - s.asString___8911 = undefined; - s.keys___8923 = undefined; - s.snipped___8927 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = pxsim_pxtcore.typeOf(s.arg0); - s.tmp_1 = r0; - r0 = (s.tmp_1 == "string"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.arg0; - { step = 17; continue; } - { step = 16; continue; } - case 1: - r0 = pxsim_pxtcore.typeOf(s.arg0); - s.tmp_3 = r0; - r0 = (s.tmp_3 == "number"); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 2; continue; } - r0 = pxsim_String_.mkEmpty(); - s.tmp_4 = r0; - if ((s.arg0) && (s.arg0).vtable) { - setupResume(s, 18); - pxsim_String__stringConv(s.arg0); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg0) + ""; } - case 18: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat(s.tmp_4, s.tmp_5); - { step = 17; continue; } - { step = 15; continue; } - case 2: - r0 = pxsim_Array_.isArray(s.arg0); - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 5; continue; } - s.asArr___8893 = (s.arg0); - r0 = pxsim_Array__length(s.asArr___8893); - s.tmp_1 = r0; - r0 = (s.tmp_1 <= s.arg1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_2 = helpers_arrayJoin__P2132_mk(s); - s.tmp_2.arg0 = s.asArr___8893; - s.tmp_2.arg1 = ","; - s.callLocIdx = 41; s.pc = 19; return s.tmp_2; - case 19: - r0 = s.retval; - { step = 17; continue; } - { step = 4; continue; } - case 3: - r0 = pxsim_String_.mkEmpty(); - s.tmp_4 = r0; - s.tmp_7 = helpers_arrayJoin__P2132_mk(s); - s.tmp_8 = helpers_arraySlice__P2144_mk(s); - s.tmp_8.arg0 = s.asArr___8893; - s.tmp_8.arg1 = 0; - s.tmp_8.arg2 = s.arg1; - s.callLocIdx = 42; s.pc = 21; return s.tmp_8; - case 21: - r0 = s.retval; - s.tmp_7.arg0 = r0; - s.tmp_7.arg1 = ","; - s.callLocIdx = 43; s.pc = 20; return s.tmp_7; - case 20: - r0 = s.retval; - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 22); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 22: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat(s.tmp_4, s.tmp_5); - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_3, "..."); - { step = 17; continue; } - case 4: - { step = 14; continue; } + s.handler___9402 = undefined; + s.unnamed40___U1 = undefined; + s.unnamed41___U2 = undefined; + s.tmp_0 = music_rest__P2686_mk(s); + s.tmp_0.arg0 = 0; + s.callLocIdx = 62; s.pc = 5; return s.tmp_0; case 5: - if ((s.arg0) && (s.arg0).vtable) { - setupResume(s, 23); - pxsim_String__stringConv(s.arg0); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg0) + ""; } - case 23: r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_10 = r0; - r0 = pxsim_String__concat(s.tmp_9, s.tmp_10); - s.asString___8911 = (r0); - r0 = (s.asString___8911 != "[object Object]"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 6; continue; } - r0 = s.tmp_0; - { step = 7; continue; } + s.tmp_0 = music_stopMelody__P2702_mk(s); + s.tmp_0.arg0 = 5; + s.callLocIdx = 63; s.pc = 6; return s.tmp_0; case 6: - r0 = (s.asString___8911 != "[Object]"); + r0 = s.retval; + r0 = pxsim.music.__stopSoundExpressions(); + s.tmp_0 = music__stopPlayables__P2968_mk(s); + s.callLocIdx = 64; s.pc = 7; return s.tmp_0; case 7: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 8; continue; } - r0 = s.asString___8911; - { step = 17; continue; } - case 8: - case 9: - r0 = pxsim_pxtrt.keysOf(s.arg0); - s.keys___8923 = (r0); - r0 = pxsim_Array__length(s.keys___8923); - s.tmp_0 = r0; - r0 = (s.tmp_0 > s.arg1); - s.snipped___8927 = (r0); - r0 = pxsim_numops_toBoolDecr(s.snipped___8927); - if (!r0) { step = 10; continue; } - s.tmp_0 = helpers_arraySlice__P2144_mk(s); - s.tmp_0.arg0 = s.keys___8923; - s.tmp_0.arg1 = 0; - s.tmp_0.arg2 = s.arg1; - s.callLocIdx = 44; s.pc = 24; return s.tmp_0; - case 24: r0 = s.retval; - s.keys___8923 = (r0); - case 10: - case 11: - r0 = pxsim_pxtcore_mkAction(1, console_inspect_inline__P8944); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_numops_toBoolDecr(s.snipped___8927); - if (!r0) { step = 12; continue; } - r0 = "\n ..."; - { step = 13; continue; } - case 12: - r0 = pxsim_String_.mkEmpty(); - case 13: - // jmp value (already in r0) + r0 = pxsim_numops_toBoolDecr(globals.stopSoundHandlers___4901); + if (!r0) { step = 3; continue; } + s.handler___9402 = (undefined); + s.unnamed40___U1 = (globals.stopSoundHandlers___4901); + s.unnamed41___U2 = (0); + case 1: + s.tmp_0 = r0 = s.unnamed41___U2; + r0 = pxsim_Array__length(s.unnamed40___U1); s.tmp_1 = r0; - s.tmp_7 = helpers_arrayReduce__P2141_mk(s); - s.tmp_7.arg0 = s.keys___8923; - s.tmp_7.arg1 = s.tmp_0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_7.arg2 = r0; - s.callLocIdx = 45; s.pc = 25; return s.tmp_7; - case 25: - r0 = s.retval; - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 26); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 26: - r0 = s.retval; - s.tmp_5 = r0; - if ((s.tmp_1) && (s.tmp_1).vtable) { - setupResume(s, 27); - pxsim_String__stringConv(s.tmp_1); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_1) + ""; } - case 27: - r0 = s.retval; - s.tmp_8 = r0; - r0 = pxsim_String__concat(s.tmp_5, s.tmp_8); - s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 28); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 28: + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = pxsim_Array__getAt(s.unnamed40___U1, s.unnamed41___U2); + s.handler___9402 = (r0); + s.tmp_2 = lambda_1_mk(s); + s.tmp_2.argL = s.handler___9402; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 65; s.pc = 8; return s.tmp_2; + case 8: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat("{", s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_String__concat(s.tmp_2, "\n}"); - { step = 17; continue; } - case 14: - case 15: - case 16: + r0 = (s.unnamed41___U2 + 1); + s.unnamed41___U2 = (r0); + { step = 1; continue; } + case 2: + s.unnamed40___U1 = (undefined); + case 3: + case 4: r0 = undefined; - case 17: return leave(s, r0) default: oops() } } } -console_inspect__P2530.info = {"start":2002,"length":1165,"line":75,"column":4,"endLine":107,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"inspect","argumentNames":["obj","maxElements"]} +music_stopAllSounds__P2704.info = {"start":17990,"length":303,"line":520,"column":4,"endLine":530,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"stopAllSounds","argumentNames":[]} -function console_inspect__P2530_mk(s) { +function music_stopAllSounds__P2704_mk(s) { checkStack(s.depth); return { - parent: s, fn: console_inspect__P2530, depth: s.depth + 1, + parent: s, fn: music_stopAllSounds__P2704, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - asArr___8893: undefined, - asString___8911: undefined, - keys___8923: undefined, - snipped___8927: undefined, - arg0: undefined, - arg1: undefined, + handler___9402: undefined, + unnamed40___U1: undefined, + unnamed41___U2: undefined, } } - -function console_inspect_inline__P8944(s) { +function music__stopPlayables__P2968(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13533,83 +14158,59 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - if ((s.arg0) && (s.arg0).vtable) { - setupResume(s, 1); - pxsim_String__stringConv(s.arg0); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg0) + ""; } - case 1: - r0 = s.retval; + s.p___9408 = undefined; + s.unnamed46___U1 = undefined; + s.unnamed47___U2 = undefined; + r0 = pxsim_numops_toBoolDecr(globals.looping___4978); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 2); - pxsim_String__stringConv(s.arg1); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg1) + ""; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 5; continue; } + case 1: case 2: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat("\n ", s.tmp_5); - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_4, ": "); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.caps[0], s.arg1); - s.tmp_7 = r0; - if ((s.tmp_7) && (s.tmp_7).vtable) { - setupResume(s, 3); - pxsim_String__stringConv(s.tmp_7); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_7) + ""; } + s.p___9408 = (undefined); + s.unnamed46___U1 = (globals.looping___4978); + s.unnamed47___U2 = (0); case 3: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_6); - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 4); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 4: - r0 = s.retval; + s.tmp_0 = r0 = s.unnamed47___U2; + r0 = pxsim_Array__length(s.unnamed46___U1); s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.unnamed46___U1, s.unnamed47___U2); + s.p___9408 = (r0); + r0 = (s.p___9408).fields["stopped"] = (true); + r0 = (s.unnamed47___U2 + 1); + s.unnamed47___U2 = (r0); + { step = 3; continue; } + case 4: + s.unnamed46___U1 = (undefined); + globals.looping___4978 = (undefined); + case 5: + r0 = undefined; return leave(s, r0) default: oops() } } } -console_inspect_inline__P8944.info = {"start":3003,"length":61,"line":101,"column":16,"endLine":101,"endColumn":77,"fileName":"pxt_modules/core/console.ts","functionName":"inline","argumentNames":["prev","currKey"]} +music__stopPlayables__P2968.info = {"start":4637,"length":175,"line":145,"column":4,"endLine":152,"endColumn":5,"fileName":"pxt_modules/core/playable.ts","functionName":"_stopPlayables","argumentNames":[]} -function console_inspect_inline__P8944_mk(s) { +function music__stopPlayables__P2968_mk(s) { checkStack(s.depth); return { - parent: s, fn: console_inspect_inline__P8944, depth: s.depth + 1, + parent: s, fn: music__stopPlayables__P2968, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - arg0: undefined, - arg1: undefined, + p___9408: undefined, + unnamed46___U1: undefined, + unnamed47___U2: undefined, } } - -function helpers_arrayReduce__P2141(s) { +function music_stopMelody__P2702(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13619,62 +14220,56 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___8971 = undefined; - s.i___8974 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_Array__length(s.arg0); - s.len___8971 = (r0); - s.i___8974 = (0); - case 1: - r0 = (s.i___8974 < s.len___8971); + r0 = (s.arg0 & 4); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = lambda_4_mk(s); - s.tmp_1.argL = s.arg1; - s.tmp_1.arg0 = s.arg2; - r0 = pxsim_Array__getAt(s.arg0, s.i___8974); - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.i___8974; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 9; s.pc = 3; return s.tmp_1; - case 3: + if (!r0) { step = 1; continue; } + s.tmp_1 = music_startMelody__P2696_mk(s); + r0 = pxsim_Array__mk(); + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = 4; + s.callLocIdx = 60; s.pc = 5; return s.tmp_1; + case 5: r0 = s.retval; - s.arg2 = (r0); - r0 = (s.i___8974 + 1); - s.i___8974 = (r0); - { step = 1; continue; } + case 1: case 2: - r0 = s.arg2; + r0 = (s.arg0 & 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = music_startMelody__P2696_mk(s); + r0 = pxsim_Array__mk(); + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = 1; + s.callLocIdx = 61; s.pc = 6; return s.tmp_1; + case 6: + r0 = s.retval; + case 3: + case 4: + r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_arrayReduce__P2141.info = {"start":8316,"length":317,"line":280,"column":4,"endLine":286,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayReduce","argumentNames":["arr","callbackfn","initialValue"]} +music_stopMelody__P2702.info = {"start":17315,"length":276,"line":499,"column":4,"endLine":504,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"stopMelody","argumentNames":["options"]} -function helpers_arrayReduce__P2141_mk(s) { +function music_stopMelody__P2702_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arrayReduce__P2141, depth: s.depth + 1, + parent: s, fn: music_stopMelody__P2702, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - len___8971: undefined, - i___8974: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function helpers_arrayJoin__P2132(s) { +function music_startMelody__P2696(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13684,144 +14279,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___8999 = undefined; - s.len___9000 = undefined; - s.i___9003 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg1 === undefined); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + s.tmp_0 = music_startMelodyInternal__P2698_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 51; s.pc = 1; return s.tmp_0; case 1: - r0 = (s.arg1 === null); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - s.arg1 = (","); - case 3: - case 4: - r0 = pxsim_String_.mkEmpty(); - s.r___8999 = (r0); - r0 = pxsim_Array__length(s.arg0); - s.len___9000 = (r0); - s.i___9003 = (0); - case 5: - r0 = (s.i___9003 < s.len___9000); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - r0 = (s.i___9003 > 0); - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (r0) { step = 6; continue; } - r0 = s.tmp_1; - { step = 7; continue; } - case 6: - r0 = s.arg1; - case 7: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 8; continue; } - if ((s.r___8999) && (s.r___8999).vtable) { - setupResume(s, 15); - pxsim_String__stringConv(s.r___8999); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___8999) + ""; } - case 15: - r0 = s.retval; - s.tmp_3 = r0; - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 16); - pxsim_String__stringConv(s.arg1); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg1) + ""; } - case 16: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); - s.r___8999 = (r0); - case 8: - case 9: - r0 = pxsim_Array__getAt(s.arg0, s.i___9003); - s.tmp_1 = r0; - r0 = (s.tmp_1 === undefined); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 10; continue; } - r0 = s.tmp_0; - { step = 11; continue; } - case 10: - r0 = pxsim_Array__getAt(s.arg0, s.i___9003); - s.tmp_2 = r0; - r0 = (s.tmp_2 === null); - case 11: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 12; continue; } - r0 = pxsim_String_.mkEmpty(); - { step = 13; continue; } - case 12: - r0 = pxsim_Array__getAt(s.arg0, s.i___9003); - case 13: - // jmp value (already in r0) - s.tmp_4 = r0; - if ((s.r___8999) && (s.r___8999).vtable) { - setupResume(s, 17); - pxsim_String__stringConv(s.r___8999); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___8999) + ""; } - case 17: - r0 = s.retval; - s.tmp_5 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 18); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 18: r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_String__concat(s.tmp_5, s.tmp_6); - s.r___8999 = (r0); - r0 = (s.i___9003 + 1); - s.i___9003 = (r0); - { step = 5; continue; } - case 14: - r0 = s.r___8999; + r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_arrayJoin__P2132.info = {"start":4133,"length":432,"line":157,"column":4,"endLine":170,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayJoin","argumentNames":["arr","sep"]} +music_startMelody__P2696.info = {"start":12248,"length":144,"line":379,"column":4,"endLine":381,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"startMelody","argumentNames":["melodyArray","options"]} -function helpers_arrayJoin__P2132_mk(s) { +function music_startMelody__P2696_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arrayJoin__P2132, depth: s.depth + 1, + parent: s, fn: music_startMelody__P2696, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - r___8999: undefined, - len___9000: undefined, - i___9003: undefined, arg0: undefined, arg1: undefined, } } @@ -13829,8 +14309,7 @@ function helpers_arrayJoin__P2132_mk(s) { - -function parser_Parser_prefixParser__P5987(s) { +function music_startMelodyInternal__P2698(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13840,67 +14319,101 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.num___9043 = undefined; + s.isBackground___9435 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, parser_Parser__C4628_VT)) failedCast(r0, parser_Parser__C4628_VT); - r0 = pxsim_String_.toNumber(s.arg1); - s.num___9043 = (r0); - s.tmp_3 = isNaN__P2122_mk(s); - s.tmp_3.arg0 = s.num___9043; - s.callLocIdx = 1871; s.pc = 6; return s.tmp_3; - case 6: + s.tmp_0 = music_init__P4907_mk(s); + s.callLocIdx = 52; s.pc = 9; return s.tmp_0; + case 9: r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (s.arg1 & 12); + s.isBackground___9435 = (r0); + r0 = (globals.currentMelody___4908 != undefined); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkAction(1, parser_Parser_prefixParser_inline__P9051); - s.tmp_4 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_4, 0, s.num___9043); - r0 = s.tmp_4; - { step = 5; continue; } - { step = 4; continue; } + if (!r0) { step = 7; continue; } + r0 = pxsim_numops_toBoolDecr(s.isBackground___9435); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (r0) { step = 1; continue; } + r0 = s.tmp_1; + { step = 2; continue; } case 1: - r0 = (s.arg1 === "("); - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 2; continue; } - r0 = pxsim_pxtcore_mkAction(1, parser_Parser_prefixParser_inline__P9056); - s.tmp_6 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_6, 0, s.arg0); - r0 = s.tmp_6; - { step = 5; continue; } + r0 = globals.currentMelody___4908.fields["background"]; case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 3; continue; } + globals.currentBackgroundMelody___4909 = (globals.currentMelody___4908); + globals.currentMelody___4908 = (null); + r0 = pxsim.control.raiseEvent(2000, 245, 1); case 3: case 4: - r0 = undefined; + r0 = pxsim_numops_toBoolDecr(globals.currentMelody___4908); + if (!r0) { step = 5; continue; } + r0 = globals.currentMelody___4908.fields["background"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 | 3); + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); case 5: + case 6: + r0 = pxsim_pxtcore_mkClassInstance(music_Melody__C4912_VT); + s.tmp_0 = r0; + s.tmp_1 = music_Melody_constructor__P4915_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.arg0; + s.tmp_1.arg2 = s.arg1; + s.callLocIdx = 53; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + globals.currentMelody___4908 = (s.tmp_0); + r0 = globals.currentMelody___4908.fields["background"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 | 2); + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); + { step = 8; continue; } + case 7: + r0 = pxsim_pxtcore_mkClassInstance(music_Melody__C4912_VT); + s.tmp_0 = r0; + s.tmp_1 = music_Melody_constructor__P4915_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.arg0; + s.tmp_1.arg2 = s.arg1; + s.callLocIdx = 54; s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + globals.currentMelody___4908 = (s.tmp_0); + r0 = globals.currentMelody___4908.fields["background"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 | 2); + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); + r0 = pxsim.control.inBackground(music_startMelodyInternal_inline__P9496); + case 8: + r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_prefixParser__P5987.info = {"start":1313,"length":521,"line":48,"column":8,"endLine":63,"endColumn":9,"fileName":"parser.ts","functionName":"prefixParser","argumentNames":["this","t"]} +music_startMelodyInternal__P2698.info = {"start":13397,"length":2070,"line":406,"column":4,"endLine":441,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"startMelodyInternal","argumentNames":["melodyArray","options"]} -function parser_Parser_prefixParser__P5987_mk(s) { +function music_startMelodyInternal__P2698_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_prefixParser__P5987, depth: s.depth + 1, + parent: s, fn: music_startMelodyInternal__P2698, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - num___9043: undefined, + isBackground___9435: undefined, arg0: undefined, arg1: undefined, } } @@ -13908,8 +14421,7 @@ function parser_Parser_prefixParser__P5987_mk(s) { - -function parser_Parser_prefixParser_inline__P9051(s) { +function music_startMelodyInternal_inline__P9496(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13919,29 +14431,89 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.caps[0]; + case 1: + s.tmp_1 = music_Melody_hasNextNote__P4913_mk(s); + s.tmp_1.arg0 = globals.currentMelody___4908; + s.callLocIdx = 55; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_2 = music_playNextNote__P4911_mk(s); + s.tmp_2.arg0 = globals.currentMelody___4908; + s.callLocIdx = 56; s.pc = 10; return s.tmp_2; + case 10: + r0 = s.retval; + s.tmp_3 = music_Melody_hasNextNote__P4913_mk(s); + s.tmp_3.arg0 = globals.currentMelody___4908; + s.callLocIdx = 57; s.pc = 11; return s.tmp_3; + case 11: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + r0 = globals.currentBackgroundMelody___4909; + case 3: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 4; continue; } + globals.currentMelody___4908 = (globals.currentBackgroundMelody___4909); + globals.currentBackgroundMelody___4909 = (null); + r0 = pxsim.control.raiseEvent(2000, 3, 1); + r0 = pxsim.control.raiseEvent(2000, 246, 1); + r0 = pxsim.control.raiseEvent(2000, 5, 1); + case 4: + case 5: + { step = 1; continue; } + case 6: + r0 = globals.currentMelody___4908.fields["background"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 | 3); + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); + r0 = globals.currentMelody___4908.fields["background"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + r0 = pxsim.control.raiseEvent(2000, 5, 1); + case 7: + case 8: + globals.currentMelody___4908 = (null); + r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_prefixParser_inline__P9051.info = {"start":1449,"length":8,"line":51,"column":23,"endLine":51,"endColumn":31,"fileName":"parser.ts","functionName":"inline","argumentNames":["t"]} +music_startMelodyInternal_inline__P9496.info = {"start":14473,"length":977,"line":423,"column":33,"endLine":439,"endColumn":13,"fileName":"pxt_modules/core/music.ts","functionName":"inline","argumentNames":[]} -function parser_Parser_prefixParser_inline__P9051_mk(s) { +function music_startMelodyInternal_inline__P9496_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_prefixParser_inline__P9051, depth: s.depth + 1, + parent: s, fn: music_startMelodyInternal_inline__P9496, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, } } - -function parser_Parser_prefixParser_inline__P9056(s) { +function music_playNextNote__P4911(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -13951,64 +14523,300 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.expr___9058 = undefined; - s.next___9062 = undefined; + s.currNote___9546 = undefined; + s.currentPos___9549 = undefined; + s.currentDuration___9553 = undefined; + s.currentOctave___9557 = undefined; + s.note___9561 = undefined; + s.isrest___9562 = undefined; + s.beatPos___9563 = undefined; + s.parsingOctave___9564 = undefined; + s.prevNote___9565 = undefined; + s.pos___9566 = undefined; + s.noteChar___9572 = undefined; + s.beat___9627 = undefined; + s.repeating___9650 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = parser_Parser_parse__P4631_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 0; - s.callLocIdx = 1872; s.pc = 3; return s.tmp_0; - case 3: + s.tmp_0 = music_Melody_nextNote__P4914_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 66; s.pc = 37; return s.tmp_0; + case 37: r0 = s.retval; - s.expr___9058 = (r0); - s.tmp_0 = parser_Parser_next__P5985_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1873; s.pc = 4; return s.tmp_0; + s.currNote___9546 = (r0); + r0 = s.arg0.fields["currentPos"]; + s.currentPos___9549 = (r0); + r0 = s.arg0.fields["currentDuration"]; + s.currentDuration___9553 = (r0); + r0 = s.arg0.fields["currentOctave"]; + s.currentOctave___9557 = (r0); + s.isrest___9562 = (false); + s.parsingOctave___9564 = (true); + s.prevNote___9565 = (false); + s.pos___9566 = (0); + case 1: + s.tmp_1 = r0 = s.pos___9566; + r0 = pxsim_String_.length(s.currNote___9546); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 26; continue; } + r0 = pxsim_String_.charAt(s.currNote___9546, s.pos___9566); + s.noteChar___9572 = (r0); + s.tmp_0 = r0 = s.noteChar___9572; + r0 = pxsim_pxtcore.switch_eq("c", s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq("C", s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq("d", s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq("D", s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq("e", s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq("E", s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq("f", s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq("F", s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq("g", s.tmp_0); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq("G", s.tmp_0); + if (r0) { step = 11; continue; } + r0 = pxsim_pxtcore.switch_eq("a", s.tmp_0); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq("A", s.tmp_0); + if (r0) { step = 13; continue; } + r0 = pxsim_pxtcore.switch_eq("B", s.tmp_0); + if (r0) { step = 14; continue; } + r0 = pxsim_pxtcore.switch_eq("r", s.tmp_0); + if (r0) { step = 15; continue; } + r0 = pxsim_pxtcore.switch_eq("R", s.tmp_0); + if (r0) { step = 16; continue; } + r0 = pxsim_pxtcore.switch_eq("#", s.tmp_0); + if (r0) { step = 17; continue; } + r0 = pxsim_pxtcore.switch_eq("b", s.tmp_0); + if (r0) { step = 18; continue; } + r0 = pxsim_pxtcore.switch_eq(":", s.tmp_0); + if (r0) { step = 21; continue; } + r0 = s.tmp_0; + { step = 22; continue; } + case 2: + case 3: + s.note___9561 = (1); + s.prevNote___9565 = (true); + { step = 25; continue; } case 4: + case 5: + s.note___9561 = (3); + s.prevNote___9565 = (true); + { step = 25; continue; } + case 6: + case 7: + s.note___9561 = (5); + s.prevNote___9565 = (true); + { step = 25; continue; } + case 8: + case 9: + s.note___9561 = (6); + s.prevNote___9565 = (true); + { step = 25; continue; } + case 10: + case 11: + s.note___9561 = (8); + s.prevNote___9565 = (true); + { step = 25; continue; } + case 12: + case 13: + s.note___9561 = (10); + s.prevNote___9565 = (true); + { step = 25; continue; } + case 14: + s.note___9561 = (12); + s.prevNote___9565 = (true); + { step = 25; continue; } + case 15: + case 16: + s.isrest___9562 = (true); + s.prevNote___9565 = (false); + { step = 25; continue; } + case 17: + r0 = (s.note___9561 + 1); + s.note___9561 = (r0); + s.prevNote___9565 = (false); + { step = 25; continue; } + case 18: + r0 = pxsim_numops_toBoolDecr(s.prevNote___9565); + if (!r0) { step = 19; continue; } + r0 = (s.note___9561 - 1); + s.note___9561 = (r0); + { step = 20; continue; } + case 19: + s.note___9561 = (12); + s.prevNote___9565 = (true); + case 20: + { step = 25; continue; } + case 21: + s.parsingOctave___9564 = (false); + s.beatPos___9563 = (s.pos___9566); + s.prevNote___9565 = (false); + { step = 25; continue; } + case 22: + s.prevNote___9565 = (false); + r0 = pxsim_numops_toBoolDecr(s.parsingOctave___9564); + if (!r0) { step = 23; continue; } + s.tmp_0 = music_parseIntSimple__P4910_mk(s); + s.tmp_0.arg0 = s.noteChar___9572; + s.callLocIdx = 67; s.pc = 38; return s.tmp_0; + case 38: r0 = s.retval; - s.next___9062 = (r0); - r0 = (s.next___9062 !== ")"); + s.currentOctave___9557 = (r0); + case 23: + case 24: + case 25: + r0 = (s.pos___9566 + 1); + s.pos___9566 = (r0); + { step = 1; continue; } + case 26: + r0 = pxsim_numops_toBoolDecr(s.parsingOctave___9564); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkClassInstance(parser_Error__C5921_VT); - s.tmp_1 = r0; - s.tmp_2 = parser_Error_constructor__P5922_mk(s); - s.tmp_2.arg0 = s.tmp_1; - s.tmp_2.arg1 = "expected )"; - s.callLocIdx = 1874; s.pc = 5; return s.tmp_2; - case 5: + if (!r0) { step = 27; continue; } + s.tmp_2 = music_parseIntSimple__P4910_mk(s); + s.tmp_3 = helpers_stringSubstr__P2147_mk(s); + s.tmp_3.arg0 = s.currNote___9546; + r0 = (s.beatPos___9563 + 1); + s.tmp_3.arg1 = r0; + r0 = pxsim_String_.length(s.currNote___9546); + s.tmp_4 = r0; + r0 = (s.tmp_4 - s.beatPos___9563); + s.tmp_3.arg2 = r0; + s.callLocIdx = 68; s.pc = 40; return s.tmp_3; + case 40: r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.tmp_1); - case 1: - case 2: - r0 = s.expr___9058; + s.tmp_2.arg0 = r0; + s.callLocIdx = 69; s.pc = 39; return s.tmp_2; + case 39: + r0 = s.retval; + s.currentDuration___9553 = (r0); + case 27: + case 28: + r0 = pxsim.Math_.idiv(60000, globals.beatsPerMinute___4900); + s.tmp_0 = r0; + r0 = (s.tmp_0 >> 2); + s.beat___9627 = (r0); + r0 = pxsim_numops_toBoolDecr(s.isrest___9562); + if (!r0) { step = 29; continue; } + s.tmp_0 = music_rest__P2686_mk(s); + r0 = (s.currentDuration___9553 * s.beat___9627); + s.tmp_0.arg0 = r0; + s.callLocIdx = 70; s.pc = 41; return s.tmp_0; + case 41: + r0 = s.retval; + { step = 30; continue; } + case 29: + s.tmp_0 = music_playTone__P2684_mk(s); + s.tmp_1 = music_getFrequencyForNote__P2706_mk(s); + s.tmp_1.arg0 = s.currentOctave___9557; + s.tmp_1.arg1 = s.note___9561; + s.callLocIdx = 71; s.pc = 43; return s.tmp_1; + case 43: + r0 = s.retval; + s.tmp_0.arg0 = r0; + r0 = (s.currentDuration___9553 * s.beat___9627); + s.tmp_0.arg1 = r0; + s.callLocIdx = 72; s.pc = 42; return s.tmp_0; + case 42: + r0 = s.retval; + case 30: + r0 = (s.arg0).fields["currentDuration"] = (s.currentDuration___9553); + r0 = (s.arg0).fields["currentOctave"] = (s.currentOctave___9557); + r0 = s.arg0.fields["repeating"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 31; continue; } + r0 = s.tmp_0; + { step = 32; continue; } + case 31: + s.tmp_1 = r0 = s.currentPos___9549; + r0 = s.arg0.fields["melodyArray"]; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 == s.tmp_2); + case 32: + // jmp value (already in r0) + s.tmp_5 = r0; + s.repeating___9650 = (s.tmp_5); + r0 = pxsim_numops_toBoolDecr(s.repeating___9650); + if (!r0) { step = 33; continue; } + r0 = 0; + { step = 34; continue; } + case 33: + r0 = (s.currentPos___9549 + 1); + case 34: + // jmp value (already in r0) + s.tmp_0 = r0; + r0 = (s.arg0).fields["currentPos"] = (s.tmp_0); + r0 = s.arg0.fields["background"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 | 1); + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); + r0 = pxsim_numops_toBoolDecr(s.repeating___9650); + if (!r0) { step = 35; continue; } + r0 = s.arg0.fields["background"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 | 4); + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); + case 35: + case 36: + r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_prefixParser_inline__P9056.info = {"start":1517,"length":264,"line":53,"column":23,"endLine":60,"endColumn":17,"fileName":"parser.ts","functionName":"inline","argumentNames":["t"]} +music_playNextNote__P4911.info = {"start":19671,"length":2366,"line":571,"column":4,"endLine":618,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"playNextNote","argumentNames":["melody"]} -function parser_Parser_prefixParser_inline__P9056_mk(s) { +function music_playNextNote__P4911_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_prefixParser_inline__P9056, depth: s.depth + 1, + parent: s, fn: music_playNextNote__P4911, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - expr___9058: undefined, - next___9062: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + currNote___9546: undefined, + currentPos___9549: undefined, + currentDuration___9553: undefined, + currentOctave___9557: undefined, + note___9561: undefined, + isrest___9562: undefined, + beatPos___9563: undefined, + parsingOctave___9564: undefined, + prevNote___9565: undefined, + pos___9566: undefined, + noteChar___9572: undefined, + beat___9627: undefined, + repeating___9650: undefined, arg0: undefined, } } - -function isNaN__P2122(s) { +function music_getFrequencyForNote__P2706(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14020,29 +14828,57 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 - 0); - s.arg0 = (r0); - r0 = (s.arg0 !== s.arg0); + s.tmp_1 = r0 = globals.freqs___4903; + s.tmp_4 = r0 = s.arg1; + r0 = (s.arg0 - 1); + s.tmp_6 = r0; + r0 = (12 * s.tmp_6); + s.tmp_5 = r0; + r0 = (s.tmp_4 + s.tmp_5); + s.tmp_3 = r0; + r0 = (s.tmp_3 * 2); + s.tmp_2 = r0; + r0 = pxsim.BufferMethods.getNumber(s.tmp_1, 4, s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = 0; + case 2: + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = s.tmp_7; return leave(s, r0) default: oops() } } } -isNaN__P2122.info = {"start":169,"length":80,"line":12,"column":0,"endLine":15,"endColumn":1,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"isNaN","argumentNames":["x"]} +music_getFrequencyForNote__P2706.info = {"start":18887,"length":167,"line":551,"column":4,"endLine":553,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"getFrequencyForNote","argumentNames":["octave","note"]} -function isNaN__P2122_mk(s) { +function music_getFrequencyForNote__P2706_mk(s) { checkStack(s.depth); return { - parent: s, fn: isNaN__P2122, depth: s.depth + 1, + parent: s, fn: music_getFrequencyForNote__P2706, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, + arg1: undefined, } } - -function parser_Parser_next__P5985(s) { +function music_playTone__P2684(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14054,41 +14890,77 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, parser_Parser__C4628_VT)) failedCast(r0, parser_Parser__C4628_VT); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["index"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["index"] = (s.tmp_1); - r0 = s.arg0.fields["tokens"]; + s.tmp_1 = isNaN__P2122_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 44; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_2 = isNaN__P2122_mk(s); + s.tmp_2.arg0 = s.arg1; + s.callLocIdx = 45; s.pc = 9; return s.tmp_2; + case 9: + r0 = s.retval; + case 2: + // jmp value (already in r0) s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_3, s.tmp_2); + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 3; continue; } + { step = 7; continue; } + case 3: + case 4: + r0 = pxsim_numops_toBoolDecr(globals._playTone___4904); + if (!r0) { step = 5; continue; } + s.tmp_4 = lambda_3_mk(s); + s.tmp_4.argL = globals._playTone___4904; + s.tmp_4.arg0 = s.arg0; + s.tmp_4.arg1 = s.arg1; + setupLambda(s.tmp_4, s.tmp_4.argL); + s.callLocIdx = 46; s.pc = 10; return s.tmp_4; + case 10: + r0 = s.retval; + { step = 6; continue; } + case 5: + setupResume(s, 11); + pxsim.pins.analogPitch(s.arg0, s.arg1); + checkResumeConsumed(); + return; + case 11: + r0 = s.retval; + case 6: + case 7: + r0 = undefined; return leave(s, r0) default: oops() } } } -parser_Parser_next__P5985.info = {"start":1154,"length":71,"line":41,"column":8,"endLine":43,"endColumn":9,"fileName":"parser.ts","functionName":"next","argumentNames":["this"]} +music_playTone__P2684.info = {"start":6394,"length":215,"line":202,"column":4,"endLine":206,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"playTone","argumentNames":["frequency","ms"]} -function parser_Parser_next__P5985_mk(s) { +function music_playTone__P2684_mk(s) { checkStack(s.depth); return { - parent: s, fn: parser_Parser_next__P5985, depth: s.depth + 1, + parent: s, fn: music_playTone__P2684, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Interpreter_getExprValue__P5920(s) { +function helpers_stringSubstr__P2147(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14098,228 +14970,58 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.kind___9100 = undefined; - s.param___9104 = undefined; - s.lookupVar___9108 = undefined; - s.name___9127 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - s.tmp_1 = microcode_getTid__P4041_mk(s); - s.tmp_1.arg0 = s.arg1; - s.callLocIdx = 1826; s.pc = 21; return s.tmp_1; - case 21: - r0 = s.retval; + r0 = (s.arg2 === undefined); s.tmp_0 = r0; - r0 = pxsim_pxtcore.switch_eq(213, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(212, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(211, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(210, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(220, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(221, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(224, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(225, s.tmp_0); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(222, s.tmp_0); - if (r0) { step = 9; continue; } - r0 = pxsim_pxtcore.switch_eq(223, s.tmp_0); - if (r0) { step = 10; continue; } - r0 = s.tmp_0; - { step = 11; continue; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_String_.length(s.arg0); + { step = 4; continue; } case 1: - r0 = "/"; - { step = 20; continue; } + s.tmp_1 = r0 = s.arg2; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = s.tmp_1; + { step = 3; continue; } case 2: - r0 = "*"; - { step = 20; continue; } + r0 = 0; case 3: - r0 = "-"; - { step = 20; continue; } + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = s.tmp_2; case 4: - r0 = "+"; - { step = 20; continue; } - case 5: - r0 = "=="; - { step = 20; continue; } - case 6: - r0 = "!="; - { step = 20; continue; } - case 7: - r0 = ">"; - { step = 20; continue; } - case 8: - r0 = ">="; - { step = 20; continue; } - case 9: - r0 = "<"; - { step = 20; continue; } - case 10: - r0 = "<="; - { step = 20; continue; } - case 11: - s.tmp_2 = microcode_getKind__P4280_mk(s); - s.tmp_2.arg0 = s.arg1; - s.callLocIdx = 1827; s.pc = 22; return s.tmp_2; - case 22: - r0 = s.retval; - s.kind___9100 = (r0); - s.tmp_0 = microcode_getParam__P4282_mk(s); - s.tmp_0.arg0 = s.arg1; - s.callLocIdx = 1828; s.pc = 23; return s.tmp_0; - case 23: - r0 = s.retval; - s.param___9104 = (r0); - r0 = pxsim_pxtcore_mkAction(1, lookupVar_inline__P9109); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.lookupVar___9108 = (s.tmp_0); - s.tmp_0 = r0 = s.kind___9100; - r0 = pxsim_pxtcore.switch_eq(7, s.tmp_0); - if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 13; continue; } - r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); - if (r0) { step = 14; continue; } - r0 = pxsim_pxtcore.switch_eq(6, s.tmp_0); - if (r0) { step = 17; continue; } - r0 = pxsim_pxtcore.switch_eq(8, s.tmp_0); - if (r0) { step = 18; continue; } - r0 = s.tmp_0; - { step = 19; continue; } - case 12: - s.tmp_1 = lambda_2_mk(s); - s.tmp_1.argL = s.lookupVar___9108; - s.tmp_1.arg0 = "Temperature"; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 1829; s.pc = 24; return s.tmp_1; - case 24: - r0 = s.retval; - { step = 20; continue; } - case 13: - r0 = pxsim_numops.toString(s.param___9104); - { step = 20; continue; } - case 14: - s.name___9127 = (s.param___9104); - r0 = pxsim_numops_toBoolDecr(s.name___9127); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - s.tmp_2 = microcode_tidToSensor__P5900_mk(s); - s.tmp_3 = microcode_getTid__P4041_mk(s); - s.tmp_3.arg0 = s.arg1; - s.callLocIdx = 1830; s.pc = 26; return s.tmp_3; - case 26: - r0 = s.retval; - s.tmp_2.arg0 = r0; - s.callLocIdx = 1831; s.pc = 25; return s.tmp_2; - case 25: - r0 = s.retval; - s.name___9127 = (r0); - case 15: - case 16: - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.lookupVar___9108; - s.tmp_0.arg0 = s.name___9127; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1832; s.pc = 27; return s.tmp_0; - case 27: - r0 = s.retval; - { step = 20; continue; } - case 17: - case 18: - s.tmp_1 = lambda_2_mk(s); - s.tmp_1.argL = s.lookupVar___9108; - s.tmp_1.arg0 = s.name___9127; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 1833; s.pc = 28; return s.tmp_1; - case 28: - r0 = s.retval; - { step = 20; continue; } - case 19: - s.tmp_2 = microcode_Interpreter_error__P4614_mk(s); - s.tmp_2.arg0 = s.arg0; - if ((s.kind___9100) && (s.kind___9100).vtable) { - setupResume(s, 30); - pxsim_String__stringConv(s.kind___9100); - checkResumeConsumed(); - return; - } else { s.retval = (s.kind___9100) + ""; } - case 30: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat("can't emit kind ", s.tmp_5); - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_4, " for "); + // jmp value (already in r0) s.tmp_3 = r0; - s.tmp_8 = microcode_getTid__P4041_mk(s); - s.tmp_8.arg0 = s.arg1; - s.callLocIdx = 1834; s.pc = 31; return s.tmp_8; - case 31: - r0 = s.retval; - s.tmp_7 = r0; - if ((s.tmp_7) && (s.tmp_7).vtable) { - setupResume(s, 32); - pxsim_String__stringConv(s.tmp_7); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_7) + ""; } - case 32: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_6); - s.tmp_2.arg1 = r0; - s.callLocIdx = 1835; s.pc = 29; return s.tmp_2; - case 29: - r0 = s.retval; - r0 = undefined; - { step = 20; continue; } - r0 = undefined; - case 20: + s.arg2 = (s.tmp_3); + r0 = pxsim_String_.substr(s.arg0, s.arg1, s.arg2); return leave(s, r0) default: oops() } } } -microcode_Interpreter_getExprValue__P5920.info = {"start":26271,"length":1804,"line":710,"column":8,"endLine":755,"endColumn":9,"fileName":"interpreter.ts","functionName":"getExprValue","argumentNames":["this","expr"]} +helpers_stringSubstr__P2147.info = {"start":11286,"length":204,"line":379,"column":4,"endLine":382,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringSubstr","argumentNames":["s","start","length"]} -function microcode_Interpreter_getExprValue__P5920_mk(s) { +function helpers_stringSubstr__P2147_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_getExprValue__P5920, depth: s.depth + 1, + parent: s, fn: helpers_stringSubstr__P2147, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - kind___9100: undefined, - param___9104: undefined, - lookupVar___9108: undefined, - name___9127: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function lookupVar_inline__P9109(s) { +function music_parseIntSimple__P4910(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14329,35 +15031,121 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.result___9736 = undefined; + s.i___9737 = undefined; + s.c___9743 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.caps[0].fields["state"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.arg0); + s.result___9736 = (0); + s.i___9737 = (0); + case 1: + s.tmp_1 = r0 = s.i___9737; + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; - r0 = pxsim_numops.toString(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = pxsim_String_.charCodeAt(s.arg0, s.i___9737); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 48); + s.c___9743 = (r0); + r0 = (s.c___9743 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + r0 = (s.c___9743 > 9); + case 3: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = NaN; + { step = 7; continue; } + case 4: + case 5: + r0 = (s.result___9736 * 10); + s.tmp_2 = r0; + r0 = (s.tmp_2 + s.c___9743); + s.result___9736 = (r0); + r0 = (s.i___9737 + 1); + s.i___9737 = (r0); + { step = 1; continue; } + case 6: + r0 = s.result___9736; + case 7: return leave(s, r0) default: oops() } } } -lookupVar_inline__P9109.info = {"start":27220,"length":90,"line":735,"column":30,"endLine":737,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["v"]} +music_parseIntSimple__P4910.info = {"start":19386,"length":279,"line":561,"column":4,"endLine":569,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"parseIntSimple","argumentNames":["text"]} -function lookupVar_inline__P9109_mk(s) { +function music_parseIntSimple__P4910_mk(s) { checkStack(s.depth); return { - parent: s, fn: lookupVar_inline__P9109, depth: s.depth + 1, + parent: s, fn: music_parseIntSimple__P4910, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + result___9736: undefined, + i___9737: undefined, + c___9743: undefined, arg0: undefined, } } +function music_Melody_nextNote__P4914(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.currentNote___9765 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, music_Melody__C4912_VT)) failedCast(r0, music_Melody__C4912_VT); + r0 = s.arg0.fields["melodyArray"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["currentPos"]; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + s.currentNote___9765 = (r0); + r0 = s.currentNote___9765; + return leave(s, r0) + default: oops() +} } } +music_Melody_nextNote__P4914.info = {"start":23003,"length":129,"line":643,"column":8,"endLine":646,"endColumn":9,"fileName":"pxt_modules/core/music.ts","functionName":"nextNote","argumentNames":["this"]} + +function music_Melody_nextNote__P4914_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: music_Melody_nextNote__P4914, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + currentNote___9765: undefined, + arg0: undefined, +} } + + + -function microcode_tidToSensor__P5900(s) { +function music_Melody_hasNextNote__P4913(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14367,47 +15155,52 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.result___9152 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtrt.mklocRef(); - s.result___9152 = (r0); - r0 = pxsim_pxtrt_stlocRef(s.result___9152, undefined); - r0 = pxsim_pxtcore_mkAction(2, microcode_tidToSensor_inline__P9158); + r0 = s.arg0; + if (!checkSubtype(r0, music_Melody__C4912_VT)) failedCast(r0, music_Melody__C4912_VT); + r0 = s.arg0.fields["repeating"]; s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.result___9152); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = pxsim_pxtrt.keysOf(globals.sensorInfo___5895); - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1737; s.pc = 1; return s.tmp_1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = pxsim_pxtrt_ldlocRef(s.result___9152); + r0 = s.arg0.fields["currentPos"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["melodyArray"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = s.tmp_4; return leave(s, r0) default: oops() } } } -microcode_tidToSensor__P5900.info = {"start":13394,"length":255,"line":364,"column":4,"endLine":371,"endColumn":5,"fileName":"interpreter.ts","functionName":"tidToSensor","argumentNames":["tid"]} +music_Melody_hasNextNote__P4913.info = {"start":22888,"length":105,"line":639,"column":8,"endLine":641,"endColumn":9,"fileName":"pxt_modules/core/music.ts","functionName":"hasNextNote","argumentNames":["this"]} -function microcode_tidToSensor__P5900_mk(s) { +function music_Melody_hasNextNote__P4913_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_tidToSensor__P5900, depth: s.depth + 1, + parent: s, fn: music_Melody_hasNextNote__P4913, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - result___9152: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, } } - -function microcode_tidToSensor_inline__P9158(s) { +function music_Melody_constructor__P4915(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14417,53 +15210,102 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.keyTid___9160 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tmp_0 = if_tid_1_mk(s); - r0 = pxsim_pxtrt.mapGetGeneric(globals.sensorInfo___5895, s.arg0); - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "tid"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["tid"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["tid"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1736; s.pc = 3; return s.tmp_0; } - } - case 3: - r0 = s.retval; - s.keyTid___9160 = (r0); - r0 = (s.caps[0] == s.keyTid___9160); + r0 = s.arg0; + if (!checkSubtype(r0, music_Melody__C4912_VT)) failedCast(r0, music_Melody__C4912_VT); + r0 = (s.arg0).fields["melodyArray"] = (s.arg1); + s.tmp_0 = r0 = s.arg0; + r0 = (s.arg2 & 10); + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + s.tmp_4 = r0; + r0 = pxsim_Boolean__bang(s.tmp_4); + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["repeating"] = (s.tmp_1); + r0 = (s.arg2 & 12); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtrt_stlocRef(s.caps[1], s.arg0); + r0 = 240; + { step = 2; continue; } case 1: + r0 = 0; case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = (s.arg0).fields["background"] = (s.tmp_1); + r0 = (s.arg0).fields["currentDuration"] = (4); + r0 = (s.arg0).fields["currentOctave"] = (4); + r0 = (s.arg0).fields["currentPos"] = (0); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_tidToSensor_inline__P9158.info = {"start":13517,"length":103,"line":366,"column":40,"endLine":369,"endColumn":9,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["k"]} +music_Melody_constructor__P4915.info = {"start":22384,"length":494,"line":630,"column":8,"endLine":637,"endColumn":9,"fileName":"pxt_modules/core/music.ts","functionName":"inline","argumentNames":["this","melodyArray","options"]} -function microcode_tidToSensor_inline__P9158_mk(s) { +function music_Melody_constructor__P4915_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_tidToSensor_inline__P9158, depth: s.depth + 1, + parent: s, fn: music_Melody_constructor__P4915, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - keyTid___9160: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } +function music_init__P4907(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = (globals.beatsPerMinute___4900 <= 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + globals.beatsPerMinute___4900 = (120); + case 1: + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +music_init__P4907.info = {"start":7868,"length":78,"line":250,"column":4,"endLine":252,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"init","argumentNames":[]} + +function music_init__P4907_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: music_init__P4907, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + -function microcode_MelodyEditor_getNoteSequence__P4455(s) { +function music_rest__P2686(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14473,148 +15315,95 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.notes___9171 = undefined; - s.result___9179 = undefined; - s.n___9181 = undefined; - s.unnamed52___U3 = undefined; - s.unnamed53___U4 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyEditor__C4449_VT)) failedCast(r0, microcode_MelodyEditor__C4449_VT); - s.tmp_0 = helpers_stringSplit__P2151_mk(s); - s.tmp_1 = if_notes_1_mk(s); - r0 = s.arg0.fields["field"]; - s.tmp_1.arg0 = r0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "notes"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["notes"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["notes"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1566; s.pc = 6; return s.tmp_1; } - } - case 6: - r0 = s.retval; - s.tmp_0.arg0 = r0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = undefined; - s.callLocIdx = 1567; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.notes___9171 = (r0); - r0 = pxsim_String_.mkEmpty(); - s.result___9179 = (r0); - s.n___9181 = (undefined); - s.unnamed52___U3 = (s.notes___9171); - s.unnamed53___U4 = (0); + s.tmp_0 = music_playTone__P2684_mk(s); + s.tmp_0.arg0 = 0; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 47; s.pc = 1; return s.tmp_0; case 1: - s.tmp_0 = r0 = s.unnamed53___U4; - r0 = pxsim_Array__length(s.unnamed52___U3); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.unnamed52___U3, s.unnamed53___U4); - s.n___9181 = (r0); - r0 = (s.n___9181 == "."); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 2; continue; } - if ((s.result___9179) && (s.result___9179).vtable) { - setupResume(s, 7); - pxsim_String__stringConv(s.result___9179); - checkResumeConsumed(); - return; - } else { s.retval = (s.result___9179) + ""; } - case 7: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_3, "- "); - s.result___9179 = (r0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +music_rest__P2686.info = {"start":7316,"length":71,"line":229,"column":4,"endLine":231,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"rest","argumentNames":["ms"]} + +function music_rest__P2686_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: music_rest__P2686, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function microcode_RuleClosure_getOutputResource__P6108(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = undefined; { step = 3; continue; } + case 1: case 2: - if ((s.result___9179) && (s.result___9179).vtable) { - setupResume(s, 8); - pxsim_String__stringConv(s.result___9179); - checkResumeConsumed(); - return; - } else { s.retval = (s.result___9179) + ""; } - case 8: - r0 = s.retval; - s.tmp_0 = r0; - s.tmp_5 = r0 = globals.noteNames___4441; - s.tmp_7 = parseInt__P2126_mk(s); - s.tmp_7.arg0 = s.n___9181; - s.tmp_7.arg1 = undefined; - s.callLocIdx = 1568; s.pc = 9; return s.tmp_7; - case 9: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); + s.tmp_3 = microcode_getOutputResource__P6093_mk(s); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 10); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 10: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_3, " "); - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 11); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 11: + r0 = pxsim_Array__getAt(s.tmp_4, 0); + s.tmp_3.arg0 = r0; + s.callLocIdx = 2043; s.pc = 4; return s.tmp_3; + case 4: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.result___9179 = (r0); case 3: - r0 = (s.unnamed53___U4 + 1); - s.unnamed53___U4 = (r0); - { step = 1; continue; } - case 4: - s.unnamed52___U3 = (undefined); - r0 = s.result___9179; return leave(s, r0) default: oops() } } } -microcode_MelodyEditor_getNoteSequence__P4455.info = {"start":8565,"length":292,"line":283,"column":8,"endLine":291,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNoteSequence","argumentNames":["this"]} +microcode_RuleClosure_getOutputResource__P6108.info = {"start":8892,"length":165,"line":259,"column":8,"endLine":262,"endColumn":9,"fileName":"interpreter.ts","functionName":"getOutputResource","argumentNames":["this"]} -function microcode_MelodyEditor_getNoteSequence__P4455_mk(s) { +function microcode_RuleClosure_getOutputResource__P6108_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyEditor_getNoteSequence__P4455, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_getOutputResource__P6108, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - notes___9171: undefined, - result___9179: undefined, - n___9181: undefined, - unnamed52___U3: undefined, - unnamed53___U4: undefined, arg0: undefined, } } - -function parseInt__P2126(s) { +function microcode_getOutputResource__P6093(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14624,313 +15413,71 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.start___9223 = undefined; - s.sign___9253 = undefined; - s.output___9298 = undefined; - s.hasDigit___9299 = undefined; - s.i___9300 = undefined; - s.code___9307 = undefined; - s.val___9314 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(51, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(48, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(49, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(50, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(46, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(40, s.tmp_0); + if (r0) { step = 9; continue; } r0 = s.tmp_0; - { step = 6; continue; } + { step = 10; continue; } case 1: - r0 = (s.arg1 != null); - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 2; continue; } - r0 = s.tmp_2; - { step = 5; continue; } case 2: - r0 = (s.arg1 < 2); - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (!r0) { step = 3; continue; } - r0 = s.tmp_3; - { step = 4; continue; } + r0 = 1000; + { step = 11; continue; } case 3: - r0 = (s.arg1 > 36); case 4: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = s.tmp_4; case 5: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = s.tmp_5; + r0 = s.arg0; + { step = 11; continue; } case 6: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 7; continue; } - r0 = NaN; - { step = 46; continue; } + r0 = 1002; + { step = 11; continue; } case 7: case 8: - s.start___9223 = (0); - case 9: - s.tmp_1 = r0 = s.start___9223; - r0 = pxsim_String_.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 10; continue; } - r0 = s.tmp_0; + r0 = 1001; + { step = 11; continue; } + case 9: + r0 = 1003; { step = 11; continue; } case 10: - s.tmp_3 = helpers_isWhitespace__P2153_mk(s); - r0 = pxsim_String_.charCodeAt(s.arg0, s.start___9223); - s.tmp_3.arg0 = r0; - s.callLocIdx = 0; s.pc = 47; return s.tmp_3; - case 47: - r0 = s.retval; + r0 = undefined; case 11: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 12; continue; } - r0 = (s.start___9223 + 1); - s.start___9223 = (r0); - { step = 9; continue; } - case 12: - s.tmp_1 = r0 = s.start___9223; - r0 = pxsim_String_.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 === s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - r0 = NaN; - { step = 46; continue; } - case 13: - case 14: - s.sign___9253 = (1); - r0 = pxsim_String_.charAt(s.arg0, s.start___9223); - s.tmp_0 = r0; - r0 = pxsim_pxtcore.switch_eq("-", s.tmp_0); - if (r0) { step = 15; continue; } - r0 = pxsim_pxtcore.switch_eq("+", s.tmp_0); - if (r0) { step = 16; continue; } - r0 = s.tmp_0; - { step = 17; continue; } - case 15: - s.sign___9253 = (-1); - case 16: - r0 = (s.start___9223 + 1); - s.start___9223 = (r0); - case 17: - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 18; continue; } - r0 = s.tmp_0; - { step = 19; continue; } - case 18: - r0 = (s.arg1 == 16); - case 19: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 20; continue; } - r0 = s.tmp_2; - { step = 21; continue; } - case 20: - r0 = pxsim_String_.charAt(s.arg0, s.start___9223); - s.tmp_3 = r0; - r0 = ("0" === s.tmp_3); - case 21: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (r0) { step = 22; continue; } - r0 = s.tmp_4; - { step = 25; continue; } - case 22: - s.tmp_7 = r0 = s.arg0; - r0 = (s.start___9223 + 1); - s.tmp_8 = r0; - r0 = pxsim_String_.charAt(s.tmp_7, s.tmp_8); - s.tmp_6 = r0; - r0 = ("x" === s.tmp_6); - s.tmp_5 = r0; - r0 = pxsim_numops_toBool(s.tmp_5); - if (!r0) { step = 23; continue; } - r0 = s.tmp_5; - { step = 24; continue; } - case 23: - s.tmp_10 = r0 = s.arg0; - r0 = (s.start___9223 + 1); - s.tmp_11 = r0; - r0 = pxsim_String_.charAt(s.tmp_10, s.tmp_11); - s.tmp_9 = r0; - r0 = ("X" === s.tmp_9); - case 24: - // jmp value (already in r0) - s.tmp_12 = r0; - r0 = s.tmp_12; - case 25: - // jmp value (already in r0) - s.tmp_13 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_13); - if (!r0) { step = 26; continue; } - s.arg1 = (16); - r0 = (s.start___9223 + 2); - s.start___9223 = (r0); - { step = 29; continue; } - case 26: - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 27; continue; } - s.arg1 = (10); - case 27: - case 28: - case 29: - s.output___9298 = (0); - s.hasDigit___9299 = (false); - s.i___9300 = (s.start___9223); - case 30: - s.tmp_1 = r0 = s.i___9300; - r0 = pxsim_String_.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 45; continue; } - r0 = pxsim_String_.charCodeAt(s.arg0, s.i___9300); - s.tmp_3 = r0; - r0 = (s.tmp_3 | 32); - s.code___9307 = (r0); - s.val___9314 = (undefined); - r0 = (s.code___9307 >= 48); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 31; continue; } - r0 = s.tmp_0; - { step = 32; continue; } - case 31: - r0 = (s.code___9307 < 58); - case 32: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 33; continue; } - r0 = (s.code___9307 - 48); - s.val___9314 = (r0); - { step = 38; continue; } - case 33: - r0 = (s.code___9307 >= 97); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 34; continue; } - r0 = s.tmp_0; - { step = 35; continue; } - case 34: - r0 = (s.code___9307 < 123); - case 35: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 36; continue; } - r0 = (10 + s.code___9307); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 97); - s.val___9314 = (r0); - case 36: - case 37: - case 38: - r0 = (s.val___9314 == undefined); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 39; continue; } - r0 = s.tmp_0; - { step = 40; continue; } - case 39: - r0 = (s.val___9314 >= s.arg1); - case 40: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 43; continue; } - r0 = pxsim_numops_toBoolDecr(s.hasDigit___9299); - s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 41; continue; } - r0 = NaN; - { step = 46; continue; } - case 41: - case 42: - { step = 45; continue; } - case 43: - case 44: - s.hasDigit___9299 = (true); - r0 = (s.output___9298 * s.arg1); - s.tmp_0 = r0; - r0 = (s.tmp_0 + s.val___9314); - s.output___9298 = (r0); - r0 = (s.i___9300 + 1); - s.i___9300 = (r0); - { step = 30; continue; } - case 45: - r0 = (s.sign___9253 * s.output___9298); - case 46: return leave(s, r0) default: oops() } } } -parseInt__P2126.info = {"start":1064,"length":1690,"line":44,"column":0,"endLine":103,"endColumn":1,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"parseInt","argumentNames":["text","radix"]} +microcode_getOutputResource__P6093.info = {"start":556,"length":745,"line":21,"column":4,"endLine":39,"endColumn":5,"fileName":"interpreter.ts","functionName":"getOutputResource","argumentNames":["action"]} -function parseInt__P2126_mk(s) { +function microcode_getOutputResource__P6093_mk(s) { checkStack(s.depth); return { - parent: s, fn: parseInt__P2126, depth: s.depth + 1, + parent: s, fn: microcode_getOutputResource__P6093, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - start___9223: undefined, - sign___9253: undefined, - output___9298: undefined, - hasDigit___9299: undefined, - i___9300: undefined, - code___9307: undefined, - val___9314: undefined, arg0: undefined, - arg1: undefined, } } - -function helpers_isWhitespace__P2153(s) { +function microcode_Interpreter_setupEventQueue__P6144(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -14940,69 +15487,42 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.matchingRules___9849 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq(9, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(11, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(12, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(32, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(160, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(65279, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(10, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(13, s.tmp_0); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(8232, s.tmp_0); - if (r0) { step = 9; continue; } - r0 = pxsim_pxtcore.switch_eq(8233, s.tmp_0); - if (r0) { step = 10; continue; } - r0 = s.tmp_0; - { step = 11; continue; } - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - r0 = true; - { step = 12; continue; } - case 11: - r0 = false; - { step = 12; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = pxsim_pxtcore_mkAction(1, matchingRules_inline__P9850); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.matchingRules___9849 = (s.tmp_0); + r0 = pxsim_pxtcore_mkAction(2, microcode_Interpreter_setupEventQueue_inline__P9864); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.matchingRules___9849); + r0 = pxsim.control.inBackground(s.tmp_0); r0 = undefined; - case 12: return leave(s, r0) default: oops() } } } -helpers_isWhitespace__P2153.info = {"start":14864,"length":674,"line":503,"column":4,"endLine":520,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"isWhitespace","argumentNames":["c"]} +microcode_Interpreter_setupEventQueue__P6144.info = {"start":21707,"length":3617,"line":628,"column":8,"endLine":699,"endColumn":9,"fileName":"interpreter.ts","functionName":"setupEventQueue","argumentNames":["this"]} -function helpers_isWhitespace__P2153_mk(s) { +function microcode_Interpreter_setupEventQueue__P6144_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_isWhitespace__P2153, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_setupEventQueue__P6144, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + matchingRules___9849: undefined, arg0: undefined, } } - -function helpers_stringSplit__P2151(s) { +function matchingRules_inline__P9850(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15012,186 +15532,42 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.A___9373 = undefined; - s.lim___9375 = undefined; - s.s___9391 = undefined; - s.p___9394 = undefined; - s.R___9395 = undefined; - s.z___9409 = undefined; - s.T___9422 = undefined; - s.q___9423 = undefined; - s.e___9429 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_Array__mk(); - s.A___9373 = (r0); - s.lim___9375 = (0); - r0 = (s.arg2 === undefined); + r0 = pxsim_pxtcore_mkAction(2, matchingRules_inline__P9856); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = (536870912 - 1); - s.lim___9375 = (r0); - { step = 4; continue; } + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + s.tmp_1 = helpers_arrayFilter__P2139_mk(s); + r0 = s.caps[0].fields["ruleClosures"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2109; s.pc = 1; return s.tmp_1; case 1: - r0 = (s.arg2 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.lim___9375 = (0); - { step = 3; continue; } - case 2: - r0 = (s.arg2 | 0); - s.lim___9375 = (r0); - case 3: - case 4: - r0 = pxsim_String_.length(s.arg0); - s.s___9391 = (r0); - s.p___9394 = (0); - s.R___9395 = (s.arg1); - r0 = (s.lim___9375 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = s.A___9373; - { step = 21; continue; } - case 5: - case 6: - r0 = (s.arg1 === undefined); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 7; continue; } - r0 = pxsim_Array_.setAt(s.A___9373, 0, s.arg0); - r0 = s.A___9373; - { step = 21; continue; } - case 7: - case 8: - r0 = (s.s___9391 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 11; continue; } - s.tmp_1 = helpers_splitMatch__P4806_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = s.R___9395; - s.callLocIdx = 26; s.pc = 22; return s.tmp_1; - case 22: - r0 = s.retval; - s.z___9409 = (r0); - r0 = (s.z___9409 > -1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = s.A___9373; - { step = 21; continue; } - case 9: - case 10: - r0 = pxsim_Array_.setAt(s.A___9373, 0, s.arg0); - r0 = s.A___9373; - { step = 21; continue; } - case 11: - case 12: - s.q___9423 = (s.p___9394); - case 13: - r0 = (s.q___9423 != s.s___9391); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 20; continue; } - s.tmp_1 = helpers_splitMatch__P4806_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.q___9423; - s.tmp_1.arg2 = s.R___9395; - s.callLocIdx = 27; s.pc = 23; return s.tmp_1; - case 23: - r0 = s.retval; - s.e___9429 = (r0); - r0 = (s.e___9429 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - r0 = (s.q___9423 + 1); - s.q___9423 = (r0); - { step = 19; continue; } - case 14: - r0 = (s.e___9429 == s.p___9394); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - r0 = (s.q___9423 + 1); - s.q___9423 = (r0); - { step = 18; continue; } - case 15: - s.tmp_0 = helpers_stringSlice__P2148_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.p___9394; - s.tmp_0.arg2 = s.q___9423; - s.callLocIdx = 28; s.pc = 24; return s.tmp_0; - case 24: - r0 = s.retval; - s.T___9422 = (r0); - r0 = pxsim_Array__push(s.A___9373, s.T___9422); - r0 = pxsim_Array__length(s.A___9373); - s.tmp_1 = r0; - r0 = (s.tmp_1 == s.lim___9375); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 16; continue; } - r0 = s.A___9373; - { step = 21; continue; } - case 16: - case 17: - s.p___9394 = (s.e___9429); - s.q___9423 = (s.p___9394); - case 18: - case 19: - { step = 13; continue; } - case 20: - s.tmp_0 = helpers_stringSlice__P2148_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.p___9394; - s.tmp_0.arg2 = s.q___9423; - s.callLocIdx = 29; s.pc = 25; return s.tmp_0; - case 25: r0 = s.retval; - s.T___9422 = (r0); - r0 = pxsim_Array__push(s.A___9373, s.T___9422); - r0 = s.A___9373; - case 21: return leave(s, r0) default: oops() } } } -helpers_stringSplit__P2151.info = {"start":12919,"length":1319,"line":434,"column":4,"endLine":478,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringSplit","argumentNames":["S","separator","limit"]} +matchingRules_inline__P9850.info = {"start":21769,"length":172,"line":629,"column":34,"endLine":633,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["sensor","filter"]} -function helpers_stringSplit__P2151_mk(s) { +function matchingRules_inline__P9850_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_stringSplit__P2151, depth: s.depth + 1, + parent: s, fn: matchingRules_inline__P9850, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - A___9373: undefined, - lim___9375: undefined, - s___9391: undefined, - p___9394: undefined, - R___9395: undefined, - z___9409: undefined, - T___9422: undefined, - q___9423: undefined, - e___9429: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function helpers_stringSlice__P2148(s) { +function matchingRules_inline__P9856(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15201,81 +15577,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___9474 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_String_.length(s.arg0); - s.len___9474 = (r0); - r0 = (s.arg1 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = Math_max__P2159_mk(s); - r0 = (s.len___9474 + s.arg1); - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = 0; - s.callLocIdx = 21; s.pc = 9; return s.tmp_1; - case 9: - r0 = s.retval; - s.arg1 = (r0); + s.tmp_0 = microcode_RuleClosure_matchWhen__P6100_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.caps[0]; + s.tmp_0.arg2 = s.caps[1]; + s.callLocIdx = 2108; s.pc = 1; return s.tmp_0; case 1: - case 2: - r0 = (s.arg2 === undefined); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.arg2 = (s.len___9474); - { step = 6; continue; } - case 3: - r0 = (s.arg2 === null); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.arg2 = (0); - case 4: - case 5: - case 6: - r0 = (s.arg2 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = (s.len___9474 + s.arg2); - s.arg2 = (r0); - case 7: - case 8: - s.tmp_0 = r0 = s.arg0; - s.tmp_1 = r0 = s.arg1; - r0 = (s.arg2 - s.arg1); - s.tmp_2 = r0; - r0 = pxsim_String_.substr(s.tmp_0, s.tmp_1, s.tmp_2); + r0 = s.retval; return leave(s, r0) default: oops() } } } -helpers_stringSlice__P2148.info = {"start":11496,"length":440,"line":384,"column":4,"endLine":402,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringSlice","argumentNames":["s","start","end"]} +matchingRules_inline__P9856.info = {"start":21855,"length":54,"line":630,"column":48,"endLine":631,"endColumn":48,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function helpers_stringSlice__P2148_mk(s) { +function matchingRules_inline__P9856_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_stringSlice__P2148, depth: s.depth + 1, + parent: s, fn: matchingRules_inline__P9856, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - len___9474: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function helpers_splitMatch__P4806(s) { +function microcode_Interpreter_setupEventQueue_inline__P9864(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15285,222 +15615,294 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___9509 = undefined; - s.s___9512 = undefined; - s.i___9522 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.lambdaArgs = null; - } - r0 = pxsim_String_.length(s.arg2); - s.r___9509 = (r0); - r0 = pxsim_String_.length(s.arg0); - s.s___9512 = (r0); - r0 = (s.arg1 + s.r___9509); - s.tmp_1 = r0; - r0 = (s.tmp_1 > s.s___9512); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = -1; - { step = 7; continue; } + s.ev___9873 = undefined; + s.event___9897 = undefined; + s.rules___9900 = undefined; + s.newOnes___9916 = undefined; + s.event___9928 = undefined; + s.event___9944 = undefined; + s.event___9956 = undefined; + s.rc___9959 = undefined; + s.event___9968 = undefined; + s.rc___9971 = undefined; + r0 = (s.caps[0]).fields["eventQueueActive"] = (true); case 1: - case 2: - s.i___9522 = (0); - case 3: - r0 = (s.i___9522 < s.r___9509); + r0 = s.caps[0].fields["running"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_3 = r0 = s.arg0; - r0 = (s.arg1 + s.i___9522); - s.tmp_4 = r0; - r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); + if (!r0) { step = 11; continue; } + r0 = s.caps[0].fields["eventQueue"]; s.tmp_2 = r0; - r0 = pxsim_String_.charAt(s.arg2, s.i___9522); - s.tmp_5 = r0; - r0 = (s.tmp_2 != s.tmp_5); + r0 = pxsim_Array__length(s.tmp_2); s.tmp_1 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = -1; - { step = 7; continue; } - case 4: - case 5: - r0 = (s.i___9522 + 1); - s.i___9522 = (r0); - { step = 3; continue; } - case 6: - r0 = (s.arg1 + s.r___9509); - case 7: - return leave(s, r0) - default: oops() -} } } -helpers_splitMatch__P4806.info = {"start":14244,"length":289,"line":480,"column":4,"endLine":489,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"splitMatch","argumentNames":["S","q","R"]} - -function helpers_splitMatch__P4806_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: helpers_splitMatch__P4806, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - r___9509: undefined, - s___9512: undefined, - i___9522: undefined, - arg0: undefined, - arg1: undefined, - arg2: undefined, -} } - - - - - -function microcode_ModifierEditor_getField__P4407(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_ModifierEditor__C4403_VT)) failedCast(r0, microcode_ModifierEditor__C4403_VT); - r0 = null; - return leave(s, r0) - default: oops() -} } } -microcode_ModifierEditor_getField__P4407.info = {"start":1109,"length":51,"line":40,"column":8,"endLine":42,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getField","argumentNames":["this"]} - -function microcode_ModifierEditor_getField__P4407_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_ModifierEditor_getField__P4407, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, -} } - - - - - -function microcode_defaultModifier__P4262(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.mod___9559 = undefined; - s.modEditor___9563 = undefined; - s.mod___9568 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; + if (!r0) { step = 9; continue; } + r0 = s.caps[0].fields["eventQueue"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, 0); + s.ev___9873 = (r0); + r0 = s.caps[0].fields["eventQueue"]; + s.tmp_0 = r0; + r0 = pxsim_Array_.removeAt(s.tmp_0, 0); + s.tmp_1 = if_kind_1_mk(s); + s.tmp_1.arg0 = s.ev___9873; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "kind"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["kind"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["kind"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 2110; s.pc = 12; return s.tmp_1; } } - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq(54, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(55, s.tmp_0); + case 12: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(52, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(47, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); if (r0) { step = 7; continue; } r0 = s.tmp_0; { step = 8; continue; } - case 1: case 2: - r0 = 205; - { step = 9; continue; } + setupResume(s, 13); + pxsim.control.waitMicros(50000); + checkResumeConsumed(); + return; + case 13: + r0 = s.retval; + s.event___9897 = (s.ev___9873); + r0 = pxsim_pxtcore_mkAction(1, rules_inline__P9902); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[1]); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); + s.tmp_2 = if_updatedVars_1_mk(s); + s.tmp_2.arg0 = s.event___9897; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "updatedVars"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["updatedVars"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["updatedVars"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 2111; s.pc = 15; return s.tmp_2; } + } + case 15: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2113; s.pc = 14; return s.tmp_1; + case 14: + r0 = s.retval; + s.rules___9900 = (r0); + r0 = pxsim_pxtrt.mklocRef(); + s.newOnes___9916 = (r0); + s.tmp_0 = r0 = s.newOnes___9916; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_setupEventQueue_inline__P9920); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.newOnes___9916); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_1.arg0 = s.rules___9900; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2115; s.pc = 16; return s.tmp_1; + case 16: + r0 = s.retval; + s.tmp_0 = microcode_Interpreter_processNewRules__P6143_mk(s); + s.tmp_0.arg0 = s.caps[0]; + r0 = pxsim_pxtrt_ldlocRef(s.newOnes___9916); + s.tmp_0.arg1 = r0; + s.callLocIdx = 2116; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + { step = 8; continue; } case 3: - r0 = 163; - { step = 9; continue; } + s.event___9928 = (s.ev___9873); + s.tmp_0 = microcode_Interpreter_processNewRules__P6143_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_1 = lambda_3_mk(s); + s.tmp_1.argL = s.caps[1]; + s.tmp_2 = if_sensor_1_mk(s); + s.tmp_2.arg0 = s.event___9928; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "sensor"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["sensor"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["sensor"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 2117; s.pc = 20; return s.tmp_2; } + } + case 20: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_3 = if_filter_1_mk(s); + s.tmp_3.arg0 = s.event___9928; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "filter"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["filter"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["filter"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 2118; s.pc = 21; return s.tmp_3; } + } + case 21: + r0 = s.retval; + s.tmp_1.arg1 = r0; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 2119; s.pc = 19; return s.tmp_1; + case 19: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 2120; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + { step = 8; continue; } case 4: - r0 = 194; - { step = 9; continue; } + setupResume(s, 22); + pxsim.control.waitMicros(50000); + checkResumeConsumed(); + return; + case 22: + r0 = s.retval; + s.event___9944 = (s.ev___9873); + s.tmp_0 = microcode_Interpreter_switchPage__P6141_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_2 = if_index_1_mk(s); + s.tmp_2.arg0 = s.event___9944; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "index"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["index"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["index"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 2121; s.pc = 24; return s.tmp_2; } + } + case 24: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 - 1); + s.tmp_0.arg1 = r0; + s.callLocIdx = 2122; s.pc = 23; return s.tmp_0; + case 23: + r0 = s.retval; + { step = 8; continue; } case 5: - r0 = 188; - { step = 9; continue; } + s.tmp_0 = microcode_Interpreter_processNewRules__P6143_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_1 = lambda_3_mk(s); + s.tmp_1.argL = s.caps[1]; + s.tmp_1.arg0 = 10; + s.tmp_1.arg1 = undefined; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 2123; s.pc = 26; return s.tmp_1; + case 26: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 2124; s.pc = 25; return s.tmp_0; + case 25: + r0 = s.retval; + { step = 8; continue; } case 6: - s.tmp_1 = microcode_getEditor__P4456_mk(s); - s.tmp_1.arg0 = 160; - s.callLocIdx = 1059; s.pc = 10; return s.tmp_1; - case 10: + s.event___9956 = (s.ev___9873); + r0 = s.caps[0].fields["ruleClosures"]; + s.tmp_0 = r0; + s.tmp_2 = if_ruleIndex_1_mk(s); + s.tmp_2.arg0 = s.event___9956; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "ruleIndex"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["ruleIndex"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["ruleIndex"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 2125; s.pc = 27; return s.tmp_2; } + } + case 27: r0 = s.retval; - s.mod___9559 = (r0); - s.modEditor___9563 = (s.mod___9559); - s.tmp_0 = microcode_ModifierEditor__C4403_v0_1_mk(s); - s.tmp_0.arg0 = s.modEditor___9563; - if (!checkSubtype(s.tmp_0.arg0, microcode_ModifierEditor__C4403_VT)) failedCast(s.tmp_0.arg0, microcode_ModifierEditor__C4403_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getField; - s.pc = 11; return s.tmp_0; - case 11: + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + s.rc___9959 = (r0); + s.tmp_0 = microcode_RuleClosure_start__P6097_mk(s); + s.tmp_0.arg0 = s.rc___9959; + s.tmp_0.arg1 = true; + s.callLocIdx = 2126; s.pc = 28; return s.tmp_0; + case 28: r0 = s.retval; - { step = 9; continue; } + { step = 8; continue; } case 7: - s.tmp_1 = microcode_getEditor__P4456_mk(s); - s.tmp_1.arg0 = 179; - s.callLocIdx = 1060; s.pc = 12; return s.tmp_1; - case 12: + s.event___9968 = (s.ev___9873); + r0 = s.caps[0].fields["ruleClosures"]; + s.tmp_0 = r0; + s.tmp_2 = if_ruleIndex_1_mk(s); + s.tmp_2.arg0 = s.event___9968; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "ruleIndex"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["ruleIndex"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["ruleIndex"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 2127; s.pc = 29; return s.tmp_2; } + } + case 29: r0 = s.retval; - s.mod___9568 = (r0); - s.tmp_0 = microcode_MelodyEditor_getNoteSequence__P4455_mk(s); - s.tmp_0.arg0 = s.mod___9568; - s.callLocIdx = 1061; s.pc = 13; return s.tmp_0; - case 13: + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + s.rc___9971 = (r0); + s.tmp_0 = microcode_RuleClosure_releaseTimer__P6107_mk(s); + s.tmp_0.arg0 = s.rc___9971; + s.callLocIdx = 2128; s.pc = 30; return s.tmp_0; + case 30: r0 = s.retval; - { step = 9; continue; } case 8: - r0 = undefined; - { step = 9; continue; } - r0 = undefined; case 9: + case 10: + setupResume(s, 31); + pxsim.basic.pause(10); + checkResumeConsumed(); + return; + case 31: + r0 = s.retval; + { step = 1; continue; } + case 11: + r0 = (s.caps[0]).fields["eventQueueActive"] = (false); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_defaultModifier__P4262.info = {"start":11867,"length":972,"line":386,"column":4,"endLine":409,"endColumn":5,"fileName":"tiles.ts","functionName":"defaultModifier","argumentNames":["tid"]} +microcode_Interpreter_setupEventQueue_inline__P9864.info = {"start":21975,"length":3338,"line":634,"column":33,"endLine":698,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":[]} -function microcode_defaultModifier__P4262_mk(s) { +function microcode_Interpreter_setupEventQueue_inline__P9864_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_defaultModifier__P4262, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_setupEventQueue_inline__P9864, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - mod___9559: undefined, - modEditor___9563: undefined, - mod___9568: undefined, - arg0: undefined, + tmp_2: undefined, + tmp_3: undefined, + ev___9873: undefined, + event___9897: undefined, + rules___9900: undefined, + newOnes___9916: undefined, + event___9928: undefined, + event___9944: undefined, + event___9956: undefined, + rc___9959: undefined, + event___9968: undefined, + rc___9971: undefined, } } - -function microcode_getEditor__P4456(s) { +function rules_inline__P9902(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15510,115 +15912,40 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tid___9908 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (s.arg0 == 160); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = pxsim_numops_toBoolDecr(globals.iconEditorTile___5823); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_IconEditor__C4430_VT); - s.tmp_3 = r0; - s.tmp_4 = microcode_IconEditor_constructor__P4432_mk(s); - s.tmp_4.arg0 = s.tmp_3; - s.tmp_4.arg1 = null; - s.callLocIdx = 1569; s.pc = 14; return s.tmp_4; - case 14: - r0 = s.retval; - globals.iconEditorTile___5823 = (s.tmp_3); - r0 = (globals.iconEditorTile___5823).fields["firstInstance"] = (true); + r0 = pxsim_pxtrt.mapGetGeneric(globals.vars2tids___6117, s.arg0); + s.tid___9908 = (r0); + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.caps[0]; + s.tmp_0.arg0 = s.tid___9908; + s.tmp_0.arg1 = undefined; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 2112; s.pc = 1; return s.tmp_0; case 1: - case 2: - r0 = globals.iconEditorTile___5823; - { step = 13; continue; } - { step = 12; continue; } - case 3: - r0 = (s.arg0 == 179); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = pxsim_numops_toBoolDecr(globals.melodyEditorTile___5825); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_MelodyEditor__C4449_VT); - s.tmp_3 = r0; - s.tmp_4 = microcode_MelodyEditor_constructor__P4451_mk(s); - s.tmp_4.arg0 = s.tmp_3; - s.tmp_4.arg1 = null; - s.callLocIdx = 1570; s.pc = 15; return s.tmp_4; - case 15: - r0 = s.retval; - globals.melodyEditorTile___5825 = (s.tmp_3); - r0 = (globals.melodyEditorTile___5825).fields["firstInstance"] = (true); - case 4: - case 5: - r0 = globals.melodyEditorTile___5825; - { step = 13; continue; } - { step = 11; continue; } - case 6: - r0 = (s.arg0 == 255); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = pxsim_numops_toBoolDecr(globals.decimalEditorTile___5827); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 7; continue; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_DecimalEditor__C4417_VT); - s.tmp_3 = r0; - s.tmp_4 = microcode_DecimalEditor_constructor__P4419_mk(s); - s.tmp_4.arg0 = s.tmp_3; - s.tmp_4.arg1 = undefined; - s.callLocIdx = 1571; s.pc = 16; return s.tmp_4; - case 16: r0 = s.retval; - globals.decimalEditorTile___5827 = (s.tmp_3); - r0 = (globals.decimalEditorTile___5827).fields["firstInstance"] = (true); - case 7: - case 8: - r0 = globals.decimalEditorTile___5827; - { step = 13; continue; } - case 9: - case 10: - case 11: - case 12: - r0 = undefined; - case 13: return leave(s, r0) default: oops() } } } -microcode_getEditor__P4456.info = {"start":9027,"length":846,"line":297,"column":4,"endLine":318,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"getEditor","argumentNames":["tid"]} +rules_inline__P9902.info = {"start":22547,"length":184,"line":644,"column":68,"endLine":647,"endColumn":33,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["v"]} -function microcode_getEditor__P4456_mk(s) { +function rules_inline__P9902_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getEditor__P4456, depth: s.depth + 1, + parent: s, fn: rules_inline__P9902, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, + tid___9908: undefined, arg0: undefined, } } - -function microcode_DecimalEditor_constructor__P4419(s) { +function microcode_Interpreter_setupEventQueue_inline__P9920(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15630,74 +15957,39 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalEditor__C4417_VT)) failedCast(r0, microcode_DecimalEditor__C4417_VT); - s.tmp_0 = microcode_ModifierEditor_constructor__P4404_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 255; - s.callLocIdx = 1544; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore_mkClassInstance(microcode_DecimalFieldEditor__C4410_VT); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["fieldEditor"] = (s.tmp_1); - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - r0 = s.arg1; - { step = 2; continue; } + s.tmp_0 = r0 = s.caps[0]; + s.tmp_2 = helpers_arrayConcat__P2142_mk(s); + r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.arg0; + s.callLocIdx = 2114; s.pc = 1; return s.tmp_2; case 1: - s.tmp_0 = microcode_FieldEditor__C5806_v0_1_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_0.arg0 = r0; - if (!checkSubtype(s.tmp_0.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_0.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.init; - s.pc = 4; return s.tmp_0; - case 4: r0 = s.retval; - case 2: - // jmp value (already in r0) s.tmp_1 = r0; - s.tmp_2 = r0 = s.arg0; - s.tmp_4 = microcode_FieldEditor__C5806_v1_2_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = s.tmp_1; - if (!checkSubtype(s.tmp_4.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_4.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.clone; - s.pc = 5; return s.tmp_4; - case 5: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["field"] = (s.tmp_3); + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_DecimalEditor_constructor__P4419.info = {"start":2766,"length":262,"line":97,"column":8,"endLine":103,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","field"]} +microcode_Interpreter_setupEventQueue_inline__P9920.info = {"start":22900,"length":104,"line":650,"column":46,"endLine":652,"endColumn":33,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["l"]} -function microcode_DecimalEditor_constructor__P4419_mk(s) { +function microcode_Interpreter_setupEventQueue_inline__P9920_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalEditor_constructor__P4419, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_setupEventQueue_inline__P9920, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_FieldEditor_init__P5807(s) { +function microcode_RuleClosure_releaseTimer__P6107(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15712,17 +16004,18 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_FieldEditor__C5806_VT)) failedCast(r0, microcode_FieldEditor__C5806_VT); + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = (s.arg0).fields["timerGoAhead"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_FieldEditor_init__P5807.info = {"start":388,"length":52,"line":11,"column":8,"endLine":13,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"init","argumentNames":["this"]} +microcode_RuleClosure_releaseTimer__P6107.info = {"start":8755,"length":70,"line":254,"column":8,"endLine":256,"endColumn":9,"fileName":"interpreter.ts","functionName":"releaseTimer","argumentNames":["this"]} -function microcode_FieldEditor_init__P5807_mk(s) { +function microcode_RuleClosure_releaseTimer__P6107_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_FieldEditor_init__P5807, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_releaseTimer__P6107, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, } } @@ -15730,8 +16023,7 @@ function microcode_FieldEditor_init__P5807_mk(s) { - -function microcode_FieldEditor_clone__P5808(s) { +function microcode_Interpreter_processNewRules__P6143(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15741,24 +16033,195 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.resourceWinner___9991 = undefined; + s.rc___9994 = undefined; + s.unnamed70___U2 = undefined; + s.unnamed71___U3 = undefined; + s.resource___9996 = undefined; + s.currentWinner___10000 = undefined; + s.liveIndices___10017 = undefined; + s.live___10029 = undefined; + s.dead___10043 = undefined; + s.instant___10079 = undefined; + s.switchPage___10104 = undefined; + s.takesTime___10118 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_FieldEditor__C5806_VT)) failedCast(r0, microcode_FieldEditor__C5806_VT); + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = pxsim_Array__length(s.arg1); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 11; continue; } + case 1: + case 2: + r0 = pxsim_pxtrt.mkMap(); + s.resourceWinner___9991 = (r0); + s.rc___9994 = (undefined); + s.unnamed70___U2 = (s.arg1); + s.unnamed71___U3 = (0); + case 3: + s.tmp_0 = r0 = s.unnamed71___U3; + r0 = pxsim_Array__length(s.unnamed70___U2); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 8; continue; } + r0 = pxsim_Array__getAt(s.unnamed70___U2, s.unnamed71___U3); + s.rc___9994 = (r0); + s.tmp_2 = microcode_RuleClosure_getOutputResource__P6108_mk(s); + s.tmp_2.arg0 = s.rc___9994; + s.callLocIdx = 2081; s.pc = 12; return s.tmp_2; + case 12: + r0 = s.retval; + s.resource___9996 = (r0); + r0 = pxsim_pxtrt.mapGetGeneric(s.resourceWinner___9991, s.resource___9996); + s.currentWinner___10000 = (r0); + r0 = (s.currentWinner___10000 === undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = s.tmp_0; + { step = 5; continue; } + case 4: + r0 = s.rc___9994.fields["index"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 < s.currentWinner___10000); + case 5: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 6; continue; } + r0 = s.rc___9994.fields["index"]; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetGeneric(s.resourceWinner___9991, s.resource___9996, s.tmp_3); + case 6: + case 7: + r0 = (s.unnamed71___U3 + 1); + s.unnamed71___U3 = (r0); + { step = 3; continue; } + case 8: + s.unnamed70___U2 = (undefined); + r0 = pxsim_pxtcore_mkAction(1, liveIndices_inline__P10019); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.resourceWinner___9991); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); + r0 = pxsim_pxtrt.keysOf(s.resourceWinner___9991); + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2083; s.pc = 13; return s.tmp_1; + case 13: + r0 = s.retval; + s.liveIndices___10017 = (r0); + r0 = pxsim_pxtcore_mkAction(1, live_inline__P10031); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.liveIndices___10017); + s.tmp_1 = helpers_arrayFilter__P2139_mk(s); + s.tmp_1.arg0 = s.arg1; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2085; s.pc = 14; return s.tmp_1; + case 14: + r0 = s.retval; + s.live___10029 = (r0); + r0 = pxsim_pxtcore_mkAction(2, dead_inline__P10045); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.live___10029); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.resourceWinner___9991); + s.tmp_1 = helpers_arrayFilter__P2139_mk(s); + r0 = s.arg0.fields["ruleClosures"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2088; s.pc = 15; return s.tmp_1; + case 15: + r0 = s.retval; + s.dead___10043 = (r0); + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + s.tmp_0.arg0 = s.dead___10043; + s.tmp_0.arg1 = microcode_Interpreter_processNewRules_inline__P10075; + s.callLocIdx = 2090; s.pc = 16; return s.tmp_0; + case 16: + r0 = s.retval; + s.tmp_0 = helpers_arrayFilter__P2139_mk(s); + s.tmp_0.arg0 = s.live___10029; + s.tmp_0.arg1 = instant_inline__P10081; + s.callLocIdx = 2092; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + s.instant___10079 = (r0); + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + s.tmp_0.arg0 = s.instant___10079; + s.tmp_0.arg1 = microcode_Interpreter_processNewRules_inline__P10092; + s.callLocIdx = 2095; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + s.tmp_0 = microcode_Interpreter_processNewState__P4761_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2096; s.pc = 19; return s.tmp_0; + case 19: + r0 = s.retval; + s.tmp_0 = helpers_arrayFind__P2140_mk(s); + s.tmp_0.arg0 = s.instant___10079; + s.tmp_0.arg1 = switchPage_inline__P10106; + s.callLocIdx = 2098; s.pc = 20; return s.tmp_0; + case 20: + r0 = s.retval; + s.switchPage___10104 = (r0); + r0 = pxsim_numops_toBoolDecr(s.switchPage___10104); + if (!r0) { step = 9; continue; } + s.tmp_0 = microcode_RuleClosure_runInstant__P6111_mk(s); + s.tmp_0.arg0 = s.switchPage___10104; + s.callLocIdx = 2099; s.pc = 21; return s.tmp_0; + case 21: + r0 = s.retval; + { step = 11; continue; } + case 9: + case 10: + s.tmp_0 = helpers_arrayFilter__P2139_mk(s); + s.tmp_0.arg0 = s.live___10029; + s.tmp_0.arg1 = takesTime_inline__P10120; + s.callLocIdx = 2101; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + s.takesTime___10118 = (r0); + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + s.tmp_0.arg0 = s.takesTime___10118; + s.tmp_0.arg1 = microcode_Interpreter_processNewRules_inline__P10131; + s.callLocIdx = 2107; s.pc = 23; return s.tmp_0; + case 23: + r0 = s.retval; + case 11: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_FieldEditor_clone__P5808.info = {"start":449,"length":63,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"clone","argumentNames":["this","field"]} +microcode_Interpreter_processNewRules__P6143.info = {"start":19097,"length":2371,"line":557,"column":8,"endLine":619,"endColumn":9,"fileName":"interpreter.ts","functionName":"processNewRules","argumentNames":["this","newRules"]} -function microcode_FieldEditor_clone__P5808_mk(s) { +function microcode_Interpreter_processNewRules__P6143_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_FieldEditor_clone__P5808, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_processNewRules__P6143, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + resourceWinner___9991: undefined, + rc___9994: undefined, + unnamed70___U2: undefined, + unnamed71___U3: undefined, + resource___9996: undefined, + currentWinner___10000: undefined, + liveIndices___10017: undefined, + live___10029: undefined, + dead___10043: undefined, + instant___10079: undefined, + switchPage___10104: undefined, + takesTime___10118: undefined, arg0: undefined, arg1: undefined, } } @@ -15766,8 +16229,7 @@ function microcode_FieldEditor_clone__P5808_mk(s) { - -function microcode_ModifierEditor_constructor__P4404(s) { +function liveIndices_inline__P10019(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15779,33 +16241,37 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_ModifierEditor__C4403_VT)) failedCast(r0, microcode_ModifierEditor__C4403_VT); - r0 = (s.arg0).fields["tid"] = (s.arg1); - r0 = (s.arg0).fields["firstInstance"] = (false); - r0 = undefined; + s.tmp_0 = r0 = s.caps[0]; + s.tmp_2 = parseInt__P2126_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = undefined; + s.callLocIdx = 2082; s.pc = 1; return s.tmp_2; + case 1: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.tmp_1); return leave(s, r0) default: oops() } } } -microcode_ModifierEditor_constructor__P4404.info = {"start":954,"length":82,"line":35,"column":8,"endLine":37,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","tid"]} +liveIndices_inline__P10019.info = {"start":19720,"length":32,"line":569,"column":16,"endLine":569,"endColumn":48,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["k"]} -function microcode_ModifierEditor_constructor__P4404_mk(s) { +function liveIndices_inline__P10019_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_ModifierEditor_constructor__P4404, depth: s.depth + 1, + parent: s, fn: liveIndices_inline__P10019, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_MelodyEditor_constructor__P4451(s) { +function live_inline__P10031(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15817,75 +16283,70 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyEditor__C4449_VT)) failedCast(r0, microcode_MelodyEditor__C4449_VT); - s.tmp_0 = microcode_ModifierEditor_constructor__P4404_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 179; - s.callLocIdx = 1563; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = (s.arg0).fields["firstInstance"] = (false); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore_mkClassInstance(microcode_MelodyFieldEditor__C4442_VT); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["fieldEditor"] = (s.tmp_1); - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - r0 = s.arg1; - { step = 2; continue; } + r0 = pxsim_pxtcore_mkAction(1, live_inline__P10037); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arraySome__P2136_mk(s); + s.tmp_1.arg0 = s.caps[0]; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2084; s.pc = 1; return s.tmp_1; case 1: - s.tmp_0 = microcode_FieldEditor__C5806_v0_1_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_0.arg0 = r0; - if (!checkSubtype(s.tmp_0.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_0.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.init; - s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - s.tmp_2 = r0 = s.arg0; - s.tmp_4 = microcode_FieldEditor__C5806_v1_2_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = s.tmp_1; - if (!checkSubtype(s.tmp_4.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_4.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.clone; - s.pc = 5; return s.tmp_4; - case 5: r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["field"] = (s.tmp_3); - r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MelodyEditor_constructor__P4451.info = {"start":7706,"length":308,"line":258,"column":8,"endLine":265,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","field"]} +live_inline__P10031.info = {"start":19808,"length":59,"line":571,"column":41,"endLine":572,"endColumn":53,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function microcode_MelodyEditor_constructor__P4451_mk(s) { +function live_inline__P10031_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyEditor_constructor__P4451, depth: s.depth + 1, + parent: s, fn: live_inline__P10031, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, - arg1: undefined, } } +function live_inline__P10037(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.caps[0].fields["index"]; + s.tmp_0 = r0; + r0 = (s.arg0 === s.tmp_0); + return leave(s, r0) + default: oops() +} } } +live_inline__P10037.info = {"start":19847,"length":19,"line":572,"column":33,"endLine":572,"endColumn":52,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["i"]} + +function live_inline__P10037_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: live_inline__P10037, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + -function microcode_IconEditor_constructor__P4432(s) { +function dead_inline__P10045(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15895,76 +16356,68 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.resource___10050 = undefined; + s.res___10054 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconEditor__C4430_VT)) failedCast(r0, microcode_IconEditor__C4430_VT); - s.tmp_0 = microcode_ModifierEditor_constructor__P4404_mk(s); + s.tmp_0 = microcode_RuleClosure_getOutputResource__P6108_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 160; - s.callLocIdx = 1550; s.pc = 3; return s.tmp_0; - case 3: + s.callLocIdx = 2086; s.pc = 5; return s.tmp_0; + case 5: r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore_mkClassInstance(microcode_IconFieldEditor__C4423_VT); + s.resource___10050 = (r0); + r0 = pxsim_Array_.indexOf(s.caps[0], s.arg0, undefined); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["fieldEditor"] = (s.tmp_1); - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - r0 = s.arg1; + r0 = (s.tmp_1 === -1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; { step = 2; continue; } case 1: - s.tmp_0 = microcode_FieldEditor__C5806_v0_1_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_0.arg0 = r0; - if (!checkSubtype(s.tmp_0.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_0.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.init; - s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; + r0 = s.arg0.fields["actionRunning"]; case 2: // jmp value (already in r0) - s.tmp_1 = r0; - s.tmp_2 = r0 = s.arg0; - s.tmp_4 = microcode_FieldEditor__C5806_v1_2_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = s.tmp_1; - if (!checkSubtype(s.tmp_4.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_4.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.clone; - s.pc = 5; return s.tmp_4; - case 5: - r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (r0) { step = 3; continue; } + r0 = s.tmp_2; + { step = 4; continue; } + case 3: + r0 = pxsim_pxtrt.mapGetGeneric(s.caps[1], s.resource___10050); s.tmp_3 = r0; - r0 = (s.tmp_2).fields["field"] = (s.tmp_3); - r0 = undefined; + r0 = (s.tmp_3 != undefined); + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + s.res___10054 = (s.tmp_4); + r0 = s.res___10054; return leave(s, r0) default: oops() } } } -microcode_IconEditor_constructor__P4432.info = {"start":4925,"length":265,"line":171,"column":8,"endLine":177,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["this","field"]} +dead_inline__P10045.info = {"start":19932,"length":272,"line":574,"column":50,"endLine":581,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function microcode_IconEditor_constructor__P4432_mk(s) { +function dead_inline__P10045_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconEditor_constructor__P4432, depth: s.depth + 1, + parent: s, fn: dead_inline__P10045, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, + resource___10050: undefined, + res___10054: undefined, arg0: undefined, - arg1: undefined, } } - -function control_runInBackground__P2442(s) { +function microcode_Interpreter_processNewRules_inline__P10075(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -15978,26 +16431,30 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim.control.inBackground(s.arg0); + s.tmp_0 = microcode_RuleClosure_kill__P6099_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2089; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -control_runInBackground__P2442.info = {"start":316,"length":87,"line":15,"column":4,"endLine":17,"endColumn":5,"fileName":"pxt_modules/core/control.ts","functionName":"runInBackground","argumentNames":["a"]} +microcode_Interpreter_processNewRules_inline__P10075.info = {"start":20231,"length":47,"line":582,"column":25,"endLine":584,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function control_runInBackground__P2442_mk(s) { +function microcode_Interpreter_processNewRules_inline__P10075_mk(s) { checkStack(s.depth); return { - parent: s, fn: control_runInBackground__P2442, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_processNewRules_inline__P10075, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, } } - -function microcode_Interpreter_error__P4614(s) { +function instant_inline__P10081(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16009,54 +16466,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = (s.arg0).fields["hasErrors"] = (true); - r0 = pxsim_pxtcore_mkClassInstance(microcode_Error__C5871_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_Error_constructor__P5872_mk(s); - s.tmp_1.arg0 = s.tmp_0; - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 2); - pxsim_String__stringConv(s.arg1); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg1) + ""; } - case 2: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_String__concat("Error: ", s.tmp_2); - s.tmp_1.arg1 = r0; - s.callLocIdx = 1825; s.pc = 1; return s.tmp_1; + s.tmp_1 = microcode_RuleClosure_getActionKind__P6109_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 2091; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.tmp_0); - r0 = undefined; + s.tmp_0 = r0; + r0 = (s.tmp_0 === 1); return leave(s, r0) default: oops() } } } -microcode_Interpreter_error__P4614.info = {"start":26145,"length":116,"line":705,"column":8,"endLine":708,"endColumn":9,"fileName":"interpreter.ts","functionName":"error","argumentNames":["this","msg"]} +instant_inline__P10081.info = {"start":20400,"length":47,"line":588,"column":16,"endLine":588,"endColumn":63,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function microcode_Interpreter_error__P4614_mk(s) { +function instant_inline__P10081_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_error__P4614, depth: s.depth + 1, + parent: s, fn: instant_inline__P10081, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_Error_constructor__P5872(s) { +function microcode_Interpreter_processNewRules_inline__P10092(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16066,34 +16503,49 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.resource___10094 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Error__C5871_VT)) failedCast(r0, microcode_Error__C5871_VT); - r0 = (s.arg0).fields["msg"] = (s.arg1); + s.tmp_0 = microcode_RuleClosure_getOutputResource__P6108_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2093; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.resource___10094 = (r0); + r0 = (s.resource___10094 != 1003); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_RuleClosure_runInstant__P6111_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 2094; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Error_constructor__P5872.info = {"start":617,"length":34,"line":18,"column":8,"endLine":18,"endColumn":42,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["this","msg"]} +microcode_Interpreter_processNewRules_inline__P10092.info = {"start":20566,"length":193,"line":592,"column":28,"endLine":597,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function microcode_Error_constructor__P5872_mk(s) { +function microcode_Interpreter_processNewRules_inline__P10092_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Error_constructor__P5872, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_processNewRules_inline__P10092, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + resource___10094: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_RuleClosure_getWakeTime__P5892(s) { +function switchPage_inline__P10106(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16103,169 +16555,36 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.sensor___9697 = undefined; - s.period___9708 = undefined; - s.randomPeriod___9709 = undefined; - s.m___9711 = undefined; - s.unnamed58___U4 = undefined; - s.unnamed59___U5 = undefined; - s.mJdparam___9715 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = (s.arg0).fields["wakeTime"] = (0); - s.tmp_0 = microcode_RuleDefn_sensor__P4049_mk(s); - r0 = s.arg0.fields["rule"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1733; s.pc = 20; return s.tmp_0; - case 20: - r0 = s.retval; - s.sensor___9697 = (r0); - r0 = (s.sensor___9697 == 14); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + s.tmp_1 = microcode_RuleClosure_getOutputResource__P6108_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 2097; s.pc = 1; return s.tmp_1; case 1: - r0 = (s.sensor___9697 == 10); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 17; continue; } - s.period___9708 = (0); - s.randomPeriod___9709 = (0); - s.m___9711 = (undefined); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["filters"]; - s.unnamed58___U4 = (r0); - s.unnamed59___U5 = (0); - case 3: - s.tmp_0 = r0 = s.unnamed59___U5; - r0 = pxsim_Array__length(s.unnamed58___U4); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 8; continue; } - r0 = pxsim_Array__getAt(s.unnamed58___U4, s.unnamed59___U5); - s.m___9711 = (r0); - s.tmp_2 = microcode_getParam__P4282_mk(s); - s.tmp_2.arg0 = s.m___9711; - s.callLocIdx = 1734; s.pc = 21; return s.tmp_2; - case 21: - r0 = s.retval; - s.mJdparam___9715 = (r0); - s.tmp_2 = microcode_getKind__P4280_mk(s); - s.tmp_2.arg0 = s.m___9711; - s.callLocIdx = 1735; s.pc = 22; return s.tmp_2; - case 22: r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 == 5); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = (s.mJdparam___9715 >= 0); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 4; continue; } - r0 = (s.period___9708 + s.mJdparam___9715); - s.period___9708 = (r0); - { step = 5; continue; } - case 4: - s.tmp_0 = r0 = s.randomPeriod___9709; - r0 = (0 - s.mJdparam___9715); - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.randomPeriod___9709 = (r0); - case 5: - case 6: - case 7: - r0 = (s.unnamed59___U5 + 1); - s.unnamed59___U5 = (r0); - { step = 3; continue; } - case 8: - s.unnamed58___U4 = (undefined); - r0 = (s.sensor___9697 == 14); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 9; continue; } - r0 = s.tmp_0; - { step = 10; continue; } - case 9: - r0 = (s.period___9708 == 0); - case 10: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (r0) { step = 11; continue; } - r0 = s.tmp_1; - { step = 12; continue; } - case 11: - r0 = (s.randomPeriod___9709 == 0); - case 12: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 13; continue; } - s.period___9708 = (1000); - case 13: - case 14: - r0 = (s.randomPeriod___9709 > 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - s.tmp_1 = r0 = s.period___9708; - r0 = pxsim.Math_.random(); - s.tmp_4 = r0; - r0 = (s.tmp_4 * s.randomPeriod___9709); - s.tmp_3 = r0; - r0 = pxsim.Math_.floor(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 + s.tmp_2); - s.period___9708 = (r0); - case 15: - case 16: - r0 = (s.arg0).fields["wakeTime"] = (s.period___9708); - r0 = s.period___9708; - { step = 19; continue; } - case 17: - case 18: - r0 = 0; - case 19: + r0 = (s.tmp_0 == 1003); return leave(s, r0) default: oops() } } } -microcode_RuleClosure_getWakeTime__P5892.info = {"start":11830,"length":1106,"line":322,"column":8,"endLine":351,"endColumn":9,"fileName":"interpreter.ts","functionName":"getWakeTime","argumentNames":["this"]} +switchPage_inline__P10106.info = {"start":20858,"length":58,"line":601,"column":16,"endLine":601,"endColumn":74,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function microcode_RuleClosure_getWakeTime__P5892_mk(s) { +function switchPage_inline__P10106_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_getWakeTime__P5892, depth: s.depth + 1, + parent: s, fn: switchPage_inline__P10106, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - sensor___9697: undefined, - period___9708: undefined, - randomPeriod___9709: undefined, - m___9711: undefined, - unnamed58___U4: undefined, - unnamed59___U5: undefined, - mJdparam___9715: undefined, arg0: undefined, } } - -function microcode_Interpreter_addEvent__P4611(s) { +function takesTime_inline__P10120(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16277,35 +16596,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = s.arg0.fields["eventQueue"]; + s.tmp_1 = microcode_RuleClosure_getActionKind__P6109_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 2100; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.arg1); - r0 = undefined; + r0 = (s.tmp_0 === 2); return leave(s, r0) default: oops() } } } -microcode_Interpreter_addEvent__P4611.info = {"start":20723,"length":90,"line":583,"column":8,"endLine":585,"endColumn":9,"fileName":"interpreter.ts","functionName":"addEvent","argumentNames":["this","event"]} +takesTime_inline__P10120.info = {"start":21132,"length":49,"line":609,"column":16,"endLine":609,"endColumn":65,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function microcode_Interpreter_addEvent__P4611_mk(s) { +function takesTime_inline__P10120_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_addEvent__P4611, depth: s.depth + 1, + parent: s, fn: takesTime_inline__P10120, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_RuleClosure_constructor__P5893(s) { +function microcode_Interpreter_processNewRules_inline__P10131(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16315,46 +16633,84 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.whenSensor___10133 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = (s.arg0).fields["index"] = (s.arg1); - r0 = (s.arg0).fields["rule"] = (s.arg2); - r0 = (s.arg0).fields["interp"] = (s.arg3); - r0 = (s.arg0).fields["backgroundActive"] = (false); - r0 = (s.arg0).fields["wakeTime"] = (0); - r0 = (s.arg0).fields["actionRunning"] = (false); - r0 = (s.arg0).fields["modifierIndex"] = (0); - r0 = (s.arg0).fields["loopIndex"] = (0); - r0 = (s.arg0).fields["timerGoAhead"] = (false); + s.tmp_1 = microcode_RuleDefn_sensor__P4202_mk(s); + r0 = s.arg0.fields["rule"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 2102; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_3 = microcode_getKindTid__P4432_mk(s); + s.tmp_4 = microcode_RuleDefn_sensor__P4202_mk(s); + r0 = s.arg0.fields["rule"]; + s.tmp_4.arg0 = r0; + s.callLocIdx = 2103; s.pc = 7; return s.tmp_4; + case 7: + r0 = s.retval; + s.tmp_3.arg0 = r0; + s.callLocIdx = 2104; s.pc = 6; return s.tmp_3; + case 6: + r0 = s.retval; + s.tmp_2 = r0; + r0 = (s.tmp_2 == 4); + case 2: + // jmp value (already in r0) + s.tmp_5 = r0; + s.whenSensor___10133 = (s.tmp_5); + r0 = pxsim_numops_toBoolDecr(s.whenSensor___10133); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_2 = microcode_RuleClosure_kill__P6099_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 2105; s.pc = 8; return s.tmp_2; + case 8: + r0 = s.retval; + case 3: + case 4: + s.tmp_0 = microcode_RuleClosure_start__P6097_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = false; + s.callLocIdx = 2106; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleClosure_constructor__P5893.info = {"start":2420,"length":134,"line":76,"column":8,"endLine":80,"endColumn":12,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["this","index","rule","interp"]} +microcode_Interpreter_processNewRules_inline__P10131.info = {"start":21227,"length":230,"line":612,"column":30,"endLine":618,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} -function microcode_RuleClosure_constructor__P5893_mk(s) { +function microcode_Interpreter_processNewRules_inline__P10131_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_constructor__P5893, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_processNewRules_inline__P10131, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + whenSensor___10133: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function microcode_Interpreter_stopAllRules__P5913(s) { +function helpers_arrayFind__P2140(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16364,44 +16720,68 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.len___10153 = undefined; + s.i___10156 = undefined; + s.v___10161 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleClosures"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = microcode_Interpreter_stopAllRules_inline__P9772; - s.callLocIdx = 1745; s.pc = 1; return s.tmp_0; + r0 = pxsim_Array__length(s.arg0); + s.len___10153 = (r0); + s.i___10156 = (0); case 1: + r0 = (s.i___10156 < s.len___10153); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.arg0, s.i___10156); + s.v___10161 = (r0); + s.tmp_1 = lambda_3_mk(s); + s.tmp_1.argL = s.arg1; + s.tmp_1.arg0 = s.v___10161; + s.tmp_1.arg1 = s.i___10156; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 8; s.pc = 6; return s.tmp_1; + case 6: r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ruleClosures"] = (s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = s.v___10161; + { step = 5; continue; } + case 2: + case 3: + r0 = (s.i___10156 + 1); + s.i___10156 = (r0); + { step = 1; continue; } + case 4: r0 = undefined; + case 5: return leave(s, r0) default: oops() } } } -microcode_Interpreter_stopAllRules__P5913.info = {"start":16261,"length":122,"line":463,"column":8,"endLine":466,"endColumn":9,"fileName":"interpreter.ts","functionName":"stopAllRules","argumentNames":["this"]} +helpers_arrayFind__P2140.info = {"start":8018,"length":292,"line":271,"column":4,"endLine":278,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayFind","argumentNames":["arr","callbackfn"]} -function microcode_Interpreter_stopAllRules__P5913_mk(s) { +function helpers_arrayFind__P2140_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_stopAllRules__P5913, depth: s.depth + 1, + parent: s, fn: helpers_arrayFind__P2140, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + len___10153: undefined, + i___10156: undefined, + v___10161: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Interpreter_stopAllRules_inline__P9772(s) { +function microcode_RuleClosure_runInstant__P6111(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16411,35 +16791,61 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.actuator___10173 = undefined; + s.param___10178 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleClosure_kill__P5880_mk(s); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["actuators"]; + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, 0); + s.actuator___10173 = (r0); + s.tmp_0 = microcode_RuleClosure_getParamInstant__P6110_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1744; s.pc = 1; return s.tmp_0; + s.callLocIdx = 2048; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.param___10178 = (r0); + s.tmp_0 = microcode_Interpreter_runAction__P4760_mk(s); + r0 = s.arg0.fields["interp"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.actuator___10173; + s.tmp_0.arg3 = s.param___10178; + s.callLocIdx = 2049; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + s.tmp_0 = microcode_RuleClosure_kill__P6099_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2050; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_stopAllRules_inline__P9772.info = {"start":16324,"length":13,"line":464,"column":38,"endLine":464,"endColumn":51,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["r"]} +microcode_RuleClosure_runInstant__P6111.info = {"start":10164,"length":219,"line":293,"column":8,"endLine":298,"endColumn":9,"fileName":"interpreter.ts","functionName":"runInstant","argumentNames":["this"]} -function microcode_Interpreter_stopAllRules_inline__P9772_mk(s) { +function microcode_RuleClosure_runInstant__P6111_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_stopAllRules_inline__P9772, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_runInstant__P6111, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + actuator___10173: undefined, + param___10178: undefined, arg0: undefined, } } - -function microcode_Interpreter_setupEventQueue__P5917(s) { +function microcode_RuleClosure_active__P6096(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16449,43 +16855,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.newRules___9780 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = pxsim_pxtcore_mkAction(1, newRules_inline__P9781); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.newRules___9780 = (s.tmp_0); - r0 = pxsim_pxtcore_mkAction(2, microcode_Interpreter_setupEventQueue_inline__P9795); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.newRules___9780); - r0 = pxsim.control.inBackground(s.tmp_0); - r0 = undefined; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["actionRunning"]; return leave(s, r0) default: oops() } } } -microcode_Interpreter_setupEventQueue__P5917.info = {"start":20823,"length":3060,"line":587,"column":8,"endLine":647,"endColumn":9,"fileName":"interpreter.ts","functionName":"setupEventQueue","argumentNames":["this"]} +microcode_RuleClosure_active__P6096.info = {"start":2216,"length":65,"line":72,"column":8,"endLine":74,"endColumn":9,"fileName":"interpreter.ts","functionName":"active","argumentNames":["this"]} -function microcode_Interpreter_setupEventQueue__P5917_mk(s) { +function microcode_RuleClosure_active__P6096_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_setupEventQueue__P5917, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_active__P6096, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - newRules___9780: undefined, arg0: undefined, } } - -function newRules_inline__P9781(s) { +function helpers_arraySome__P2136(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16495,34 +16888,58 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.len___10194 = undefined; + s.i___10197 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(2, newRules_inline__P9787); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); - s.tmp_1 = helpers_arrayFilter__P2139_mk(s); - r0 = s.caps[0].fields["ruleClosures"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1783; s.pc = 1; return s.tmp_1; + r0 = pxsim_Array__length(s.arg0); + s.len___10194 = (r0); + s.i___10197 = (0); case 1: + r0 = (s.i___10197 < s.len___10194); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_2 = lambda_3_mk(s); + s.tmp_2.argL = s.arg1; + r0 = pxsim_Array__getAt(s.arg0, s.i___10197); + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.i___10197; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 5; s.pc = 6; return s.tmp_2; + case 6: r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = true; + { step = 5; continue; } + case 2: + case 3: + r0 = (s.i___10197 + 1); + s.i___10197 = (r0); + { step = 1; continue; } + case 4: + r0 = false; + case 5: return leave(s, r0) default: oops() } } } -newRules_inline__P9781.info = {"start":20880,"length":181,"line":588,"column":29,"endLine":592,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["sensor","filter"]} +helpers_arraySome__P2136.info = {"start":6833,"length":296,"line":238,"column":4,"endLine":244,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arraySome","argumentNames":["arr","callbackfn"]} -function newRules_inline__P9781_mk(s) { +function helpers_arraySome__P2136_mk(s) { checkStack(s.depth); return { - parent: s, fn: newRules_inline__P9781, depth: s.depth + 1, + parent: s, fn: helpers_arraySome__P2136, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + len___10194: undefined, + i___10197: undefined, arg0: undefined, arg1: undefined, } } @@ -16530,8 +16947,7 @@ function newRules_inline__P9781_mk(s) { - -function newRules_inline__P9787(s) { +function helpers_arrayConcat__P2142(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16541,36 +16957,82 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.out___10211 = undefined; + s.value___10214 = undefined; + s.unnamed36___U2 = undefined; + s.unnamed37___U3 = undefined; + s.value___10221 = undefined; + s.unnamed38___U5 = undefined; + s.unnamed39___U6 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleClosure_matchWhen__P5881_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.caps[0]; - s.tmp_0.arg2 = s.caps[1]; - s.callLocIdx = 1782; s.pc = 1; return s.tmp_0; + r0 = pxsim_Array__mk(); + s.out___10211 = (r0); + s.value___10214 = (undefined); + s.unnamed36___U2 = (s.arg0); + s.unnamed37___U3 = (0); case 1: - r0 = s.retval; + s.tmp_0 = r0 = s.unnamed37___U3; + r0 = pxsim_Array__length(s.unnamed36___U2); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = pxsim_Array__getAt(s.unnamed36___U2, s.unnamed37___U3); + s.value___10214 = (r0); + r0 = pxsim_Array__push(s.out___10211, s.value___10214); + r0 = (s.unnamed37___U3 + 1); + s.unnamed37___U3 = (r0); + { step = 1; continue; } + case 2: + s.unnamed36___U2 = (undefined); + s.value___10221 = (undefined); + s.unnamed38___U5 = (s.arg1); + s.unnamed39___U6 = (0); + case 3: + s.tmp_0 = r0 = s.unnamed39___U6; + r0 = pxsim_Array__length(s.unnamed38___U5); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.unnamed38___U5, s.unnamed39___U6); + s.value___10221 = (r0); + r0 = pxsim_Array__push(s.out___10211, s.value___10221); + r0 = (s.unnamed39___U6 + 1); + s.unnamed39___U6 = (r0); + { step = 3; continue; } + case 4: + s.unnamed38___U5 = (undefined); + r0 = s.out___10211; return leave(s, r0) default: oops() } } } -newRules_inline__P9787.info = {"start":20975,"length":54,"line":589,"column":48,"endLine":590,"endColumn":48,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +helpers_arrayConcat__P2142.info = {"start":8639,"length":264,"line":288,"column":4,"endLine":297,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayConcat","argumentNames":["arr","otherArr"]} -function newRules_inline__P9787_mk(s) { +function helpers_arrayConcat__P2142_mk(s) { checkStack(s.depth); return { - parent: s, fn: newRules_inline__P9787, depth: s.depth + 1, + parent: s, fn: helpers_arrayConcat__P2142, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + out___10211: undefined, + value___10214: undefined, + unnamed36___U2: undefined, + unnamed37___U3: undefined, + value___10221: undefined, + unnamed38___U5: undefined, + unnamed39___U6: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Interpreter_setupEventQueue_inline__P9795(s) { +function helpers_arrayMap__P2135(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16580,261 +17042,66 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ev___9802 = undefined; - s.event___9825 = undefined; - s.rules___9828 = undefined; - s.newOnes___9840 = undefined; - s.event___9852 = undefined; - s.event___9868 = undefined; - s.event___9881 = undefined; - s.rc___9884 = undefined; - case 1: - r0 = s.caps[0].fields["running"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 10; continue; } - r0 = s.caps[0].fields["eventQueue"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 8; continue; } - r0 = s.caps[0].fields["eventQueue"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_3, 0); - s.ev___9802 = (r0); - r0 = s.caps[0].fields["eventQueue"]; - s.tmp_0 = r0; - r0 = pxsim_Array_.removeAt(s.tmp_0, 0); - s.tmp_1 = if_kind_1_mk(s); - s.tmp_1.arg0 = s.ev___9802; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "kind"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["kind"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["kind"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1784; s.pc = 11; return s.tmp_1; } - } - case 11: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = s.tmp_0; - { step = 7; continue; } - case 2: - setupResume(s, 12); - pxsim.control.waitMicros(50000); - checkResumeConsumed(); - return; - case 12: - r0 = s.retval; - s.event___9825 = (s.ev___9802); - r0 = pxsim_pxtcore_mkAction(1, rules_inline__P9830); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[1]); - s.tmp_1 = helpers_arrayMap__P2135_mk(s); - s.tmp_2 = if_updatedVars_1_mk(s); - s.tmp_2.arg0 = s.event___9825; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "updatedVars"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["updatedVars"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["updatedVars"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1785; s.pc = 14; return s.tmp_2; } + s.res___10230 = undefined; + s.len___10232 = undefined; + s.i___10235 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; } - case 14: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1787; s.pc = 13; return s.tmp_1; - case 13: - r0 = s.retval; - s.rules___9828 = (r0); - r0 = pxsim_pxtrt.mklocRef(); - s.newOnes___9840 = (r0); - s.tmp_0 = r0 = s.newOnes___9840; r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_setupEventQueue_inline__P9844); + s.res___10230 = (r0); + r0 = pxsim_Array__length(s.arg0); + s.len___10232 = (r0); + s.i___10235 = (0); + case 1: + r0 = (s.i___10235 < s.len___10232); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.newOnes___9840); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_1.arg0 = s.rules___9828; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1789; s.pc = 15; return s.tmp_1; - case 15: - r0 = s.retval; - s.tmp_0 = microcode_Interpreter_processNewRules__P5916_mk(s); - s.tmp_0.arg0 = s.caps[0]; - r0 = pxsim_pxtrt_ldlocRef(s.newOnes___9840); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1790; s.pc = 16; return s.tmp_0; - case 16: - r0 = s.retval; - { step = 7; continue; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = r0 = s.res___10230; + s.tmp_3 = lambda_3_mk(s); + s.tmp_3.argL = s.arg1; + r0 = pxsim_Array__getAt(s.arg0, s.i___10235); + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.i___10235; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 4; s.pc = 3; return s.tmp_3; case 3: - s.event___9852 = (s.ev___9802); - s.tmp_0 = microcode_Interpreter_processNewRules__P5916_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_1 = lambda_3_mk(s); - s.tmp_1.argL = s.caps[1]; - s.tmp_2 = if_sensor_1_mk(s); - s.tmp_2.arg0 = s.event___9852; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "sensor"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["sensor"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["sensor"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1791; s.pc = 19; return s.tmp_2; } - } - case 19: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_3 = if_filter_1_mk(s); - s.tmp_3.arg0 = s.event___9852; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "filter"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["filter"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["filter"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1792; s.pc = 20; return s.tmp_3; } - } - case 20: - r0 = s.retval; - s.tmp_1.arg1 = r0; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 1793; s.pc = 18; return s.tmp_1; - case 18: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1794; s.pc = 17; return s.tmp_0; - case 17: - r0 = s.retval; - { step = 7; continue; } - case 4: - setupResume(s, 21); - pxsim.control.waitMicros(50000); - checkResumeConsumed(); - return; - case 21: - r0 = s.retval; - s.event___9868 = (s.ev___9802); - s.tmp_0 = microcode_Interpreter_switchPage__P5914_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_2 = if_index_1_mk(s); - s.tmp_2.arg0 = s.event___9868; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "index"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["index"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["index"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1795; s.pc = 23; return s.tmp_2; } - } - case 23: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 - 1); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1796; s.pc = 22; return s.tmp_0; - case 22: - r0 = s.retval; - { step = 7; continue; } - case 5: - s.tmp_0 = microcode_Interpreter_processNewRules__P5916_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_1 = lambda_3_mk(s); - s.tmp_1.argL = s.caps[1]; - s.tmp_1.arg0 = 10; - s.tmp_1.arg1 = -1; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 1797; s.pc = 25; return s.tmp_1; - case 25: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1798; s.pc = 24; return s.tmp_0; - case 24: - r0 = s.retval; - { step = 7; continue; } - case 6: - s.event___9881 = (s.ev___9802); - r0 = s.caps[0].fields["ruleClosures"]; - s.tmp_0 = r0; - s.tmp_2 = if_ruleIndex_1_mk(s); - s.tmp_2.arg0 = s.event___9881; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "ruleIndex"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["ruleIndex"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["ruleIndex"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1799; s.pc = 26; return s.tmp_2; } - } - case 26: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); - s.rc___9884 = (r0); - s.tmp_0 = microcode_RuleClosure_releaseTimer__P5886_mk(s); - s.tmp_0.arg0 = s.rc___9884; - s.callLocIdx = 1800; s.pc = 27; return s.tmp_0; - case 27: - r0 = s.retval; - case 7: - case 8: - case 9: - setupResume(s, 28); - pxsim.basic.pause(10); - checkResumeConsumed(); - return; - case 28: r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); + r0 = (s.i___10235 + 1); + s.i___10235 = (r0); { step = 1; continue; } - case 10: - r0 = undefined; + case 2: + r0 = s.res___10230; return leave(s, r0) default: oops() } } } -microcode_Interpreter_setupEventQueue_inline__P9795.info = {"start":21095,"length":2777,"line":593,"column":33,"endLine":646,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":[]} +helpers_arrayMap__P2135.info = {"start":6528,"length":299,"line":229,"column":4,"endLine":236,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayMap","argumentNames":["arr","callbackfn"]} -function microcode_Interpreter_setupEventQueue_inline__P9795_mk(s) { +function helpers_arrayMap__P2135_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_setupEventQueue_inline__P9795, depth: s.depth + 1, + parent: s, fn: helpers_arrayMap__P2135, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - ev___9802: undefined, - event___9825: undefined, - rules___9828: undefined, - newOnes___9840: undefined, - event___9852: undefined, - event___9868: undefined, - event___9881: undefined, - rc___9884: undefined, + res___10230: undefined, + len___10232: undefined, + i___10235: undefined, + arg0: undefined, + arg1: undefined, } } - -function rules_inline__P9830(s) { +function microcode_RuleClosure_matchWhen__P6100(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16844,37 +17111,169 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.sensor___10254 = undefined; + s.eventCode___10290 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.caps[0]; - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = -1; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1786; s.pc = 1; return s.tmp_0; - case 1: + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + s.tmp_0 = microcode_RuleDefn_sensor__P4202_mk(s); + r0 = s.arg0.fields["rule"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 2009; s.pc = 16; return s.tmp_0; + case 16: r0 = s.retval; - return leave(s, r0) - default: oops() + s.sensor___10254 = (r0); + r0 = (s.arg1 != s.sensor___10254); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = false; + { step = 15; continue; } + case 1: + case 2: + r0 = (s.sensor___10254 == 10); + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (r0) { step = 3; continue; } + r0 = s.tmp_1; + { step = 4; continue; } + case 3: + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["filters"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 == 0); + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 5; continue; } + r0 = true; + { step = 15; continue; } + { step = 14; continue; } + case 5: + s.tmp_7 = microcode_getKind__P4431_mk(s); + s.tmp_7.arg0 = s.sensor___10254; + s.callLocIdx = 2010; s.pc = 17; return s.tmp_7; + case 17: + r0 = s.retval; + s.tmp_6 = r0; + r0 = (s.tmp_6 == 2); + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 6; continue; } + s.tmp_8 = microcode_RuleClosure_filterViaCompare__P6102_mk(s); + s.tmp_8.arg0 = s.arg0; + s.callLocIdx = 2011; s.pc = 18; return s.tmp_8; + case 18: + r0 = s.retval; + { step = 15; continue; } + { step = 13; continue; } + case 6: + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["filters"]; + s.tmp_11 = r0; + r0 = pxsim_Array__length(s.tmp_11); + s.tmp_10 = r0; + r0 = (s.tmp_10 == 0); + s.tmp_9 = r0; + r0 = pxsim_numops_toBool(s.tmp_9); + if (!r0) { step = 7; continue; } + r0 = s.tmp_9; + { step = 8; continue; } + case 7: + s.tmp_13 = microcode_getKind__P4431_mk(s); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["filters"]; + s.tmp_14 = r0; + r0 = pxsim_Array__getAt(s.tmp_14, 0); + s.tmp_13.arg0 = r0; + s.callLocIdx = 2012; s.pc = 19; return s.tmp_13; + case 19: + r0 = s.retval; + s.tmp_12 = r0; + r0 = (s.tmp_12 == 3); + case 8: + // jmp value (already in r0) + s.tmp_15 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_15); + if (!r0) { step = 11; continue; } + s.tmp_16 = microcode_RuleClosure_lookupEventCode__P6101_mk(s); + s.tmp_16.arg0 = s.arg0; + s.callLocIdx = 2013; s.pc = 20; return s.tmp_16; + case 20: + r0 = s.retval; + s.eventCode___10290 = (r0); + r0 = (s.eventCode___10290 == -1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = s.tmp_0; + { step = 10; continue; } + case 9: + r0 = (s.arg2 == s.eventCode___10290); + case 10: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; + { step = 15; continue; } + { step = 12; continue; } + case 11: + s.tmp_2 = microcode_RuleClosure_filterViaCompare__P6102_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 2014; s.pc = 21; return s.tmp_2; + case 21: + r0 = s.retval; + { step = 15; continue; } + case 12: + case 13: + case 14: + r0 = undefined; + case 15: + return leave(s, r0) + default: oops() } } } -rules_inline__P9830.info = {"start":21709,"length":99,"line":603,"column":68,"endLine":605,"endColumn":33,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["v"]} +microcode_RuleClosure_matchWhen__P6100.info = {"start":3327,"length":860,"line":108,"column":8,"endLine":129,"endColumn":9,"fileName":"interpreter.ts","functionName":"matchWhen","argumentNames":["this","tid","filter"]} -function rules_inline__P9830_mk(s) { +function microcode_RuleClosure_matchWhen__P6100_mk(s) { checkStack(s.depth); return { - parent: s, fn: rules_inline__P9830, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_matchWhen__P6100, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + sensor___10254: undefined, + eventCode___10290: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_Interpreter_setupEventQueue_inline__P9844(s) { +function microcode_RuleClosure_lookupEventCode__P6101(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16884,42 +17283,102 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.sensor___10303 = undefined; + s.evCode___10307 = undefined; + s.m___10312 = undefined; + s.unnamed60___U3 = undefined; + s.unnamed61___U4 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.caps[0]; - s.tmp_2 = helpers_arrayConcat__P2142_mk(s); - r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.arg0; - s.callLocIdx = 1788; s.pc = 1; return s.tmp_2; - case 1: + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + s.tmp_0 = microcode_RuleDefn_sensor__P4202_mk(s); + r0 = s.arg0.fields["rule"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 2015; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + s.sensor___10303 = (r0); + s.tmp_0 = microcode_defaultEventCode__P4435_mk(s); + s.tmp_0.arg0 = s.sensor___10303; + s.callLocIdx = 2016; s.pc = 9; return s.tmp_0; + case 9: r0 = s.retval; + s.evCode___10307 = (r0); + r0 = pxsim_numops_toBoolDecr(s.evCode___10307); + if (!r0) { step = 5; continue; } + s.m___10312 = (undefined); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["filters"]; + s.unnamed60___U3 = (r0); + s.unnamed61___U4 = (0); + case 1: + s.tmp_0 = r0 = s.unnamed61___U4; + r0 = pxsim_Array__length(s.unnamed60___U3); s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.unnamed60___U3, s.unnamed61___U4); + s.m___10312 = (r0); + s.tmp_4 = microcode_getKind__P4431_mk(s); + s.tmp_4.arg0 = s.m___10312; + s.callLocIdx = 2017; s.pc = 10; return s.tmp_4; + case 10: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_3 == 3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 2; continue; } + s.tmp_5 = microcode_getParam__P4433_mk(s); + s.tmp_5.arg0 = s.m___10312; + s.callLocIdx = 2018; s.pc = 11; return s.tmp_5; + case 11: + r0 = s.retval; + { step = 7; continue; } + case 2: + case 3: + r0 = (s.unnamed61___U4 + 1); + s.unnamed61___U4 = (r0); + { step = 1; continue; } + case 4: + s.unnamed60___U3 = (undefined); + r0 = s.evCode___10307; + { step = 7; continue; } + case 5: + case 6: r0 = undefined; + case 7: return leave(s, r0) default: oops() } } } -microcode_Interpreter_setupEventQueue_inline__P9844.info = {"start":21977,"length":104,"line":608,"column":46,"endLine":610,"endColumn":33,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["l"]} +microcode_RuleClosure_lookupEventCode__P6101.info = {"start":4197,"length":518,"line":131,"column":8,"endLine":144,"endColumn":9,"fileName":"interpreter.ts","functionName":"lookupEventCode","argumentNames":["this"]} -function microcode_Interpreter_setupEventQueue_inline__P9844_mk(s) { +function microcode_RuleClosure_lookupEventCode__P6101_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_setupEventQueue_inline__P9844, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_lookupEventCode__P6101, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + sensor___10303: undefined, + evCode___10307: undefined, + m___10312: undefined, + unnamed60___U3: undefined, + unnamed61___U4: undefined, arg0: undefined, } } - -function microcode_RuleClosure_releaseTimer__P5886(s) { +function microcode_defaultEventCode__P4435(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16929,32 +17388,80 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tid___10326 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = (s.arg0).fields["timerGoAhead"] = (true); + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1385; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + s.tid___10326 = (r0); + s.tmp_0 = r0 = s.tid___10326; + r0 = pxsim_pxtcore.switch_eq(18, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(16, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(26, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(30, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(18, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(27, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(13, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(11, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(12, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(17, s.tmp_0); + if (r0) { step = 10; continue; } + r0 = s.tmp_0; + { step = 11; continue; } + case 1: + r0 = 87; + { step = 12; continue; } + case 2: + case 3: + case 4: + case 5: + case 6: + r0 = 1; + { step = 12; continue; } + case 7: + case 8: + case 9: + case 10: + r0 = -1; + { step = 12; continue; } + case 11: r0 = undefined; + { step = 12; continue; } + r0 = undefined; + case 12: return leave(s, r0) default: oops() } } } -microcode_RuleClosure_releaseTimer__P5886.info = {"start":8549,"length":70,"line":240,"column":8,"endLine":242,"endColumn":9,"fileName":"interpreter.ts","functionName":"releaseTimer","argumentNames":["this"]} +microcode_defaultEventCode__P4435.info = {"start":32719,"length":743,"line":959,"column":4,"endLine":978,"endColumn":5,"fileName":"tiles.ts","functionName":"defaultEventCode","argumentNames":["tile"]} -function microcode_RuleClosure_releaseTimer__P5886_mk(s) { +function microcode_defaultEventCode__P4435_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_releaseTimer__P5886, depth: s.depth + 1, + parent: s, fn: microcode_defaultEventCode__P4435, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tid___10326: undefined, arg0: undefined, } } - -function microcode_Interpreter_processNewRules__P5916(s) { +function microcode_RuleClosure_filterViaCompare__P6102(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -16964,204 +17471,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.resourceWinner___9903 = undefined; - s.rc___9906 = undefined; - s.unnamed64___U2 = undefined; - s.unnamed65___U3 = undefined; - s.resource___9908 = undefined; - s.currentWinner___9912 = undefined; - s.liveIndices___9929 = undefined; - s.live___9941 = undefined; - s.dead___9955 = undefined; - s.instant___9991 = undefined; - s.switchPage___10017 = undefined; - s.sequence___10031 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = pxsim_Array__length(s.arg1); + if (!checkSubtype(r0, microcode_RuleClosure__C6095_VT)) failedCast(r0, microcode_RuleClosure__C6095_VT); + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["filters"]; s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); + r0 = pxsim_Array__length(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - { step = 11; continue; } - case 1: - case 2: - r0 = pxsim_pxtrt.mkMap(); - s.resourceWinner___9903 = (r0); - s.rc___9906 = (undefined); - s.unnamed64___U2 = (s.arg1); - s.unnamed65___U3 = (0); - case 3: - s.tmp_0 = r0 = s.unnamed65___U3; - r0 = pxsim_Array__length(s.unnamed64___U2); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 8; continue; } - r0 = pxsim_Array__getAt(s.unnamed64___U2, s.unnamed65___U3); - s.rc___9906 = (r0); - s.tmp_2 = microcode_RuleClosure_getOutputResource__P5887_mk(s); - s.tmp_2.arg0 = s.rc___9906; - s.callLocIdx = 1758; s.pc = 12; return s.tmp_2; - case 12: - r0 = s.retval; - s.resource___9908 = (r0); - r0 = pxsim_pxtrt.mapGetGeneric(s.resourceWinner___9903, s.resource___9908); - s.currentWinner___9912 = (r0); - r0 = (s.currentWinner___9912 === undefined); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = s.tmp_0; - { step = 5; continue; } - case 4: - r0 = s.rc___9906.fields["index"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 < s.currentWinner___9912); - case 5: - // jmp value (already in r0) + r0 = pxsim_Array__mk(); s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 6; continue; } - r0 = s.rc___9906.fields["index"]; + s.tmp_4 = microcode_RuleDefn_sensor__P4202_mk(s); + r0 = s.arg0.fields["rule"]; + s.tmp_4.arg0 = r0; + s.callLocIdx = 2019; s.pc = 4; return s.tmp_4; + case 4: + r0 = s.retval; s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.resourceWinner___9903, s.resource___9908, s.tmp_3); + r0 = pxsim_Array__push(s.tmp_2, s.tmp_3); + s.tmp_5 = microcode_Interpreter_getValue__P4766_mk(s); + r0 = s.arg0.fields["interp"]; + s.tmp_5.arg0 = r0; + s.tmp_6 = helpers_arrayConcat__P2142_mk(s); + s.tmp_6.arg0 = s.tmp_2; + r0 = s.arg0.fields["rule"]; + r0 = r0.fields["filters"]; + s.tmp_6.arg1 = r0; + s.callLocIdx = 2020; s.pc = 6; return s.tmp_6; case 6: - case 7: - r0 = (s.unnamed65___U3 + 1); - s.unnamed65___U3 = (r0); - { step = 3; continue; } - case 8: - s.unnamed64___U2 = (undefined); - r0 = pxsim_pxtcore_mkAction(1, liveIndices_inline__P9931); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.resourceWinner___9903); - s.tmp_1 = helpers_arrayMap__P2135_mk(s); - r0 = pxsim_pxtrt.keysOf(s.resourceWinner___9903); - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1760; s.pc = 13; return s.tmp_1; - case 13: - r0 = s.retval; - s.liveIndices___9929 = (r0); - r0 = pxsim_pxtcore_mkAction(1, live_inline__P9943); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.liveIndices___9929); - s.tmp_1 = helpers_arrayFilter__P2139_mk(s); - s.tmp_1.arg0 = s.arg1; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1762; s.pc = 14; return s.tmp_1; - case 14: - r0 = s.retval; - s.live___9941 = (r0); - r0 = pxsim_pxtcore_mkAction(2, dead_inline__P9957); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.live___9941); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.resourceWinner___9903); - s.tmp_1 = helpers_arrayFilter__P2139_mk(s); - r0 = s.arg0.fields["ruleClosures"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1765; s.pc = 15; return s.tmp_1; - case 15: - r0 = s.retval; - s.dead___9955 = (r0); - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - s.tmp_0.arg0 = s.dead___9955; - s.tmp_0.arg1 = microcode_Interpreter_processNewRules_inline__P9987; - s.callLocIdx = 1767; s.pc = 16; return s.tmp_0; - case 16: - r0 = s.retval; - s.tmp_0 = helpers_arrayFilter__P2139_mk(s); - s.tmp_0.arg0 = s.live___9941; - s.tmp_0.arg1 = instant_inline__P9993; - s.callLocIdx = 1769; s.pc = 17; return s.tmp_0; - case 17: - r0 = s.retval; - s.instant___9991 = (r0); - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - s.tmp_0.arg0 = s.instant___9991; - s.tmp_0.arg1 = microcode_Interpreter_processNewRules_inline__P10004; - s.callLocIdx = 1772; s.pc = 18; return s.tmp_0; - case 18: - r0 = s.retval; - s.tmp_0 = microcode_Interpreter_processNewState__P4610_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1773; s.pc = 19; return s.tmp_0; - case 19: - r0 = s.retval; - s.tmp_0 = helpers_arrayFind__P2140_mk(s); - s.tmp_0.arg0 = s.instant___9991; - s.tmp_0.arg1 = switchPage_inline__P10019; - s.callLocIdx = 1775; s.pc = 20; return s.tmp_0; - case 20: - r0 = s.retval; - s.switchPage___10017 = (r0); - r0 = pxsim_numops_toBoolDecr(s.switchPage___10017); - if (!r0) { step = 9; continue; } - s.tmp_0 = microcode_RuleClosure_runInstant__P5890_mk(s); - s.tmp_0.arg0 = s.switchPage___10017; - s.callLocIdx = 1776; s.pc = 21; return s.tmp_0; - case 21: - r0 = s.retval; - { step = 11; continue; } - case 9: - case 10: - s.tmp_0 = helpers_arrayFilter__P2139_mk(s); - s.tmp_0.arg0 = s.live___9941; - s.tmp_0.arg1 = sequence_inline__P10033; - s.callLocIdx = 1778; s.pc = 22; return s.tmp_0; - case 22: r0 = s.retval; - s.sequence___10031 = (r0); - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - s.tmp_0.arg0 = s.sequence___10031; - s.tmp_0.arg1 = microcode_Interpreter_processNewRules_inline__P10044; - s.callLocIdx = 1781; s.pc = 23; return s.tmp_0; - case 23: + s.tmp_5.arg1 = r0; + s.tmp_5.arg2 = 0; + s.callLocIdx = 2021; s.pc = 5; return s.tmp_5; + case 5: r0 = s.retval; - case 11: + { step = 3; continue; } + { step = 2; continue; } + case 1: + r0 = true; + { step = 3; continue; } + case 2: r0 = undefined; + case 3: return leave(s, r0) default: oops() } } } -microcode_Interpreter_processNewRules__P5916.info = {"start":18485,"length":2178,"line":523,"column":8,"endLine":580,"endColumn":9,"fileName":"interpreter.ts","functionName":"processNewRules","argumentNames":["this","newRules"]} +microcode_RuleClosure_filterViaCompare__P6102.info = {"start":4725,"length":359,"line":146,"column":8,"endLine":155,"endColumn":9,"fileName":"interpreter.ts","functionName":"filterViaCompare","argumentNames":["this"]} -function microcode_Interpreter_processNewRules__P5916_mk(s) { +function microcode_RuleClosure_filterViaCompare__P6102_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_processNewRules__P5916, depth: s.depth + 1, + parent: s, fn: microcode_RuleClosure_filterViaCompare__P6102, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - resourceWinner___9903: undefined, - rc___9906: undefined, - unnamed64___U2: undefined, - unnamed65___U3: undefined, - resource___9908: undefined, - currentWinner___9912: undefined, - liveIndices___9929: undefined, - live___9941: undefined, - dead___9955: undefined, - instant___9991: undefined, - switchPage___10017: undefined, - sequence___10031: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, arg0: undefined, - arg1: undefined, } } - -function liveIndices_inline__P9931(s) { +function helpers_arrayFilter__P2139(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17171,40 +17551,70 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.res___10365 = undefined; + s.len___10367 = undefined; + s.i___10370 = undefined; + s.v___10375 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.caps[0]; - s.tmp_2 = parseInt__P2126_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = undefined; - s.callLocIdx = 1759; s.pc = 1; return s.tmp_2; + r0 = pxsim_Array__mk(); + s.res___10365 = (r0); + r0 = pxsim_Array__length(s.arg0); + s.len___10367 = (r0); + s.i___10370 = (0); case 1: + r0 = (s.i___10370 < s.len___10367); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.arg0, s.i___10370); + s.v___10375 = (r0); + s.tmp_1 = lambda_3_mk(s); + s.tmp_1.argL = s.arg1; + s.tmp_1.arg0 = s.v___10375; + s.tmp_1.arg1 = s.i___10370; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 7; s.pc = 5; return s.tmp_1; + case 5: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = pxsim_Array__push(s.res___10365, s.v___10375); + case 2: + case 3: + r0 = (s.i___10370 + 1); + s.i___10370 = (r0); + { step = 1; continue; } + case 4: + r0 = s.res___10365; return leave(s, r0) default: oops() } } } -liveIndices_inline__P9931.info = {"start":19108,"length":32,"line":535,"column":16,"endLine":535,"endColumn":48,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["k"]} +helpers_arrayFilter__P2139.info = {"start":7695,"length":317,"line":261,"column":4,"endLine":269,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayFilter","argumentNames":["arr","callbackfn"]} -function liveIndices_inline__P9931_mk(s) { +function helpers_arrayFilter__P2139_mk(s) { checkStack(s.depth); return { - parent: s, fn: liveIndices_inline__P9931, depth: s.depth + 1, + parent: s, fn: helpers_arrayFilter__P2139, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, + res___10365: undefined, + len___10367: undefined, + i___10370: undefined, + v___10375: undefined, arg0: undefined, + arg1: undefined, } } - -function live_inline__P9943(s) { +function microcode_Interpreter_startSensors__P6146(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17218,35 +17628,31 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(1, live_inline__P9949); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_startSensors_inline__P10392); s.tmp_0 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arraySome__P2136_mk(s); - s.tmp_1.arg0 = s.caps[0]; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1761; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; + r0 = pxsim.control.inBackground(s.tmp_0); + r0 = undefined; return leave(s, r0) default: oops() } } } -live_inline__P9943.info = {"start":19196,"length":59,"line":537,"column":41,"endLine":538,"endColumn":53,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +microcode_Interpreter_startSensors__P6146.info = {"start":26025,"length":1252,"line":719,"column":8,"endLine":747,"endColumn":9,"fileName":"interpreter.ts","functionName":"startSensors","argumentNames":["this"]} -function live_inline__P9943_mk(s) { +function microcode_Interpreter_startSensors__P6146_mk(s) { checkStack(s.depth); return { - parent: s, fn: live_inline__P9943, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_startSensors__P6146, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } - -function live_inline__P9949(s) { +function microcode_Interpreter_startSensors_inline__P10392(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17256,32 +17662,50 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.caps[0].fields["index"]; + r0 = (s.caps[0]).fields["startSensorsActive"] = (true); + case 1: + r0 = s.caps[0].fields["running"]; s.tmp_0 = r0; - r0 = (s.arg0 === s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = pxsim_pxtcore_mkAction(1, microcode_Interpreter_startSensors_inline__P10400); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.caps[0]); + s.tmp_2 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2.arg0 = globals.sensorTids___6136; + s.tmp_2.arg1 = s.tmp_1; + s.callLocIdx = 2136; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + setupResume(s, 4); + pxsim.basic.pause(500); + checkResumeConsumed(); + return; + case 4: + r0 = s.retval; + { step = 1; continue; } + case 2: + r0 = (s.caps[0]).fields["startSensorsActive"] = (false); + r0 = undefined; return leave(s, r0) default: oops() } } } -live_inline__P9949.info = {"start":19235,"length":19,"line":538,"column":33,"endLine":538,"endColumn":52,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["i"]} +microcode_Interpreter_startSensors_inline__P10392.info = {"start":26083,"length":1183,"line":720,"column":33,"endLine":746,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":[]} -function live_inline__P9949_mk(s) { +function microcode_Interpreter_startSensors_inline__P10392_mk(s) { checkStack(s.depth); return { - parent: s, fn: live_inline__P9949, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_startSensors_inline__P10392, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, + tmp_1: undefined, + tmp_2: undefined, } } - -function dead_inline__P9957(s) { +function microcode_Interpreter_startSensors_inline__P10400(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17291,69 +17715,121 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.resource___9962 = undefined; - s.res___9966 = undefined; + s.oldReading___10403 = undefined; + s.newReading___10408 = undefined; + s.delta___10412 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleClosure_getOutputResource__P5887_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1763; s.pc = 5; return s.tmp_0; - case 5: + r0 = s.caps[0].fields["sensors"]; + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg0); + s.oldReading___10403 = (r0); + s.tmp_0 = microcode_Interpreter_getSensorValue__P6145_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 2133; s.pc = 11; return s.tmp_0; + case 11: r0 = s.retval; - s.resource___9962 = (r0); - r0 = pxsim_Array_.indexOf(s.caps[0], s.arg0, undefined); - s.tmp_1 = r0; - r0 = (s.tmp_1 === -1); + s.newReading___10408 = (r0); + s.tmp_0 = Math_abs__P2157_mk(s); + r0 = (s.newReading___10408 - s.oldReading___10403); + s.tmp_0.arg0 = r0; + s.callLocIdx = 2134; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.delta___10412 = (r0); + r0 = (s.oldReading___10403 === undefined); s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } + if (!r0) { step = 1; continue; } r0 = s.tmp_0; - { step = 2; continue; } + { step = 4; continue; } case 1: - r0 = s.arg0.fields["actionRunning"]; + s.tmp_1 = r0 = globals.microcodeClassic___4785; + r0 = pxsim_numops_toBool(s.tmp_1); + if (r0) { step = 2; continue; } + r0 = s.tmp_1; + { step = 3; continue; } case 2: + r0 = (s.newReading___10408 != s.oldReading___10403); + case 3: // jmp value (already in r0) s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 3; continue; } r0 = s.tmp_2; - { step = 4; continue; } - case 3: - r0 = pxsim_pxtrt.mapGetGeneric(s.caps[1], s.resource___9962); - s.tmp_3 = r0; - r0 = (s.tmp_3 != undefined); case 4: // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (!r0) { step = 5; continue; } + r0 = s.tmp_3; + { step = 6; continue; } + case 5: + r0 = pxsim_numops_toBoolDecr(globals.microcodeClassic___4785); s.tmp_4 = r0; - s.res___9966 = (s.tmp_4); - r0 = s.res___9966; + r0 = pxsim_Boolean__bang(s.tmp_4); + case 6: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 9; continue; } + setupResume(s, 13); + pxsim.basic.pause(1); + checkResumeConsumed(); + return; + case 13: + r0 = s.retval; + r0 = (s.newReading___10408 > s.oldReading___10403); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + r0 = 1; + { step = 8; continue; } + case 7: + r0 = 2; + case 8: + // jmp value (already in r0) + s.tmp_1 = r0; + s.tmp_2 = microcode_Interpreter_onSensorEvent__P4763_mk(s); + s.tmp_2.arg0 = s.caps[0]; + s.tmp_2.arg1 = s.arg0; + s.tmp_2.arg2 = s.newReading___10408; + s.tmp_2.arg3 = s.tmp_1; + s.callLocIdx = 2135; s.pc = 14; return s.tmp_2; + case 14: + r0 = s.retval; + case 9: + case 10: + r0 = undefined; return leave(s, r0) default: oops() } } } -dead_inline__P9957.info = {"start":19320,"length":272,"line":540,"column":50,"endLine":547,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +microcode_Interpreter_startSensors_inline__P10400.info = {"start":26277,"length":871,"line":724,"column":39,"endLine":742,"endColumn":21,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["tid","index"]} -function dead_inline__P9957_mk(s) { +function microcode_Interpreter_startSensors_inline__P10400_mk(s) { checkStack(s.depth); return { - parent: s, fn: dead_inline__P9957, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_startSensors_inline__P10400, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - resource___9962: undefined, - res___9966: undefined, + tmp_5: undefined, + oldReading___10403: undefined, + newReading___10408: undefined, + delta___10412: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Interpreter_processNewRules_inline__P9987(s) { +function Math_abs__P2157(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17367,31 +17843,37 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleClosure_kill__P5880_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1766; s.pc = 1; return s.tmp_0; + r0 = (s.arg0 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = (0 - s.arg0); + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = s.arg0; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_Interpreter_processNewRules_inline__P9987.info = {"start":19619,"length":15,"line":548,"column":25,"endLine":548,"endColumn":40,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +Math_abs__P2157.info = {"start":16120,"length":77,"line":539,"column":4,"endLine":541,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"abs","argumentNames":["x"]} -function microcode_Interpreter_processNewRules_inline__P9987_mk(s) { +function Math_abs__P2157_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_processNewRules_inline__P9987, depth: s.depth + 1, + parent: s, fn: Math_abs__P2157, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function instant_inline__P9993(s) { +function microcode_Interpreter_getSensorValue__P6145(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17401,37 +17883,85 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.gen1to5___10452 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_1 = microcode_RuleClosure_getActionKind__P5888_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1768; s.pc = 1; return s.tmp_1; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + s.gen1to5___10452 = (gen1to5_inline__P10453); + r0 = pxsim_numops_toBoolDecr(globals.microcodeClassic___4785); + if (!r0) { step = 1; continue; } + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.gen1to5___10452; + s.tmp_1 = if_getSensorValue_3_mk(s); + r0 = s.arg0.fields["host"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.arg1; + s.tmp_1.arg2 = true; + if (!s.tmp_1.arg0.vtable.iface) { + setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "getSensorValue"), 3); + s.callLocIdx = 2130; s.pc = 4; return s.tmp_1; + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["getSensorValue"]; + if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["getSensorValue"], 3); s.callLocIdx = 2130; s.pc = 4; return s.tmp_1; } + else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 2130; s.pc = 4; return s.tmp_1;; } + else { s.callLocIdx = 2130; s.pc = 4; return s.tmp_1; } + } + case 4: + r0 = s.retval; + s.tmp_0.arg0 = r0; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 2131; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + { step = 2; continue; } case 1: + s.tmp_2 = if_getSensorValue_3_mk(s); + r0 = s.arg0.fields["host"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.arg1; + s.tmp_2.arg2 = false; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "getSensorValue"), 3); + s.callLocIdx = 2132; s.pc = 5; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["getSensorValue"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["getSensorValue"], 3); s.callLocIdx = 2132; s.pc = 5; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 2132; s.pc = 5; return s.tmp_2;; } + else { s.callLocIdx = 2132; s.pc = 5; return s.tmp_2; } + } + case 5: r0 = s.retval; - s.tmp_0 = r0; - r0 = (s.tmp_0 === 0); + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -instant_inline__P9993.info = {"start":19754,"length":47,"line":552,"column":16,"endLine":552,"endColumn":63,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +microcode_Interpreter_getSensorValue__P6145.info = {"start":25645,"length":274,"line":710,"column":8,"endLine":715,"endColumn":9,"fileName":"interpreter.ts","functionName":"getSensorValue","argumentNames":["this","tid"]} -function instant_inline__P9993_mk(s) { +function microcode_Interpreter_getSensorValue__P6145_mk(s) { checkStack(s.depth); return { - parent: s, fn: instant_inline__P9993, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_getSensorValue__P6145, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + gen1to5___10452: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Interpreter_processNewRules_inline__P10004(s) { +function gen1to5_inline__P10453(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17441,50 +17971,34 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.resource___10006 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleClosure_getOutputResource__P5887_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1770; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.resource___10006 = (r0); - r0 = (s.resource___10006 != 1003); + r0 = (4 * s.arg0); + s.tmp_1 = r0; + r0 = pxsim.Math_.round(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_RuleClosure_runInstant__P5890_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1771; s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - case 1: - case 2: - r0 = undefined; + r0 = (s.tmp_0 + 1); return leave(s, r0) default: oops() } } } -microcode_Interpreter_processNewRules_inline__P10004.info = {"start":19920,"length":193,"line":556,"column":28,"endLine":561,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +gen1to5_inline__P10453.info = {"start":25719,"length":36,"line":711,"column":28,"endLine":711,"endColumn":64,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["v"]} -function microcode_Interpreter_processNewRules_inline__P10004_mk(s) { +function gen1to5_inline__P10453_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_processNewRules_inline__P10004, depth: s.depth + 1, + parent: s, fn: gen1to5_inline__P10453, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - resource___10006: undefined, arg0: undefined, } } - -function switchPage_inline__P10019(s) { +function microcode_Interpreter_onSensorEvent__P4763(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17496,35 +18010,50 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.lambdaArgs = null; } - s.tmp_1 = microcode_RuleClosure_getOutputResource__P5887_mk(s); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = s.arg0.fields["sensors"]; + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_0, s.arg1, s.arg2); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "sensor", s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "filter", s.arg3); + s.tmp_1 = microcode_Interpreter_addEvent__P4762_mk(s); s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1774; s.pc = 1; return s.tmp_1; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 2129; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - s.tmp_0 = r0; - r0 = (s.tmp_0 == 1003); + r0 = undefined; return leave(s, r0) default: oops() } } } -switchPage_inline__P10019.info = {"start":20212,"length":58,"line":565,"column":16,"endLine":565,"endColumn":74,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +microcode_Interpreter_onSensorEvent__P4763.info = {"start":25334,"length":301,"line":701,"column":8,"endLine":708,"endColumn":9,"fileName":"interpreter.ts","functionName":"onSensorEvent","argumentNames":["this","tid","newVal","filter"]} -function switchPage_inline__P10019_mk(s) { +function microcode_Interpreter_onSensorEvent__P4763_mk(s) { checkStack(s.depth); return { - parent: s, fn: switchPage_inline__P10019, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_onSensorEvent__P4763, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function sequence_inline__P10033(s) { +function microcode_Interpreter_stop__P4764(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17538,22 +18067,60 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_1 = microcode_RuleClosure_getActionKind__P5888_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1777; s.pc = 1; return s.tmp_1; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Interpreter__C4754_VT)) failedCast(r0, microcode_Interpreter__C4754_VT); + r0 = (s.arg0).fields["running"] = (false); case 1: - r0 = s.retval; + r0 = s.arg0.fields["startSensorsActive"]; s.tmp_0 = r0; - r0 = (s.tmp_0 === 1); + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + r0 = s.arg0.fields["eventQueueActive"]; + case 3: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + setupResume(s, 5); + pxsim.basic.pause(1); + checkResumeConsumed(); + return; + case 5: + r0 = s.retval; + { step = 1; continue; } + case 4: + s.tmp_0 = microcode_Interpreter_stopAllRules__P6140_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 2137; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = if_stopOngoingActions_1_mk(s); + r0 = s.arg0.fields["host"]; + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "stopOngoingActions"), 1); + s.callLocIdx = 2138; s.pc = 7; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["stopOngoingActions"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["stopOngoingActions"], 1); s.callLocIdx = 2138; s.pc = 7; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 2138; s.pc = 7; return s.tmp_0;; } + else { s.callLocIdx = 2138; s.pc = 7; return s.tmp_0; } + } + case 7: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -sequence_inline__P10033.info = {"start":20485,"length":48,"line":573,"column":16,"endLine":573,"endColumn":64,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +microcode_Interpreter_stop__P4764.info = {"start":27287,"length":275,"line":749,"column":8,"endLine":757,"endColumn":9,"fileName":"interpreter.ts","functionName":"stop","argumentNames":["this"]} -function sequence_inline__P10033_mk(s) { +function microcode_Interpreter_stop__P4764_mk(s) { checkStack(s.depth); return { - parent: s, fn: sequence_inline__P10033, depth: s.depth + 1, + parent: s, fn: microcode_Interpreter_stop__P4764, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -17563,8 +18130,7 @@ function sequence_inline__P10033_mk(s) { - -function microcode_Interpreter_processNewRules_inline__P10044(s) { +function microcode_BufferReader_constructor__P4628(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17576,39 +18142,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleClosure_kill__P5880_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1779; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.tmp_0 = microcode_RuleClosure_start__P5879_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = false; - s.callLocIdx = 1780; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_BufferReader__C4627_VT)) failedCast(r0, microcode_BufferReader__C4627_VT); + r0 = (s.arg0).fields["buf"] = (s.arg1); + r0 = (s.arg0).fields["ptr"] = (s.arg2); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Interpreter_processNewRules_inline__P10044.info = {"start":20578,"length":74,"line":576,"column":29,"endLine":579,"endColumn":13,"fileName":"interpreter.ts","functionName":"inline","argumentNames":["rc"]} +microcode_BufferReader_constructor__P4628.info = {"start":1260,"length":60,"line":47,"column":8,"endLine":47,"endColumn":68,"fileName":"utils.ts","functionName":"inline","argumentNames":["this","buf","ptr"]} -function microcode_Interpreter_processNewRules_inline__P10044_mk(s) { +function microcode_BufferReader_constructor__P4628_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_processNewRules_inline__P10044, depth: s.depth + 1, + parent: s, fn: microcode_BufferReader_constructor__P4628, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function helpers_arrayFind__P2140(s) { +function microcode_ProgramDefn_fromBuffer__P4225(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17618,134 +18179,151 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___10052 = undefined; - s.i___10055 = undefined; - s.v___10060 = undefined; + s.defn___10504 = undefined; + s.magic___10513 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__length(s.arg0); - s.len___10052 = (r0); - s.i___10055 = (0); - case 1: - r0 = (s.i___10055 < s.len___10052); + r0 = pxsim_pxtcore_mkClassInstance(microcode_ProgramDefn__C4220_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.arg0, s.i___10055); - s.v___10060 = (r0); - s.tmp_1 = lambda_3_mk(s); - s.tmp_1.argL = s.arg1; - s.tmp_1.arg0 = s.v___10060; - s.tmp_1.arg1 = s.i___10055; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 8; s.pc = 6; return s.tmp_1; + s.tmp_1 = microcode_ProgramDefn_constructor__P4222_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1276; s.pc = 6; return s.tmp_1; case 6: r0 = s.retval; + s.defn___10504 = (s.tmp_0); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1278; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + s.tmp_0 = microcode_BufferReader_readBuffer__P4633_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = 4; + s.callLocIdx = 1279; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + s.magic___10513 = (r0); + r0 = pxsim.BufferMethods.getNumber(s.magic___10513, 11, 0); + s.tmp_1 = r0; + r0 = (s.tmp_1 != 1049819173); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = s.v___10060; + if (!r0) { step = 1; continue; } + s.tmp_2 = console_log__P2528_mk(s); + s.tmp_2.arg0 = "bad magic"; + s.callLocIdx = 1280; s.pc = 9; return s.tmp_2; + case 9: + r0 = s.retval; + r0 = s.defn___10504; { step = 5; continue; } + case 1: case 2: + s.tmp_0 = r0 = s.defn___10504; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["pages"] = (s.tmp_1); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1282; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; case 3: - r0 = (s.i___10055 + 1); - s.i___10055 = (r0); - { step = 1; continue; } - case 4: - r0 = undefined; - case 5: - return leave(s, r0) - default: oops() -} } } -helpers_arrayFind__P2140.info = {"start":8018,"length":292,"line":271,"column":4,"endLine":278,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayFind","argumentNames":["arr","callbackfn"]} - -function helpers_arrayFind__P2140_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: helpers_arrayFind__P2140, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - len___10052: undefined, - i___10055: undefined, - v___10060: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function microcode_RuleClosure_runInstant__P5890(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.actuator___10072 = undefined; - s.param___10077 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["actuators"]; + s.tmp_2 = microcode_BufferReader_peekByte__P4631_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1283; s.pc = 11; return s.tmp_2; + case 11: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != 0); s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, 0); - s.actuator___10072 = (r0); - s.tmp_0 = microcode_RuleClosure_getParamInstant__P5889_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1724; s.pc = 1; return s.tmp_0; - case 1: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = s.defn___10504.fields["pages"]; + s.tmp_3 = r0; + s.tmp_5 = microcode_PageDefn_fromBuffer__P4218_mk(s); + s.tmp_5.arg0 = s.arg0; + s.callLocIdx = 1284; s.pc = 12; return s.tmp_5; + case 12: r0 = s.retval; - s.param___10077 = (r0); - s.tmp_0 = microcode_Interpreter_runAction__P4609_mk(s); - r0 = s.arg0.fields["interp"]; + s.tmp_4 = r0; + r0 = pxsim_Array__push(s.tmp_3, s.tmp_4); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.actuator___10072; - s.tmp_0.arg3 = s.param___10077; - s.callLocIdx = 1725; s.pc = 2; return s.tmp_0; - case 2: + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1286; s.pc = 13; return s.tmp_0; + case 13: r0 = s.retval; - s.tmp_0 = microcode_RuleClosure_kill__P5880_mk(s); + { step = 3; continue; } + case 4: + s.tmp_0 = microcode_BufferReader_readByte__P4632_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1726; s.pc = 3; return s.tmp_0; - case 3: + s.callLocIdx = 1287; s.pc = 14; return s.tmp_0; + case 14: r0 = s.retval; - r0 = undefined; + r0 = s.defn___10504; + case 5: return leave(s, r0) default: oops() } } } -microcode_RuleClosure_runInstant__P5890.info = {"start":10019,"length":219,"line":280,"column":8,"endLine":285,"endColumn":9,"fileName":"interpreter.ts","functionName":"runInstant","argumentNames":["this"]} +microcode_ProgramDefn_fromBuffer__P4225.info = {"start":11887,"length":596,"line":364,"column":8,"endLine":380,"endColumn":9,"fileName":"language.ts","functionName":"fromBuffer","argumentNames":["br"]} -function microcode_RuleClosure_runInstant__P5890_mk(s) { +function microcode_ProgramDefn_fromBuffer__P4225_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_runInstant__P5890, depth: s.depth + 1, + parent: s, fn: microcode_ProgramDefn_fromBuffer__P4225, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - actuator___10072: undefined, - param___10077: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + defn___10504: undefined, + magic___10513: undefined, arg0: undefined, } } - -function microcode_RuleClosure_active__P5878(s) { +function microcode_BufferReader_readByte__P4632(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17760,26 +18338,50 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["actionRunning"]; + if (!checkSubtype(r0, microcode_BufferReader__C4627_VT)) failedCast(r0, microcode_BufferReader__C4627_VT); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1943; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + r0 = s.arg0.fields["buf"]; + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_3, s.tmp_2); return leave(s, r0) default: oops() } } } -microcode_RuleClosure_active__P5878.info = {"start":2564,"length":65,"line":82,"column":8,"endLine":84,"endColumn":9,"fileName":"interpreter.ts","functionName":"active","argumentNames":["this"]} +microcode_BufferReader_readByte__P4632.info = {"start":1604,"length":116,"line":62,"column":8,"endLine":65,"endColumn":9,"fileName":"utils.ts","functionName":"readByte","argumentNames":["this"]} -function microcode_RuleClosure_active__P5878_mk(s) { +function microcode_BufferReader_readByte__P4632_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_active__P5878, depth: s.depth + 1, + parent: s, fn: microcode_BufferReader_readByte__P4632, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function helpers_arraySome__P2136(s) { +function microcode_PageDefn_fromBuffer__P4218(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17789,67 +18391,105 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___10093 = undefined; - s.i___10096 = undefined; + s.defn___10571 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__length(s.arg0); - s.len___10093 = (r0); - s.i___10096 = (0); + r0 = pxsim_pxtcore_mkClassInstance(microcode_PageDefn__C4211_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_PageDefn_constructor__P4213_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1259; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.defn___10571 = (s.tmp_0); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1261; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; case 1: - r0 = (s.i___10096 < s.len___10093); + s.tmp_2 = microcode_BufferReader_peekByte__P4631_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1262; s.pc = 5; return s.tmp_2; + case 5: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != 1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_2 = lambda_3_mk(s); - s.tmp_2.argL = s.arg1; - r0 = pxsim_Array__getAt(s.arg0, s.i___10096); - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.i___10096; - setupLambda(s.tmp_2, s.tmp_2.argL); - s.callLocIdx = 5; s.pc = 6; return s.tmp_2; + if (!r0) { step = 2; continue; } + r0 = s.defn___10571.fields["rules"]; + s.tmp_3 = r0; + s.tmp_5 = microcode_RuleDefn_fromBuffer__P4210_mk(s); + s.tmp_5.arg0 = s.arg0; + s.callLocIdx = 1263; s.pc = 6; return s.tmp_5; case 6: r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_Array__push(s.tmp_3, s.tmp_4); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 2; continue; } - r0 = true; - { step = 5; continue; } - case 2: - case 3: - r0 = (s.i___10096 + 1); - s.i___10096 = (r0); + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1265; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; { step = 1; continue; } - case 4: - r0 = false; - case 5: + case 2: + s.tmp_0 = microcode_BufferReader_readByte__P4632_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1266; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + r0 = s.defn___10571; return leave(s, r0) default: oops() } } } -helpers_arraySome__P2136.info = {"start":6833,"length":296,"line":238,"column":4,"endLine":244,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arraySome","argumentNames":["arr","callbackfn"]} +microcode_PageDefn_fromBuffer__P4218.info = {"start":10694,"length":334,"line":321,"column":8,"endLine":330,"endColumn":9,"fileName":"language.ts","functionName":"fromBuffer","argumentNames":["br"]} -function helpers_arraySome__P2136_mk(s) { +function microcode_PageDefn_fromBuffer__P4218_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arraySome__P2136, depth: s.depth + 1, + parent: s, fn: microcode_PageDefn_fromBuffer__P4218, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - len___10093: undefined, - i___10096: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + defn___10571: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_RuleClosure_getOutputResource__P5887(s) { +function microcode_RuleDefn_fromBuffer__P4210(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17859,58 +18499,281 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.defn___10602 = undefined; + s.handleFieldEditor___10605 = undefined; + s.sensorEnum___10661 = undefined; + s.actuatorEnum___10710 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["actuators"]; + r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleDefn__C4196_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_RuleDefn_constructor__P4201_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1220; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.defn___10602 = (s.tmp_0); + r0 = pxsim_pxtcore_mkAction(2, handleFieldEditor_inline__P10606); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.defn___10602); + s.handleFieldEditor___10605 = (s.tmp_0); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1228; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + s.tmp_0 = microcode_BufferReader_readByte__P4632_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1229; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + s.sensorEnum___10661 = (r0); + s.tmp_0 = microcode_assert__P4620_mk(s); + s.tmp_1 = microcode_isSensor__P4409_mk(s); + s.tmp_1.arg0 = s.sensorEnum___10661; + s.callLocIdx = 1230; s.pc = 12; return s.tmp_1; + case 12: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1231; s.pc = 11; return s.tmp_0; + case 11: + r0 = s.retval; + r0 = s.defn___10602.fields["sensors"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = undefined; - { step = 3; continue; } + r0 = pxsim_Array__push(s.tmp_0, s.sensorEnum___10661); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1233; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; case 1: + s.tmp_1 = microcode_isFilter__P4410_mk(s); + s.tmp_2 = microcode_BufferReader_peekByte__P4631_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1234; s.pc = 15; return s.tmp_2; + case 15: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1235; s.pc = 14; return s.tmp_1; + case 14: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_3 = lambda_2_mk(s); + s.tmp_3.argL = s.handleFieldEditor___10605; + s.tmp_3.arg0 = "filters"; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 1236; s.pc = 16; return s.tmp_3; + case 16: + r0 = s.retval; + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1238; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + { step = 1; continue; } case 2: - s.tmp_3 = microcode_getOutputResource__P5875_mk(s); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["actuators"]; + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, 0); + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1240; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + s.tmp_3 = microcode_isActuator__P4411_mk(s); + s.tmp_4 = microcode_BufferReader_peekByte__P4631_mk(s); + s.tmp_4.arg0 = s.arg0; + s.callLocIdx = 1241; s.pc = 20; return s.tmp_4; + case 20: + r0 = s.retval; s.tmp_3.arg0 = r0; - s.callLocIdx = 1718; s.pc = 4; return s.tmp_3; - case 4: + s.callLocIdx = 1242; s.pc = 19; return s.tmp_3; + case 19: r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = s.defn___10602; + { step = 7; continue; } case 3: + case 4: + s.tmp_5 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_8 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_10 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_10); + s.tmp_9 = r0; + r0 = (s.tmp_8 >= s.tmp_9); + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + s.tmp_6 = r0; + r0 = pxsim_Boolean__bang(s.tmp_6); + s.tmp_5.arg0 = r0; + s.tmp_5.arg1 = undefined; + s.callLocIdx = 1244; s.pc = 21; return s.tmp_5; + case 21: + r0 = s.retval; + s.tmp_0 = microcode_BufferReader_readByte__P4632_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1245; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + s.actuatorEnum___10710 = (r0); + r0 = s.defn___10602.fields["actuators"]; + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.actuatorEnum___10710); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1247; s.pc = 23; return s.tmp_0; + case 23: + r0 = s.retval; + case 5: + s.tmp_1 = microcode_isModifier__P4412_mk(s); + s.tmp_2 = microcode_BufferReader_peekByte__P4631_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1248; s.pc = 25; return s.tmp_2; + case 25: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1249; s.pc = 24; return s.tmp_1; + case 24: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_3 = lambda_2_mk(s); + s.tmp_3.argL = s.handleFieldEditor___10605; + s.tmp_3.arg0 = "modifiers"; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 1250; s.pc = 26; return s.tmp_3; + case 26: + r0 = s.retval; + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 >= s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1252; s.pc = 27; return s.tmp_0; + case 27: + r0 = s.retval; + { step = 5; continue; } + case 6: + s.tmp_0 = microcode_RuleDefn_fixup__P4205_mk(s); + s.tmp_0.arg0 = s.defn___10602; + s.callLocIdx = 1253; s.pc = 28; return s.tmp_0; + case 28: + r0 = s.retval; + r0 = s.defn___10602; + case 7: return leave(s, r0) default: oops() } } } -microcode_RuleClosure_getOutputResource__P5887.info = {"start":8686,"length":165,"line":245,"column":8,"endLine":248,"endColumn":9,"fileName":"interpreter.ts","functionName":"getOutputResource","argumentNames":["this"]} +microcode_RuleDefn_fromBuffer__P4210.info = {"start":7804,"length":1767,"line":235,"column":8,"endLine":279,"endColumn":9,"fileName":"language.ts","functionName":"fromBuffer","argumentNames":["br"]} -function microcode_RuleClosure_getOutputResource__P5887_mk(s) { +function microcode_RuleDefn_fromBuffer__P4210_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_getOutputResource__P5887, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_fromBuffer__P4210, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + defn___10602: undefined, + handleFieldEditor___10605: undefined, + sensorEnum___10661: undefined, + actuatorEnum___10710: undefined, arg0: undefined, } } - -function microcode_getOutputResource__P5875(s) { +function handleFieldEditor_inline__P10606(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -17920,158 +18783,122 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.by___10608 = undefined; + s.tile___10629 = undefined; + s.field___10636 = undefined; + s.newOne___10642 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(51, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(48, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(49, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(50, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(46, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(40, s.tmp_0); - if (r0) { step = 9; continue; } - r0 = s.tmp_0; - { step = 10; continue; } + s.tmp_0 = microcode_BufferReader_readByte__P4632_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1221; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + s.by___10608 = (r0); + s.tmp_1 = microcode_isOldModifierCoin__P4416_mk(s); + s.tmp_1.arg0 = s.by___10608; + s.callLocIdx = 1222; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = (s.by___10608 - 155); + s.tmp_2 = r0; + r0 = (78 + s.tmp_2); + s.by___10608 = (r0); case 1: case 2: - r0 = 1000; - { step = 11; continue; } + s.tmp_1 = microcode_isOldModifierVar__P4417_mk(s); + s.tmp_1.arg0 = s.by___10608; + s.callLocIdx = 1223; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = (s.by___10608 - 173); + s.tmp_2 = r0; + r0 = (95 + s.tmp_2); + s.by___10608 = (r0); case 3: case 4: + s.tmp_0 = microcode_getEditor__P4598_mk(s); + s.tmp_0.arg0 = s.by___10608; + s.callLocIdx = 1224; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + s.tile___10629 = (r0); + r0 = s.tile___10629; + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_1 = microcode_FieldEditor__C5998_v5_2_mk(s); + r0 = s.tile___10629.fields["fieldEditor"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.caps[0]; + if (!checkSubtype(s.tmp_1.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_1.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.fromBuffer; + s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + s.field___10636 = (r0); + s.tmp_0 = microcode_ModifierEditor__C4543_v2_2_mk(s); + s.tmp_0.arg0 = s.tile___10629; + s.tmp_0.arg1 = s.field___10636; + if (!checkSubtype(s.tmp_0.arg0, microcode_ModifierEditor__C4543_VT)) failedCast(s.tmp_0.arg0, microcode_ModifierEditor__C4543_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getNewInstance; + s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.newOne___10642 = (r0); + s.tmp_0 = microcode_RuleDefn_push__P4206_mk(s); + s.tmp_0.arg0 = s.caps[1]; + s.tmp_0.arg1 = s.newOne___10642; + s.tmp_0.arg2 = s.arg0; + s.tmp_0.arg3 = false; + s.callLocIdx = 1225; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + { step = 6; continue; } case 5: - r0 = s.arg0; - { step = 11; continue; } + s.tmp_0 = microcode_RuleDefn_push__P4206_mk(s); + s.tmp_0.arg0 = s.caps[1]; + s.tmp_0.arg1 = s.by___10608; + s.tmp_0.arg2 = s.arg0; + s.tmp_0.arg3 = false; + s.callLocIdx = 1226; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; case 6: - r0 = 1002; - { step = 11; continue; } - case 7: - case 8: - r0 = 1001; - { step = 11; continue; } - case 9: - r0 = 1003; - { step = 11; continue; } - case 10: r0 = undefined; - case 11: - return leave(s, r0) - default: oops() -} } } -microcode_getOutputResource__P5875.info = {"start":1039,"length":745,"line":34,"column":4,"endLine":52,"endColumn":5,"fileName":"interpreter.ts","functionName":"getOutputResource","argumentNames":["action"]} - -function microcode_getOutputResource__P5875_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_getOutputResource__P5875, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - arg0: undefined, -} } - - - - - -function helpers_arrayConcat__P2142(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.out___10142 = undefined; - s.value___10145 = undefined; - s.unnamed34___U2 = undefined; - s.unnamed35___U3 = undefined; - s.value___10152 = undefined; - s.unnamed36___U5 = undefined; - s.unnamed37___U6 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = pxsim_Array__mk(); - s.out___10142 = (r0); - s.value___10145 = (undefined); - s.unnamed34___U2 = (s.arg0); - s.unnamed35___U3 = (0); - case 1: - s.tmp_0 = r0 = s.unnamed35___U3; - r0 = pxsim_Array__length(s.unnamed34___U2); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 2; continue; } - r0 = pxsim_Array__getAt(s.unnamed34___U2, s.unnamed35___U3); - s.value___10145 = (r0); - r0 = pxsim_Array__push(s.out___10142, s.value___10145); - r0 = (s.unnamed35___U3 + 1); - s.unnamed35___U3 = (r0); - { step = 1; continue; } - case 2: - s.unnamed34___U2 = (undefined); - s.value___10152 = (undefined); - s.unnamed36___U5 = (s.arg1); - s.unnamed37___U6 = (0); - case 3: - s.tmp_0 = r0 = s.unnamed37___U6; - r0 = pxsim_Array__length(s.unnamed36___U5); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.unnamed36___U5, s.unnamed37___U6); - s.value___10152 = (r0); - r0 = pxsim_Array__push(s.out___10142, s.value___10152); - r0 = (s.unnamed37___U6 + 1); - s.unnamed37___U6 = (r0); - { step = 3; continue; } - case 4: - s.unnamed36___U5 = (undefined); - r0 = s.out___10142; return leave(s, r0) default: oops() } } } -helpers_arrayConcat__P2142.info = {"start":8639,"length":264,"line":288,"column":4,"endLine":297,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayConcat","argumentNames":["arr","otherArr"]} +handleFieldEditor_inline__P10606.info = {"start":7927,"length":790,"line":237,"column":38,"endLine":254,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["which"]} -function helpers_arrayConcat__P2142_mk(s) { +function handleFieldEditor_inline__P10606_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arrayConcat__P2142, depth: s.depth + 1, + parent: s, fn: handleFieldEditor_inline__P10606, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - out___10142: undefined, - value___10145: undefined, - unnamed34___U2: undefined, - unnamed35___U3: undefined, - value___10152: undefined, - unnamed36___U5: undefined, - unnamed37___U6: undefined, + tmp_2: undefined, + by___10608: undefined, + tile___10629: undefined, + field___10636: undefined, + newOne___10642: undefined, arg0: undefined, - arg1: undefined, } } - -function helpers_arrayMap__P2135(s) { +function microcode_RuleDefn_fixup__P4205(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18081,67 +18908,117 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.res___10161 = undefined; - s.len___10163 = undefined; - s.i___10166 = undefined; + s.tile___10744 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__mk(); - s.res___10161 = (r0); - r0 = pxsim_Array__length(s.arg0); - s.len___10163 = (r0); - s.i___10166 = (0); - case 1: - r0 = (s.i___10166 < s.len___10163); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + r0 = s.arg0.fields["filters"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = r0 = s.res___10161; - s.tmp_3 = lambda_3_mk(s); - s.tmp_3.argL = s.arg1; - r0 = pxsim_Array__getAt(s.arg0, s.i___10166); + if (!r0) { step = 7; continue; } + r0 = s.arg0.fields["filters"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, 0); + s.tile___10744 = (r0); + s.tmp_3 = microcode_isComparisonOperator__P4414_mk(s); + s.tmp_4 = microcode_getTid__P4194_mk(s); + s.tmp_4.arg0 = s.tile___10744; + s.callLocIdx = 1184; s.pc = 10; return s.tmp_4; + case 10: + r0 = s.retval; s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.i___10166; - setupLambda(s.tmp_3, s.tmp_3.argL); - s.callLocIdx = 4; s.pc = 3; return s.tmp_3; - case 3: + s.callLocIdx = 1185; s.pc = 9; return s.tmp_3; + case 9: r0 = s.retval; s.tmp_2 = r0; - r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); - r0 = (s.i___10166 + 1); - s.i___10166 = (r0); - { step = 1; continue; } + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_5 = microcode_RuleDefn_supportsMath__P5899_mk(s); + s.tmp_5.arg0 = s.arg0; + s.tmp_5.arg1 = s.tile___10744; + s.callLocIdx = 1186; s.pc = 11; return s.tmp_5; + case 11: + r0 = s.retval; case 2: - r0 = s.res___10161; + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 3; continue; } + r0 = s.arg0.fields["filters"]; + s.tmp_7 = r0; + r0 = pxsim_Array_.insertAt(s.tmp_7, 0, 220); + { step = 6; continue; } + case 3: + s.tmp_1 = microcode_isComparisonOperator__P4414_mk(s); + s.tmp_1.arg0 = s.tile___10744; + s.callLocIdx = 1187; s.pc = 12; return s.tmp_1; + case 12: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_2 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["filters"] = (s.tmp_3); + case 4: + case 5: + case 6: + case 7: + case 8: + s.tmp_0 = microcode_RuleDefn_fixupMath__P5900_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = "filters"; + s.callLocIdx = 1188; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + s.tmp_0 = microcode_RuleDefn_fixupMath__P5900_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = "modifiers"; + s.callLocIdx = 1189; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_arrayMap__P2135.info = {"start":6528,"length":299,"line":229,"column":4,"endLine":236,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayMap","argumentNames":["arr","callbackfn"]} +microcode_RuleDefn_fixup__P4205.info = {"start":4305,"length":644,"line":140,"column":8,"endLine":156,"endColumn":9,"fileName":"language.ts","functionName":"fixup","argumentNames":["this"]} -function helpers_arrayMap__P2135_mk(s) { +function microcode_RuleDefn_fixup__P4205_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arrayMap__P2135, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_fixup__P4205, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - res___10161: undefined, - len___10163: undefined, - i___10166: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tile___10744: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_RuleClosure_matchWhen__P5881(s) { +function microcode_RuleDefn_fixupMath__P5900(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18151,186 +19028,249 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.sensor___10185 = undefined; - s.pipeId___10211 = undefined; - s.thisSensorName___10219 = undefined; - s.eventCode___10237 = undefined; + s.tiles___10771 = undefined; + s.i___10776 = undefined; + s.tile1___10783 = undefined; + s.tile2___10787 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - s.tmp_0 = microcode_RuleDefn_sensor__P4049_mk(s); - r0 = s.arg0.fields["rule"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1691; s.pc = 26; return s.tmp_0; - case 26: + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + s.tmp_1 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1167; s.pc = 25; return s.tmp_1; + case 25: r0 = s.retval; - s.sensor___10185 = (r0); - r0 = pxsim_pxtcore.typeOf(s.arg1); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg1); + s.tiles___10771 = (r0); + s.i___10776 = (0); + case 1: + s.tmp_1 = r0 = s.i___10776; + r0 = pxsim_Array__length(s.tiles___10771); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 24; continue; } + r0 = pxsim_Array__getAt(s.tiles___10771, s.i___10776); + s.tile1___10783 = (r0); + s.tmp_0 = r0 = s.tiles___10771; + r0 = (s.i___10776 + 1); s.tmp_1 = r0; - r0 = (s.tmp_1 == "number"); + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + s.tile2___10787 = (r0); + s.tmp_1 = microcode_RuleDefn_supportsMath__P5899_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.tile1___10783; + s.callLocIdx = 1168; s.pc = 26; return s.tmp_1; + case 26: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } + if (r0) { step = 2; continue; } r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg1 == s.sensor___10185); + { step = 5; continue; } case 2: - // jmp value (already in r0) + s.tmp_3 = microcode_RuleDefn_supportsMath__P5899_mk(s); + s.tmp_3.arg0 = s.arg0; + s.tmp_3.arg1 = s.tile2___10787; + s.callLocIdx = 1169; s.pc = 27; return s.tmp_3; + case 27: + r0 = s.retval; s.tmp_2 = r0; r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 3; continue; } + if (!r0) { step = 3; continue; } r0 = s.tmp_2; { step = 4; continue; } case 3: - r0 = (s.sensor___10185 == 10); + s.tmp_5 = microcode_getTid__P4194_mk(s); + s.tmp_5.arg0 = s.tile2___10787; + s.callLocIdx = 1170; s.pc = 28; return s.tmp_5; + case 28: + r0 = s.retval; + s.tmp_4 = r0; + r0 = (s.tmp_4 == 177); case 4: // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (r0) { step = 5; continue; } - r0 = s.tmp_3; - { step = 6; continue; } + s.tmp_6 = r0; + r0 = s.tmp_6; case 5: - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["filters"]; - s.tmp_5 = r0; - r0 = pxsim_Array__length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_4 == 0); - case 6: // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 7; continue; } - r0 = true; - { step = 25; continue; } - { step = 24; continue; } - case 7: - s.tmp_9 = microcode_getKind__P4280_mk(s); - s.tmp_9.arg0 = s.sensor___10185; - s.callLocIdx = 1692; s.pc = 27; return s.tmp_9; - case 27: - r0 = s.retval; - s.tmp_8 = r0; - r0 = (s.tmp_8 == 2); s.tmp_7 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 10; continue; } - s.tmp_10 = microcode_getParam__P4282_mk(s); - s.tmp_10.arg0 = s.sensor___10185; - s.callLocIdx = 1693; s.pc = 28; return s.tmp_10; - case 28: + if (!r0) { step = 6; continue; } + s.tmp_8 = r0 = s.tiles___10771; + r0 = (s.i___10776 + 1); + s.tmp_9 = r0; + r0 = pxsim_Array_.insertAt(s.tmp_8, s.tmp_9, 210); + { step = 23; continue; } + case 6: + s.tmp_1 = microcode_isMathOperator__P4413_mk(s); + s.tmp_2 = microcode_getTid__P4194_mk(s); + s.tmp_2.arg0 = s.tile1___10783; + s.callLocIdx = 1171; s.pc = 30; return s.tmp_2; + case 30: r0 = s.retval; - s.pipeId___10211 = (r0); - r0 = (s.pipeId___10211 == s.arg1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.tmp_1 = microcode_RuleClosure_filterViaCompare__P5882_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1694; s.pc = 29; return s.tmp_1; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1172; s.pc = 29; return s.tmp_1; case 29: r0 = s.retval; - { step = 25; continue; } + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 7; continue; } + r0 = s.tmp_0; + { step = 8; continue; } + case 7: + r0 = (s.i___10776 == 0); case 8: - case 9: - { step = 23; continue; } - case 10: - r0 = pxsim_pxtcore.typeOf(s.arg1); + // jmp value (already in r0) s.tmp_3 = r0; - r0 = (s.tmp_3 == "string"); + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 9; continue; } + s.tmp_4 = helpers_arraySplice__P2129_mk(s); + s.tmp_4.arg0 = s.tiles___10771; + s.tmp_4.arg1 = s.i___10776; + s.tmp_4.arg2 = 1; + s.callLocIdx = 1173; s.pc = 31; return s.tmp_4; + case 31: + r0 = s.retval; + { step = 22; continue; } + case 9: + s.tmp_3 = microcode_RuleDefn_supportsMath__P5899_mk(s); + s.tmp_3.arg0 = s.arg0; + s.tmp_3.arg1 = s.tile1___10783; + s.callLocIdx = 1174; s.pc = 32; return s.tmp_3; + case 32: + r0 = s.retval; s.tmp_2 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 11; continue; } - s.tmp_4 = microcode_tidToSensor__P5900_mk(s); - s.tmp_4.arg0 = s.sensor___10185; - s.callLocIdx = 1695; s.pc = 30; return s.tmp_4; - case 30: + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 10; continue; } + r0 = s.tmp_0; + { step = 11; continue; } + case 10: + s.tmp_4 = microcode_isMathOperator__P4413_mk(s); + s.tmp_5 = microcode_getTid__P4194_mk(s); + s.tmp_5.arg0 = s.tile2___10787; + s.callLocIdx = 1175; s.pc = 34; return s.tmp_5; + case 34: + r0 = s.retval; + s.tmp_4.arg0 = r0; + s.callLocIdx = 1176; s.pc = 33; return s.tmp_4; + case 33: r0 = s.retval; - { step = 12; continue; } case 11: - r0 = pxsim_String_.mkEmpty(); - case 12: // jmp value (already in r0) - s.tmp_5 = r0; - s.thisSensorName___10219 = (s.tmp_5); - r0 = (s.arg1 == s.thisSensorName___10219); + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 12; continue; } + s.tmp_7 = helpers_arraySplice__P2129_mk(s); + s.tmp_7.arg0 = s.tiles___10771; + r0 = (s.i___10776 + 1); + s.tmp_7.arg1 = r0; + s.tmp_7.arg2 = 1; + s.callLocIdx = 1177; s.pc = 35; return s.tmp_7; + case 35: + r0 = s.retval; + { step = 21; continue; } + case 12: + s.tmp_1 = microcode_isMathOperator__P4413_mk(s); + s.tmp_2 = microcode_getTid__P4194_mk(s); + s.tmp_2.arg0 = s.tile2___10787; + s.callLocIdx = 1178; s.pc = 37; return s.tmp_2; + case 37: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1179; s.pc = 36; return s.tmp_1; + case 36: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 13; continue; } + if (r0) { step = 13; continue; } r0 = s.tmp_0; - { step = 16; continue; } + { step = 14; continue; } case 13: - r0 = pxsim_pxtcore.typeOf(s.arg1); - s.tmp_2 = r0; - r0 = (s.tmp_2 == "number"); - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (r0) { step = 14; continue; } - r0 = s.tmp_1; - { step = 15; continue; } + s.tmp_3 = r0 = s.i___10776; + r0 = pxsim_Array__length(s.tiles___10771); + s.tmp_5 = r0; + r0 = (s.tmp_5 - 2); + s.tmp_4 = r0; + r0 = (s.tmp_3 == s.tmp_4); case 14: - r0 = (s.arg1 == s.sensor___10185); - case 15: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; - case 16: // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 21; continue; } - s.tmp_5 = microcode_RuleClosure_lookupEventCode__P5883_mk(s); - s.tmp_5.arg0 = s.arg0; - s.callLocIdx = 1696; s.pc = 31; return s.tmp_5; - case 31: + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 15; continue; } + s.tmp_7 = helpers_arraySplice__P2129_mk(s); + s.tmp_7.arg0 = s.tiles___10771; + r0 = (s.i___10776 + 1); + s.tmp_7.arg1 = r0; + s.tmp_7.arg2 = 1; + s.callLocIdx = 1180; s.pc = 38; return s.tmp_7; + case 38: + r0 = s.retval; + { step = 20; continue; } + case 15: + s.tmp_1 = microcode_isMathOperator__P4413_mk(s); + s.tmp_2 = microcode_getTid__P4194_mk(s); + s.tmp_2.arg0 = s.tile1___10783; + s.callLocIdx = 1181; s.pc = 40; return s.tmp_2; + case 40: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1182; s.pc = 39; return s.tmp_1; + case 39: r0 = s.retval; - s.eventCode___10237 = (r0); - r0 = pxsim_numops_toBoolDecr(s.eventCode___10237); - if (!r0) { step = 19; continue; } - r0 = (s.eventCode___10237 == -1); s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 17; continue; } + if (r0) { step = 16; continue; } r0 = s.tmp_0; - { step = 18; continue; } + { step = 17; continue; } + case 16: + s.tmp_5 = microcode_RuleDefn_supportsMath__P5899_mk(s); + s.tmp_5.arg0 = s.arg0; + s.tmp_5.arg1 = s.tile2___10787; + s.callLocIdx = 1183; s.pc = 41; return s.tmp_5; + case 41: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + s.tmp_3 = r0; + r0 = pxsim_Boolean__bang(s.tmp_3); case 17: - r0 = (s.arg2 == s.eventCode___10237); - case 18: // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; - { step = 25; continue; } - { step = 20; continue; } + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 18; continue; } + case 18: case 19: - s.tmp_2 = microcode_RuleClosure_filterViaCompare__P5882_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1697; s.pc = 32; return s.tmp_2; - case 32: - r0 = s.retval; - { step = 25; continue; } case 20: case 21: case 22: case 23: + r0 = (s.i___10776 + 1); + s.i___10776 = (r0); + { step = 1; continue; } case 24: - r0 = false; - case 25: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleClosure_matchWhen__P5881.info = {"start":3148,"length":1267,"line":102,"column":8,"endLine":131,"endColumn":9,"fileName":"interpreter.ts","functionName":"matchWhen","argumentNames":["this","sensorName","event"]} +microcode_RuleDefn_fixupMath__P5900.info = {"start":3075,"length":1220,"line":108,"column":8,"endLine":138,"endColumn":9,"fileName":"language.ts","functionName":"fixupMath","argumentNames":["this","name"]} -function microcode_RuleClosure_matchWhen__P5881_mk(s) { +function microcode_RuleDefn_fixupMath__P5900_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_matchWhen__P5881, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_fixupMath__P5900, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -18342,21 +19282,18 @@ function microcode_RuleClosure_matchWhen__P5881_mk(s) { tmp_7: undefined, tmp_8: undefined, tmp_9: undefined, - tmp_10: undefined, - sensor___10185: undefined, - pipeId___10211: undefined, - thisSensorName___10219: undefined, - eventCode___10237: undefined, + tiles___10771: undefined, + i___10776: undefined, + tile1___10783: undefined, + tile2___10787: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function microcode_RuleClosure_lookupEventCode__P5883(s) { +function microcode_isMathOperator__P4413(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18366,103 +19303,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.sensor___10251 = undefined; - s.evCode___10255 = undefined; - s.m___10260 = undefined; - s.unnamed54___U3 = undefined; - s.unnamed55___U4 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - s.tmp_0 = microcode_RuleDefn_sensor__P4049_mk(s); - r0 = s.arg0.fields["rule"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1701; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - s.sensor___10251 = (r0); - s.tmp_0 = microcode_defaultEventCode__P4284_mk(s); - s.tmp_0.arg0 = s.sensor___10251; - s.callLocIdx = 1702; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - s.evCode___10255 = (r0); - r0 = pxsim_numops_toBoolDecr(s.evCode___10255); - if (!r0) { step = 5; continue; } - s.m___10260 = (undefined); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["filters"]; - s.unnamed54___U3 = (r0); - s.unnamed55___U4 = (0); + r0 = (s.arg0 >= 210); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - s.tmp_0 = r0 = s.unnamed55___U4; - r0 = pxsim_Array__length(s.unnamed54___U3); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.unnamed54___U3, s.unnamed55___U4); - s.m___10260 = (r0); - s.tmp_4 = microcode_getKind__P4280_mk(s); - s.tmp_4.arg0 = s.m___10260; - s.callLocIdx = 1703; s.pc = 10; return s.tmp_4; - case 10: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_3 == 4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 2; continue; } - s.tmp_5 = microcode_getParam__P4282_mk(s); - s.tmp_5.arg0 = s.m___10260; - s.callLocIdx = 1704; s.pc = 11; return s.tmp_5; - case 11: - r0 = s.retval; - { step = 7; continue; } + r0 = (s.arg0 <= 213); case 2: - case 3: - r0 = (s.unnamed55___U4 + 1); - s.unnamed55___U4 = (r0); - { step = 1; continue; } - case 4: - s.unnamed54___U3 = (undefined); - r0 = s.evCode___10255; - { step = 7; continue; } - case 5: - case 6: - r0 = undefined; - case 7: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_RuleClosure_lookupEventCode__P5883.info = {"start":4794,"length":518,"line":144,"column":8,"endLine":157,"endColumn":9,"fileName":"interpreter.ts","functionName":"lookupEventCode","argumentNames":["this"]} +microcode_isMathOperator__P4413.info = {"start":8468,"length":124,"line":264,"column":4,"endLine":266,"endColumn":5,"fileName":"tiles.ts","functionName":"isMathOperator","argumentNames":["tid"]} -function microcode_RuleClosure_lookupEventCode__P5883_mk(s) { +function microcode_isMathOperator__P4413_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_lookupEventCode__P5883, depth: s.depth + 1, + parent: s, fn: microcode_isMathOperator__P4413, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - sensor___10251: undefined, - evCode___10255: undefined, - m___10260: undefined, - unnamed54___U3: undefined, - unnamed55___U4: undefined, arg0: undefined, } } - -function microcode_defaultEventCode__P4284(s) { +function microcode_RuleDefn_getRuleRep__P4203(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18472,73 +19347,49 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___10274 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1110; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - s.tid___10274 = (r0); - s.tmp_0 = r0 = s.tid___10274; - r0 = pxsim_pxtcore.switch_eq(16, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(26, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(30, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(18, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(13, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(11, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(12, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(17, s.tmp_0); - if (r0) { step = 8; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = s.arg0.fields["sensors"]; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "sensors", s.tmp_1); + r0 = s.arg0.fields["filters"]; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "filters", s.tmp_2); + r0 = s.arg0.fields["actuators"]; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "actuators", s.tmp_3); + r0 = s.arg0.fields["modifiers"]; + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "modifiers", s.tmp_4); r0 = s.tmp_0; - { step = 9; continue; } - case 1: - case 2: - case 3: - case 4: - r0 = 0; - { step = 10; continue; } - case 5: - case 6: - case 7: - case 8: - r0 = -1; - { step = 10; continue; } - case 9: - r0 = undefined; - { step = 10; continue; } - r0 = undefined; - case 10: return leave(s, r0) default: oops() } } } -microcode_defaultEventCode__P4284.info = {"start":33154,"length":613,"line":933,"column":4,"endLine":949,"endColumn":5,"fileName":"tiles.ts","functionName":"defaultEventCode","argumentNames":["tile"]} +microcode_RuleDefn_getRuleRep__P4203.info = {"start":2458,"length":239,"line":87,"column":8,"endLine":94,"endColumn":9,"fileName":"language.ts","functionName":"getRuleRep","argumentNames":["this"]} -function microcode_defaultEventCode__P4284_mk(s) { +function microcode_RuleDefn_getRuleRep__P4203_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_defaultEventCode__P4284, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_getRuleRep__P4203, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tid___10274: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, } } - -function microcode_RuleClosure_filterViaCompare__P5882(s) { +function microcode_RuleDefn_supportsMath__P5899(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18550,60 +19401,59 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleClosure__C5877_VT)) failedCast(r0, microcode_RuleClosure__C5877_VT); - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["filters"]; + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + s.tmp_2 = microcode_getKind__P4431_mk(s); + s.tmp_2.arg0 = s.arg1; + s.callLocIdx = 1164; s.pc = 5; return s.tmp_2; + case 5: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_Array__length(s.tmp_1); + r0 = (s.tmp_1 == 1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_Array__mk(); - s.tmp_2 = r0; - s.tmp_4 = microcode_RuleDefn_sensor__P4049_mk(s); - r0 = s.arg0.fields["rule"]; - s.tmp_4.arg0 = r0; - s.callLocIdx = 1698; s.pc = 4; return s.tmp_4; - case 4: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_Array__push(s.tmp_2, s.tmp_3); - s.tmp_5 = microcode_Interpreter_getValue__P4616_mk(s); - r0 = s.arg0.fields["interp"]; - s.tmp_5.arg0 = r0; - s.tmp_6 = helpers_arrayConcat__P2142_mk(s); - s.tmp_6.arg0 = s.tmp_2; - r0 = s.arg0.fields["rule"]; - r0 = r0.fields["filters"]; - s.tmp_6.arg1 = r0; - s.callLocIdx = 1699; s.pc = 6; return s.tmp_6; - case 6: - r0 = s.retval; - s.tmp_5.arg1 = r0; - s.tmp_5.arg2 = 0; - s.callLocIdx = 1700; s.pc = 5; return s.tmp_5; - case 5: - r0 = s.retval; - { step = 3; continue; } + r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = true; - { step = 3; continue; } + s.tmp_4 = microcode_getKind__P4431_mk(s); + s.tmp_4.arg0 = s.arg1; + s.callLocIdx = 1165; s.pc = 6; return s.tmp_4; + case 6: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_3 == 2); case 2: - r0 = undefined; + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (!r0) { step = 3; continue; } + r0 = s.tmp_5; + { step = 4; continue; } case 3: + s.tmp_7 = microcode_getKind__P4431_mk(s); + s.tmp_7.arg0 = s.arg1; + s.callLocIdx = 1166; s.pc = 7; return s.tmp_7; + case 7: + r0 = s.retval; + s.tmp_6 = r0; + r0 = (s.tmp_6 == 4); + case 4: + // jmp value (already in r0) + s.tmp_8 = r0; + r0 = s.tmp_8; return leave(s, r0) default: oops() } } } -microcode_RuleClosure_filterViaCompare__P5882.info = {"start":4425,"length":359,"line":133,"column":8,"endLine":142,"endColumn":9,"fileName":"interpreter.ts","functionName":"filterViaCompare","argumentNames":["this"]} +microcode_RuleDefn_supportsMath__P5899.info = {"start":2830,"length":235,"line":100,"column":8,"endLine":106,"endColumn":9,"fileName":"language.ts","functionName":"supportsMath","argumentNames":["this","tile"]} -function microcode_RuleClosure_filterViaCompare__P5882_mk(s) { +function microcode_RuleDefn_supportsMath__P5899_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleClosure_filterViaCompare__P5882, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_supportsMath__P5899, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -18612,14 +19462,16 @@ function microcode_RuleClosure_filterViaCompare__P5882_mk(s) { tmp_4: undefined, tmp_5: undefined, tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, arg0: undefined, + arg1: undefined, } } - -function helpers_arrayFilter__P2139(s) { +function microcode_isComparisonOperator__P4414(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18629,71 +19481,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.res___10310 = undefined; - s.len___10312 = undefined; - s.i___10315 = undefined; - s.v___10320 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__mk(); - s.res___10310 = (r0); - r0 = pxsim_Array__length(s.arg0); - s.len___10312 = (r0); - s.i___10315 = (0); - case 1: - r0 = (s.i___10315 < s.len___10312); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.arg0, s.i___10315); - s.v___10320 = (r0); - s.tmp_1 = lambda_3_mk(s); - s.tmp_1.argL = s.arg1; - s.tmp_1.arg0 = s.v___10320; - s.tmp_1.arg1 = s.i___10315; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 7; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; + r0 = (s.arg0 >= 220); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = pxsim_Array__push(s.res___10310, s.v___10320); + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = (s.arg0 <= 225); case 2: - case 3: - r0 = (s.i___10315 + 1); - s.i___10315 = (r0); - { step = 1; continue; } - case 4: - r0 = s.res___10310; + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -helpers_arrayFilter__P2139.info = {"start":7695,"length":317,"line":261,"column":4,"endLine":269,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arrayFilter","argumentNames":["arr","callbackfn"]} +microcode_isComparisonOperator__P4414.info = {"start":8598,"length":128,"line":268,"column":4,"endLine":270,"endColumn":5,"fileName":"tiles.ts","functionName":"isComparisonOperator","argumentNames":["tid"]} -function helpers_arrayFilter__P2139_mk(s) { +function microcode_isComparisonOperator__P4414_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arrayFilter__P2139, depth: s.depth + 1, + parent: s, fn: microcode_isComparisonOperator__P4414, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - res___10310: undefined, - len___10312: undefined, - i___10315: undefined, - v___10320: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_Interpreter_onSensorEvent__P4612(s) { +function microcode_isModifier__P4412(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18705,46 +19527,104 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - r0 = pxsim_pxtrt.mkMap(); + r0 = (s.arg0 >= 150); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "kind", 1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "sensor", s.arg1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "filter", s.arg2); - s.tmp_1 = microcode_Interpreter_addEvent__P4611_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1801; s.pc = 1; return s.tmp_1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = (s.arg0 <= 208); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = s.tmp_1; + { step = 4; continue; } + case 3: + s.tmp_2 = microcode_isConstant__P4415_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1322; s.pc = 13; return s.tmp_2; + case 13: r0 = s.retval; - r0 = undefined; + case 4: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (!r0) { step = 5; continue; } + r0 = s.tmp_3; + { step = 6; continue; } + case 5: + s.tmp_4 = microcode_isVariable__P5927_mk(s); + s.tmp_4.arg0 = s.arg0; + s.callLocIdx = 1323; s.pc = 14; return s.tmp_4; + case 14: + r0 = s.retval; + case 6: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (!r0) { step = 7; continue; } + r0 = s.tmp_5; + { step = 8; continue; } + case 7: + s.tmp_6 = microcode_isMathOperator__P4413_mk(s); + s.tmp_6.arg0 = s.arg0; + s.callLocIdx = 1324; s.pc = 15; return s.tmp_6; + case 15: + r0 = s.retval; + case 8: + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = pxsim_numops_toBool(s.tmp_7); + if (!r0) { step = 9; continue; } + r0 = s.tmp_7; + { step = 10; continue; } + case 9: + r0 = (s.arg0 == 255); + case 10: + // jmp value (already in r0) + s.tmp_8 = r0; + r0 = pxsim_numops_toBool(s.tmp_8); + if (!r0) { step = 11; continue; } + r0 = s.tmp_8; + { step = 12; continue; } + case 11: + r0 = (s.arg0 == 254); + case 12: + // jmp value (already in r0) + s.tmp_9 = r0; + r0 = s.tmp_9; return leave(s, r0) default: oops() } } } -microcode_Interpreter_onSensorEvent__P4612.info = {"start":23893,"length":267,"line":649,"column":8,"endLine":655,"endColumn":9,"fileName":"interpreter.ts","functionName":"onSensorEvent","argumentNames":["this","sensorTid","filter"]} +microcode_isModifier__P4412.info = {"start":8138,"length":324,"line":253,"column":4,"endLine":262,"endColumn":5,"fileName":"tiles.ts","functionName":"isModifier","argumentNames":["tid"]} -function microcode_Interpreter_onSensorEvent__P4612_mk(s) { +function microcode_isModifier__P4412_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_onSensorEvent__P4612, depth: s.depth + 1, + parent: s, fn: microcode_isModifier__P4412, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_MicrobitHost_constructor__P4593(s) { +function microcode_isVariable__P5927(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18758,64 +19638,27 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MicrobitHost__C4592_VT)) failedCast(r0, microcode_MicrobitHost__C4592_VT); - r0 = (s.arg0).fields["_handler"] = (microcode_MicrobitHost_inline__P10345); - r0 = pxsim.control.singleSimulator(); - r0 = pxsim.input.onLogoEvent(3, microcode_MicrobitHost_inline__P10353); - r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P10357); + r0 = (95 <= s.arg0); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_1.arg0 = globals.buttons___5868; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1672; s.pc = 1; return s.tmp_1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P10381); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim.input.onGesture(11, s.tmp_0); - r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P10388); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 13; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 1676; s.pc = 2; return s.tmp_1; + r0 = (s.arg0 <= 97); case 2: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P10412); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 21; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 1678; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P10428); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = radio_onReceivedNumber__P3039_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1680; s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - r0 = undefined; + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_constructor__P4593.info = {"start":1210,"length":2493,"line":35,"column":8,"endLine":96,"endColumn":9,"fileName":"host.ts","functionName":"inline","argumentNames":["this"]} +microcode_isVariable__P5927.info = {"start":9779,"length":169,"line":310,"column":4,"endLine":315,"endColumn":5,"fileName":"tiles.ts","functionName":"isVariable","argumentNames":["tidEnum"]} -function microcode_MicrobitHost_constructor__P4593_mk(s) { +function microcode_isVariable__P5927_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_constructor__P4593, depth: s.depth + 1, + parent: s, fn: microcode_isVariable__P5927, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -18825,8 +19668,7 @@ function microcode_MicrobitHost_constructor__P4593_mk(s) { - -function microcode_MicrobitHost_inline__P10345(s) { +function microcode_isActuator__P4411(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18838,29 +19680,39 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = undefined; + r0 = (s.arg0 >= 40); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = (s.arg0 <= 55); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_inline__P10345.info = {"start":1254,"length":28,"line":36,"column":28,"endLine":36,"endColumn":56,"fileName":"host.ts","functionName":"inline","argumentNames":["s","f"]} +microcode_isActuator__P4411.info = {"start":8020,"length":112,"line":249,"column":4,"endLine":251,"endColumn":5,"fileName":"tiles.ts","functionName":"isActuator","argumentNames":["tid"]} -function microcode_MicrobitHost_inline__P10345_mk(s) { +function microcode_isActuator__P4411_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_inline__P10345, depth: s.depth + 1, + parent: s, fn: microcode_isActuator__P4411, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_MicrobitHost_inline__P10353(s) { +function microcode_isFilter__P4410(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18870,24 +19722,81 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (s.arg0 >= 70); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = (s.arg0 <= 111); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = s.tmp_1; + { step = 4; continue; } + case 3: + s.tmp_2 = microcode_isMathOperator__P4413_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1320; s.pc = 9; return s.tmp_2; + case 9: + r0 = s.retval; + case 4: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (!r0) { step = 5; continue; } + r0 = s.tmp_3; + { step = 6; continue; } + case 5: + s.tmp_4 = microcode_isComparisonOperator__P4414_mk(s); + s.tmp_4.arg0 = s.arg0; + s.callLocIdx = 1321; s.pc = 10; return s.tmp_4; + case 10: + r0 = s.retval; + case 6: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (!r0) { step = 7; continue; } + r0 = s.tmp_5; + { step = 8; continue; } + case 7: + r0 = (s.arg0 == 255); + case 8: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = s.tmp_6; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_inline__P10353.info = {"start":1424,"length":14,"line":40,"column":56,"endLine":40,"endColumn":70,"fileName":"host.ts","functionName":"inline","argumentNames":[]} +microcode_isFilter__P4410.info = {"start":7761,"length":253,"line":240,"column":4,"endLine":247,"endColumn":5,"fileName":"tiles.ts","functionName":"isFilter","argumentNames":["tid"]} -function microcode_MicrobitHost_inline__P10353_mk(s) { +function microcode_isFilter__P4410_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_inline__P10353, depth: s.depth + 1, + parent: s, fn: microcode_isFilter__P4410, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + arg0: undefined, } } - -function microcode_MicrobitHost_inline__P10357(s) { +function microcode_isSensor__P4409(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18901,28 +19810,27 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(2, microcode_MicrobitHost_inline__P10362); + r0 = (s.arg0 >= 10); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 1671; s.pc = 1; return s.tmp_1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 <= 30); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_inline__P10357.info = {"start":1469,"length":524,"line":42,"column":28,"endLine":54,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":["b"]} +microcode_isSensor__P4409.info = {"start":7649,"length":106,"line":236,"column":4,"endLine":238,"endColumn":5,"fileName":"tiles.ts","functionName":"isSensor","argumentNames":["tid"]} -function microcode_MicrobitHost_inline__P10357_mk(s) { +function microcode_isSensor__P4409_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_inline__P10357, depth: s.depth + 1, + parent: s, fn: microcode_isSensor__P4409, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -18932,8 +19840,7 @@ function microcode_MicrobitHost_inline__P10357_mk(s) { - -function microcode_MicrobitHost_inline__P10362(s) { +function microcode_RuleDefn_push__P4206(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -18943,71 +19850,76 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ev___10363 = undefined; - r0 = pxsim.control.eventValue(); - s.ev___10363 = (r0); - r0 = (s.ev___10363 == 1); + s.tiles___10982 = undefined; + s.len___10991 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + s.tmp_1 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1190; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg2); + s.tiles___10982 = (r0); + r0 = pxsim_Array__push(s.tiles___10982, s.arg1); + r0 = pxsim_Array__length(s.tiles___10982); + s.len___10991 = (r0); + r0 = pxsim_numops_toBoolDecr(s.arg3); if (!r0) { step = 1; continue; } - r0 = 11; - { step = 4; continue; } + s.tmp_0 = microcode_RuleDefn_fixup__P4205_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1191; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; case 1: - r0 = (s.ev___10363 == 2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 2; continue; } - r0 = 12; - { step = 3; continue; } case 2: - r0 = undefined; + r0 = pxsim_Array__length(s.tiles___10982); + s.tmp_1 = r0; + r0 = (s.tmp_1 > s.len___10991); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = 2; + { step = 4; continue; } case 3: + r0 = 1; + case 4: // jmp value (already in r0) s.tmp_2 = r0; r0 = s.tmp_2; - case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - s.tmp_4 = if__handler_3_mk(s); - s.tmp_4.arg0 = s.caps[0]; - s.tmp_4.arg1 = s.tmp_3; - r0 = pxsim_pxtrt.mapGetGeneric(globals.matchPressReleaseTable___5847, s.caps[1]); - s.tmp_4.arg2 = r0; - if (!s.tmp_4.arg0.vtable.iface) { - setupLambda(s.tmp_4, pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "_handler"), 3); - s.callLocIdx = 1670; s.pc = 5; return s.tmp_4; - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["_handler"]; - if (s.tmp_4.fn == null) { setupLambda(s.tmp_4, s.tmp_4.arg0.fields["_handler"], 3); s.callLocIdx = 1670; s.pc = 5; return s.tmp_4; } - else if (s.tmp_4.fn.isGetter) { s.tmp_4.stage2Call = true; s.callLocIdx = 1670; s.pc = 5; return s.tmp_4;; } - else { s.callLocIdx = 1670; s.pc = 5; return s.tmp_4; } - } - case 5: - r0 = s.retval; - r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_inline__P10362.info = {"start":1531,"length":447,"line":43,"column":55,"endLine":53,"endColumn":17,"fileName":"host.ts","functionName":"inline","argumentNames":[]} +microcode_RuleDefn_push__P4206.info = {"start":4959,"length":265,"line":158,"column":8,"endLine":164,"endColumn":9,"fileName":"language.ts","functionName":"push","argumentNames":["this","tile","name","fix"]} -function microcode_MicrobitHost_inline__P10362_mk(s) { +function microcode_RuleDefn_push__P4206_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_inline__P10362, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_push__P4206, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - ev___10363: undefined, + tiles___10982: undefined, + len___10991: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function microcode_MicrobitHost_inline__P10381(s) { +function microcode_ModifierEditor_getNewInstance__P4549(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19017,40 +19929,32 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = if__handler_3_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 13; - s.tmp_0.arg2 = 90; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); - s.callLocIdx = 1673; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1673; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1673; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1673; s.pc = 1; return s.tmp_0; } + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_ModifierEditor__C4543_VT)) failedCast(r0, microcode_ModifierEditor__C4543_VT); + r0 = null; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_inline__P10381.info = {"start":2086,"length":167,"line":56,"column":43,"endLine":61,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":[]} +microcode_ModifierEditor_getNewInstance__P4549.info = {"start":1299,"length":85,"line":48,"column":8,"endLine":50,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNewInstance","argumentNames":["this","field"]} -function microcode_MicrobitHost_inline__P10381_mk(s) { +function microcode_ModifierEditor_getNewInstance__P4549_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_inline__P10381, depth: s.depth + 1, + parent: s, fn: microcode_ModifierEditor_getNewInstance__P4549, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, + arg0: undefined, + arg1: undefined, } } - -function microcode_MicrobitHost_inline__P10388(s) { +function microcode_FieldEditor_fromBuffer__P6004(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19060,83 +19964,32 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ev___10399 = undefined; - s.tmp_0 = console_log__P2528_mk(s); - r0 = pxsim.control.eventValue(); - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 6); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 6: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat("gest evt = ", s.tmp_1); - s.tmp_0.arg0 = r0; - s.callLocIdx = 1674; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - r0 = pxsim.control.eventValue(); - s.tmp_1 = r0; - r0 = (s.tmp_1 != 11); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_2 = r0 = globals.matchAccelerometerTable___5855; - r0 = pxsim.control.eventValue(); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_2, s.tmp_3); - s.ev___10399 = (r0); - r0 = pxsim_numops_toBoolDecr(s.ev___10399); - if (!r0) { step = 1; continue; } - s.tmp_0 = if__handler_3_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 13; - s.tmp_1 = r0 = globals.matchAccelerometerTable___5855; - r0 = pxsim.control.eventValue(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.tmp_2); - s.tmp_0.arg2 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); - s.callLocIdx = 1675; s.pc = 7; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1675; s.pc = 7; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1675; s.pc = 7; return s.tmp_0;; } - else { s.callLocIdx = 1675; s.pc = 7; return s.tmp_0; } + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; } - case 7: - r0 = s.retval; - case 1: - case 2: - case 3: - case 4: + r0 = s.arg0; + if (!checkSubtype(r0, microcode_FieldEditor__C5998_VT)) failedCast(r0, microcode_FieldEditor__C5998_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_inline__P10388.info = {"start":2449,"length":506,"line":66,"column":16,"endLine":76,"endColumn":17,"fileName":"host.ts","functionName":"inline","argumentNames":[]} +microcode_FieldEditor_fromBuffer__P6004.info = {"start":879,"length":75,"line":31,"column":8,"endLine":33,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"fromBuffer","argumentNames":["this","buf"]} -function microcode_MicrobitHost_inline__P10388_mk(s) { +function microcode_FieldEditor_fromBuffer__P6004_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_inline__P10388, depth: s.depth + 1, + parent: s, fn: microcode_FieldEditor_fromBuffer__P6004, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - ev___10399: undefined, + arg0: undefined, + arg1: undefined, } } - -function microcode_MicrobitHost_inline__P10412(s) { +function microcode_isOldModifierVar__P4417(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19146,70 +19999,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ev___10413 = undefined; - r0 = pxsim.control.eventValue(); - s.ev___10413 = (r0); - r0 = (s.ev___10413 == 2); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (173 <= s.arg0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = 87; - { step = 4; continue; } + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = (s.ev___10413 == 1); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 2; continue; } - r0 = 88; - { step = 3; continue; } + r0 = (s.arg0 <= 175); case 2: - r0 = undefined; - case 3: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = s.tmp_2; - case 4: // jmp value (already in r0) - s.tmp_3 = r0; - s.tmp_4 = if__handler_3_mk(s); - s.tmp_4.arg0 = s.caps[0]; - s.tmp_4.arg1 = 18; - s.tmp_4.arg2 = s.tmp_3; - if (!s.tmp_4.arg0.vtable.iface) { - setupLambda(s.tmp_4, pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "_handler"), 3); - s.callLocIdx = 1677; s.pc = 5; return s.tmp_4; - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["_handler"]; - if (s.tmp_4.fn == null) { setupLambda(s.tmp_4, s.tmp_4.arg0.fields["_handler"], 3); s.callLocIdx = 1677; s.pc = 5; return s.tmp_4; } - else if (s.tmp_4.fn.isGetter) { s.tmp_4.stage2Call = true; s.callLocIdx = 1677; s.pc = 5; return s.tmp_4;; } - else { s.callLocIdx = 1677; s.pc = 5; return s.tmp_4; } - } - case 5: - r0 = s.retval; - r0 = undefined; + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_inline__P10412.info = {"start":3104,"length":441,"line":81,"column":16,"endLine":91,"endColumn":17,"fileName":"host.ts","functionName":"inline","argumentNames":[]} +microcode_isOldModifierVar__P4417.info = {"start":10139,"length":186,"line":324,"column":4,"endLine":329,"endColumn":5,"fileName":"tiles.ts","functionName":"isOldModifierVar","argumentNames":["tidEnum"]} -function microcode_MicrobitHost_inline__P10412_mk(s) { +function microcode_isOldModifierVar__P4417_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_inline__P10412, depth: s.depth + 1, + parent: s, fn: microcode_isOldModifierVar__P4417, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - ev___10413: undefined, + arg0: undefined, } } - -function microcode_MicrobitHost_inline__P10428(s) { +function microcode_isOldModifierCoin__P4416(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19223,41 +20047,37 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = if__handler_3_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 17; - s.tmp_0.arg2 = s.arg0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); - s.callLocIdx = 1679; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1679; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1679; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1679; s.pc = 1; return s.tmp_0; } - } + r0 = (155 <= s.arg0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 <= 159); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_inline__P10428.info = {"start":3595,"length":97,"line":93,"column":35,"endLine":95,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":["radioNum"]} +microcode_isOldModifierCoin__P4416.info = {"start":9954,"length":179,"line":317,"column":4,"endLine":322,"endColumn":5,"fileName":"tiles.ts","functionName":"isOldModifierCoin","argumentNames":["tidEnum"]} -function microcode_MicrobitHost_inline__P10428_mk(s) { +function microcode_isOldModifierCoin__P4416_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_inline__P10428, depth: s.depth + 1, + parent: s, fn: microcode_isOldModifierCoin__P4416, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function radio_onReceivedNumber__P3039(s) { +function microcode_RuleDefn_constructor__P4201(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19271,31 +20091,44 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = radio_init__P5000_mk(s); - s.callLocIdx = 161; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - globals.onReceivedNumberHandler___4996 = (s.arg0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["sensors"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["filters"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["actuators"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["modifiers"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -radio_onReceivedNumber__P3039.info = {"start":3634,"length":132,"line":99,"column":4,"endLine":102,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"onReceivedNumber","argumentNames":["cb"]} +microcode_RuleDefn_constructor__P4201.info = {"start":2155,"length":149,"line":75,"column":8,"endLine":80,"endColumn":9,"fileName":"language.ts","functionName":"inline","argumentNames":["this"]} -function radio_onReceivedNumber__P3039_mk(s) { +function microcode_RuleDefn_constructor__P4201_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_onReceivedNumber__P3039, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_constructor__P4201, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function radio_init__P5000(s) { +function microcode_PageDefn_constructor__P4213(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19305,178 +20138,36 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_numops_toBoolDecr(globals.initialized___4995); - if (!r0) { step = 1; continue; } - { step = 3; continue; } - case 1: - case 2: - globals.initialized___4995 = (true); - r0 = pxsim.radio.onDataReceived(radio_handleDataReceived__P5001); - case 3: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -radio_init__P5000.info = {"start":1998,"length":128,"line":56,"column":4,"endLine":60,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"init","argumentNames":[]} - -function radio_init__P5000_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: radio_init__P5000, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, -} } - - - - - -function radio_handleDataReceived__P5001(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.buffer___10442 = undefined; - r0 = pxsim.radio.readRawPacket(); - s.buffer___10442 = (r0); - case 1: - r0 = pxsim_numops_toBoolDecr(s.buffer___10442); - if (!r0) { step = 17; continue; } - s.tmp_0 = radio_RadioPacket_getPacket__P3046_mk(s); - s.tmp_0.arg0 = s.buffer___10442; - s.callLocIdx = 150; s.pc = 18; return s.tmp_0; - case 18: - r0 = s.retval; - globals.lastPacket___3038 = (r0); - r0 = globals.lastPacket___3038.fields["data"]; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_PageDefn__C4211_VT)) failedCast(r0, microcode_PageDefn__C4211_VT); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); s.tmp_1 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_1, 0); - s.tmp_0 = r0; - r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); - if (r0) { step = 10; continue; } - r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); - if (r0) { step = 13; continue; } - r0 = s.tmp_0; - { step = 16; continue; } - case 2: - case 3: - r0 = pxsim_numops_toBoolDecr(globals.onReceivedNumberHandler___4996); - if (!r0) { step = 4; continue; } - s.tmp_2 = lambda_2_mk(s); - s.tmp_2.argL = globals.onReceivedNumberHandler___4996; - s.tmp_3 = radio_RadioPacket_numberPayload__P3056_mk(s); - s.tmp_3.arg0 = globals.lastPacket___3038; - s.callLocIdx = 152; s.pc = 20; return s.tmp_3; - case 20: - r0 = s.retval; - s.tmp_2.arg0 = r0; - setupLambda(s.tmp_2, s.tmp_2.argL); - s.callLocIdx = 153; s.pc = 19; return s.tmp_2; - case 19: - r0 = s.retval; - case 4: - case 5: - { step = 16; continue; } - case 6: - case 7: - r0 = pxsim_numops_toBoolDecr(globals.onReceivedValueHandler___4997); - if (!r0) { step = 8; continue; } - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = globals.onReceivedValueHandler___4997; - s.tmp_1 = radio_RadioPacket_stringPayload__P3054_mk(s); - s.tmp_1.arg0 = globals.lastPacket___3038; - s.callLocIdx = 154; s.pc = 22; return s.tmp_1; - case 22: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_2 = radio_RadioPacket_numberPayload__P3056_mk(s); - s.tmp_2.arg0 = globals.lastPacket___3038; - s.callLocIdx = 155; s.pc = 23; return s.tmp_2; - case 23: - r0 = s.retval; - s.tmp_0.arg1 = r0; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 156; s.pc = 21; return s.tmp_0; - case 21: - r0 = s.retval; - case 8: - case 9: - { step = 16; continue; } - case 10: - r0 = pxsim_numops_toBoolDecr(globals.onReceivedBufferHandler___4999); - if (!r0) { step = 11; continue; } - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = globals.onReceivedBufferHandler___4999; - s.tmp_1 = radio_RadioPacket_bufferPayload__P3058_mk(s); - s.tmp_1.arg0 = globals.lastPacket___3038; - s.callLocIdx = 157; s.pc = 25; return s.tmp_1; - case 25: - r0 = s.retval; - s.tmp_0.arg0 = r0; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 158; s.pc = 24; return s.tmp_0; - case 24: - r0 = s.retval; - case 11: - case 12: - { step = 16; continue; } - case 13: - r0 = pxsim_numops_toBoolDecr(globals.onReceivedStringHandler___4998); - if (!r0) { step = 14; continue; } - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = globals.onReceivedStringHandler___4998; - s.tmp_1 = radio_RadioPacket_stringPayload__P3054_mk(s); - s.tmp_1.arg0 = globals.lastPacket___3038; - s.callLocIdx = 159; s.pc = 27; return s.tmp_1; - case 27: - r0 = s.retval; - s.tmp_0.arg0 = r0; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 160; s.pc = 26; return s.tmp_0; - case 26: - r0 = s.retval; - case 14: - case 15: - case 16: - r0 = pxsim.radio.readRawPacket(); - s.buffer___10442 = (r0); - { step = 1; continue; } - case 17: + r0 = (s.tmp_0).fields["rules"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -radio_handleDataReceived__P5001.info = {"start":2132,"length":1189,"line":62,"column":4,"endLine":89,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"handleDataReceived","argumentNames":[]} +microcode_PageDefn_constructor__P4213.info = {"start":9642,"length":53,"line":285,"column":8,"endLine":287,"endColumn":9,"fileName":"language.ts","functionName":"inline","argumentNames":["this"]} -function radio_handleDataReceived__P5001_mk(s) { +function microcode_PageDefn_constructor__P4213_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_handleDataReceived__P5001, depth: s.depth + 1, + parent: s, fn: microcode_PageDefn_constructor__P4213, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - buffer___10442: undefined, + arg0: undefined, } } - -function radio_RadioPacket_bufferPayload__P3058(s) { +function microcode_BufferReader_peekByte__P4631(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19486,41 +20177,51 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___10481 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = s.arg0.fields["data"]; - s.tmp_0 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_0, 9); - s.len___10481 = (r0); - r0 = s.arg0.fields["data"]; + if (!checkSubtype(r0, microcode_BufferReader__C4627_VT)) failedCast(r0, microcode_BufferReader__C4627_VT); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1942; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = s.arg0.fields["buf"]; s.tmp_0 = r0; - r0 = pxsim.BufferMethods.slice(s.tmp_0, 10, s.len___10481); - return leaveAccessor(s, r0) + r0 = s.arg0.fields["ptr"]; + s.tmp_1 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_0, s.tmp_1); + return leave(s, r0) default: oops() } } } -radio_RadioPacket_bufferPayload__P3058.info = {"start":8841,"length":155,"line":251,"column":8,"endLine":254,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"bufferPayload","argumentNames":["this"]} -radio_RadioPacket_bufferPayload__P3058.isGetter = true; +microcode_BufferReader_peekByte__P4631.info = {"start":1480,"length":114,"line":57,"column":8,"endLine":60,"endColumn":9,"fileName":"utils.ts","functionName":"peekByte","argumentNames":["this"]} -function radio_RadioPacket_bufferPayload__P3058_mk(s) { +function microcode_BufferReader_peekByte__P4631_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_bufferPayload__P3058, depth: s.depth + 1, + parent: s, fn: microcode_BufferReader_peekByte__P4631, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - len___10481: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function radio_RadioPacket_stringPayload__P3054(s) { +function microcode_BufferReader_readBuffer__P4633(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19530,52 +20231,65 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.offset___10496 = undefined; + s.b___11064 = undefined; + s.i___11068 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - s.tmp_0 = radio_getStringOffset__P5005_mk(s); - r0 = s.arg0.fields["data"]; + if (!checkSubtype(r0, microcode_BufferReader__C4627_VT)) failedCast(r0, microcode_BufferReader__C4627_VT); + s.tmp_0 = microcode_assert__P4620_mk(s); + r0 = s.arg0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + s.arg1); s.tmp_1 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_1, 0); + r0 = s.arg0.fields["buf"]; + s.tmp_4 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_1 <= s.tmp_3); s.tmp_0.arg0 = r0; - s.callLocIdx = 165; s.pc = 3; return s.tmp_0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 1944; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; - s.offset___10496 = (r0); - r0 = pxsim_numops_toBoolDecr(s.offset___10496); - if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["data"]; - s.tmp_1 = r0; - r0 = (s.offset___10496 + 1); - s.tmp_2 = r0; - r0 = s.arg0.fields["data"]; - s.tmp_4 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_4, s.offset___10496); - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.slice(s.tmp_1, s.tmp_2, s.tmp_3); - s.tmp_0 = r0; - r0 = pxsim.BufferMethods.toString(s.tmp_0); - { step = 2; continue; } + r0 = pxsim.control.createBuffer(s.arg1); + s.b___11064 = (r0); + s.i___11068 = (0); case 1: - r0 = undefined; + r0 = (s.i___11068 < s.arg1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = r0 = s.arg0; + r0 = s.tmp_1.fields["ptr"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); + s.tmp_4 = r0 = s.b___11064; + s.tmp_5 = r0 = s.i___11068; + r0 = s.arg0.fields["buf"]; + s.tmp_7 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_7, s.tmp_3); + s.tmp_6 = r0; + r0 = pxsim.BufferMethods.setByte(s.tmp_4, s.tmp_5, s.tmp_6); + r0 = (s.i___11068 + 1); + s.i___11068 = (r0); + { step = 1; continue; } case 2: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = s.tmp_5; - return leaveAccessor(s, r0) + r0 = s.b___11064; + return leave(s, r0) default: oops() } } } -radio_RadioPacket_stringPayload__P3054.info = {"start":7264,"length":201,"line":212,"column":8,"endLine":215,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"stringPayload","argumentNames":["this"]} -radio_RadioPacket_stringPayload__P3054.isGetter = true; +microcode_BufferReader_readBuffer__P4633.info = {"start":1730,"length":228,"line":67,"column":8,"endLine":72,"endColumn":9,"fileName":"utils.ts","functionName":"readBuffer","argumentNames":["this","len"]} -function radio_RadioPacket_stringPayload__P3054_mk(s) { +function microcode_BufferReader_readBuffer__P4633_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_stringPayload__P3054, depth: s.depth + 1, + parent: s, fn: microcode_BufferReader_readBuffer__P4633, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -19583,15 +20297,18 @@ function radio_RadioPacket_stringPayload__P3054_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - offset___10496: undefined, + tmp_6: undefined, + tmp_7: undefined, + b___11064: undefined, + i___11068: undefined, arg0: undefined, + arg1: undefined, } } - -function radio_getStringOffset__P5005(s) { +function microcode_BufferReader_eof__P4630(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19605,48 +20322,35 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = s.tmp_0; - { step = 4; continue; } - case 1: - r0 = 9; - { step = 5; continue; } - case 2: - r0 = 13; - { step = 5; continue; } - case 3: - r0 = 17; - { step = 5; continue; } - case 4: - r0 = undefined; - { step = 5; continue; } - r0 = undefined; - case 5: + r0 = s.arg0; + if (!checkSubtype(r0, microcode_BufferReader__C4627_VT)) failedCast(r0, microcode_BufferReader__C4627_VT); + r0 = s.arg0.fields["ptr"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_2 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_0 >= s.tmp_1); return leave(s, r0) default: oops() } } } -radio_getStringOffset__P5005.info = {"start":13160,"length":421,"line":381,"column":4,"endLine":392,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"getStringOffset","argumentNames":["packetType"]} +microcode_BufferReader_eof__P4630.info = {"start":1399,"length":71,"line":53,"column":8,"endLine":55,"endColumn":9,"fileName":"utils.ts","functionName":"eof","argumentNames":["this"]} -function radio_getStringOffset__P5005_mk(s) { +function microcode_BufferReader_eof__P4630_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_getStringOffset__P5005, depth: s.depth + 1, + parent: s, fn: microcode_BufferReader_eof__P4630, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, } } - -function radio_RadioPacket_numberPayload__P3056(s) { +function microcode_assert__P4620(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19658,62 +20362,52 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = s.arg0.fields["data"]; + r0 = pxsim_numops_toBoolDecr(s.arg0); s.tmp_1 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_1, 0); + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = s.tmp_0; - { step = 5; continue; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = (s.arg1 == null); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 1; continue; } + s.arg1 = ("Assertion failed"); case 1: case 2: - r0 = s.arg0.fields["data"]; - s.tmp_2 = r0; - r0 = pxsim.BufferMethods.getNumber(s.tmp_2, 5, 9); - { step = 6; continue; } + s.tmp_0 = console_debug__P2525_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 1939; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = pxsim_pxtcore.throwValue(s.arg1); case 3: case 4: - r0 = s.arg0.fields["data"]; - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.getNumber(s.tmp_3, 14, 9); - { step = 6; continue; } - case 5: r0 = undefined; - case 6: - return leaveAccessor(s, r0) + return leave(s, r0) default: oops() } } } -radio_RadioPacket_numberPayload__P3056.info = {"start":7852,"length":469,"line":226,"column":8,"endLine":236,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"numberPayload","argumentNames":["this"]} -radio_RadioPacket_numberPayload__P3056.isGetter = true; +microcode_assert__P4620.info = {"start":26,"length":197,"line":1,"column":4,"endLine":7,"endColumn":5,"fileName":"utils.ts","functionName":"assert","argumentNames":["cond","msg"]} -function radio_RadioPacket_numberPayload__P3056_mk(s) { +function microcode_assert__P4620_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_numberPayload__P3056, depth: s.depth + 1, + parent: s, fn: microcode_assert__P4620, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function radio_RadioPacket_packetType__P3049(s) { +function console_debug__P2525(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19727,21 +20421,22 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = s.arg0.fields["data"]; - s.tmp_0 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_0, 0); - return leaveAccessor(s, r0) + s.tmp_0 = console_add__P2524_mk(s); + s.tmp_0.arg0 = 0; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 37; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -radio_RadioPacket_packetType__P3049.info = {"start":6783,"length":61,"line":192,"column":8,"endLine":194,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"packetType","argumentNames":["this"]} -radio_RadioPacket_packetType__P3049.isGetter = true; +console_debug__P2525.info = {"start":900,"length":82,"line":37,"column":4,"endLine":39,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"debug","argumentNames":["text"]} -function radio_RadioPacket_packetType__P3049_mk(s) { +function console_debug__P2525_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_packetType__P3049, depth: s.depth + 1, + parent: s, fn: console_debug__P2525, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -19750,8 +20445,7 @@ function radio_RadioPacket_packetType__P3049_mk(s) { - -function radio_RadioPacket_getPacket__P3046(s) { +function microcode_ProgramDefn_constructor__P4222(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19765,35 +20459,31 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = undefined; - { step = 3; continue; } - case 1: + r0 = s.arg0; + if (!checkSubtype(r0, microcode_ProgramDefn__C4220_VT)) failedCast(r0, microcode_ProgramDefn__C4220_VT); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = helpers_arrayMap__P2135_mk(s); + s.tmp_3 = microcode_PAGE_IDS__P4219_mk(s); + s.callLocIdx = 1267; s.pc = 2; return s.tmp_3; case 2: - r0 = pxsim_pxtcore_mkClassInstance(radio_RadioPacket__C3045_VT); - s.tmp_2 = r0; - s.tmp_3 = radio_RadioPacket_constructor__P5002_mk(s); - s.tmp_3.arg0 = s.tmp_2; - s.tmp_3.arg1 = s.arg0; - s.callLocIdx = 162; s.pc = 4; return s.tmp_3; - case 4: r0 = s.retval; - r0 = s.tmp_2; - case 3: + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = microcode_ProgramDefn_inline__P11113; + s.callLocIdx = 1269; s.pc = 1; return s.tmp_2; + case 1: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["pages"] = (s.tmp_1); + r0 = undefined; return leave(s, r0) default: oops() } } } -radio_RadioPacket_getPacket__P3046.info = {"start":6162,"length":168,"line":172,"column":8,"endLine":176,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"getPacket","argumentNames":["data"]} +microcode_ProgramDefn_constructor__P4222.info = {"start":11354,"length":87,"line":346,"column":8,"endLine":348,"endColumn":9,"fileName":"language.ts","functionName":"inline","argumentNames":["this"]} -function radio_RadioPacket_getPacket__P3046_mk(s) { +function microcode_ProgramDefn_constructor__P4222_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_getPacket__P3046, depth: s.depth + 1, + parent: s, fn: microcode_ProgramDefn_constructor__P4222, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -19805,8 +20495,7 @@ function radio_RadioPacket_getPacket__P3046_mk(s) { - -function radio_RadioPacket_constructor__P5002(s) { +function microcode_ProgramDefn_inline__P11113(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19818,48 +20507,35 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = (s.arg0).fields["data"] = (s.arg1); - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = pxsim_pxtcore_mkClassInstance(microcode_PageDefn__C4211_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_2 = r0 = s.arg0; - r0 = pxsim.control.createBuffer(36); - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["data"] = (s.tmp_3); + s.tmp_1 = microcode_PageDefn_constructor__P4213_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1268; s.pc = 1; return s.tmp_1; case 1: - case 2: - r0 = undefined; + r0 = s.retval; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -radio_RadioPacket_constructor__P5002.info = {"start":6509,"length":146,"line":184,"column":8,"endLine":186,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"inline","argumentNames":["this","data"]} +microcode_ProgramDefn_inline__P11113.info = {"start":11410,"length":20,"line":347,"column":40,"endLine":347,"endColumn":60,"fileName":"language.ts","functionName":"inline","argumentNames":["id"]} -function radio_RadioPacket_constructor__P5002_mk(s) { +function microcode_ProgramDefn_inline__P11113_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_constructor__P5002, depth: s.depth + 1, + parent: s, fn: microcode_ProgramDefn_inline__P11113, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_Interpreter_stop__P4613(s) { +function microcode_PAGE_IDS__P4219(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19869,38 +20545,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Interpreter__C4605_VT)) failedCast(r0, microcode_Interpreter__C4605_VT); - s.tmp_0 = microcode_Interpreter_stopAllRules__P5913_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1824; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = (s.arg0).fields["running"] = (false); - r0 = undefined; + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, 150); + r0 = pxsim_Array__push(s.tmp_0, 151); + r0 = pxsim_Array__push(s.tmp_0, 152); + r0 = pxsim_Array__push(s.tmp_0, 153); + r0 = pxsim_Array__push(s.tmp_0, 154); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_Interpreter_stop__P4613.info = {"start":26052,"length":83,"line":700,"column":8,"endLine":703,"endColumn":9,"fileName":"interpreter.ts","functionName":"stop","argumentNames":["this"]} +microcode_PAGE_IDS__P4219.info = {"start":11040,"length":246,"line":333,"column":4,"endLine":341,"endColumn":5,"fileName":"language.ts","functionName":"PAGE_IDS","argumentNames":[]} -function microcode_Interpreter_stop__P4613_mk(s) { +function microcode_PAGE_IDS__P4219_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Interpreter_stop__P4613, depth: s.depth + 1, + parent: s, fn: microcode_PAGE_IDS__P4219, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, } } - -function microcode_BufferReader_constructor__P4486(s) { +function microcode_App_load__P4445(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19910,37 +20579,51 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.e___11128 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferReader__C4485_VT)) failedCast(r0, microcode_BufferReader__C4485_VT); - r0 = (s.arg0).fields["buf"] = (s.arg1); - r0 = (s.arg0).fields["ptr"] = (s.arg2); + if (!checkSubtype(r0, microcode_App__C4442_VT)) failedCast(r0, microcode_App__C4442_VT); + r0 = pxsim_pxtcore.beginTry(1); + r0 = pxsim_pxtcore.endTry(); + r0 = pxsim.settings._get(s.arg1); + { step = 3; continue; } + r0 = pxsim_pxtcore.endTry(); + { step = 2; continue; } + case 1: + r0 = pxsim_pxtcore.getThrownValue(); + s.e___11128 = (r0); + s.tmp_0 = console_log__P2528_mk(s); + s.tmp_0.arg0 = s.e___11128; + s.callLocIdx = 1400; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + case 2: r0 = undefined; + case 3: return leave(s, r0) default: oops() } } } -microcode_BufferReader_constructor__P4486.info = {"start":1260,"length":60,"line":47,"column":8,"endLine":47,"endColumn":68,"fileName":"utils.ts","functionName":"inline","argumentNames":["this","buf","ptr"]} +microcode_App_load__P4445.info = {"start":1409,"length":212,"line":47,"column":8,"endLine":54,"endColumn":9,"fileName":"app.ts","functionName":"load","argumentNames":["this","slot"]} -function microcode_BufferReader_constructor__P4486_mk(s) { +function microcode_App_load__P4445_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_BufferReader_constructor__P4486, depth: s.depth + 1, + parent: s, fn: microcode_App_load__P4445, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + e___11128: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function microcode_ProgramDefn_fromBuffer__P4072(s) { +function settings_readBuffer__P4017(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -19950,152 +20633,28 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.defn___10573 = undefined; - s.magic___10582 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_ProgramDefn__C4067_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_ProgramDefn_constructor__P4069_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1005; s.pc = 6; return s.tmp_1; - case 6: - r0 = s.retval; - s.defn___10573 = (s.tmp_0); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 1007; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - s.tmp_0 = microcode_BufferReader_readBuffer__P4491_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 4; - s.callLocIdx = 1008; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - s.magic___10582 = (r0); - r0 = pxsim.BufferMethods.getNumber(s.magic___10582, 11, 0); - s.tmp_1 = r0; - r0 = (s.tmp_1 != 1049819173); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_2 = console_log__P2528_mk(s); - s.tmp_2.arg0 = "bad magic"; - s.callLocIdx = 1009; s.pc = 9; return s.tmp_2; - case 9: - r0 = s.retval; - r0 = s.defn___10573; - { step = 5; continue; } - case 1: - case 2: - s.tmp_0 = r0 = s.defn___10573; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["pages"] = (s.tmp_1); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 1011; s.pc = 10; return s.tmp_0; - case 10: - r0 = s.retval; - case 3: - s.tmp_2 = microcode_BufferReader_peekByte__P4489_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1012; s.pc = 11; return s.tmp_2; - case 11: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 != 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = s.defn___10573.fields["pages"]; - s.tmp_3 = r0; - s.tmp_5 = microcode_PageDefn_fromBuffer__P4065_mk(s); - s.tmp_5.arg0 = s.arg0; - s.callLocIdx = 1013; s.pc = 12; return s.tmp_5; - case 12: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_Array__push(s.tmp_3, s.tmp_4); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 1015; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - { step = 3; continue; } - case 4: - s.tmp_0 = microcode_BufferReader_readByte__P4490_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1016; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - r0 = s.defn___10573; - case 5: + r0 = pxsim.settings._get(s.arg0); return leave(s, r0) default: oops() } } } -microcode_ProgramDefn_fromBuffer__P4072.info = {"start":11376,"length":596,"line":355,"column":8,"endLine":371,"endColumn":9,"fileName":"language.ts","functionName":"fromBuffer","argumentNames":["br"]} +settings_readBuffer__P4017.info = {"start":2694,"length":72,"line":103,"column":4,"endLine":105,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"readBuffer","argumentNames":["key"]} -function microcode_ProgramDefn_fromBuffer__P4072_mk(s) { +function settings_readBuffer__P4017_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_ProgramDefn_fromBuffer__P4072, depth: s.depth + 1, + parent: s, fn: settings_readBuffer__P4017, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - defn___10573: undefined, - magic___10582: undefined, arg0: undefined, } } - -function microcode_BufferReader_readByte__P4490(s) { +function microcode_resolveTooltip__P4733(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -20105,3321 +20664,1150 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.res___11137 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferReader__C4485_VT)) failedCast(r0, microcode_BufferReader__C4485_VT); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; + r0 = pxsim_String_.mkEmpty(); + s.res___11137 = (r0); + r0 = pxsim_numops_toBoolDecr(s.arg0); s.tmp_1 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 1649; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); - r0 = s.arg0.fields["buf"]; - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_3, s.tmp_2); - return leave(s, r0) - default: oops() -} } } -microcode_BufferReader_readByte__P4490.info = {"start":1604,"length":116,"line":62,"column":8,"endLine":65,"endColumn":9,"fileName":"utils.ts","functionName":"readByte","argumentNames":["this"]} - -function microcode_BufferReader_readByte__P4490_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_BufferReader_readByte__P4490, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, -} } - - - - - -function microcode_PageDefn_fromBuffer__P4065(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.defn___10640 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_pxtcore_mkClassInstance(microcode_PageDefn__C4058_VT); + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - s.tmp_1 = microcode_PageDefn_constructor__P4060_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 988; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.defn___10640 = (s.tmp_0); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.arg0; + { step = 325; continue; } + { step = 324; continue; } + case 1: + r0 = (s.arg0 === "tagline"); s.tmp_2 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 990; s.pc = 4; return s.tmp_0; + if (!r0) { step = 2; continue; } + s.res___11137 = ("for micro:bit V2"); + { step = 323; continue; } + case 2: + r0 = (s.arg0 === "sensors"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.res___11137 = ("when..."); + { step = 322; continue; } + case 3: + r0 = (s.arg0 === "actuators"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.res___11137 = ("do..."); + { step = 321; continue; } case 4: - r0 = s.retval; - case 1: - s.tmp_2 = microcode_BufferReader_peekByte__P4489_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 991; s.pc = 5; return s.tmp_2; + r0 = (s.arg0 === "when"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.res___11137 = ("when"); + { step = 320; continue; } case 5: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 != 1); + r0 = (s.arg0 === "do"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = s.defn___10640.fields["rules"]; - s.tmp_3 = r0; - s.tmp_5 = microcode_RuleDefn_fromBuffer__P4057_mk(s); - s.tmp_5.arg0 = s.arg0; - s.callLocIdx = 992; s.pc = 6; return s.tmp_5; + if (!r0) { step = 6; continue; } + s.res___11137 = ("do"); + { step = 319; continue; } case 6: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_Array__push(s.tmp_3, s.tmp_4); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 994; s.pc = 7; return s.tmp_0; + r0 = (s.arg0 === "connect"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.res___11137 = ("connect"); + { step = 318; continue; } case 7: - r0 = s.retval; - { step = 1; continue; } - case 2: - s.tmp_0 = microcode_BufferReader_readByte__P4490_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 995; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - r0 = s.defn___10640; - return leave(s, r0) - default: oops() -} } } -microcode_PageDefn_fromBuffer__P4065.info = {"start":10183,"length":334,"line":312,"column":8,"endLine":321,"endColumn":9,"fileName":"language.ts","functionName":"fromBuffer","argumentNames":["br"]} - -function microcode_PageDefn_fromBuffer__P4065_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_PageDefn_fromBuffer__P4065, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - defn___10640: undefined, - arg0: undefined, -} } - - - - - -function microcode_RuleDefn_fromBuffer__P4057(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.defn___10671 = undefined; - s.handleFieldEditor___10674 = undefined; - s.sensorEnum___10713 = undefined; - s.actuatorEnum___10762 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleDefn__C4043_VT); + r0 = (s.arg0 === "rule"); s.tmp_0 = r0; - s.tmp_1 = microcode_RuleDefn_constructor__P4048_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 951; s.pc = 8; return s.tmp_1; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + s.res___11137 = ("rule"); + { step = 317; continue; } case 8: - r0 = s.retval; - s.defn___10671 = (s.tmp_0); - r0 = pxsim_pxtcore_mkAction(2, handleFieldEditor_inline__P10675); + r0 = (s.arg0 === "add_rule"); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.defn___10671); - s.handleFieldEditor___10674 = (s.tmp_0); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 957; s.pc = 9; return s.tmp_0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + s.res___11137 = ("add rule"); + { step = 316; continue; } case 9: - r0 = s.retval; - s.tmp_0 = microcode_BufferReader_readByte__P4490_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 958; s.pc = 10; return s.tmp_0; + r0 = (s.arg0 === "delete_rule"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + s.res___11137 = ("delete rule"); + { step = 315; continue; } case 10: - r0 = s.retval; - s.sensorEnum___10713 = (r0); - s.tmp_0 = microcode_assert__P4478_mk(s); - s.tmp_1 = microcode_isSensor__P4252_mk(s); - s.tmp_1.arg0 = s.sensorEnum___10713; - s.callLocIdx = 959; s.pc = 12; return s.tmp_1; - case 12: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 960; s.pc = 11; return s.tmp_0; + r0 = (s.arg0 === "rule_up"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + s.res___11137 = ("move rule up"); + { step = 314; continue; } case 11: - r0 = s.retval; - r0 = s.defn___10671.fields["sensors"]; + r0 = (s.arg0 === "rule_down"); s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.sensorEnum___10713); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 962; s.pc = 13; return s.tmp_0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 12; continue; } + s.res___11137 = ("move rule down"); + { step = 313; continue; } + case 12: + r0 = (s.arg0 === "disk"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + s.res___11137 = ("save"); + { step = 312; continue; } case 13: - r0 = s.retval; - case 1: - s.tmp_1 = microcode_isFilter__P4253_mk(s); - s.tmp_2 = microcode_BufferReader_peekByte__P4489_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 963; s.pc = 15; return s.tmp_2; - case 15: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.callLocIdx = 964; s.pc = 14; return s.tmp_1; + r0 = (s.arg0 === "load"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 14; continue; } + s.res___11137 = ("load"); + { step = 311; continue; } case 14: - r0 = s.retval; + r0 = (s.arg0 === "settings"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_3 = lambda_2_mk(s); - s.tmp_3.argL = s.handleFieldEditor___10674; - s.tmp_3.arg0 = "filters"; - setupLambda(s.tmp_3, s.tmp_3.argL); - s.callLocIdx = 965; s.pc = 16; return s.tmp_3; + if (!r0) { step = 15; continue; } + s.res___11137 = ("settings"); + { step = 310; continue; } + case 15: + r0 = (s.arg0 === "run"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 16; continue; } + s.res___11137 = ("run program"); + { step = 309; continue; } case 16: - r0 = s.retval; - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 967; s.pc = 17; return s.tmp_0; + r0 = (s.arg0 === "stop"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 17; continue; } + s.res___11137 = ("stop program"); + { step = 308; continue; } case 17: - r0 = s.retval; - { step = 1; continue; } - case 2: - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 969; s.pc = 18; return s.tmp_0; + r0 = (s.arg0 === "SR_LED"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 18; continue; } + s.res___11137 = ("LED {x} {y} {state}"); + { step = 307; continue; } case 18: - r0 = s.retval; - s.tmp_3 = microcode_isActuator__P4254_mk(s); - s.tmp_4 = microcode_BufferReader_peekByte__P4489_mk(s); - s.tmp_4.arg0 = s.arg0; - s.callLocIdx = 970; s.pc = 20; return s.tmp_4; - case 20: - r0 = s.retval; - s.tmp_3.arg0 = r0; - s.callLocIdx = 971; s.pc = 19; return s.tmp_3; + r0 = (s.arg0 === "SR_NOTE"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 19; continue; } + s.res___11137 = ("note {index} {state}"); + { step = 306; continue; } case 19: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (s.arg0 === "SR_ON"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = s.defn___10671; - { step = 7; continue; } - case 3: - case 4: - s.tmp_5 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_8 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_10 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_10); - s.tmp_9 = r0; - r0 = (s.tmp_8 >= s.tmp_9); - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - s.tmp_6 = r0; - r0 = pxsim_Boolean__bang(s.tmp_6); - s.tmp_5.arg0 = r0; - s.tmp_5.arg1 = undefined; - s.callLocIdx = 973; s.pc = 21; return s.tmp_5; + if (!r0) { step = 20; continue; } + s.res___11137 = ("on"); + { step = 305; continue; } + case 20: + r0 = (s.arg0 === "SR_OFF"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 21; continue; } + s.res___11137 = ("off"); + { step = 304; continue; } case 21: - r0 = s.retval; - s.tmp_0 = microcode_BufferReader_readByte__P4490_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 974; s.pc = 22; return s.tmp_0; + r0 = (s.arg0 === "C0"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 22; continue; } + s.res___11137 = ("edit"); + { step = 303; continue; } case 22: - r0 = s.retval; - s.actuatorEnum___10762 = (r0); - r0 = s.defn___10671.fields["actuators"]; + r0 = (s.arg0 === "C1"); s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.actuatorEnum___10762); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 976; s.pc = 23; return s.tmp_0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 23; continue; } + s.res___11137 = ("samples"); + { step = 302; continue; } case 23: - r0 = s.retval; - case 5: - s.tmp_1 = microcode_isModifier__P4255_mk(s); - s.tmp_2 = microcode_BufferReader_peekByte__P4489_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 977; s.pc = 25; return s.tmp_2; - case 25: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.callLocIdx = 978; s.pc = 24; return s.tmp_1; + r0 = (s.arg0 === "T10"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 24; continue; } + s.res___11137 = ("page start"); + { step = 301; continue; } case 24: - r0 = s.retval; + r0 = (s.arg0 === "T11"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_3 = lambda_2_mk(s); - s.tmp_3.argL = s.handleFieldEditor___10674; - s.tmp_3.arg0 = "modifiers"; - setupLambda(s.tmp_3, s.tmp_3.argL); - s.callLocIdx = 979; s.pc = 26; return s.tmp_3; + if (!r0) { step = 25; continue; } + s.res___11137 = ("press"); + { step = 300; continue; } + case 25: + r0 = (s.arg0 === "T12"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 26; continue; } + s.res___11137 = ("release"); + { step = 299; continue; } case 26: - r0 = s.retval; - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 >= s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 981; s.pc = 27; return s.tmp_0; + r0 = (s.arg0 === "T13"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 27; continue; } + s.res___11137 = ("move"); + { step = 298; continue; } case 27: - r0 = s.retval; - { step = 5; continue; } - case 6: - s.tmp_0 = microcode_RuleDefn_fixup__P4052_mk(s); - s.tmp_0.arg0 = s.defn___10671; - s.callLocIdx = 982; s.pc = 28; return s.tmp_0; + r0 = (s.arg0 === "T14"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 28; continue; } + s.res___11137 = ("timer"); + { step = 297; continue; } case 28: - r0 = s.retval; - r0 = s.defn___10671; - case 7: - return leave(s, r0) - default: oops() -} } } -microcode_RuleDefn_fromBuffer__P4057.info = {"start":7689,"length":1371,"line":234,"column":8,"endLine":270,"endColumn":9,"fileName":"language.ts","functionName":"fromBuffer","argumentNames":["br"]} - -function microcode_RuleDefn_fromBuffer__P4057_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleDefn_fromBuffer__P4057, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - defn___10671: undefined, - handleFieldEditor___10674: undefined, - sensorEnum___10713: undefined, - actuatorEnum___10762: undefined, - arg0: undefined, -} } - - - - - -function handleFieldEditor_inline__P10675(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.by___10677 = undefined; - s.tile___10681 = undefined; - s.field___10688 = undefined; - s.newOne___10694 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = microcode_BufferReader_readByte__P4490_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 952; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.by___10677 = (r0); - s.tmp_0 = microcode_getEditor__P4456_mk(s); - s.tmp_0.arg0 = s.by___10677; - s.callLocIdx = 953; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - s.tile___10681 = (r0); - r0 = s.tile___10681; - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); + r0 = (s.arg0 === "T15"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_FieldEditor__C5806_v5_2_mk(s); - r0 = s.tile___10681.fields["fieldEditor"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.caps[0]; - if (!checkSubtype(s.tmp_1.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_1.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.fromBuffer; - s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - s.field___10688 = (r0); - s.tmp_0 = microcode_ModifierEditor__C4403_v2_2_mk(s); - s.tmp_0.arg0 = s.tile___10681; - s.tmp_0.arg1 = s.field___10688; - if (!checkSubtype(s.tmp_0.arg0, microcode_ModifierEditor__C4403_VT)) failedCast(s.tmp_0.arg0, microcode_ModifierEditor__C4403_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getNewInstance; - s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.newOne___10694 = (r0); - s.tmp_0 = microcode_RuleDefn_push__P4053_mk(s); - s.tmp_0.arg0 = s.caps[1]; - s.tmp_0.arg1 = s.newOne___10694; - s.tmp_0.arg2 = s.arg0; - s.tmp_0.arg3 = false; - s.callLocIdx = 954; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - { step = 2; continue; } - case 1: - s.tmp_0 = microcode_RuleDefn_push__P4053_mk(s); - s.tmp_0.arg0 = s.caps[1]; - s.tmp_0.arg1 = s.by___10677; - s.tmp_0.arg2 = s.arg0; - s.tmp_0.arg3 = false; - s.callLocIdx = 955; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - case 2: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -handleFieldEditor_inline__P10675.info = {"start":7812,"length":448,"line":236,"column":38,"endLine":246,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["which"]} - -function handleFieldEditor_inline__P10675_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: handleFieldEditor_inline__P10675, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - by___10677: undefined, - tile___10681: undefined, - field___10688: undefined, - newOne___10694: undefined, - arg0: undefined, -} } - - - - - -function microcode_RuleDefn_fixup__P4052(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.tile___10796 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - r0 = s.arg0.fields["filters"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 1); + if (!r0) { step = 29; continue; } + s.res___11137 = ("light (external)"); + { step = 296; continue; } + case 29: + r0 = (s.arg0 === "T16"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = s.arg0.fields["filters"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_3, 0); - s.tile___10796 = (r0); - s.tmp_3 = microcode_isComparisonOperator__P4257_mk(s); - s.tmp_4 = microcode_getTid__P4041_mk(s); - s.tmp_4.arg0 = s.tile___10796; - s.callLocIdx = 915; s.pc = 10; return s.tmp_4; - case 10: - r0 = s.retval; - s.tmp_3.arg0 = r0; - s.callLocIdx = 916; s.pc = 9; return s.tmp_3; - case 9: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + if (!r0) { step = 30; continue; } + s.res___11137 = ("temperature"); + { step = 295; continue; } + case 30: + r0 = (s.arg0 === "T17"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_5 = microcode_RuleDefn_supportsMath__P5710_mk(s); - s.tmp_5.arg0 = s.arg0; - s.tmp_5.arg1 = s.tile___10796; - s.callLocIdx = 917; s.pc = 11; return s.tmp_5; - case 11: - r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 3; continue; } - r0 = s.arg0.fields["filters"]; - s.tmp_7 = r0; - r0 = pxsim_Array_.insertAt(s.tmp_7, 0, 220); - { step = 6; continue; } - case 3: - s.tmp_1 = microcode_isComparisonOperator__P4257_mk(s); - s.tmp_1.arg0 = s.tile___10796; - s.callLocIdx = 918; s.pc = 12; return s.tmp_1; - case 12: - r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 31; continue; } + s.res___11137 = ("radio receive"); + { step = 294; continue; } + case 31: + r0 = (s.arg0 === "T18"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_2 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["filters"] = (s.tmp_3); - case 4: - case 5: - case 6: - case 7: - case 8: - s.tmp_0 = microcode_RuleDefn_fixupMath__P5711_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = "filters"; - s.callLocIdx = 919; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - s.tmp_0 = microcode_RuleDefn_fixupMath__P5711_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = "modifiers"; - s.callLocIdx = 920; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_RuleDefn_fixup__P4052.info = {"start":4302,"length":644,"line":140,"column":8,"endLine":156,"endColumn":9,"fileName":"language.ts","functionName":"fixup","argumentNames":["this"]} - -function microcode_RuleDefn_fixup__P4052_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleDefn_fixup__P4052, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tile___10796: undefined, - arg0: undefined, -} } - - - - - -function microcode_RuleDefn_fixupMath__P5711(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.tiles___10823 = undefined; - s.i___10828 = undefined; - s.tile1___10835 = undefined; - s.tile2___10839 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - s.tmp_1 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 898; s.pc = 25; return s.tmp_1; - case 25: - r0 = s.retval; + if (!r0) { step = 32; continue; } + s.res___11137 = ("sound"); + { step = 293; continue; } + case 32: + r0 = (s.arg0 === "T19"); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg1); - s.tiles___10823 = (r0); - s.i___10828 = (0); - case 1: - s.tmp_1 = r0 = s.i___10828; - r0 = pxsim_Array__length(s.tiles___10823); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 33; continue; } + s.res___11137 = ("variable X set"); + { step = 292; continue; } + case 33: + r0 = (s.arg0 === "T20"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 24; continue; } - r0 = pxsim_Array__getAt(s.tiles___10823, s.i___10828); - s.tile1___10835 = (r0); - s.tmp_0 = r0 = s.tiles___10823; - r0 = (s.i___10828 + 1); - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); - s.tile2___10839 = (r0); - s.tmp_1 = microcode_RuleDefn_supportsMath__P5710_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.tile1___10835; - s.callLocIdx = 899; s.pc = 26; return s.tmp_1; - case 26: - r0 = s.retval; + if (!r0) { step = 34; continue; } + s.res___11137 = ("variable Y set"); + { step = 291; continue; } + case 34: + r0 = (s.arg0 === "T21"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 5; continue; } - case 2: - s.tmp_3 = microcode_RuleDefn_supportsMath__P5710_mk(s); - s.tmp_3.arg0 = s.arg0; - s.tmp_3.arg1 = s.tile2___10839; - s.callLocIdx = 900; s.pc = 27; return s.tmp_3; - case 27: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (!r0) { step = 3; continue; } - r0 = s.tmp_2; - { step = 4; continue; } - case 3: - s.tmp_5 = microcode_getKind__P4280_mk(s); - s.tmp_5.arg0 = s.tile2___10839; - s.callLocIdx = 901; s.pc = 28; return s.tmp_5; - case 28: - r0 = s.retval; - s.tmp_4 = r0; - r0 = (s.tmp_4 == 9); - case 4: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = s.tmp_6; - case 5: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 6; continue; } - s.tmp_8 = r0 = s.tiles___10823; - r0 = (s.i___10828 + 1); - s.tmp_9 = r0; - r0 = pxsim_Array_.insertAt(s.tmp_8, s.tmp_9, 210); - { step = 23; continue; } - case 6: - s.tmp_1 = microcode_isMathOperator__P4256_mk(s); - s.tmp_2 = microcode_getTid__P4041_mk(s); - s.tmp_2.arg0 = s.tile1___10835; - s.callLocIdx = 902; s.pc = 30; return s.tmp_2; - case 30: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.callLocIdx = 903; s.pc = 29; return s.tmp_1; - case 29: - r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 35; continue; } + s.res___11137 = ("variable Z set"); + { step = 290; continue; } + case 35: + r0 = (s.arg0 === "T22"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 7; continue; } - r0 = s.tmp_0; - { step = 8; continue; } - case 7: - r0 = (s.i___10828 == 0); - case 8: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 9; continue; } - s.tmp_4 = helpers_arraySplice__P2129_mk(s); - s.tmp_4.arg0 = s.tiles___10823; - s.tmp_4.arg1 = s.i___10828; - s.tmp_4.arg2 = 1; - s.callLocIdx = 904; s.pc = 31; return s.tmp_4; - case 31: - r0 = s.retval; - { step = 22; continue; } - case 9: - s.tmp_3 = microcode_RuleDefn_supportsMath__P5710_mk(s); - s.tmp_3.arg0 = s.arg0; - s.tmp_3.arg1 = s.tile1___10835; - s.callLocIdx = 905; s.pc = 32; return s.tmp_3; - case 32: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 36; continue; } + s.res___11137 = ("magnet"); + { step = 289; continue; } + case 36: + r0 = (s.arg0 === "T23"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 10; continue; } - r0 = s.tmp_0; - { step = 11; continue; } - case 10: - s.tmp_4 = microcode_isMathOperator__P4256_mk(s); - s.tmp_5 = microcode_getTid__P4041_mk(s); - s.tmp_5.arg0 = s.tile2___10839; - s.callLocIdx = 906; s.pc = 34; return s.tmp_5; - case 34: - r0 = s.retval; - s.tmp_4.arg0 = r0; - s.callLocIdx = 907; s.pc = 33; return s.tmp_4; - case 33: - r0 = s.retval; - case 11: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 12; continue; } - s.tmp_7 = helpers_arraySplice__P2129_mk(s); - s.tmp_7.arg0 = s.tiles___10823; - r0 = (s.i___10828 + 1); - s.tmp_7.arg1 = r0; - s.tmp_7.arg2 = 1; - s.callLocIdx = 908; s.pc = 35; return s.tmp_7; - case 35: - r0 = s.retval; - { step = 21; continue; } - case 12: - s.tmp_1 = microcode_isMathOperator__P4256_mk(s); - s.tmp_2 = microcode_getTid__P4041_mk(s); - s.tmp_2.arg0 = s.tile2___10839; - s.callLocIdx = 909; s.pc = 37; return s.tmp_2; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 37; continue; } + s.res___11137 = ("slider"); + { step = 288; continue; } case 37: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.callLocIdx = 910; s.pc = 36; return s.tmp_1; - case 36: - r0 = s.retval; + r0 = (s.arg0 === "T24"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 13; continue; } - r0 = s.tmp_0; - { step = 14; continue; } - case 13: - s.tmp_3 = r0 = s.i___10828; - r0 = pxsim_Array__length(s.tiles___10823); - s.tmp_5 = r0; - r0 = (s.tmp_5 - 2); - s.tmp_4 = r0; - r0 = (s.tmp_3 == s.tmp_4); - case 14: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 15; continue; } - s.tmp_7 = helpers_arraySplice__P2129_mk(s); - s.tmp_7.arg0 = s.tiles___10823; - r0 = (s.i___10828 + 1); - s.tmp_7.arg1 = r0; - s.tmp_7.arg2 = 1; - s.callLocIdx = 911; s.pc = 38; return s.tmp_7; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 38; continue; } + s.res___11137 = ("dial"); + { step = 287; continue; } case 38: - r0 = s.retval; - { step = 20; continue; } - case 15: - s.tmp_1 = microcode_isMathOperator__P4256_mk(s); - s.tmp_2 = microcode_getTid__P4041_mk(s); - s.tmp_2.arg0 = s.tile1___10835; - s.callLocIdx = 912; s.pc = 40; return s.tmp_2; - case 40: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.callLocIdx = 913; s.pc = 39; return s.tmp_1; + r0 = (s.arg0 === "T25"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 39; continue; } + s.res___11137 = ("wall"); + { step = 286; continue; } case 39: - r0 = s.retval; + r0 = (s.arg0 === "T26"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 16; continue; } - r0 = s.tmp_0; - { step = 17; continue; } - case 16: - s.tmp_5 = microcode_RuleDefn_supportsMath__P5710_mk(s); - s.tmp_5.arg0 = s.arg0; - s.tmp_5.arg1 = s.tile2___10839; - s.callLocIdx = 914; s.pc = 41; return s.tmp_5; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 40; continue; } + s.res___11137 = ("line"); + { step = 285; continue; } + case 40: + r0 = (s.arg0 === "T27"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 41; continue; } + s.res___11137 = ("light"); + { step = 284; continue; } case 41: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - case 17: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 18; continue; } - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - r0 = (s.i___10828 + 1); - s.i___10828 = (r0); - { step = 1; continue; } - case 24: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_RuleDefn_fixupMath__P5711.info = {"start":3080,"length":1212,"line":108,"column":8,"endLine":138,"endColumn":9,"fileName":"language.ts","functionName":"fixupMath","argumentNames":["this","name"]} - -function microcode_RuleDefn_fixupMath__P5711_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleDefn_fixupMath__P5711, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tiles___10823: undefined, - i___10828: undefined, - tile1___10835: undefined, - tile2___10839: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function microcode_isMathOperator__P4256(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = (s.arg0 >= 210); + r0 = (s.arg0 === "T28"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 213); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; - return leave(s, r0) - default: oops() -} } } -microcode_isMathOperator__P4256.info = {"start":8140,"length":124,"line":257,"column":4,"endLine":259,"endColumn":5,"fileName":"tiles.ts","functionName":"isMathOperator","argumentNames":["tid"]} - -function microcode_isMathOperator__P4256_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_isMathOperator__P4256, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, -} } - - - - - -function microcode_RuleDefn_getRuleRep__P4050(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - r0 = pxsim_pxtrt.mkMap(); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 42; continue; } + s.res___11137 = ("moisture"); + { step = 283; continue; } + case 42: + r0 = (s.arg0 === "T29"); s.tmp_0 = r0; - r0 = s.arg0.fields["sensors"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "sensors", s.tmp_1); - r0 = s.arg0.fields["filters"]; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "filters", s.tmp_2); - r0 = s.arg0.fields["actuators"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "actuators", s.tmp_3); - r0 = s.arg0.fields["modifiers"]; - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "modifiers", s.tmp_4); - r0 = s.tmp_0; - return leave(s, r0) - default: oops() -} } } -microcode_RuleDefn_getRuleRep__P4050.info = {"start":2402,"length":239,"line":86,"column":8,"endLine":93,"endColumn":9,"fileName":"language.ts","functionName":"getRuleRep","argumentNames":["this"]} - -function microcode_RuleDefn_getRuleRep__P4050_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleDefn_getRuleRep__P4050, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, -} } - - - - - -function microcode_RuleDefn_supportsMath__P5710(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - s.tmp_2 = microcode_getKind__P4280_mk(s); - s.tmp_2.arg0 = s.arg1; - s.callLocIdx = 894; s.pc = 7; return s.tmp_2; - case 7: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 == 1); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 43; continue; } + s.res___11137 = ("distance"); + { step = 282; continue; } + case 43: + r0 = (s.arg0 === "T30"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_4 = microcode_getKind__P4280_mk(s); - s.tmp_4.arg0 = s.arg1; - s.callLocIdx = 895; s.pc = 8; return s.tmp_4; - case 8: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_3 == 2); - case 2: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBool(s.tmp_5); - if (!r0) { step = 3; continue; } - r0 = s.tmp_5; - { step = 4; continue; } - case 3: - s.tmp_7 = microcode_getKind__P4280_mk(s); - s.tmp_7.arg0 = s.arg1; - s.callLocIdx = 896; s.pc = 9; return s.tmp_7; - case 9: - r0 = s.retval; - s.tmp_6 = r0; - r0 = (s.tmp_6 == 7); - case 4: - // jmp value (already in r0) - s.tmp_8 = r0; - r0 = pxsim_numops_toBool(s.tmp_8); - if (!r0) { step = 5; continue; } - r0 = s.tmp_8; - { step = 6; continue; } - case 5: - s.tmp_10 = microcode_getKind__P4280_mk(s); - s.tmp_10.arg0 = s.arg1; - s.callLocIdx = 897; s.pc = 10; return s.tmp_10; - case 10: - r0 = s.retval; - s.tmp_9 = r0; - r0 = (s.tmp_9 == 6); - case 6: - // jmp value (already in r0) - s.tmp_11 = r0; - r0 = s.tmp_11; - return leave(s, r0) - default: oops() -} } } -microcode_RuleDefn_supportsMath__P5710.info = {"start":2774,"length":296,"line":99,"column":8,"endLine":106,"endColumn":9,"fileName":"language.ts","functionName":"supportsMath","argumentNames":["this","tile"]} - -function microcode_RuleDefn_supportsMath__P5710_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleDefn_supportsMath__P5710, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function microcode_isComparisonOperator__P4257(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = (s.arg0 >= 220); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 44; continue; } + s.res___11137 = ("reflected light"); + { step = 281; continue; } + case 44: + r0 = (s.arg0 === "T40"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 225); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; - return leave(s, r0) - default: oops() -} } } -microcode_isComparisonOperator__P4257.info = {"start":8270,"length":128,"line":261,"column":4,"endLine":263,"endColumn":5,"fileName":"tiles.ts","functionName":"isComparisonOperator","argumentNames":["tid"]} - -function microcode_isComparisonOperator__P4257_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_isComparisonOperator__P4257, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, -} } - - - - - -function microcode_isModifier__P4255(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = (s.arg0 >= 150); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 45; continue; } + s.res___11137 = ("switch page"); + { step = 280; continue; } + case 45: + r0 = (s.arg0 === "T41"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 205); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 4; continue; } - case 3: - s.tmp_2 = microcode_isMathOperator__P4256_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1048; s.pc = 7; return s.tmp_2; - case 7: - r0 = s.retval; - case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (!r0) { step = 5; continue; } - r0 = s.tmp_3; - { step = 6; continue; } - case 5: - r0 = (s.arg0 == 255); - case 6: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = s.tmp_4; - return leave(s, r0) - default: oops() -} } } -microcode_isModifier__P4255.info = {"start":7917,"length":217,"line":249,"column":4,"endLine":255,"endColumn":5,"fileName":"tiles.ts","functionName":"isModifier","argumentNames":["tid"]} - -function microcode_isModifier__P4255_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_isModifier__P4255, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, -} } - - - - - -function microcode_isActuator__P4254(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = (s.arg0 >= 40); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 46; continue; } + s.res___11137 = ("play sound"); + { step = 279; continue; } + case 46: + r0 = (s.arg0 === "T43"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 55); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; - return leave(s, r0) - default: oops() -} } } -microcode_isActuator__P4254.info = {"start":7799,"length":112,"line":245,"column":4,"endLine":247,"endColumn":5,"fileName":"tiles.ts","functionName":"isActuator","argumentNames":["tid"]} - -function microcode_isActuator__P4254_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_isActuator__P4254, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, -} } - - - - - -function microcode_isFilter__P4253(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = (s.arg0 >= 70); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 47; continue; } + s.res___11137 = ("music"); + { step = 278; continue; } + case 47: + r0 = (s.arg0 === "T44"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 111); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 4; continue; } - case 3: - s.tmp_2 = microcode_isMathOperator__P4256_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1046; s.pc = 9; return s.tmp_2; - case 9: - r0 = s.retval; - case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (!r0) { step = 5; continue; } - r0 = s.tmp_3; - { step = 6; continue; } - case 5: - s.tmp_4 = microcode_isComparisonOperator__P4257_mk(s); - s.tmp_4.arg0 = s.arg0; - s.callLocIdx = 1047; s.pc = 10; return s.tmp_4; - case 10: - r0 = s.retval; - case 6: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBool(s.tmp_5); - if (!r0) { step = 7; continue; } - r0 = s.tmp_5; - { step = 8; continue; } - case 7: - r0 = (s.arg0 == 255); - case 8: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = s.tmp_6; - return leave(s, r0) - default: oops() -} } } -microcode_isFilter__P4253.info = {"start":7540,"length":253,"line":236,"column":4,"endLine":243,"endColumn":5,"fileName":"tiles.ts","functionName":"isFilter","argumentNames":["tid"]} - -function microcode_isFilter__P4253_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_isFilter__P4253, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - arg0: undefined, -} } - - - - - -function microcode_isSensor__P4252(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = (s.arg0 >= 10); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 48; continue; } + s.res___11137 = ("show image"); + { step = 277; continue; } + case 48: + r0 = (s.arg0 === "T45"); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 30); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; - return leave(s, r0) - default: oops() -} } } -microcode_isSensor__P4252.info = {"start":7428,"length":106,"line":232,"column":4,"endLine":234,"endColumn":5,"fileName":"tiles.ts","functionName":"isSensor","argumentNames":["tid"]} - -function microcode_isSensor__P4252_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_isSensor__P4252, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, -} } - - - - - -function microcode_RuleDefn_push__P4053(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.tiles___11022 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - s.tmp_1 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 921; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 49; continue; } + s.res___11137 = ("radio send"); + { step = 276; continue; } + case 49: + r0 = (s.arg0 === "T46"); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg2); - s.tiles___11022 = (r0); - r0 = pxsim_Array__push(s.tiles___11022, s.arg1); - r0 = pxsim_numops_toBoolDecr(s.arg3); - if (!r0) { step = 1; continue; } - s.tmp_0 = microcode_RuleDefn_fixup__P4052_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 922; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - case 1: - case 2: - r0 = 1; - return leave(s, r0) - default: oops() -} } } -microcode_RuleDefn_push__P4053.info = {"start":4956,"length":203,"line":158,"column":8,"endLine":163,"endColumn":9,"fileName":"language.ts","functionName":"push","argumentNames":["this","tile","name","fix"]} - -function microcode_RuleDefn_push__P4053_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleDefn_push__P4053, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tiles___11022: undefined, - arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, -} } - - - - - -function microcode_ModifierEditor_getNewInstance__P4409(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_ModifierEditor__C4403_VT)) failedCast(r0, microcode_ModifierEditor__C4403_VT); - r0 = null; - return leave(s, r0) - default: oops() -} } } -microcode_ModifierEditor_getNewInstance__P4409.info = {"start":1249,"length":85,"line":46,"column":8,"endLine":48,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNewInstance","argumentNames":["this","field"]} - -function microcode_ModifierEditor_getNewInstance__P4409_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_ModifierEditor_getNewInstance__P4409, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, - arg1: undefined, -} } - - - - - -function microcode_FieldEditor_fromBuffer__P5812(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_FieldEditor__C5806_VT)) failedCast(r0, microcode_FieldEditor__C5806_VT); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_FieldEditor_fromBuffer__P5812.info = {"start":829,"length":75,"line":29,"column":8,"endLine":31,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"fromBuffer","argumentNames":["this","buf"]} - -function microcode_FieldEditor_fromBuffer__P5812_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_FieldEditor_fromBuffer__P5812, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, - arg1: undefined, -} } - - - - - -function microcode_RuleDefn_constructor__P4048(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["sensors"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["filters"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["actuators"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["modifiers"] = (s.tmp_1); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_RuleDefn_constructor__P4048.info = {"start":2099,"length":149,"line":74,"column":8,"endLine":79,"endColumn":9,"fileName":"language.ts","functionName":"inline","argumentNames":["this"]} - -function microcode_RuleDefn_constructor__P4048_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleDefn_constructor__P4048, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, -} } - - - - - -function microcode_PageDefn_constructor__P4060(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageDefn__C4058_VT)) failedCast(r0, microcode_PageDefn__C4058_VT); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["rules"] = (s.tmp_1); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_PageDefn_constructor__P4060.info = {"start":9131,"length":53,"line":276,"column":8,"endLine":278,"endColumn":9,"fileName":"language.ts","functionName":"inline","argumentNames":["this"]} - -function microcode_PageDefn_constructor__P4060_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_PageDefn_constructor__P4060, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, -} } - - - - - -function microcode_BufferReader_peekByte__P4489(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferReader__C4485_VT)) failedCast(r0, microcode_BufferReader__C4485_VT); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 1648; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = s.arg0.fields["buf"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["ptr"]; - s.tmp_1 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_0, s.tmp_1); - return leave(s, r0) - default: oops() -} } } -microcode_BufferReader_peekByte__P4489.info = {"start":1480,"length":114,"line":57,"column":8,"endLine":60,"endColumn":9,"fileName":"utils.ts","functionName":"peekByte","argumentNames":["this"]} - -function microcode_BufferReader_peekByte__P4489_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_BufferReader_peekByte__P4489, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, -} } - - - - - -function microcode_BufferReader_readBuffer__P4491(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.b___11081 = undefined; - s.i___11085 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferReader__C4485_VT)) failedCast(r0, microcode_BufferReader__C4485_VT); - s.tmp_0 = microcode_assert__P4478_mk(s); - r0 = s.arg0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + s.arg1); - s.tmp_1 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_4 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_1 <= s.tmp_3); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 1650; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = pxsim.control.createBuffer(s.arg1); - s.b___11081 = (r0); - s.i___11085 = (0); - case 1: - r0 = (s.i___11085 < s.arg1); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 50; continue; } + s.res___11137 = ("radio set group"); + { step = 275; continue; } + case 50: + r0 = (s.arg0 === "T47"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = r0 = s.arg0; - r0 = s.tmp_1.fields["ptr"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); - s.tmp_4 = r0 = s.b___11081; - s.tmp_5 = r0 = s.i___11085; - r0 = s.arg0.fields["buf"]; - s.tmp_7 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_7, s.tmp_3); - s.tmp_6 = r0; - r0 = pxsim.BufferMethods.setByte(s.tmp_4, s.tmp_5, s.tmp_6); - r0 = (s.i___11085 + 1); - s.i___11085 = (r0); - { step = 1; continue; } - case 2: - r0 = s.b___11081; - return leave(s, r0) - default: oops() -} } } -microcode_BufferReader_readBuffer__P4491.info = {"start":1730,"length":228,"line":67,"column":8,"endLine":72,"endColumn":9,"fileName":"utils.ts","functionName":"readBuffer","argumentNames":["this","len"]} - -function microcode_BufferReader_readBuffer__P4491_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_BufferReader_readBuffer__P4491, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - b___11081: undefined, - i___11085: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function microcode_BufferReader_eof__P4488(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferReader__C4485_VT)) failedCast(r0, microcode_BufferReader__C4485_VT); - r0 = s.arg0.fields["ptr"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_2 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_0 >= s.tmp_1); - return leave(s, r0) - default: oops() -} } } -microcode_BufferReader_eof__P4488.info = {"start":1399,"length":71,"line":53,"column":8,"endLine":55,"endColumn":9,"fileName":"utils.ts","functionName":"eof","argumentNames":["this"]} - -function microcode_BufferReader_eof__P4488_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_BufferReader_eof__P4488, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - arg0: undefined, -} } - - - - - -function microcode_assert__P4478(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + if (!r0) { step = 51; continue; } + s.res___11137 = ("LED"); + { step = 274; continue; } + case 51: + r0 = (s.arg0 === "T48"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = (s.arg1 == null); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 1; continue; } - s.arg1 = ("Assertion failed"); - case 1: - case 2: - s.tmp_0 = console_debug__P2525_mk(s); - s.tmp_0.arg0 = s.arg1; - s.callLocIdx = 1645; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.arg1); - case 3: - case 4: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_assert__P4478.info = {"start":26,"length":197,"line":1,"column":4,"endLine":7,"endColumn":5,"fileName":"utils.ts","functionName":"assert","argumentNames":["cond","msg"]} - -function microcode_assert__P4478_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_assert__P4478, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function console_debug__P2525(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = console_add__P2524_mk(s); - s.tmp_0.arg0 = 0; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 39; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -console_debug__P2525.info = {"start":900,"length":82,"line":37,"column":4,"endLine":39,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"debug","argumentNames":["text"]} - -function console_debug__P2525_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: console_debug__P2525, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - arg0: undefined, -} } - - - - - -function microcode_ProgramDefn_constructor__P4069(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_ProgramDefn__C4067_VT)) failedCast(r0, microcode_ProgramDefn__C4067_VT); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = helpers_arrayMap__P2135_mk(s); - s.tmp_3 = microcode_PAGE_IDS__P4066_mk(s); - s.callLocIdx = 996; s.pc = 2; return s.tmp_3; - case 2: - r0 = s.retval; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = microcode_ProgramDefn_inline__P11130; - s.callLocIdx = 998; s.pc = 1; return s.tmp_2; - case 1: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["pages"] = (s.tmp_1); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_ProgramDefn_constructor__P4069.info = {"start":10843,"length":87,"line":337,"column":8,"endLine":339,"endColumn":9,"fileName":"language.ts","functionName":"inline","argumentNames":["this"]} - -function microcode_ProgramDefn_constructor__P4069_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_ProgramDefn_constructor__P4069, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, -} } - - - - - -function microcode_ProgramDefn_inline__P11130(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_pxtcore_mkClassInstance(microcode_PageDefn__C4058_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_PageDefn_constructor__P4060_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 997; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - r0 = s.tmp_0; - return leave(s, r0) - default: oops() -} } } -microcode_ProgramDefn_inline__P11130.info = {"start":10899,"length":20,"line":338,"column":40,"endLine":338,"endColumn":60,"fileName":"language.ts","functionName":"inline","argumentNames":["id"]} - -function microcode_ProgramDefn_inline__P11130_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_ProgramDefn_inline__P11130, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, -} } - - - - - -function microcode_PAGE_IDS__P4066(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - r0 = pxsim_Array__mk(); + if (!r0) { step = 52; continue; } + s.res___11137 = ("set variable X"); + { step = 273; continue; } + case 52: + r0 = (s.arg0 === "T49"); s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, 150); - r0 = pxsim_Array__push(s.tmp_0, 151); - r0 = pxsim_Array__push(s.tmp_0, 152); - r0 = pxsim_Array__push(s.tmp_0, 153); - r0 = pxsim_Array__push(s.tmp_0, 154); - r0 = s.tmp_0; - return leave(s, r0) - default: oops() -} } } -microcode_PAGE_IDS__P4066.info = {"start":10529,"length":246,"line":324,"column":4,"endLine":332,"endColumn":5,"fileName":"language.ts","functionName":"PAGE_IDS","argumentNames":[]} - -function microcode_PAGE_IDS__P4066_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_PAGE_IDS__P4066, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, -} } - - - - - -function microcode_App_load__P4294(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.e___11145 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_App__C4291_VT)) failedCast(r0, microcode_App__C4291_VT); - r0 = pxsim_pxtcore.beginTry(1); - r0 = pxsim_pxtcore.endTry(); - r0 = pxsim.settings._get(s.arg1); - { step = 3; continue; } - r0 = pxsim_pxtcore.endTry(); - { step = 2; continue; } - case 1: - r0 = pxsim_pxtcore.getThrownValue(); - s.e___11145 = (r0); - s.tmp_0 = console_log__P2528_mk(s); - s.tmp_0.arg0 = s.e___11145; - s.callLocIdx = 1125; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - case 2: - r0 = undefined; - case 3: - return leave(s, r0) - default: oops() -} } } -microcode_App_load__P4294.info = {"start":1409,"length":212,"line":47,"column":8,"endLine":54,"endColumn":9,"fileName":"app.ts","functionName":"load","argumentNames":["this","slot"]} - -function microcode_App_load__P4294_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_App_load__P4294, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - e___11145: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function settings_readBuffer__P3098(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim.settings._get(s.arg0); - return leave(s, r0) - default: oops() -} } } -settings_readBuffer__P3098.info = {"start":2694,"length":72,"line":103,"column":4,"endLine":105,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"readBuffer","argumentNames":["key"]} - -function settings_readBuffer__P3098_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: settings_readBuffer__P3098, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, -} } - - - - - -function microcode_resolveTooltip__P4590(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.res___11154 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_String_.mkEmpty(); - s.res___11154 = (r0); - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 53; continue; } + s.res___11137 = ("set variable Y"); + { step = 272; continue; } + case 53: + r0 = (s.arg0 === "T50"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.arg0; - { step = 329; continue; } - { step = 328; continue; } - case 1: - r0 = (s.arg0 === "tagline"); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 2; continue; } - s.res___11154 = ("for micro:bit V2"); - { step = 327; continue; } - case 2: - r0 = (s.arg0 === "sensors"); + if (!r0) { step = 54; continue; } + s.res___11137 = ("set variable Z"); + { step = 271; continue; } + case 54: + r0 = (s.arg0 === "T51"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.res___11154 = ("when..."); - { step = 326; continue; } - case 3: - r0 = (s.arg0 === "actuators"); + if (!r0) { step = 55; continue; } + s.res___11137 = ("show number"); + { step = 270; continue; } + case 55: + r0 = (s.arg0 === "T52"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.res___11154 = ("do..."); - { step = 325; continue; } - case 4: - r0 = (s.arg0 === "when"); + if (!r0) { step = 56; continue; } + s.res___11137 = ("robot"); + { step = 269; continue; } + case 56: + r0 = (s.arg0 === "T53"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.res___11154 = ("when"); - { step = 324; continue; } - case 5: - r0 = (s.arg0 === "do"); + if (!r0) { step = 57; continue; } + s.res___11137 = ("servo set angle"); + { step = 268; continue; } + case 57: + r0 = (s.arg0 === "T54"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.res___11154 = ("do"); - { step = 323; continue; } - case 6: - r0 = (s.arg0 === "connect"); + if (!r0) { step = 58; continue; } + s.res___11137 = ("relay"); + { step = 267; continue; } + case 58: + r0 = (s.arg0 === "T55"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.res___11154 = ("connect"); - { step = 322; continue; } - case 7: - r0 = (s.arg0 === "rule"); + if (!r0) { step = 59; continue; } + s.res___11137 = ("servo power"); + { step = 266; continue; } + case 59: + r0 = (s.arg0 === "T70"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.res___11154 = ("rule"); - { step = 321; continue; } - case 8: - r0 = (s.arg0 === "add_rule"); + if (!r0) { step = 60; continue; } + s.res___11137 = ("touch pin 0"); + { step = 265; continue; } + case 60: + r0 = (s.arg0 === "T71"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - s.res___11154 = ("add rule"); - { step = 320; continue; } - case 9: - r0 = (s.arg0 === "delete_rule"); + if (!r0) { step = 61; continue; } + s.res___11137 = ("touch pin 1"); + { step = 264; continue; } + case 61: + r0 = (s.arg0 === "T72"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 10; continue; } - s.res___11154 = ("delete rule"); - { step = 319; continue; } - case 10: - r0 = (s.arg0 === "rule_up"); + if (!r0) { step = 62; continue; } + s.res___11137 = ("touch pin 2"); + { step = 263; continue; } + case 62: + r0 = (s.arg0 === "T73"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 11; continue; } - s.res___11154 = ("move rule up"); - { step = 318; continue; } - case 11: - r0 = (s.arg0 === "rule_down"); + if (!r0) { step = 63; continue; } + s.res___11137 = ("button A"); + { step = 262; continue; } + case 63: + r0 = (s.arg0 === "T74"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 12; continue; } - s.res___11154 = ("move rule down"); - { step = 317; continue; } - case 12: - r0 = (s.arg0 === "disk"); + if (!r0) { step = 64; continue; } + s.res___11137 = ("button B"); + { step = 261; continue; } + case 64: + r0 = (s.arg0 === "T75"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - s.res___11154 = ("save"); - { step = 316; continue; } - case 13: - r0 = (s.arg0 === "load"); + if (!r0) { step = 65; continue; } + s.res___11137 = ("key 1"); + { step = 260; continue; } + case 65: + r0 = (s.arg0 === "T76"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - s.res___11154 = ("load"); - { step = 315; continue; } - case 14: - r0 = (s.arg0 === "SR_LED"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - s.res___11154 = ("LED {x} {y} {state}"); - { step = 314; continue; } - case 15: - r0 = (s.arg0 === "SR_NOTE"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 16; continue; } - s.res___11154 = ("note {index} {state}"); - { step = 313; continue; } - case 16: - r0 = (s.arg0 === "SR_ON"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 17; continue; } - s.res___11154 = ("on"); - { step = 312; continue; } - case 17: - r0 = (s.arg0 === "SR_OFF"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 18; continue; } - s.res___11154 = ("off"); - { step = 311; continue; } - case 18: - r0 = (s.arg0 === "C0"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 19; continue; } - s.res___11154 = ("edit"); - { step = 310; continue; } - case 19: - r0 = (s.arg0 === "C1"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 20; continue; } - s.res___11154 = ("samples"); - { step = 309; continue; } - case 20: - r0 = (s.arg0 === "T10"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 21; continue; } - s.res___11154 = ("page start"); - { step = 308; continue; } - case 21: - r0 = (s.arg0 === "T11"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 22; continue; } - s.res___11154 = ("press"); - { step = 307; continue; } - case 22: - r0 = (s.arg0 === "T12"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 23; continue; } - s.res___11154 = ("release"); - { step = 306; continue; } - case 23: - r0 = (s.arg0 === "T13"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 24; continue; } - s.res___11154 = ("move"); - { step = 305; continue; } - case 24: - r0 = (s.arg0 === "T14"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 25; continue; } - s.res___11154 = ("timer"); - { step = 304; continue; } - case 25: - r0 = (s.arg0 === "T15"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 26; continue; } - s.res___11154 = ("light"); - { step = 303; continue; } - case 26: - r0 = (s.arg0 === "T16"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 27; continue; } - s.res___11154 = ("temperature"); - { step = 302; continue; } - case 27: - r0 = (s.arg0 === "T17"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 28; continue; } - s.res___11154 = ("radio receive"); - { step = 301; continue; } - case 28: - r0 = (s.arg0 === "T18"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 29; continue; } - s.res___11154 = ("hear"); - { step = 300; continue; } - case 29: - r0 = (s.arg0 === "T19"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 30; continue; } - s.res___11154 = ("variable X set"); - { step = 299; continue; } - case 30: - r0 = (s.arg0 === "T20"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 31; continue; } - s.res___11154 = ("variable Y set"); - { step = 298; continue; } - case 31: - r0 = (s.arg0 === "T21"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 32; continue; } - s.res___11154 = ("variable Z set"); - { step = 297; continue; } - case 32: - r0 = (s.arg0 === "T22"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 33; continue; } - s.res___11154 = ("magnet"); - { step = 296; continue; } - case 33: - r0 = (s.arg0 === "T23"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 34; continue; } - s.res___11154 = ("slider"); - { step = 295; continue; } - case 34: - r0 = (s.arg0 === "T24"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 35; continue; } - s.res___11154 = ("dial"); - { step = 294; continue; } - case 35: - r0 = (s.arg0 === "T25"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 36; continue; } - s.res___11154 = ("wall"); - { step = 293; continue; } - case 36: - r0 = (s.arg0 === "T26"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 37; continue; } - s.res___11154 = ("line"); - { step = 292; continue; } - case 37: - r0 = (s.arg0 === "T27"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 38; continue; } - s.res___11154 = ("light"); - { step = 291; continue; } - case 38: - r0 = (s.arg0 === "T28"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 39; continue; } - s.res___11154 = ("moisture"); - { step = 290; continue; } - case 39: - r0 = (s.arg0 === "T29"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 40; continue; } - s.res___11154 = ("distance"); - { step = 289; continue; } - case 40: - r0 = (s.arg0 === "T30"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 41; continue; } - s.res___11154 = ("line"); - { step = 288; continue; } - case 41: - r0 = (s.arg0 === "T40"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 42; continue; } - s.res___11154 = ("switch page"); - { step = 287; continue; } - case 42: - r0 = (s.arg0 === "T41"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 43; continue; } - s.res___11154 = ("play sound"); - { step = 286; continue; } - case 43: - r0 = (s.arg0 === "T43"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 44; continue; } - s.res___11154 = ("music"); - { step = 285; continue; } - case 44: - r0 = (s.arg0 === "T44"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 45; continue; } - s.res___11154 = ("show image"); - { step = 284; continue; } - case 45: - r0 = (s.arg0 === "T45"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 46; continue; } - s.res___11154 = ("radio send"); - { step = 283; continue; } - case 46: - r0 = (s.arg0 === "T46"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 47; continue; } - s.res___11154 = ("radio set group"); - { step = 282; continue; } - case 47: - r0 = (s.arg0 === "T47"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 48; continue; } - s.res___11154 = ("LED"); - { step = 281; continue; } - case 48: - r0 = (s.arg0 === "T48"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 49; continue; } - s.res___11154 = ("set variable X"); - { step = 280; continue; } - case 49: - r0 = (s.arg0 === "T49"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 50; continue; } - s.res___11154 = ("set variable Y"); - { step = 279; continue; } - case 50: - r0 = (s.arg0 === "T50"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 51; continue; } - s.res___11154 = ("set variable Z"); - { step = 278; continue; } - case 51: - r0 = (s.arg0 === "T51"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 52; continue; } - s.res___11154 = ("show number"); - { step = 277; continue; } - case 52: - r0 = (s.arg0 === "T52"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 53; continue; } - s.res___11154 = ("robot"); - { step = 276; continue; } - case 53: - r0 = (s.arg0 === "T53"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 54; continue; } - s.res___11154 = ("servo set angle"); - { step = 275; continue; } - case 54: - r0 = (s.arg0 === "T54"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 55; continue; } - s.res___11154 = ("relay"); - { step = 274; continue; } - case 55: - r0 = (s.arg0 === "T55"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 56; continue; } - s.res___11154 = ("servo power"); - { step = 273; continue; } - case 56: - r0 = (s.arg0 === "T70"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 57; continue; } - s.res___11154 = ("touch pin 0"); - { step = 272; continue; } - case 57: - r0 = (s.arg0 === "T71"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 58; continue; } - s.res___11154 = ("touch pin 1"); - { step = 271; continue; } - case 58: - r0 = (s.arg0 === "T72"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 59; continue; } - s.res___11154 = ("touch pin 2"); - { step = 270; continue; } - case 59: - r0 = (s.arg0 === "T73"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 60; continue; } - s.res___11154 = ("button A"); - { step = 269; continue; } - case 60: - r0 = (s.arg0 === "T74"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 61; continue; } - s.res___11154 = ("button B"); - { step = 268; continue; } - case 61: - r0 = (s.arg0 === "T75"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 62; continue; } - s.res___11154 = ("key 1"); - { step = 267; continue; } - case 62: - r0 = (s.arg0 === "T76"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 63; continue; } - s.res___11154 = ("key 2"); - { step = 266; continue; } - case 63: - r0 = (s.arg0 === "T77"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 64; continue; } - s.res___11154 = ("logo"); - { step = 265; continue; } - case 64: - r0 = (s.arg0 === "T78"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 65; continue; } - s.res___11154 = ("1"); - { step = 264; continue; } - case 65: - r0 = (s.arg0 === "T79"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 66; continue; } - s.res___11154 = ("2"); - { step = 263; continue; } - case 66: - r0 = (s.arg0 === "T80"); + if (!r0) { step = 66; continue; } + s.res___11137 = ("key 2"); + { step = 259; continue; } + case 66: + r0 = (s.arg0 === "T77"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 67; continue; } - s.res___11154 = ("3"); - { step = 262; continue; } + s.res___11137 = ("logo"); + { step = 258; continue; } case 67: - r0 = (s.arg0 === "T81"); + r0 = (s.arg0 === "T78"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 68; continue; } - s.res___11154 = ("4"); - { step = 261; continue; } + s.res___11137 = ("1"); + { step = 257; continue; } case 68: - r0 = (s.arg0 === "T82"); + r0 = (s.arg0 === "T79"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 69; continue; } - s.res___11154 = ("5"); - { step = 260; continue; } + s.res___11137 = ("2"); + { step = 256; continue; } case 69: - r0 = (s.arg0 === "T83"); + r0 = (s.arg0 === "T80"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 70; continue; } - s.res___11154 = ("1/4 second"); - { step = 259; continue; } + s.res___11137 = ("3"); + { step = 255; continue; } case 70: - r0 = (s.arg0 === "T84"); + r0 = (s.arg0 === "T81"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 71; continue; } - s.res___11154 = ("1 second"); - { step = 258; continue; } + s.res___11137 = ("4"); + { step = 254; continue; } case 71: - r0 = (s.arg0 === "T85"); + r0 = (s.arg0 === "T82"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 72; continue; } - s.res___11154 = ("1 random second"); - { step = 257; continue; } + s.res___11137 = ("5"); + { step = 253; continue; } case 72: - r0 = (s.arg0 === "T86"); + r0 = (s.arg0 === "T83"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 73; continue; } - s.res___11154 = ("5 seconds"); - { step = 256; continue; } + s.res___11137 = ("1/4 second"); + { step = 252; continue; } case 73: - r0 = (s.arg0 === "T87"); + r0 = (s.arg0 === "T84"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 74; continue; } - s.res___11154 = ("loud"); - { step = 255; continue; } + s.res___11137 = ("1 second"); + { step = 251; continue; } case 74: - r0 = (s.arg0 === "T88"); + r0 = (s.arg0 === "T85"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 75; continue; } - s.res___11154 = ("quiet"); - { step = 254; continue; } + s.res___11137 = ("1 random second"); + { step = 250; continue; } case 75: - r0 = (s.arg0 === "T89"); + r0 = (s.arg0 === "T86"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 76; continue; } - s.res___11154 = ("NA"); - { step = 253; continue; } + s.res___11137 = ("5 seconds"); + { step = 249; continue; } case 76: - r0 = (s.arg0 === "T90"); + r0 = (s.arg0 === "T87"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 77; continue; } - s.res___11154 = ("shake"); - { step = 252; continue; } + s.res___11137 = ("loud"); + { step = 248; continue; } case 77: - r0 = (s.arg0 === "T91"); + r0 = (s.arg0 === "T88"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 78; continue; } - s.res___11154 = ("tilt up"); - { step = 251; continue; } + s.res___11137 = ("quiet"); + { step = 247; continue; } case 78: - r0 = (s.arg0 === "T92"); + r0 = (s.arg0 === "T89"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 79; continue; } - s.res___11154 = ("tilt down"); - { step = 250; continue; } + s.res___11137 = ("NA1"); + { step = 246; continue; } case 79: - r0 = (s.arg0 === "T93"); + r0 = (s.arg0 === "T90"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 80; continue; } - s.res___11154 = ("tilt left"); - { step = 249; continue; } + s.res___11137 = ("shake"); + { step = 245; continue; } case 80: - r0 = (s.arg0 === "T94"); + r0 = (s.arg0 === "T91"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 81; continue; } - s.res___11154 = ("tilt right"); - { step = 248; continue; } + s.res___11137 = ("tilt up"); + { step = 244; continue; } case 81: - r0 = (s.arg0 === "T95"); + r0 = (s.arg0 === "T92"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 82; continue; } - s.res___11154 = ("variable X"); - { step = 247; continue; } + s.res___11137 = ("tilt down"); + { step = 243; continue; } case 82: - r0 = (s.arg0 === "T96"); + r0 = (s.arg0 === "T93"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 83; continue; } - s.res___11154 = ("variable Y"); - { step = 246; continue; } + s.res___11137 = ("tilt left"); + { step = 242; continue; } case 83: - r0 = (s.arg0 === "T97"); + r0 = (s.arg0 === "T94"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 84; continue; } - s.res___11154 = ("variable Z"); - { step = 245; continue; } + s.res___11137 = ("tilt right"); + { step = 241; continue; } case 84: - r0 = (s.arg0 === "T98"); + r0 = (s.arg0 === "T95"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 85; continue; } - s.res___11154 = ("turn left"); - { step = 244; continue; } + s.res___11137 = ("variable X"); + { step = 240; continue; } case 85: - r0 = (s.arg0 === "T99"); + r0 = (s.arg0 === "T96"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 86; continue; } - s.res___11154 = ("turn right"); - { step = 243; continue; } + s.res___11137 = ("variable Y"); + { step = 239; continue; } case 86: - r0 = (s.arg0 === "T100"); + r0 = (s.arg0 === "T97"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 87; continue; } - s.res___11154 = ("warmer"); - { step = 242; continue; } + s.res___11137 = ("variable Z"); + { step = 238; continue; } case 87: - r0 = (s.arg0 === "T101"); + r0 = (s.arg0 === "T98"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 88; continue; } - s.res___11154 = ("colder"); - { step = 241; continue; } + s.res___11137 = ("turn left"); + { step = 237; continue; } case 88: - r0 = (s.arg0 === "T103"); + r0 = (s.arg0 === "T99"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 89; continue; } - s.res___11154 = ("right"); - { step = 240; continue; } + s.res___11137 = ("turn right"); + { step = 236; continue; } case 89: - r0 = (s.arg0 === "T104"); + r0 = (s.arg0 === "T100"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 90; continue; } - s.res___11154 = ("both"); - { step = 239; continue; } + s.res___11137 = ("up"); + { step = 235; continue; } case 90: - r0 = (s.arg0 === "T105"); + r0 = (s.arg0 === "T101"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 91; continue; } - s.res___11154 = ("none"); - { step = 238; continue; } + s.res___11137 = ("down"); + { step = 234; continue; } case 91: - r0 = (s.arg0 === "T106"); + r0 = (s.arg0 === "T103"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 92; continue; } - s.res___11154 = ("lost left"); - { step = 237; continue; } + s.res___11137 = ("right"); + { step = 233; continue; } case 92: - r0 = (s.arg0 === "T107"); + r0 = (s.arg0 === "T104"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 93; continue; } - s.res___11154 = ("lost right"); - { step = 236; continue; } + s.res___11137 = ("both"); + { step = 232; continue; } case 93: - r0 = (s.arg0 === "T108"); + r0 = (s.arg0 === "T105"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 94; continue; } - s.res___11154 = ("face up"); - { step = 235; continue; } + s.res___11137 = ("none"); + { step = 231; continue; } case 94: - r0 = (s.arg0 === "T109"); + r0 = (s.arg0 === "T106"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 95; continue; } - s.res___11154 = ("face down"); - { step = 234; continue; } + s.res___11137 = ("lost left"); + { step = 230; continue; } case 95: - r0 = (s.arg0 === "T110"); + r0 = (s.arg0 === "T107"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 96; continue; } - s.res___11154 = ("on"); - { step = 233; continue; } + s.res___11137 = ("lost right"); + { step = 229; continue; } case 96: - r0 = (s.arg0 === "T111"); + r0 = (s.arg0 === "T108"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 97; continue; } - s.res___11154 = ("off"); - { step = 232; continue; } + s.res___11137 = ("face up"); + { step = 228; continue; } case 97: - r0 = (s.arg0 === "T150"); + r0 = (s.arg0 === "T109"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 98; continue; } - s.res___11154 = ("page 1"); - { step = 231; continue; } + s.res___11137 = ("face down"); + { step = 227; continue; } case 98: - r0 = (s.arg0 === "T151"); + r0 = (s.arg0 === "T110"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 99; continue; } - s.res___11154 = ("page 2"); - { step = 230; continue; } + s.res___11137 = ("active"); + { step = 226; continue; } case 99: - r0 = (s.arg0 === "T152"); + r0 = (s.arg0 === "T111"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 100; continue; } - s.res___11154 = ("page 3"); - { step = 229; continue; } + s.res___11137 = ("unactive"); + { step = 225; continue; } case 100: - r0 = (s.arg0 === "T153"); + r0 = (s.arg0 === "T150"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 101; continue; } - s.res___11154 = ("page 4"); - { step = 228; continue; } + s.res___11137 = ("page 1"); + { step = 224; continue; } case 101: - r0 = (s.arg0 === "T154"); + r0 = (s.arg0 === "T151"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 102; continue; } - s.res___11154 = ("page 5"); - { step = 227; continue; } + s.res___11137 = ("page 2"); + { step = 223; continue; } case 102: - r0 = (s.arg0 === "T155"); + r0 = (s.arg0 === "T152"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 103; continue; } - s.res___11154 = ("1"); - { step = 226; continue; } + s.res___11137 = ("page 3"); + { step = 222; continue; } case 103: - r0 = (s.arg0 === "T156"); + r0 = (s.arg0 === "T153"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 104; continue; } - s.res___11154 = ("2"); - { step = 225; continue; } + s.res___11137 = ("page 4"); + { step = 221; continue; } case 104: - r0 = (s.arg0 === "T157"); + r0 = (s.arg0 === "T154"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 105; continue; } - s.res___11154 = ("3"); - { step = 224; continue; } + s.res___11137 = ("page 5"); + { step = 220; continue; } case 105: - r0 = (s.arg0 === "T158"); + r0 = (s.arg0 === "T160"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 106; continue; } - s.res___11154 = ("4"); - { step = 223; continue; } + s.res___11137 = ("LED image"); + { step = 219; continue; } case 106: - r0 = (s.arg0 === "T159"); + r0 = (s.arg0 === "T161"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 107; continue; } - s.res___11154 = ("5"); - { step = 222; continue; } + s.res___11137 = ("NA5"); + { step = 218; continue; } case 107: - r0 = (s.arg0 === "T160"); + r0 = (s.arg0 === "T162"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 108; continue; } - s.res___11154 = ("LED image"); - { step = 221; continue; } + s.res___11137 = ("NA6"); + { step = 217; continue; } case 108: - r0 = (s.arg0 === "T161"); + r0 = (s.arg0 === "T163"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 109; continue; } - s.res___11154 = ("red"); - { step = 220; continue; } + s.res___11137 = ("giggle"); + { step = 216; continue; } case 109: - r0 = (s.arg0 === "T162"); + r0 = (s.arg0 === "T164"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 110; continue; } - s.res___11154 = ("purple"); - { step = 219; continue; } + s.res___11137 = ("happy"); + { step = 215; continue; } case 110: - r0 = (s.arg0 === "T163"); + r0 = (s.arg0 === "T165"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 111; continue; } - s.res___11154 = ("giggle"); - { step = 218; continue; } + s.res___11137 = ("hello"); + { step = 214; continue; } case 111: - r0 = (s.arg0 === "T164"); + r0 = (s.arg0 === "T166"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 112; continue; } - s.res___11154 = ("happy"); - { step = 217; continue; } + s.res___11137 = ("mysterious"); + { step = 213; continue; } case 112: - r0 = (s.arg0 === "T165"); + r0 = (s.arg0 === "T167"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 113; continue; } - s.res___11154 = ("hello"); - { step = 216; continue; } + s.res___11137 = ("sad"); + { step = 212; continue; } case 113: - r0 = (s.arg0 === "T166"); + r0 = (s.arg0 === "T168"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 114; continue; } - s.res___11154 = ("mysterious"); - { step = 215; continue; } + s.res___11137 = ("slide"); + { step = 211; continue; } case 114: - r0 = (s.arg0 === "T167"); + r0 = (s.arg0 === "T169"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 115; continue; } - s.res___11154 = ("sad"); - { step = 214; continue; } + s.res___11137 = ("soaring"); + { step = 210; continue; } case 115: - r0 = (s.arg0 === "T168"); + r0 = (s.arg0 === "T170"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 116; continue; } - s.res___11154 = ("slide"); - { step = 213; continue; } + s.res___11137 = ("spring"); + { step = 209; continue; } case 116: - r0 = (s.arg0 === "T169"); + r0 = (s.arg0 === "T171"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 117; continue; } - s.res___11154 = ("soaring"); - { step = 212; continue; } + s.res___11137 = ("twinkle"); + { step = 208; continue; } case 117: - r0 = (s.arg0 === "T170"); + r0 = (s.arg0 === "T172"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 118; continue; } - s.res___11154 = ("spring"); - { step = 211; continue; } + s.res___11137 = ("yawn"); + { step = 207; continue; } case 118: - r0 = (s.arg0 === "T171"); + r0 = (s.arg0 === "T176"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 119; continue; } - s.res___11154 = ("twinkle"); - { step = 210; continue; } + s.res___11137 = ("radio value"); + { step = 206; continue; } case 119: - r0 = (s.arg0 === "T172"); + r0 = (s.arg0 === "T177"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 120; continue; } - s.res___11154 = ("yawn"); - { step = 209; continue; } + s.res___11137 = ("random number"); + { step = 205; continue; } case 120: - r0 = (s.arg0 === "T173"); + r0 = (s.arg0 === "T178"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 121; continue; } - s.res___11154 = ("variable X"); - { step = 208; continue; } + s.res___11137 = ("repeat"); + { step = 204; continue; } case 121: - r0 = (s.arg0 === "T174"); + r0 = (s.arg0 === "T179"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 122; continue; } - s.res___11154 = ("variable Y"); - { step = 207; continue; } + s.res___11137 = ("melody"); + { step = 203; continue; } case 122: - r0 = (s.arg0 === "T175"); + r0 = (s.arg0 === "T180"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 123; continue; } - s.res___11154 = ("variable Z"); - { step = 206; continue; } + s.res___11137 = ("temp."); + { step = 202; continue; } case 123: - r0 = (s.arg0 === "T176"); + r0 = (s.arg0 === "T181"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 124; continue; } - s.res___11154 = ("radio value"); - { step = 205; continue; } + s.res___11137 = ("NA2"); + { step = 201; continue; } case 124: - r0 = (s.arg0 === "T177"); + r0 = (s.arg0 === "T182"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 125; continue; } - s.res___11154 = ("random number"); - { step = 204; continue; } + s.res___11137 = ("red"); + { step = 200; continue; } case 125: - r0 = (s.arg0 === "T178"); + r0 = (s.arg0 === "T183"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 126; continue; } - s.res___11154 = ("repeat"); - { step = 203; continue; } + s.res___11137 = ("green"); + { step = 199; continue; } case 126: - r0 = (s.arg0 === "T179"); + r0 = (s.arg0 === "T184"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 127; continue; } - s.res___11154 = ("melody"); - { step = 202; continue; } + s.res___11137 = ("blue"); + { step = 198; continue; } case 127: - r0 = (s.arg0 === "T180"); + r0 = (s.arg0 === "T185"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 128; continue; } - s.res___11154 = ("temperature"); - { step = 201; continue; } + s.res___11137 = ("purple"); + { step = 197; continue; } case 128: - r0 = (s.arg0 === "T181"); + r0 = (s.arg0 === "T186"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 129; continue; } - s.res___11154 = ("NA"); - { step = 200; continue; } + s.res___11137 = ("yellow"); + { step = 196; continue; } case 129: - r0 = (s.arg0 === "T182"); + r0 = (s.arg0 === "T187"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 130; continue; } - s.res___11154 = ("red"); - { step = 199; continue; } + s.res___11137 = ("black"); + { step = 195; continue; } case 130: - r0 = (s.arg0 === "T183"); + r0 = (s.arg0 === "T188"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 131; continue; } - s.res___11154 = ("green"); - { step = 198; continue; } + s.res___11137 = ("rainbow"); + { step = 194; continue; } case 131: - r0 = (s.arg0 === "T184"); + r0 = (s.arg0 === "T189"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 132; continue; } - s.res___11154 = ("blue"); - { step = 197; continue; } + s.res___11137 = ("sparkle"); + { step = 193; continue; } case 132: - r0 = (s.arg0 === "T185"); + r0 = (s.arg0 === "T190"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 133; continue; } - s.res___11154 = ("purple"); - { step = 196; continue; } + s.res___11137 = ("forward"); + { step = 192; continue; } case 133: - r0 = (s.arg0 === "T186"); + r0 = (s.arg0 === "T191"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 134; continue; } - s.res___11154 = ("yellow"); - { step = 195; continue; } + s.res___11137 = ("reverse"); + { step = 191; continue; } case 134: - r0 = (s.arg0 === "T187"); + r0 = (s.arg0 === "T192"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 135; continue; } - s.res___11154 = ("black"); - { step = 194; continue; } + s.res___11137 = ("NA3"); + { step = 190; continue; } case 135: - r0 = (s.arg0 === "T188"); + r0 = (s.arg0 === "T193"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 136; continue; } - s.res___11154 = ("rainbow"); - { step = 193; continue; } + s.res___11137 = ("NA4"); + { step = 189; continue; } case 136: - r0 = (s.arg0 === "T189"); + r0 = (s.arg0 === "T194"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 137; continue; } - s.res___11154 = ("sparkle"); - { step = 192; continue; } + s.res___11137 = ("stop"); + { step = 188; continue; } case 137: - r0 = (s.arg0 === "T190"); + r0 = (s.arg0 === "T195"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 138; continue; } - s.res___11154 = ("forward"); - { step = 191; continue; } + s.res___11137 = ("fast forward"); + { step = 187; continue; } case 138: - r0 = (s.arg0 === "T191"); + r0 = (s.arg0 === "T196"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 139; continue; } - s.res___11154 = ("reverse"); - { step = 190; continue; } + s.res___11137 = ("spin left"); + { step = 186; continue; } case 139: - r0 = (s.arg0 === "T192"); + r0 = (s.arg0 === "T197"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 140; continue; } - s.res___11154 = ("turn left"); - { step = 189; continue; } + s.res___11137 = ("spin right"); + { step = 185; continue; } case 140: - r0 = (s.arg0 === "T193"); + r0 = (s.arg0 === "T198"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 141; continue; } - s.res___11154 = ("turn right"); - { step = 188; continue; } + s.res___11137 = ("LED red"); + { step = 184; continue; } case 141: - r0 = (s.arg0 === "T194"); + r0 = (s.arg0 === "T199"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 142; continue; } - s.res___11154 = ("stop"); - { step = 187; continue; } + s.res___11137 = ("LED green"); + { step = 183; continue; } case 142: - r0 = (s.arg0 === "T195"); + r0 = (s.arg0 === "T200"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 143; continue; } - s.res___11154 = ("fast forward"); - { step = 186; continue; } + s.res___11137 = ("LED blue"); + { step = 182; continue; } case 143: - r0 = (s.arg0 === "T196"); + r0 = (s.arg0 === "T201"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 144; continue; } - s.res___11154 = ("spin left"); - { step = 185; continue; } + s.res___11137 = ("LED OFF"); + { step = 181; continue; } case 144: - r0 = (s.arg0 === "T197"); + r0 = (s.arg0 === "T202"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 145; continue; } - s.res___11154 = ("spin right"); - { step = 184; continue; } + s.res___11137 = ("arm open"); + { step = 180; continue; } case 145: - r0 = (s.arg0 === "T198"); + r0 = (s.arg0 === "T203"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 146; continue; } - s.res___11154 = ("LED red"); - { step = 183; continue; } + s.res___11137 = ("arm close"); + { step = 179; continue; } case 146: - r0 = (s.arg0 === "T199"); + r0 = (s.arg0 === "T204"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 147; continue; } - s.res___11154 = ("LED green"); - { step = 182; continue; } + s.res___11137 = ("on"); + { step = 178; continue; } case 147: - r0 = (s.arg0 === "T200"); + r0 = (s.arg0 === "T205"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 148; continue; } - s.res___11154 = ("LED blue"); - { step = 181; continue; } + s.res___11137 = ("off"); + { step = 177; continue; } case 148: - r0 = (s.arg0 === "T201"); + r0 = (s.arg0 === "T206"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 149; continue; } - s.res___11154 = ("LED OFF"); - { step = 180; continue; } + s.res___11137 = ("light value"); + { step = 176; continue; } case 149: - r0 = (s.arg0 === "T202"); + r0 = (s.arg0 === "T207"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 150; continue; } - s.res___11154 = ("arm open"); - { step = 179; continue; } + s.res___11137 = ("magnet value"); + { step = 175; continue; } case 150: - r0 = (s.arg0 === "T203"); + r0 = (s.arg0 === "T208"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 151; continue; } - s.res___11154 = ("arm close"); - { step = 178; continue; } + s.res___11137 = ("sound value"); + { step = 174; continue; } case 151: - r0 = (s.arg0 === "T204"); + r0 = (s.arg0 === "T210"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 152; continue; } - s.res___11154 = ("on"); - { step = 177; continue; } + s.res___11137 = ("add"); + { step = 173; continue; } case 152: - r0 = (s.arg0 === "T205"); + r0 = (s.arg0 === "T211"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 153; continue; } - s.res___11154 = ("off"); - { step = 176; continue; } + s.res___11137 = ("subtract"); + { step = 172; continue; } case 153: - r0 = (s.arg0 === "T210"); + r0 = (s.arg0 === "T212"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 154; continue; } - s.res___11154 = ("add"); - { step = 175; continue; } + s.res___11137 = ("multiply"); + { step = 171; continue; } case 154: - r0 = (s.arg0 === "T211"); + r0 = (s.arg0 === "T213"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 155; continue; } - s.res___11154 = ("subtract"); - { step = 174; continue; } + s.res___11137 = ("divide"); + { step = 170; continue; } case 155: - r0 = (s.arg0 === "T212"); + r0 = (s.arg0 === "T220"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 156; continue; } - s.res___11154 = ("multiply"); - { step = 173; continue; } + s.res___11137 = ("equals"); + { step = 169; continue; } case 156: - r0 = (s.arg0 === "T213"); + r0 = (s.arg0 === "T221"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 157; continue; } - s.res___11154 = ("divide"); - { step = 172; continue; } + s.res___11137 = ("not equals"); + { step = 168; continue; } case 157: - r0 = (s.arg0 === "T220"); + r0 = (s.arg0 === "T222"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 158; continue; } - s.res___11154 = ("equals"); - { step = 171; continue; } + s.res___11137 = ("less than"); + { step = 167; continue; } case 158: - r0 = (s.arg0 === "T221"); + r0 = (s.arg0 === "T223"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 159; continue; } - s.res___11154 = ("not equals"); - { step = 170; continue; } + s.res___11137 = ("less than or equals"); + { step = 166; continue; } case 159: - r0 = (s.arg0 === "T222"); + r0 = (s.arg0 === "T224"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 160; continue; } - s.res___11154 = ("less than"); - { step = 169; continue; } + s.res___11137 = ("greater than"); + { step = 165; continue; } case 160: - r0 = (s.arg0 === "T223"); + r0 = (s.arg0 === "T225"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 161; continue; } - s.res___11154 = ("less than or equals"); - { step = 168; continue; } + s.res___11137 = ("greater than or equals"); + { step = 164; continue; } case 161: - r0 = (s.arg0 === "T224"); + r0 = (s.arg0 === "T255"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 162; continue; } - s.res___11154 = ("greater than"); - { step = 167; continue; } + s.res___11137 = ("enter number"); case 162: - r0 = (s.arg0 === "T225"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 163; continue; } - s.res___11154 = ("greater than or equals"); - { step = 166; continue; } case 163: - r0 = (s.arg0 === "T255"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 164; continue; } - s.res___11154 = ("enter number"); case 164: case 165: case 166: @@ -23581,34 +21969,29 @@ switch (step) { case 322: case 323: case 324: + r0 = s.res___11137; case 325: - case 326: - case 327: - case 328: - r0 = s.res___11154; - case 329: return leave(s, r0) default: oops() } } } -microcode_resolveTooltip__P4590.info = {"start":153,"length":8153,"line":4,"column":4,"endLine":171,"endColumn":5,"fileName":"tooltips.ts","functionName":"resolveTooltip","argumentNames":["id"]} +microcode_resolveTooltip__P4733.info = {"start":153,"length":8108,"line":4,"column":4,"endLine":169,"endColumn":5,"fileName":"tooltips.ts","functionName":"resolveTooltip","argumentNames":["id"]} -function microcode_resolveTooltip__P4590_mk(s) { +function microcode_resolveTooltip__P4733_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_resolveTooltip__P4590, depth: s.depth + 1, + parent: s, fn: microcode_resolveTooltip__P4733, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - res___11154: undefined, + res___11137: undefined, arg0: undefined, } } - -function microcode_icons_get__P3883(s) { +function microcode_icons_get__P4047(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -23618,8 +22001,6 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.car___12057 = undefined; - s.jacdac___12063 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); @@ -23629,184 +22010,184 @@ switch (step) { s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = globals.btn_delete___3908; - { step = 225; continue; } + r0 = globals.btn_delete___4072; + { step = 227; continue; } case 1: case 2: r0 = (s.arg0 == "plus"); s.tmp_1 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_1); if (!r0) { step = 3; continue; } - r0 = globals.btn_plus___3909; - { step = 225; continue; } + r0 = globals.btn_plus___4073; + { step = 227; continue; } case 3: case 4: r0 = (s.arg0 == "when_insertion_point"); s.tmp_2 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_2); if (!r0) { step = 5; continue; } - r0 = globals.btn_when_insertion_point___3913; - { step = 225; continue; } + r0 = globals.btn_when_insertion_point___4077; + { step = 227; continue; } case 5: case 6: r0 = (s.arg0 == "do_insertion_point"); s.tmp_3 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_3); if (!r0) { step = 7; continue; } - r0 = globals.btn_do_insertion_point___3914; - { step = 225; continue; } + r0 = globals.btn_do_insertion_point___4078; + { step = 227; continue; } case 7: case 8: r0 = (s.arg0 == "rule_arrow"); s.tmp_4 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_4); if (!r0) { step = 9; continue; } - r0 = globals.rule_arrow___3915; - { step = 225; continue; } + r0 = globals.rule_arrow___4079; + { step = 227; continue; } case 9: case 10: r0 = (s.arg0 == "rule_handle"); s.tmp_5 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_5); if (!r0) { step = 11; continue; } - r0 = globals.rule_handle___3918; - { step = 225; continue; } + r0 = globals.rule_handle___4082; + { step = 227; continue; } case 11: case 12: r0 = (s.arg0 == "rule_up"); s.tmp_6 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_6); if (!r0) { step = 13; continue; } - r0 = globals.temp_warmer___3949; - { step = 225; continue; } + r0 = globals.temp_warmer___4113; + { step = 227; continue; } case 13: case 14: r0 = (s.arg0 == "rule_down"); s.tmp_7 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_7); if (!r0) { step = 15; continue; } - r0 = globals.temp_colder___3950; - { step = 225; continue; } + r0 = globals.temp_colder___4114; + { step = 227; continue; } case 15: case 16: r0 = (s.arg0 == "edit_program"); s.tmp_8 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_8); if (!r0) { step = 17; continue; } - r0 = globals.largeEditIcon___3867; - { step = 225; continue; } + r0 = globals.largeEditIcon___3840; + { step = 227; continue; } case 17: case 18: r0 = (s.arg0 == "new_program"); s.tmp_9 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_9); if (!r0) { step = 19; continue; } - r0 = globals.largeNewProgramIcon___3984; - { step = 225; continue; } + r0 = globals.largeNewProgramIcon___4148; + { step = 227; continue; } case 19: case 20: r0 = (s.arg0 == "MISSING"); s.tmp_10 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_10); if (!r0) { step = 21; continue; } - r0 = globals.MISSING___3851; - { step = 225; continue; } + r0 = globals.MISSING___3824; + { step = 227; continue; } case 21: case 22: r0 = (s.arg0 == "disk"); s.tmp_11 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_11); if (!r0) { step = 23; continue; } - r0 = globals.disk___3898; - { step = 225; continue; } + r0 = globals.disk___4062; + { step = 227; continue; } case 23: case 24: r0 = (s.arg0 == "disk1"); s.tmp_12 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_12); if (!r0) { step = 25; continue; } - r0 = globals.disk1___3899; - { step = 225; continue; } + r0 = globals.disk1___4063; + { step = 227; continue; } case 25: case 26: r0 = (s.arg0 == "disk2"); s.tmp_13 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_13); if (!r0) { step = 27; continue; } - r0 = globals.disk2___3900; - { step = 225; continue; } + r0 = globals.disk2___4064; + { step = 227; continue; } case 27: case 28: r0 = (s.arg0 == "disk3"); s.tmp_14 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_14); if (!r0) { step = 29; continue; } - r0 = globals.disk3___3901; - { step = 225; continue; } + r0 = globals.disk3___4065; + { step = 227; continue; } case 29: case 30: r0 = (s.arg0 == "largeDisk"); s.tmp_15 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_15); if (!r0) { step = 31; continue; } - r0 = globals.largeDiskIcon___3902; - { step = 225; continue; } + r0 = globals.largeDiskIcon___4066; + { step = 227; continue; } case 31: case 32: r0 = (s.arg0 == "solid_red"); s.tmp_16 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_16); if (!r0) { step = 33; continue; } - r0 = globals.solid_red___3903; - { step = 225; continue; } + r0 = globals.solid_red___4067; + { step = 227; continue; } case 33: case 34: r0 = (s.arg0 == "solid_black"); s.tmp_17 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_17); if (!r0) { step = 35; continue; } - r0 = globals.solid_black___3904; - { step = 225; continue; } + r0 = globals.solid_black___4068; + { step = 227; continue; } case 35: case 36: r0 = (s.arg0 == "note_on"); s.tmp_18 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_18); if (!r0) { step = 37; continue; } - r0 = globals.note_on___3955; - { step = 225; continue; } + r0 = globals.note_on___4119; + { step = 227; continue; } case 37: case 38: r0 = (s.arg0 == "note_off"); s.tmp_19 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_19); if (!r0) { step = 39; continue; } - r0 = globals.note_off___3956; - { step = 225; continue; } + r0 = globals.note_off___4120; + { step = 227; continue; } case 39: case 40: r0 = (s.arg0 == "smiley_buttons"); s.tmp_20 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_20); if (!r0) { step = 41; continue; } - r0 = globals.sampleSmileyButtons___3986; - { step = 225; continue; } + r0 = globals.sampleSmileyButtons___4150; + { step = 227; continue; } case 41: case 42: r0 = (s.arg0 == "microbit_logo"); s.tmp_21 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_21); if (!r0) { step = 43; continue; } - r0 = globals.microbit_logo___3938; - { step = 225; continue; } + r0 = globals.microbit_logo___4102; + { step = 227; continue; } case 43: case 44: r0 = (s.arg0 == "microbitLogoBtn"); s.tmp_22 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_22); if (!r0) { step = 45; continue; } - r0 = globals.microbit_logo_btn___3849; - { step = 225; continue; } + r0 = globals.microbit_logo_btn___3822; + { step = 227; continue; } case 45: case 46: r0 = pxsim_pxtcore.typeOf(s.arg0); @@ -23814,907 +22195,5771 @@ switch (step) { r0 = (s.tmp_24 == "number"); s.tmp_23 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_23); - if (!r0) { step = 51; continue; } - s.tmp_26 = microcode_isModifierConstant__P4259_mk(s); + if (!r0) { step = 49; continue; } + s.tmp_26 = microcode_isConstant__P4415_mk(s); s.tmp_26.arg0 = s.arg0; - s.callLocIdx = 854; s.pc = 226; return s.tmp_26; - case 226: + s.callLocIdx = 1125; s.pc = 228; return s.tmp_26; + case 228: r0 = s.retval; s.tmp_25 = r0; - r0 = pxsim_numops_toBool(s.tmp_25); + r0 = pxsim_numops_toBoolDecr(s.tmp_25); if (!r0) { step = 47; continue; } - r0 = s.tmp_25; - { step = 48; continue; } - case 47: - s.tmp_27 = microcode_isFilterConstant__P4258_mk(s); - s.tmp_27.arg0 = s.arg0; - s.callLocIdx = 855; s.pc = 227; return s.tmp_27; - case 227: + s.tmp_27 = icondb_numberToImage__P4169_mk(s); + s.tmp_28 = microcode_getParam__P4433_mk(s); + s.tmp_28.arg0 = s.arg0; + s.callLocIdx = 1126; s.pc = 230; return s.tmp_28; + case 230: r0 = s.retval; - case 48: - // jmp value (already in r0) - s.tmp_28 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_28); - if (!r0) { step = 49; continue; } - s.tmp_29 = icondb_numberToImage__P4005_mk(s); - s.tmp_31 = microcode_getParam__P4282_mk(s); - s.tmp_31.arg0 = s.arg0; - s.callLocIdx = 856; s.pc = 229; return s.tmp_31; + s.tmp_27.arg0 = r0; + s.callLocIdx = 1127; s.pc = 229; return s.tmp_27; case 229: r0 = s.retval; - s.tmp_30 = r0; - r0 = (s.tmp_30 - 1); - s.tmp_29.arg0 = r0; - s.callLocIdx = 857; s.pc = 228; return s.tmp_29; - case 228: - r0 = s.retval; - { step = 225; continue; } + { step = 227; continue; } + case 47: + case 48: case 49: case 50: + r0 = (s.arg0 == 10); + s.tmp_29 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_29); + if (!r0) { step = 51; continue; } + r0 = globals.tile_start_page___4084; + { step = 227; continue; } case 51: case 52: - r0 = (s.arg0 == 10); - s.tmp_32 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_32); + r0 = (s.arg0 == 40); + s.tmp_30 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_30); if (!r0) { step = 53; continue; } - r0 = globals.tile_start_page___3920; - { step = 225; continue; } + r0 = globals.tile_switch_page___4083; + { step = 227; continue; } case 53: case 54: - r0 = (s.arg0 == 40); - s.tmp_33 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_33); + r0 = (s.arg0 == 150); + s.tmp_31 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_31); if (!r0) { step = 55; continue; } - r0 = globals.tile_switch_page___3919; - { step = 225; continue; } + r0 = globals.tile_page_1___4085; + { step = 227; continue; } case 55: case 56: - r0 = (s.arg0 == 150); - s.tmp_34 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_34); + r0 = (s.arg0 == 151); + s.tmp_32 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_32); if (!r0) { step = 57; continue; } - r0 = globals.tile_page_1___3921; - { step = 225; continue; } + r0 = globals.tile_page_2___4086; + { step = 227; continue; } case 57: case 58: - r0 = (s.arg0 == 151); - s.tmp_35 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_35); + r0 = (s.arg0 == 152); + s.tmp_33 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_33); if (!r0) { step = 59; continue; } - r0 = globals.tile_page_2___3922; - { step = 225; continue; } + r0 = globals.tile_page_3___4087; + { step = 227; continue; } case 59: case 60: - r0 = (s.arg0 == 152); - s.tmp_36 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_36); + r0 = (s.arg0 == 153); + s.tmp_34 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_34); if (!r0) { step = 61; continue; } - r0 = globals.tile_page_3___3923; - { step = 225; continue; } + r0 = globals.tile_page_4___4088; + { step = 227; continue; } case 61: case 62: - r0 = (s.arg0 == 153); - s.tmp_37 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_37); + r0 = (s.arg0 == 154); + s.tmp_35 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_35); if (!r0) { step = 63; continue; } - r0 = globals.tile_page_4___3924; - { step = 225; continue; } + r0 = globals.tile_page_5___4089; + { step = 227; continue; } case 63: case 64: - r0 = (s.arg0 == 154); - s.tmp_38 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_38); + r0 = (s.arg0 == 178); + s.tmp_36 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_36); if (!r0) { step = 65; continue; } - r0 = globals.tile_page_5___3925; - { step = 225; continue; } + r0 = globals.loop___4076; + { step = 227; continue; } case 65: case 66: - r0 = (s.arg0 == 178); - s.tmp_39 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_39); + r0 = (s.arg0 == 19); + s.tmp_37 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_37); if (!r0) { step = 67; continue; } - r0 = globals.loop___3912; - { step = 225; continue; } + r0 = globals.cupXwritten___4145; + { step = 227; continue; } case 67: case 68: - r0 = (s.arg0 == 19); - s.tmp_40 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_40); + r0 = (s.arg0 == 20); + s.tmp_38 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_38); if (!r0) { step = 69; continue; } - r0 = globals.cupXwritten___3981; - { step = 225; continue; } + r0 = globals.cupYwritten___4146; + { step = 227; continue; } case 69: case 70: - r0 = (s.arg0 == 20); - s.tmp_41 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_41); + r0 = (s.arg0 == 21); + s.tmp_39 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_39); if (!r0) { step = 71; continue; } - r0 = globals.cupYwritten___3982; - { step = 225; continue; } + r0 = globals.cupZwritten___4147; + { step = 227; continue; } case 71: case 72: - r0 = (s.arg0 == 21); - s.tmp_42 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_42); + r0 = (s.arg0 == 95); + s.tmp_40 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_40); if (!r0) { step = 73; continue; } - r0 = globals.cupZwritten___3983; - { step = 225; continue; } + r0 = globals.cupXread___4139; + { step = 227; continue; } case 73: case 74: - r0 = (s.arg0 == 95); - s.tmp_43 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_43); + r0 = (s.arg0 == 96); + s.tmp_41 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_41); if (!r0) { step = 75; continue; } - r0 = globals.cupXread___3975; - { step = 225; continue; } + r0 = globals.cupYread___4140; + { step = 227; continue; } case 75: case 76: - r0 = (s.arg0 == 96); - s.tmp_44 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_44); + r0 = (s.arg0 == 97); + s.tmp_42 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_42); if (!r0) { step = 77; continue; } - r0 = globals.cupYread___3976; - { step = 225; continue; } + r0 = globals.cupZread___4141; + { step = 227; continue; } case 77: case 78: - r0 = (s.arg0 == 97); - s.tmp_45 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_45); + r0 = (s.arg0 == 48); + s.tmp_43 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_43); if (!r0) { step = 79; continue; } - r0 = globals.cupZread___3977; - { step = 225; continue; } + r0 = globals.cupXassign___4142; + { step = 227; continue; } case 79: case 80: - r0 = (s.arg0 == 48); - s.tmp_46 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_46); + r0 = (s.arg0 == 49); + s.tmp_44 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_44); if (!r0) { step = 81; continue; } - r0 = globals.cupXassign___3978; - { step = 225; continue; } + r0 = globals.cupYassign___4143; + { step = 227; continue; } case 81: case 82: - r0 = (s.arg0 == 49); - s.tmp_47 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_47); + r0 = (s.arg0 == 50); + s.tmp_45 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_45); if (!r0) { step = 83; continue; } - r0 = globals.cupYassign___3979; - { step = 225; continue; } + r0 = globals.cupZassign___4144; + { step = 227; continue; } case 83: case 84: - r0 = (s.arg0 == 50); - s.tmp_48 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_48); + r0 = (s.arg0 == 173); + s.tmp_46 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_46); if (!r0) { step = 85; continue; } - r0 = globals.cupZassign___3980; - { step = 225; continue; } + r0 = globals.cupXread___4139; + { step = 227; continue; } case 85: case 86: - r0 = (s.arg0 == 173); - s.tmp_49 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_49); + r0 = (s.arg0 == 174); + s.tmp_47 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_47); if (!r0) { step = 87; continue; } - r0 = globals.cupXread___3975; - { step = 225; continue; } + r0 = globals.cupYread___4140; + { step = 227; continue; } case 87: case 88: - r0 = (s.arg0 == 174); - s.tmp_50 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_50); + r0 = (s.arg0 == 175); + s.tmp_48 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_48); if (!r0) { step = 89; continue; } - r0 = globals.cupYread___3976; - { step = 225; continue; } + r0 = globals.cupZread___4141; + { step = 227; continue; } case 89: case 90: - r0 = (s.arg0 == 175); - s.tmp_51 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_51); + r0 = (s.arg0 == 177); + s.tmp_49 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_49); if (!r0) { step = 91; continue; } - r0 = globals.cupZread___3977; - { step = 225; continue; } + r0 = globals.diceToss___4138; + { step = 227; continue; } case 91: case 92: - r0 = (s.arg0 == 177); - s.tmp_52 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_52); + r0 = (s.arg0 == 13); + s.tmp_50 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_50); if (!r0) { step = 93; continue; } - r0 = globals.diceToss___3974; - { step = 225; continue; } + r0 = globals.accelerometer___3839; + { step = 227; continue; } case 93: case 94: - r0 = (s.arg0 == 13); - s.tmp_53 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_53); + r0 = (s.arg0 == 14); + s.tmp_51 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_51); if (!r0) { step = 95; continue; } - r0 = globals.accelerometer___3866; - { step = 225; continue; } + r0 = globals.tile_timer___4090; + { step = 227; continue; } case 95: case 96: - r0 = (s.arg0 == 14); - s.tmp_54 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_54); + r0 = (s.arg0 == 17); + s.tmp_52 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_52); if (!r0) { step = 97; continue; } - r0 = globals.tile_timer___3926; - { step = 225; continue; } + r0 = globals.radio_receive___4099; + { step = 227; continue; } case 97: case 98: - r0 = (s.arg0 == 17); - s.tmp_55 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_55); + r0 = (s.arg0 == 11); + s.tmp_53 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_53); if (!r0) { step = 99; continue; } - r0 = globals.radio_receive___3935; - { step = 225; continue; } + r0 = globals.finger_press___3834; + { step = 227; continue; } case 99: case 100: - r0 = (s.arg0 == 11); - s.tmp_56 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_56); + r0 = (s.arg0 == 12); + s.tmp_54 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_54); if (!r0) { step = 101; continue; } - r0 = globals.finger_press___3861; - { step = 225; continue; } + r0 = globals.finger_release___4103; + { step = 227; continue; } case 101: case 102: - r0 = (s.arg0 == 12); - s.tmp_57 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_57); + r0 = (s.arg0 == 18); + s.tmp_55 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_55); if (!r0) { step = 103; continue; } - r0 = globals.finger_release___3939; - { step = 225; continue; } + r0 = globals.microphone___3838; + { step = 227; continue; } case 103: case 104: - r0 = (s.arg0 == 18); - s.tmp_58 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_58); + r0 = (s.arg0 == 16); + s.tmp_56 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_56); if (!r0) { step = 105; continue; } - r0 = globals.microphone___3865; - { step = 225; continue; } + r0 = globals.thermometer___3836; + { step = 227; continue; } case 105: case 106: - r0 = (s.arg0 == 16); - s.tmp_59 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_59); + r0 = (s.arg0 == 27); + s.tmp_57 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_57); if (!r0) { step = 107; continue; } - r0 = globals.thermometer___3863; - { step = 225; continue; } + r0 = globals.led_light_sensor___3837; + { step = 227; continue; } case 107: case 108: - r0 = (s.arg0 == 27); - s.tmp_60 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_60); + r0 = (s.arg0 == 77); + s.tmp_58 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_58); if (!r0) { step = 109; continue; } - r0 = globals.led_light_sensor___3864; - { step = 225; continue; } + r0 = globals.microbit_logo___4102; + { step = 227; continue; } case 109: case 110: - r0 = (s.arg0 == 77); - s.tmp_61 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_61); + r0 = (s.arg0 == 70); + s.tmp_59 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_59); if (!r0) { step = 111; continue; } - r0 = globals.microbit_logo___3938; - { step = 225; continue; } + r0 = globals.tile_pin_0___4095; + { step = 227; continue; } case 111: case 112: - r0 = (s.arg0 == 70); - s.tmp_62 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_62); + r0 = (s.arg0 == 71); + s.tmp_60 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_60); if (!r0) { step = 113; continue; } - r0 = globals.tile_pin_0___3931; - { step = 225; continue; } + r0 = globals.tile_pin_1___4096; + { step = 227; continue; } case 113: case 114: - r0 = (s.arg0 == 71); - s.tmp_63 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_63); + r0 = (s.arg0 == 72); + s.tmp_61 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_61); if (!r0) { step = 115; continue; } - r0 = globals.tile_pin_1___3932; - { step = 225; continue; } + r0 = globals.tile_pin_2___4097; + { step = 227; continue; } case 115: case 116: - r0 = (s.arg0 == 72); - s.tmp_64 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_64); + r0 = (s.arg0 == 73); + s.tmp_62 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_62); if (!r0) { step = 117; continue; } - r0 = globals.tile_pin_2___3933; - { step = 225; continue; } + r0 = globals.tile_button_a___3826; + { step = 227; continue; } case 117: case 118: - r0 = (s.arg0 == 73); - s.tmp_65 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_65); + r0 = (s.arg0 == 74); + s.tmp_63 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_63); if (!r0) { step = 119; continue; } - r0 = globals.tile_button_a___3853; - { step = 225; continue; } + r0 = globals.tile_button_b___3827; + { step = 227; continue; } case 119: case 120: - r0 = (s.arg0 == 74); - s.tmp_66 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_66); + r0 = (s.arg0 == 83); + s.tmp_64 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_64); if (!r0) { step = 121; continue; } - r0 = globals.tile_button_b___3854; - { step = 225; continue; } + r0 = globals.tile_timespan_short___4091; + { step = 227; continue; } case 121: case 122: - r0 = (s.arg0 == 83); - s.tmp_67 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_67); + r0 = (s.arg0 == 84); + s.tmp_65 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_65); if (!r0) { step = 123; continue; } - r0 = globals.tile_timespan_short___3927; - { step = 225; continue; } + r0 = globals.tile_timespan_long___4092; + { step = 227; continue; } case 123: case 124: - r0 = (s.arg0 == 84); - s.tmp_68 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_68); + r0 = (s.arg0 == 86); + s.tmp_66 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_66); if (!r0) { step = 125; continue; } - r0 = globals.tile_timespan_long___3928; - { step = 225; continue; } + r0 = globals.tile_timespan_fiveSeconds___4093; + { step = 227; continue; } case 125: case 126: - r0 = (s.arg0 == 86); - s.tmp_69 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_69); + r0 = (s.arg0 == 85); + s.tmp_67 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_67); if (!r0) { step = 127; continue; } - r0 = globals.tile_timespan_fiveSeconds___3929; - { step = 225; continue; } + r0 = globals.tile_timespan_random___4094; + { step = 227; continue; } case 127: case 128: - r0 = (s.arg0 == 85); - s.tmp_70 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_70); + r0 = (s.arg0 == 87); + s.tmp_68 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_68); if (!r0) { step = 129; continue; } - r0 = globals.tile_timespan_random___3930; - { step = 225; continue; } + r0 = globals.speakerFun___4117; + { step = 227; continue; } case 129: case 130: - r0 = (s.arg0 == 87); - s.tmp_71 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_71); + r0 = (s.arg0 == 88); + s.tmp_69 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_69); if (!r0) { step = 131; continue; } - r0 = globals.speakerFun___3953; - { step = 225; continue; } + r0 = globals.speakerSoft___4116; + { step = 227; continue; } case 131: case 132: - r0 = (s.arg0 == 88); - s.tmp_72 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_72); + r0 = (s.arg0 == 100); + s.tmp_70 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_70); if (!r0) { step = 133; continue; } - r0 = globals.speakerSoft___3952; - { step = 225; continue; } + r0 = globals.temp_warmer___4113; + { step = 227; continue; } case 133: case 134: - r0 = (s.arg0 == 100); - s.tmp_73 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_73); + r0 = (s.arg0 == 101); + s.tmp_71 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_71); if (!r0) { step = 135; continue; } - r0 = globals.temp_warmer___3949; - { step = 225; continue; } + r0 = globals.temp_colder___4114; + { step = 227; continue; } case 135: case 136: - r0 = (s.arg0 == 101); - s.tmp_74 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_74); + r0 = (s.arg0 == 90); + s.tmp_72 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_72); if (!r0) { step = 137; continue; } - r0 = globals.temp_colder___3950; - { step = 225; continue; } + r0 = globals.moveShake___4131; + { step = 227; continue; } case 137: case 138: - r0 = (s.arg0 == 90); - s.tmp_75 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_75); + r0 = (s.arg0 == 91); + s.tmp_73 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_73); if (!r0) { step = 139; continue; } - r0 = globals.moveShake___3967; - { step = 225; continue; } + r0 = globals.moveTiltUp___4133; + { step = 227; continue; } case 139: case 140: - r0 = (s.arg0 == 91); - s.tmp_76 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_76); + r0 = (s.arg0 == 92); + s.tmp_74 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_74); if (!r0) { step = 141; continue; } - r0 = globals.moveTiltUp___3969; - { step = 225; continue; } + r0 = globals.moveTiltDown___4132; + { step = 227; continue; } case 141: case 142: - r0 = (s.arg0 == 92); - s.tmp_77 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_77); + r0 = (s.arg0 == 93); + s.tmp_75 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_75); if (!r0) { step = 143; continue; } - r0 = globals.moveTiltDown___3968; - { step = 225; continue; } + r0 = globals.moveTiltLeft___4134; + { step = 227; continue; } case 143: case 144: - r0 = (s.arg0 == 93); - s.tmp_78 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_78); + r0 = (s.arg0 == 94); + s.tmp_76 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_76); if (!r0) { step = 145; continue; } - r0 = globals.moveTiltLeft___3970; - { step = 225; continue; } + r0 = globals.moveTiltRight___4135; + { step = 227; continue; } case 145: case 146: - r0 = (s.arg0 == 94); - s.tmp_79 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_79); + r0 = (s.arg0 == 108); + s.tmp_77 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_77); if (!r0) { step = 147; continue; } - r0 = globals.moveTiltRight___3971; - { step = 225; continue; } + r0 = globals.moveFaceUp___4136; + { step = 227; continue; } case 147: case 148: - r0 = (s.arg0 == 108); - s.tmp_80 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_80); + r0 = (s.arg0 == 109); + s.tmp_78 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_78); if (!r0) { step = 149; continue; } - r0 = globals.moveFaceUp___3972; - { step = 225; continue; } + r0 = globals.moveFaceDown___4137; + { step = 227; continue; } case 149: case 150: - r0 = (s.arg0 == 109); - s.tmp_81 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_81); + r0 = (s.arg0 == 44); + s.tmp_79 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_79); if (!r0) { step = 151; continue; } - r0 = globals.moveFaceDown___3973; - { step = 225; continue; } + r0 = globals.showScreen___4080; + { step = 227; continue; } case 151: case 152: - r0 = (s.arg0 == 44); - s.tmp_82 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_82); + r0 = (s.arg0 == 51); + s.tmp_80 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_80); if (!r0) { step = 153; continue; } - r0 = globals.showScreen___3916; - { step = 225; continue; } + r0 = globals.showNumber___4081; + { step = 227; continue; } case 153: case 154: - r0 = (s.arg0 == 51); - s.tmp_83 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_83); + r0 = (s.arg0 == 45); + s.tmp_81 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_81); if (!r0) { step = 155; continue; } - r0 = globals.showNumber___3917; - { step = 225; continue; } + r0 = globals.radio_send___4100; + { step = 227; continue; } case 155: case 156: - r0 = (s.arg0 == 45); - s.tmp_84 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_84); + r0 = (s.arg0 == 46); + s.tmp_82 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_82); if (!r0) { step = 157; continue; } - r0 = globals.radio_send___3936; - { step = 225; continue; } + r0 = globals.radio_set_group_small___4101; + { step = 227; continue; } case 157: case 158: - r0 = (s.arg0 == 46); - s.tmp_85 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_85); + r0 = (s.arg0 == 41); + s.tmp_83 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_83); if (!r0) { step = 159; continue; } - r0 = globals.radio_set_group_small___3937; - { step = 225; continue; } + r0 = globals.speakerFun___4117; + { step = 227; continue; } case 159: case 160: - r0 = (s.arg0 == 41); - s.tmp_86 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_86); + r0 = (s.arg0 == 43); + s.tmp_84 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_84); if (!r0) { step = 161; continue; } - r0 = globals.speakerFun___3953; - { step = 225; continue; } + r0 = globals.music___4118; + { step = 227; continue; } case 161: case 162: - r0 = (s.arg0 == 43); - s.tmp_87 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_87); + r0 = (s.arg0 == 160); + s.tmp_85 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_85); if (!r0) { step = 163; continue; } - r0 = globals.music___3954; - { step = 225; continue; } + r0 = globals.iconEditor___4060; + { step = 227; continue; } case 163: case 164: - r0 = (s.arg0 == 160); - s.tmp_88 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_88); + r0 = (s.arg0 == 179); + s.tmp_86 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_86); if (!r0) { step = 165; continue; } - r0 = globals.iconEditor___3896; - { step = 225; continue; } + r0 = globals.melodyEditor___4061; + { step = 227; continue; } case 165: case 166: - r0 = (s.arg0 == 179); - s.tmp_89 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_89); + r0 = (s.arg0 == 255); + s.tmp_87 = r0; + r0 = pxsim_numops_toBool(s.tmp_87); if (!r0) { step = 167; continue; } - r0 = globals.melodyEditor___3897; - { step = 225; continue; } + r0 = s.tmp_87; + { step = 168; continue; } case 167: + r0 = (s.arg0 == 254); case 168: - r0 = (s.arg0 == 255); - s.tmp_90 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_90); + // jmp value (already in r0) + s.tmp_88 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_88); if (!r0) { step = 169; continue; } - r0 = globals.decimalEditor___4033; - { step = 225; continue; } + r0 = globals.decimalEditor___4186; + { step = 227; continue; } case 169: case 170: r0 = (s.arg0 == 163); - s.tmp_91 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_91); + s.tmp_89 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_89); if (!r0) { step = 171; continue; } - r0 = globals.soundGiggle___3957; - { step = 225; continue; } + r0 = globals.soundGiggle___4121; + { step = 227; continue; } case 171: case 172: r0 = (s.arg0 == 164); - s.tmp_92 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_92); + s.tmp_90 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_90); if (!r0) { step = 173; continue; } - r0 = globals.soundHappy___3958; - { step = 225; continue; } + r0 = globals.soundHappy___4122; + { step = 227; continue; } case 173: case 174: r0 = (s.arg0 == 165); - s.tmp_93 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_93); + s.tmp_91 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_91); if (!r0) { step = 175; continue; } - r0 = globals.soundHello___3959; - { step = 225; continue; } + r0 = globals.soundHello___4123; + { step = 227; continue; } case 175: case 176: r0 = (s.arg0 == 166); - s.tmp_94 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_94); + s.tmp_92 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_92); if (!r0) { step = 177; continue; } - r0 = globals.soundMysterious___3960; - { step = 225; continue; } + r0 = globals.soundMysterious___4124; + { step = 227; continue; } case 177: case 178: r0 = (s.arg0 == 167); - s.tmp_95 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_95); + s.tmp_93 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_93); if (!r0) { step = 179; continue; } - r0 = globals.soundSad___3961; - { step = 225; continue; } + r0 = globals.soundSad___4125; + { step = 227; continue; } case 179: case 180: r0 = (s.arg0 == 168); - s.tmp_96 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_96); + s.tmp_94 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_94); if (!r0) { step = 181; continue; } - r0 = globals.soundSlide___3962; - { step = 225; continue; } + r0 = globals.soundSlide___4126; + { step = 227; continue; } case 181: case 182: r0 = (s.arg0 == 169); - s.tmp_97 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_97); + s.tmp_95 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_95); if (!r0) { step = 183; continue; } - r0 = globals.soundSoaring___3963; - { step = 225; continue; } + r0 = globals.soundSoaring___4127; + { step = 227; continue; } case 183: case 184: r0 = (s.arg0 == 170); - s.tmp_98 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_98); + s.tmp_96 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_96); if (!r0) { step = 185; continue; } - r0 = globals.soundSpring___3964; - { step = 225; continue; } + r0 = globals.soundSpring___4128; + { step = 227; continue; } case 185: case 186: r0 = (s.arg0 == 171); - s.tmp_99 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_99); + s.tmp_97 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_97); if (!r0) { step = 187; continue; } - r0 = globals.soundTwinkle___3965; - { step = 225; continue; } + r0 = globals.soundTwinkle___4129; + { step = 227; continue; } case 187: case 188: r0 = (s.arg0 == 172); - s.tmp_100 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_100); + s.tmp_98 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_98); if (!r0) { step = 189; continue; } - r0 = globals.soundYawn___3966; - { step = 225; continue; } + r0 = globals.soundYawn___4130; + { step = 227; continue; } case 189: case 190: r0 = (s.arg0 == 180); - s.tmp_101 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_101); + s.tmp_99 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_99); if (!r0) { step = 191; continue; } - r0 = globals.thermometer___3863; - { step = 225; continue; } + r0 = globals.thermometer___3836; + { step = 227; continue; } case 191: case 192: r0 = (s.arg0 == 176); - s.tmp_102 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_102); + s.tmp_100 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_100); if (!r0) { step = 193; continue; } - r0 = globals.radio_value___3934; - { step = 225; continue; } + r0 = globals.radio_value___4098; + { step = 227; continue; } case 193: case 194: - r0 = (s.arg0 == 213); + r0 = (s.arg0 == 206); + s.tmp_101 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_101); + if (!r0) { step = 195; continue; } + r0 = globals.light_sensor___4115; + { step = 227; continue; } + case 195: + case 196: + r0 = (s.arg0 == 207); + s.tmp_102 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_102); + if (!r0) { step = 197; continue; } + r0 = globals.magnet___3835; + { step = 227; continue; } + case 197: + case 198: + r0 = (s.arg0 == 208); s.tmp_103 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_103); - if (!r0) { step = 195; continue; } - s.tmp_104 = icondb_operatorIcon__P3893_mk(s); - s.tmp_104.arg0 = "/"; - s.callLocIdx = 858; s.pc = 230; return s.tmp_104; - case 230: + if (!r0) { step = 199; continue; } + r0 = globals.microphone___3838; + { step = 227; continue; } + case 199: + case 200: + r0 = (s.arg0 == 213); + s.tmp_104 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_104); + if (!r0) { step = 201; continue; } + s.tmp_105 = icondb_operatorIcon__P4057_mk(s); + s.tmp_105.arg0 = "/"; + s.callLocIdx = 1128; s.pc = 231; return s.tmp_105; + case 231: + r0 = s.retval; + { step = 227; continue; } + case 201: + case 202: + r0 = (s.arg0 == 211); + s.tmp_106 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_106); + if (!r0) { step = 203; continue; } + s.tmp_107 = icondb_operatorIcon__P4057_mk(s); + s.tmp_107.arg0 = "-"; + s.callLocIdx = 1129; s.pc = 232; return s.tmp_107; + case 232: + r0 = s.retval; + { step = 227; continue; } + case 203: + case 204: + r0 = (s.arg0 == 212); + s.tmp_108 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_108); + if (!r0) { step = 205; continue; } + s.tmp_109 = icondb_operatorIcon__P4057_mk(s); + s.tmp_109.arg0 = "*"; + s.callLocIdx = 1130; s.pc = 233; return s.tmp_109; + case 233: + r0 = s.retval; + { step = 227; continue; } + case 205: + case 206: + r0 = (s.arg0 == 210); + s.tmp_110 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_110); + if (!r0) { step = 207; continue; } + s.tmp_111 = icondb_operatorIcon__P4057_mk(s); + s.tmp_111.arg0 = "+"; + s.callLocIdx = 1131; s.pc = 234; return s.tmp_111; + case 234: + r0 = s.retval; + { step = 227; continue; } + case 207: + case 208: + r0 = (s.arg0 == 220); + s.tmp_112 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_112); + if (!r0) { step = 209; continue; } + r0 = globals.eq___4055; + { step = 227; continue; } + case 209: + case 210: + r0 = (s.arg0 == 221); + s.tmp_113 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_113); + if (!r0) { step = 211; continue; } + r0 = globals.neq___4056; + { step = 227; continue; } + case 211: + case 212: + r0 = (s.arg0 == 222); + s.tmp_114 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_114); + if (!r0) { step = 213; continue; } + r0 = globals.lt___4051; + { step = 227; continue; } + case 213: + case 214: + r0 = (s.arg0 == 223); + s.tmp_115 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_115); + if (!r0) { step = 215; continue; } + r0 = globals.lte___4053; + { step = 227; continue; } + case 215: + case 216: + r0 = (s.arg0 == 224); + s.tmp_116 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_116); + if (!r0) { step = 217; continue; } + r0 = globals.gt___4052; + { step = 227; continue; } + case 217: + case 218: + r0 = (s.arg0 == 225); + s.tmp_117 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_117); + if (!r0) { step = 219; continue; } + r0 = globals.gte___4054; + { step = 227; continue; } + case 219: + case 220: + globals.extraImage___5572 = (null); + s.tmp_0 = microcode_extraSamples__P5573_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1132; s.pc = 235; return s.tmp_0; + case 235: + r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(globals.extraImage___5572); + if (!r0) { step = 221; continue; } + r0 = globals.extraImage___5572; + { step = 227; continue; } + case 221: + case 222: + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 223; continue; } + r0 = null; + { step = 227; continue; } + case 223: + case 224: + r0 = pxsim_pxtcore.typeOf(s.arg0); + s.tmp_1 = r0; + r0 = (s.tmp_1 === "string"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 225; continue; } + s.tmp_2 = user_interface_base_icons_get__P3819_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.arg1; + s.callLocIdx = 1133; s.pc = 236; return s.tmp_2; + case 236: + r0 = s.retval; + { step = 227; continue; } + case 225: + case 226: + r0 = globals.MISSING___3824; + case 227: + return leave(s, r0) + default: oops() +} } } +microcode_icons_get__P4047.info = {"start":3272,"length":9853,"line":63,"column":8,"endLine":248,"endColumn":9,"fileName":"assets.ts","functionName":"get","argumentNames":["name","nullIfMissing"]} + +function microcode_icons_get__P4047_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_icons_get__P4047, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tmp_23: undefined, + tmp_24: undefined, + tmp_25: undefined, + tmp_26: undefined, + tmp_27: undefined, + tmp_28: undefined, + tmp_29: undefined, + tmp_30: undefined, + tmp_31: undefined, + tmp_32: undefined, + tmp_33: undefined, + tmp_34: undefined, + tmp_35: undefined, + tmp_36: undefined, + tmp_37: undefined, + tmp_38: undefined, + tmp_39: undefined, + tmp_40: undefined, + tmp_41: undefined, + tmp_42: undefined, + tmp_43: undefined, + tmp_44: undefined, + tmp_45: undefined, + tmp_46: undefined, + tmp_47: undefined, + tmp_48: undefined, + tmp_49: undefined, + tmp_50: undefined, + tmp_51: undefined, + tmp_52: undefined, + tmp_53: undefined, + tmp_54: undefined, + tmp_55: undefined, + tmp_56: undefined, + tmp_57: undefined, + tmp_58: undefined, + tmp_59: undefined, + tmp_60: undefined, + tmp_61: undefined, + tmp_62: undefined, + tmp_63: undefined, + tmp_64: undefined, + tmp_65: undefined, + tmp_66: undefined, + tmp_67: undefined, + tmp_68: undefined, + tmp_69: undefined, + tmp_70: undefined, + tmp_71: undefined, + tmp_72: undefined, + tmp_73: undefined, + tmp_74: undefined, + tmp_75: undefined, + tmp_76: undefined, + tmp_77: undefined, + tmp_78: undefined, + tmp_79: undefined, + tmp_80: undefined, + tmp_81: undefined, + tmp_82: undefined, + tmp_83: undefined, + tmp_84: undefined, + tmp_85: undefined, + tmp_86: undefined, + tmp_87: undefined, + tmp_88: undefined, + tmp_89: undefined, + tmp_90: undefined, + tmp_91: undefined, + tmp_92: undefined, + tmp_93: undefined, + tmp_94: undefined, + tmp_95: undefined, + tmp_96: undefined, + tmp_97: undefined, + tmp_98: undefined, + tmp_99: undefined, + tmp_100: undefined, + tmp_101: undefined, + tmp_102: undefined, + tmp_103: undefined, + tmp_104: undefined, + tmp_105: undefined, + tmp_106: undefined, + tmp_107: undefined, + tmp_108: undefined, + tmp_109: undefined, + tmp_110: undefined, + tmp_111: undefined, + tmp_112: undefined, + tmp_113: undefined, + tmp_114: undefined, + tmp_115: undefined, + tmp_116: undefined, + tmp_117: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_extraSamples__P5573(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (s.arg0 == "clap_lights"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + globals.extraImage___5572 = (globals.sampleClapLights___4152); + case 1: + case 2: + r0 = (s.arg0 == "firefly"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + globals.extraImage___5572 = (globals.sampleFirefly___4151); + case 3: + case 4: + r0 = (s.arg0 == "flashing_heart"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + globals.extraImage___5572 = (globals.sampleFlashingHeart___4149); + case 5: + case 6: + r0 = (s.arg0 == "rock_paper_scissors"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + globals.extraImage___5572 = (globals.sampleRockPaperScissors___4153); + case 7: + case 8: + r0 = (s.arg0 == "teleport_duck"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + globals.extraImage___5572 = (globals.sampleTeleportDuck___4154); + case 9: + case 10: + r0 = (s.arg0 == "pet_hamster"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + globals.extraImage___5572 = (globals.samplePetHamster___4155); + case 11: + case 12: + r0 = (s.arg0 == "heads_tails"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + globals.extraImage___5572 = (globals.sampleHeadsOrTails___4156); + case 13: + case 14: + r0 = (s.arg0 == "reaction_time"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + globals.extraImage___5572 = (globals.sampleReactionTime___4157); + case 15: + case 16: + r0 = (s.arg0 == "hot_potato"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 17; continue; } + globals.extraImage___5572 = (globals.sampleHotPotato___4158); + case 17: + case 18: + r0 = (s.arg0 == "clap_lights"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 19; continue; } + globals.extraImage___5572 = (globals.sampleClapLights___4152); + case 19: + case 20: + r0 = (s.arg0 == "railroad_crossing"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 21; continue; } + globals.extraImage___5572 = (globals.sampleRailCrossingLight___4159); + case 21: + case 22: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_extraSamples__P5573.info = {"start":122,"length":1017,"line":6,"column":4,"endLine":21,"endColumn":5,"fileName":"assets.ts","functionName":"extraSamples","argumentNames":["name"]} + +function microcode_extraSamples__P5573_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_extraSamples__P5573, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function icondb_operatorIcon__P4057(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.img___12105 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim.bitmaps.create(11, 11); + s.img___12105 = (r0); + r0 = pxsim.BitmapMethods.fill(s.img___12105, 0); + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + s.tmp_0.arg0 = s.img___12105; + s.tmp_0.arg1 = s.arg0; + s.tmp_0.arg2 = 3; + s.tmp_0.arg3 = 1; + s.tmp_0.arg4 = 15; + s.tmp_0.arg5 = undefined; + s.tmp_0.arg6 = undefined; + s.callLocIdx = 1141; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = s.img___12105; + return leave(s, r0) + default: oops() +} } } +icondb_operatorIcon__P4057.info = {"start":19720,"length":162,"line":320,"column":4,"endLine":325,"endColumn":5,"fileName":"assets.ts","functionName":"operatorIcon","argumentNames":["op"]} + +function icondb_operatorIcon__P4057_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: icondb_operatorIcon__P4057, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + img___12105: undefined, + arg0: undefined, +} } + + + + +function icondb_numberToImage__P4169(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.index___12119 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_numops_toBoolDecr(globals.microcodeClassic___4785); + if (!r0) { step = 7; continue; } + r0 = (s.arg0 - 1); + s.tmp_0 = r0; + r0 = pxsim.Math_.floor(s.tmp_0); + s.index___12119 = (r0); + s.tmp_1 = r0 = s.index___12119; + r0 = (s.arg0 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 == s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = (s.index___12119 >= 0); + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (r0) { step = 3; continue; } + r0 = s.tmp_3; + { step = 4; continue; } + case 3: + r0 = (s.index___12119 < 5); + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 5; continue; } + r0 = pxsim_Array__getAt(globals.num2image___5856, s.index___12119); + { step = 9; continue; } + case 5: + case 6: + case 7: + case 8: + s.tmp_5 = icondb_numberToDecimalImage__P4168_mk(s); + s.tmp_5.arg0 = s.arg0; + s.tmp_5.arg1 = true; + s.callLocIdx = 1148; s.pc = 10; return s.tmp_5; + case 10: + r0 = s.retval; + case 9: + return leave(s, r0) + default: oops() +} } } +icondb_numberToImage__P4169.info = {"start":99125,"length":282,"line":2717,"column":4,"endLine":2724,"endColumn":5,"fileName":"assets.ts","functionName":"numberToImage","argumentNames":["i"]} + +function icondb_numberToImage__P4169_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: icondb_numberToImage__P4169, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + index___12119: undefined, + arg0: undefined, +} } + + + + +function icondb_numberToDecimalImage__P4168(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.str___12140 = undefined; + s.width___12149 = undefined; + s.img___12158 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = pxsim_pxtcore.typeOf(s.arg0); + s.tmp_1 = r0; + r0 = (s.tmp_1 == "number"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_numops.toString(s.arg0); + { step = 2; continue; } + case 1: + r0 = s.arg0; + case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + s.str___12140 = (s.tmp_2); + r0 = pxsim_String_.length(s.str___12140); + s.tmp_1 = r0; + r0 = (s.tmp_1 + 1); + s.tmp_0 = r0; + s.tmp_3 = if_charWidth_1_mk(s); + s.tmp_3.arg0 = globals.font___3460; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "charWidth"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["charWidth"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["charWidth"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1145; s.pc = 5; return s.tmp_3; } + } + case 5: + r0 = s.retval; + s.tmp_2 = r0; + r0 = (s.tmp_0 * s.tmp_2); + s.width___12149 = (r0); + r0 = pxsim.bitmaps.create(s.width___12149, 18); + s.img___12158 = (r0); + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim.BitmapMethods.fill(s.img___12158, 1); + r0 = pxsim.BitmapMethods.setPixel(s.img___12158, 0, 0, 0); + s.tmp_0 = r0 = s.img___12158; + r0 = (s.width___12149 - 1); + s.tmp_1 = r0; + r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, 0, 0); + r0 = pxsim.BitmapMethods.setPixel(s.img___12158, 0, 17, 0); + s.tmp_0 = r0 = s.img___12158; + r0 = (s.width___12149 - 1); + s.tmp_1 = r0; + r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, 17, 0); + case 3: + case 4: + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + s.tmp_0.arg0 = s.img___12158; + s.tmp_0.arg1 = s.str___12140; + s.tmp_2 = if_charWidth_1_mk(s); + s.tmp_2.arg0 = globals.font___3460; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "charWidth"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["charWidth"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["charWidth"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1146; s.pc = 7; return s.tmp_2; } + } + case 7: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 >> 1); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = 5; + s.tmp_0.arg4 = 15; + s.tmp_0.arg5 = undefined; + s.tmp_0.arg6 = undefined; + s.callLocIdx = 1147; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + r0 = s.img___12158; + return leave(s, r0) + default: oops() +} } } +icondb_numberToDecimalImage__P4168.info = {"start":98565,"length":554,"line":2699,"column":4,"endLine":2715,"endColumn":5,"fileName":"assets.ts","functionName":"numberToDecimalImage","argumentNames":["i","transparent"]} + +function icondb_numberToDecimalImage__P4168_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: icondb_numberToDecimalImage__P4168, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + str___12140: undefined, + width___12149: undefined, + img___12158: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_MicrobitHost_constructor__P4737(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["sensors"] = (s.tmp_1); + r0 = (s.arg0).fields["_handler"] = (microcode_MicrobitHost_inline__P12198); + r0 = pxsim.control.singleSimulator(); + r0 = pxsim.input.onLogoEvent(3, microcode_MicrobitHost_inline__P12206); + r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P12210); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_1.arg0 = globals.buttons___6075; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1969; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P12248); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_1.arg0 = globals.pins___6079; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1972; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P12271); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_1.arg0 = globals.gestures___6063; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1974; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.tmp_0 = microcode_MicrobitHost_startSensors__P6084_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1975; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P12287); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = radio_onReceivedNumber__P3039_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1977; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P12295); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim.input.onSound(2, s.tmp_0); + r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_inline__P12302); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim.input.onSound(1, s.tmp_0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_constructor__P4737.info = {"start":2041,"length":2636,"line":69,"column":8,"endLine":131,"endColumn":9,"fileName":"host.ts","functionName":"inline","argumentNames":["this"]} + +function microcode_MicrobitHost_constructor__P4737_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_constructor__P4737, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12198(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12198.info = {"start":2085,"length":28,"line":70,"column":28,"endLine":70,"endColumn":56,"fileName":"host.ts","functionName":"inline","argumentNames":["s","f"]} + +function microcode_MicrobitHost_inline__P12198_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12198, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12206(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12206.info = {"start":2255,"length":14,"line":74,"column":56,"endLine":74,"endColumn":70,"fileName":"host.ts","functionName":"inline","argumentNames":[]} + +function microcode_MicrobitHost_inline__P12206_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12206, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + + +function microcode_MicrobitHost_inline__P12210(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_pxtcore_mkAction(2, microcode_MicrobitHost_inline__P12217); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.caps[0]); + r0 = pxsim.control.onEvent(s.arg0, 0, s.tmp_0, 0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12210.info = {"start":2300,"length":860,"line":76,"column":28,"endLine":94,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":["b"]} + +function microcode_MicrobitHost_inline__P12210_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12210, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12217(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.ev___12218 = undefined; + s.tid___12222 = undefined; + s.filter___12233 = undefined; + r0 = pxsim.control.eventValue(); + s.ev___12218 = (r0); + r0 = (globals.theInterpreter___5944 != undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = (s.ev___12218 == 1); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 1; continue; } + r0 = 11; + { step = 4; continue; } + case 1: + r0 = (s.ev___12218 == 2); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 2; continue; } + r0 = 12; + { step = 3; continue; } + case 2: + r0 = undefined; + case 3: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + s.tid___12222 = (s.tmp_4); + r0 = pxsim_pxtrt.mapGetGeneric(globals.matchPressReleaseTable___6049, s.caps[0]); + s.filter___12233 = (r0); + s.tmp_0 = if__handler_3_mk(s); + s.tmp_0.arg0 = s.caps[1]; + s.tmp_0.arg1 = s.tid___12222; + s.tmp_0.arg2 = s.filter___12233; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); + s.callLocIdx = 1967; s.pc = 9; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1967; s.pc = 9; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1967; s.pc = 9; return s.tmp_0;; } + else { s.callLocIdx = 1967; s.pc = 9; return s.tmp_0; } + } + case 9: + r0 = s.retval; + { step = 8; continue; } + case 5: + r0 = (s.ev___12218 == 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_1 = microcode_App_runFromEditor__P4448_mk(s); + s.tmp_1.arg0 = globals.app___4044; + s.callLocIdx = 1968; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + case 6: + case 7: + case 8: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12217.info = {"start":2362,"length":783,"line":77,"column":55,"endLine":93,"endColumn":17,"fileName":"host.ts","functionName":"inline","argumentNames":[]} + +function microcode_MicrobitHost_inline__P12217_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12217, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + ev___12218: undefined, + tid___12222: undefined, + filter___12233: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12248(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = pxsim_pxtcore_mkAction(2, microcode_MicrobitHost_inline__P12254); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + r0 = pxsim.input.onPinPressed(s.arg0, s.tmp_0); + r0 = pxsim_pxtcore_mkAction(2, microcode_MicrobitHost_inline__P12263); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + r0 = pxsim.input.onPinReleased(s.arg0, s.tmp_0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12248.info = {"start":3188,"length":306,"line":96,"column":25,"endLine":103,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":["p","index"]} + +function microcode_MicrobitHost_inline__P12248_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12248, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12254(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = if__handler_3_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 11; + r0 = pxsim_Array__getAt(globals.pin2tid___6083, s.caps[1]); + s.tmp_0.arg2 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); + s.callLocIdx = 1970; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1970; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1970; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1970; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12254.info = {"start":3242,"length":97,"line":97,"column":38,"endLine":99,"endColumn":17,"fileName":"host.ts","functionName":"inline","argumentNames":[]} + +function microcode_MicrobitHost_inline__P12254_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12254, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12263(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = if__handler_3_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 12; + r0 = pxsim_Array__getAt(globals.pin2tid___6083, s.caps[1]); + s.tmp_0.arg2 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); + s.callLocIdx = 1971; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1971; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1971; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1971; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12263.info = {"start":3380,"length":99,"line":100,"column":39,"endLine":102,"endColumn":17,"fileName":"host.ts","functionName":"inline","argumentNames":[]} + +function microcode_MicrobitHost_inline__P12263_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12263, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12271(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + setupResume(s, 1); + pxsim.basic.pause(0); + checkResumeConsumed(); + return; + case 1: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(2, microcode_MicrobitHost_inline__P12279); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + r0 = pxsim.input.onGesture(s.arg0, s.tmp_0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12271.info = {"start":3526,"length":674,"line":105,"column":29,"endLine":116,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":["g","index"]} + +function microcode_MicrobitHost_inline__P12271_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12271, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12279(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = if__handler_3_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 13; + r0 = pxsim_Array__getAt(globals.gestures2tids___6071, s.caps[1]); + s.tmp_0.arg2 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); + s.callLocIdx = 1973; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1973; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1973; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1973; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12279.info = {"start":4004,"length":181,"line":110,"column":35,"endLine":115,"endColumn":17,"fileName":"host.ts","functionName":"inline","argumentNames":[]} + +function microcode_MicrobitHost_inline__P12279_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12279, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12287(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = if__handler_3_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 17; + s.tmp_0.arg2 = s.arg0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); + s.callLocIdx = 1976; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1976; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1976; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1976; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12287.info = {"start":4271,"length":97,"line":120,"column":35,"endLine":122,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":["radioNum"]} + +function microcode_MicrobitHost_inline__P12287_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12287, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12295(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = if__handler_3_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 18; + s.tmp_0.arg2 = 87; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); + s.callLocIdx = 1978; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1978; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1978; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1978; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12295.info = {"start":4417,"length":99,"line":124,"column":46,"endLine":126,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":[]} + +function microcode_MicrobitHost_inline__P12295_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12295, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + + +function microcode_MicrobitHost_inline__P12302(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = if__handler_3_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 18; + s.tmp_0.arg2 = 88; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "_handler"), 3); + s.callLocIdx = 1979; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["_handler"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["_handler"], 3); s.callLocIdx = 1979; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1979; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1979; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_inline__P12302.info = {"start":4566,"length":100,"line":128,"column":47,"endLine":130,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":[]} + +function microcode_MicrobitHost_inline__P12302_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_inline__P12302, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + + +function radio_onReceivedNumber__P3039(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = radio_init__P5012_mk(s); + s.callLocIdx = 166; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + globals.onReceivedNumberHandler___5008 = (s.arg0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +radio_onReceivedNumber__P3039.info = {"start":3634,"length":132,"line":99,"column":4,"endLine":102,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"onReceivedNumber","argumentNames":["cb"]} + +function radio_onReceivedNumber__P3039_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_onReceivedNumber__P3039, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function radio_init__P5012(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = pxsim_numops_toBoolDecr(globals.initialized___5007); + if (!r0) { step = 1; continue; } + { step = 3; continue; } + case 1: + case 2: + globals.initialized___5007 = (true); + r0 = pxsim.radio.onDataReceived(radio_handleDataReceived__P5013); + case 3: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +radio_init__P5012.info = {"start":1998,"length":128,"line":56,"column":4,"endLine":60,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"init","argumentNames":[]} + +function radio_init__P5012_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_init__P5012, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + + +function radio_handleDataReceived__P5013(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.buffer___12315 = undefined; + r0 = pxsim.radio.readRawPacket(); + s.buffer___12315 = (r0); + case 1: + r0 = pxsim_numops_toBoolDecr(s.buffer___12315); + if (!r0) { step = 17; continue; } + s.tmp_0 = radio_RadioPacket_getPacket__P3046_mk(s); + s.tmp_0.arg0 = s.buffer___12315; + s.callLocIdx = 155; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + globals.lastPacket___3038 = (r0); + r0 = globals.lastPacket___3038.fields["data"]; + s.tmp_1 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_1, 0); + s.tmp_0 = r0; + r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + if (r0) { step = 13; continue; } + r0 = s.tmp_0; + { step = 16; continue; } + case 2: + case 3: + r0 = pxsim_numops_toBoolDecr(globals.onReceivedNumberHandler___5008); + if (!r0) { step = 4; continue; } + s.tmp_2 = lambda_2_mk(s); + s.tmp_2.argL = globals.onReceivedNumberHandler___5008; + s.tmp_3 = radio_RadioPacket_numberPayload__P3056_mk(s); + s.tmp_3.arg0 = globals.lastPacket___3038; + s.callLocIdx = 157; s.pc = 20; return s.tmp_3; + case 20: + r0 = s.retval; + s.tmp_2.arg0 = r0; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 158; s.pc = 19; return s.tmp_2; + case 19: + r0 = s.retval; + case 4: + case 5: + { step = 16; continue; } + case 6: + case 7: + r0 = pxsim_numops_toBoolDecr(globals.onReceivedValueHandler___5009); + if (!r0) { step = 8; continue; } + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = globals.onReceivedValueHandler___5009; + s.tmp_1 = radio_RadioPacket_stringPayload__P3054_mk(s); + s.tmp_1.arg0 = globals.lastPacket___3038; + s.callLocIdx = 159; s.pc = 22; return s.tmp_1; + case 22: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_2 = radio_RadioPacket_numberPayload__P3056_mk(s); + s.tmp_2.arg0 = globals.lastPacket___3038; + s.callLocIdx = 160; s.pc = 23; return s.tmp_2; + case 23: + r0 = s.retval; + s.tmp_0.arg1 = r0; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 161; s.pc = 21; return s.tmp_0; + case 21: + r0 = s.retval; + case 8: + case 9: + { step = 16; continue; } + case 10: + r0 = pxsim_numops_toBoolDecr(globals.onReceivedBufferHandler___5011); + if (!r0) { step = 11; continue; } + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = globals.onReceivedBufferHandler___5011; + s.tmp_1 = radio_RadioPacket_bufferPayload__P3058_mk(s); + s.tmp_1.arg0 = globals.lastPacket___3038; + s.callLocIdx = 162; s.pc = 25; return s.tmp_1; + case 25: + r0 = s.retval; + s.tmp_0.arg0 = r0; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 163; s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + case 11: + case 12: + { step = 16; continue; } + case 13: + r0 = pxsim_numops_toBoolDecr(globals.onReceivedStringHandler___5010); + if (!r0) { step = 14; continue; } + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = globals.onReceivedStringHandler___5010; + s.tmp_1 = radio_RadioPacket_stringPayload__P3054_mk(s); + s.tmp_1.arg0 = globals.lastPacket___3038; + s.callLocIdx = 164; s.pc = 27; return s.tmp_1; + case 27: + r0 = s.retval; + s.tmp_0.arg0 = r0; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 165; s.pc = 26; return s.tmp_0; + case 26: + r0 = s.retval; + case 14: + case 15: + case 16: + r0 = pxsim.radio.readRawPacket(); + s.buffer___12315 = (r0); + { step = 1; continue; } + case 17: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +radio_handleDataReceived__P5013.info = {"start":2132,"length":1189,"line":62,"column":4,"endLine":89,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"handleDataReceived","argumentNames":[]} + +function radio_handleDataReceived__P5013_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_handleDataReceived__P5013, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + buffer___12315: undefined, +} } + + + + +function radio_RadioPacket_bufferPayload__P3058(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.len___12354 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = s.arg0.fields["data"]; + s.tmp_0 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_0, 9); + s.len___12354 = (r0); + r0 = s.arg0.fields["data"]; + s.tmp_0 = r0; + r0 = pxsim.BufferMethods.slice(s.tmp_0, 10, s.len___12354); + return leaveAccessor(s, r0) + default: oops() +} } } +radio_RadioPacket_bufferPayload__P3058.info = {"start":8841,"length":155,"line":251,"column":8,"endLine":254,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"bufferPayload","argumentNames":["this"]} +radio_RadioPacket_bufferPayload__P3058.isGetter = true; + +function radio_RadioPacket_bufferPayload__P3058_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_RadioPacket_bufferPayload__P3058, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + len___12354: undefined, + arg0: undefined, +} } + + + + +function radio_RadioPacket_stringPayload__P3054(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.offset___12369 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + s.tmp_0 = radio_getStringOffset__P5017_mk(s); + r0 = s.arg0.fields["data"]; + s.tmp_1 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_1, 0); + s.tmp_0.arg0 = r0; + s.callLocIdx = 170; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.offset___12369 = (r0); + r0 = pxsim_numops_toBoolDecr(s.offset___12369); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["data"]; + s.tmp_1 = r0; + r0 = (s.offset___12369 + 1); + s.tmp_2 = r0; + r0 = s.arg0.fields["data"]; + s.tmp_4 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_4, s.offset___12369); + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.slice(s.tmp_1, s.tmp_2, s.tmp_3); + s.tmp_0 = r0; + r0 = pxsim.BufferMethods.toString(s.tmp_0); + { step = 2; continue; } + case 1: + r0 = undefined; + case 2: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = s.tmp_5; + return leaveAccessor(s, r0) + default: oops() +} } } +radio_RadioPacket_stringPayload__P3054.info = {"start":7264,"length":201,"line":212,"column":8,"endLine":215,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"stringPayload","argumentNames":["this"]} +radio_RadioPacket_stringPayload__P3054.isGetter = true; + +function radio_RadioPacket_stringPayload__P3054_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_RadioPacket_stringPayload__P3054, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + offset___12369: undefined, + arg0: undefined, +} } + + + + +function radio_getStringOffset__P5017(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = s.tmp_0; + { step = 4; continue; } + case 1: + r0 = 9; + { step = 5; continue; } + case 2: + r0 = 13; + { step = 5; continue; } + case 3: + r0 = 17; + { step = 5; continue; } + case 4: + r0 = undefined; + { step = 5; continue; } + r0 = undefined; + case 5: + return leave(s, r0) + default: oops() +} } } +radio_getStringOffset__P5017.info = {"start":13160,"length":421,"line":381,"column":4,"endLine":392,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"getStringOffset","argumentNames":["packetType"]} + +function radio_getStringOffset__P5017_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_getStringOffset__P5017, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function radio_RadioPacket_numberPayload__P3056(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = s.arg0.fields["data"]; + s.tmp_1 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_1, 0); + s.tmp_0 = r0; + r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = s.tmp_0; + { step = 5; continue; } + case 1: + case 2: + r0 = s.arg0.fields["data"]; + s.tmp_2 = r0; + r0 = pxsim.BufferMethods.getNumber(s.tmp_2, 5, 9); + { step = 6; continue; } + case 3: + case 4: + r0 = s.arg0.fields["data"]; + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.getNumber(s.tmp_3, 14, 9); + { step = 6; continue; } + case 5: + r0 = undefined; + case 6: + return leaveAccessor(s, r0) + default: oops() +} } } +radio_RadioPacket_numberPayload__P3056.info = {"start":7852,"length":469,"line":226,"column":8,"endLine":236,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"numberPayload","argumentNames":["this"]} +radio_RadioPacket_numberPayload__P3056.isGetter = true; + +function radio_RadioPacket_numberPayload__P3056_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_RadioPacket_numberPayload__P3056, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, +} } + + + + +function radio_RadioPacket_packetType__P3049(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = s.arg0.fields["data"]; + s.tmp_0 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_0, 0); + return leaveAccessor(s, r0) + default: oops() +} } } +radio_RadioPacket_packetType__P3049.info = {"start":6783,"length":61,"line":192,"column":8,"endLine":194,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"packetType","argumentNames":["this"]} +radio_RadioPacket_packetType__P3049.isGetter = true; + +function radio_RadioPacket_packetType__P3049_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_RadioPacket_packetType__P3049, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function radio_RadioPacket_getPacket__P3046(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_numops_toBoolDecr(s.arg0); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = undefined; + { step = 3; continue; } + case 1: + case 2: + r0 = pxsim_pxtcore_mkClassInstance(radio_RadioPacket__C3045_VT); + s.tmp_2 = r0; + s.tmp_3 = radio_RadioPacket_constructor__P5014_mk(s); + s.tmp_3.arg0 = s.tmp_2; + s.tmp_3.arg1 = s.arg0; + s.callLocIdx = 167; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + r0 = s.tmp_2; + case 3: + return leave(s, r0) + default: oops() +} } } +radio_RadioPacket_getPacket__P3046.info = {"start":6162,"length":168,"line":172,"column":8,"endLine":176,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"getPacket","argumentNames":["data"]} + +function radio_RadioPacket_getPacket__P3046_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_RadioPacket_getPacket__P3046, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, +} } + + + + +function radio_RadioPacket_constructor__P5014(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = (s.arg0).fields["data"] = (s.arg1); + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = r0 = s.arg0; + r0 = pxsim.control.createBuffer(36); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["data"] = (s.tmp_3); + case 1: + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +radio_RadioPacket_constructor__P5014.info = {"start":6509,"length":146,"line":184,"column":8,"endLine":186,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"inline","argumentNames":["this","data"]} + +function radio_RadioPacket_constructor__P5014_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_RadioPacket_constructor__P5014, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_MicrobitHost_startSensors__P6084(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + r0 = s.arg0.fields["sensors"]; + s.tmp_0 = r0; + s.tmp_2 = Sensor_getFromName__P4769_mk(s); + s.tmp_2.arg0 = "Light"; + s.callLocIdx = 1985; s.pc = 1; return s.tmp_2; + case 1: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + r0 = s.arg0.fields["sensors"]; + s.tmp_0 = r0; + s.tmp_2 = Sensor_getFromName__P4769_mk(s); + s.tmp_2.arg0 = "Temperature"; + s.callLocIdx = 1986; s.pc = 2; return s.tmp_2; + case 2: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + r0 = s.arg0.fields["sensors"]; + s.tmp_0 = r0; + s.tmp_2 = Sensor_getFromName__P4769_mk(s); + s.tmp_2.arg0 = "Magnet"; + s.callLocIdx = 1987; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + r0 = s.arg0.fields["sensors"]; + s.tmp_0 = r0; + s.tmp_2 = Sensor_getFromName__P4769_mk(s); + s.tmp_2.arg0 = "Microphone"; + s.callLocIdx = 1988; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MicrobitHost_startSensors__P6084.info = {"start":5070,"length":316,"line":143,"column":8,"endLine":149,"endColumn":9,"fileName":"host.ts","functionName":"startSensors","argumentNames":["this"]} + +function microcode_MicrobitHost_startSensors__P6084_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MicrobitHost_startSensors__P6084, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, +} } + + + + +function Sensor_getFromName__P4769(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (s.arg0 == "Light"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = (s.arg0 == "L"); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4767_VT); + s.tmp_2 = r0; + s.tmp_3 = Sensor_constructor__P4768_mk(s); + s.tmp_3.arg0 = s.tmp_2; + s.tmp_3.arg1 = "Light"; + s.tmp_3.arg2 = "L"; + s.tmp_3.arg3 = Sensor_getFromName_inline__P12468; + s.tmp_3.arg4 = 0; + s.tmp_3.arg5 = 255; + s.tmp_3.arg6 = false; + s.tmp_3.arg7 = undefined; + s.callLocIdx = 2157; s.pc = 22; return s.tmp_3; + case 22: + r0 = s.retval; + r0 = s.tmp_2; + { step = 21; continue; } + { step = 20; continue; } + case 3: + r0 = (s.arg0 == "Temp."); + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (!r0) { step = 4; continue; } + r0 = s.tmp_4; + { step = 5; continue; } + case 4: + r0 = (s.arg0 == "Temperature"); + case 5: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (!r0) { step = 6; continue; } + r0 = s.tmp_5; + { step = 7; continue; } + case 6: + r0 = (s.arg0 == "T"); + case 7: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 8; continue; } + r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4767_VT); + s.tmp_7 = r0; + s.tmp_8 = Sensor_constructor__P4768_mk(s); + s.tmp_8.arg0 = s.tmp_7; + s.tmp_8.arg1 = "Temperature"; + s.tmp_8.arg2 = "T"; + s.tmp_8.arg3 = Sensor_getFromName_inline__P12482; + s.tmp_8.arg4 = -40; + s.tmp_8.arg5 = 100; + s.tmp_8.arg6 = false; + s.tmp_8.arg7 = undefined; + s.callLocIdx = 2158; s.pc = 23; return s.tmp_8; + case 23: + r0 = s.retval; + r0 = s.tmp_7; + { step = 21; continue; } + { step = 19; continue; } + case 8: + r0 = (s.arg0 == "Magnet"); + s.tmp_9 = r0; + r0 = pxsim_numops_toBool(s.tmp_9); + if (!r0) { step = 9; continue; } + r0 = s.tmp_9; + { step = 10; continue; } + case 9: + r0 = (s.arg0 == "M"); + case 10: + // jmp value (already in r0) + s.tmp_10 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_10); + if (!r0) { step = 11; continue; } + r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4767_VT); + s.tmp_11 = r0; + s.tmp_12 = Sensor_constructor__P4768_mk(s); + s.tmp_12.arg0 = s.tmp_11; + s.tmp_12.arg1 = "Magnet"; + s.tmp_12.arg2 = "M"; + s.tmp_12.arg3 = Sensor_getFromName_inline__P12495; + s.tmp_12.arg4 = -5000; + s.tmp_12.arg5 = 5000; + s.tmp_12.arg6 = false; + s.tmp_12.arg7 = undefined; + s.callLocIdx = 2159; s.pc = 24; return s.tmp_12; + case 24: + r0 = s.retval; + r0 = s.tmp_11; + { step = 21; continue; } + { step = 18; continue; } + case 11: + r0 = (s.arg0 == "Volume"); + s.tmp_13 = r0; + r0 = pxsim_numops_toBool(s.tmp_13); + if (!r0) { step = 12; continue; } + r0 = s.tmp_13; + { step = 13; continue; } + case 12: + r0 = (s.arg0 == "Microphone"); + case 13: + // jmp value (already in r0) + s.tmp_14 = r0; + r0 = pxsim_numops_toBool(s.tmp_14); + if (!r0) { step = 14; continue; } + r0 = s.tmp_14; + { step = 15; continue; } + case 14: + r0 = (s.arg0 == "V"); + case 15: + // jmp value (already in r0) + s.tmp_15 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_15); + if (!r0) { step = 16; continue; } + r0 = pxsim_pxtcore_mkClassInstance(Sensor__C4767_VT); + s.tmp_16 = r0; + s.tmp_17 = Sensor_constructor__P4768_mk(s); + s.tmp_17.arg0 = s.tmp_16; + s.tmp_17.arg1 = "Microphone"; + s.tmp_17.arg2 = "V"; + s.tmp_17.arg3 = Sensor_getFromName_inline__P12512; + s.tmp_17.arg4 = 0; + s.tmp_17.arg5 = 255; + s.tmp_17.arg6 = false; + s.tmp_17.arg7 = undefined; + s.callLocIdx = 2160; s.pc = 25; return s.tmp_17; + case 25: + r0 = s.retval; + r0 = s.tmp_16; + { step = 21; continue; } + { step = 17; continue; } + case 16: + r0 = undefined; + { step = 21; continue; } + case 17: + case 18: + case 19: + case 20: + r0 = undefined; + case 21: + return leave(s, r0) + default: oops() +} } } +Sensor_getFromName__P4769.info = {"start":1383,"length":1148,"line":34,"column":4,"endLine":72,"endColumn":5,"fileName":"sensors.ts","functionName":"getFromName","argumentNames":["name"]} + +function Sensor_getFromName__P4769_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: Sensor_getFromName__P4769, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + arg0: undefined, +} } + + + + +function Sensor_getFromName_inline__P12468(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = pxsim.input.lightLevel(); + return leave(s, r0) + default: oops() +} } } +Sensor_getFromName_inline__P12468.info = {"start":1570,"length":24,"line":39,"column":16,"endLine":39,"endColumn":40,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} + +function Sensor_getFromName_inline__P12468_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: Sensor_getFromName_inline__P12468, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + + +function Sensor_getFromName_inline__P12482(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = pxsim.input.temperature(); + return leave(s, r0) + default: oops() +} } } +Sensor_getFromName_inline__P12482.info = {"start":1845,"length":25,"line":48,"column":16,"endLine":48,"endColumn":41,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} + +function Sensor_getFromName_inline__P12482_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: Sensor_getFromName_inline__P12482, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + + +function Sensor_getFromName_inline__P12495(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = pxsim.input.magneticForce(3); + return leave(s, r0) + default: oops() +} } } +Sensor_getFromName_inline__P12495.info = {"start":2094,"length":45,"line":57,"column":16,"endLine":57,"endColumn":61,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} + +function Sensor_getFromName_inline__P12495_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: Sensor_getFromName_inline__P12495, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + + +function Sensor_getFromName_inline__P12512(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = pxsim.input.soundLevel(); + return leave(s, r0) + default: oops() +} } } +Sensor_getFromName_inline__P12512.info = {"start":2394,"length":24,"line":66,"column":16,"endLine":66,"endColumn":40,"fileName":"sensors.ts","functionName":"inline","argumentNames":[]} + +function Sensor_getFromName_inline__P12512_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: Sensor_getFromName_inline__P12512, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + + +function Sensor_constructor__P4768(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); + s.arg5 = (s.lambdaArgs[5]); + s.arg6 = (s.lambdaArgs[6]); + s.arg7 = (s.lambdaArgs[7]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, Sensor__C4767_VT)) failedCast(r0, Sensor__C4767_VT); + r0 = (s.arg0).fields["name"] = (s.arg1); + r0 = (s.arg0).fields["radioName"] = (s.arg2); + r0 = (s.arg0).fields["sensorFn"] = (s.arg3); + r0 = (s.arg0).fields["minimum"] = (s.arg4); + r0 = (s.arg0).fields["maximum"] = (s.arg5); + r0 = (s.arg0).fields["isJacdacSensor"] = (s.arg6); + r0 = (s.arg0).fields["setupFn"] = (s.arg7); + s.tmp_0 = r0 = s.arg0; + s.tmp_3 = Math_abs__P2157_mk(s); + r0 = s.arg0.fields["minimum"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 2155; s.pc = 3; return s.tmp_3; + case 3: + r0 = s.retval; + s.tmp_2 = r0; + r0 = s.arg0.fields["maximum"]; + s.tmp_4 = r0; + r0 = (s.tmp_2 + s.tmp_4); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["range"] = (s.tmp_1); + r0 = s.arg0.fields["setupFn"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = if_setupFn_1_mk(s); + s.tmp_2.arg0 = s.arg0; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "setupFn"), 1); + s.callLocIdx = 2156; s.pc = 4; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["setupFn"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["setupFn"], 1); s.callLocIdx = 2156; s.pc = 4; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 2156; s.pc = 4; return s.tmp_2;; } + else { s.callLocIdx = 2156; s.pc = 4; return s.tmp_2; } + } + case 4: + r0 = s.retval; + case 1: + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +Sensor_constructor__P4768.info = {"start":356,"length":522,"line":8,"column":4,"endLine":22,"endColumn":5,"fileName":"sensors.ts","functionName":"inline","argumentNames":["this","name","radioName","sensorFn","minimum","maximum","isJacdacSensor","setupFn"]} + +function Sensor_constructor__P4768_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: Sensor_constructor__P4768, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, + arg5: undefined, + arg6: undefined, + arg7: undefined, +} } + + + + +function microcode_App_runFromEditor__P4448(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.topIndex___12540 = undefined; + s.topScene___12546 = undefined; + s.editor___12555 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_App__C4442_VT)) failedCast(r0, microcode_App__C4442_VT); + r0 = s.arg0.fields["sceneManager"]; + r0 = r0.fields["scenes"]; + s.tmp_1 = r0; + r0 = pxsim_Array__length(s.tmp_1); + s.tmp_0 = r0; + r0 = (s.tmp_0 - 1); + s.topIndex___12540 = (r0); + r0 = s.arg0.fields["sceneManager"]; + r0 = r0.fields["scenes"]; + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.topIndex___12540); + s.topScene___12546 = (r0); + r0 = s.topScene___12546; + r0 = checkSubtype(r0, microcode_Editor__C4454_VT); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.editor___12555 = (s.topScene___12546); + s.tmp_0 = microcode_Editor_runProgram__P4472_mk(s); + s.tmp_0.arg0 = s.editor___12555; + s.callLocIdx = 1403; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + case 1: + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_App_runFromEditor__P4448.info = {"start":1810,"length":307,"line":64,"column":8,"endLine":71,"endColumn":9,"fileName":"app.ts","functionName":"runFromEditor","argumentNames":["this"]} + +function microcode_App_runFromEditor__P4448_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_App_runFromEditor__P4448, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + topIndex___12540: undefined, + topScene___12546: undefined, + editor___12555: undefined, + arg0: undefined, +} } + + + + +function microcode_Editor_runProgram__P4472(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = (globals.theInterpreter___5944 != undefined); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = microcode_runProgram__P4449_mk(s); + r0 = s.arg0.fields["progdef"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 1508; s.pc = 3; return s.tmp_3; + case 3: + r0 = s.retval; + s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3629_mk(s); + r0 = s.arg0.fields["runBtn"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = globals.runDisabled___4178; + s.callLocIdx = 1509; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3629_mk(s); + r0 = s.arg0.fields["stopBtn"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = globals.stop___4179; + s.callLocIdx = 1510; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = (s.arg0).fields["dirty"] = (true); + case 1: + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_Editor_runProgram__P4472.info = {"start":10467,"length":273,"line":301,"column":8,"endLine":308,"endColumn":9,"fileName":"editor.ts","functionName":"runProgram","argumentNames":["this"]} + +function microcode_Editor_runProgram__P4472_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_Editor_runProgram__P4472, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, +} } + + + + +function user_interface_base_ButtonBase_buildSprite__P3629(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Sprite__C3444_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "img", s.arg1); + s.tmp_2 = user_interface_base_Sprite_constructor__P3452_mk(s); + s.tmp_2.arg0 = s.tmp_0; + s.tmp_2.arg1 = s.tmp_1; + s.callLocIdx = 515; s.pc = 1; return s.tmp_2; + case 1: + r0 = s.retval; + r0 = (s.arg0).fields["icon"] = (s.tmp_0); + s.tmp_0 = user_interface_base_Affine_parent__P3329_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 518; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_ButtonBase_buildSprite__P3629.info = {"start":3081,"length":154,"line":134,"column":4,"endLine":140,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"buildSprite","argumentNames":["this","img"]} + +function user_interface_base_ButtonBase_buildSprite__P3629_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_ButtonBase_buildSprite__P3629, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function user_interface_base_ButtonBase_xfrm__P3624(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + r0 = s.arg0.fields["xfrm_"]; + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_ButtonBase_xfrm__P3624.info = {"start":2553,"length":49,"line":107,"column":4,"endLine":109,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"xfrm","argumentNames":["this"]} +user_interface_base_ButtonBase_xfrm__P3624.isGetter = true; + +function user_interface_base_ButtonBase_xfrm__P3624_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_ButtonBase_xfrm__P3624, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function user_interface_base_Sprite_xfrm__P3447(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + r0 = s.arg0.fields["xfrm_"]; + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_Sprite_xfrm__P3447.info = {"start":461,"length":60,"line":13,"column":8,"endLine":15,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"xfrm","argumentNames":["this"]} +user_interface_base_Sprite_xfrm__P3447.isGetter = true; + +function user_interface_base_Sprite_xfrm__P3447_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Sprite_xfrm__P3447, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function user_interface_base_Affine_parent__P3329(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Affine__C3324_VT)) failedCast(r0, user_interface_base_Affine__C3324_VT); + r0 = (s.arg0).fields["parent_"] = (s.arg1); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_Affine_parent__P3329.info = {"start":1003,"length":69,"line":30,"column":8,"endLine":32,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"parent","argumentNames":["this","p"]} + +function user_interface_base_Affine_parent__P3329_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Affine_parent__P3329, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, +} } + + + + +function user_interface_base_Affine_parent__P3328(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Affine__C3324_VT)) failedCast(r0, user_interface_base_Affine__C3324_VT); + r0 = s.arg0.fields["parent_"]; + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_Affine_parent__P3328.info = {"start":931,"length":63,"line":27,"column":8,"endLine":29,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"parent","argumentNames":["this"]} +user_interface_base_Affine_parent__P3328.isGetter = true; + +function user_interface_base_Affine_parent__P3328_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Affine_parent__P3328, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function user_interface_base_Sprite_constructor__P3452(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 464; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); + s.tmp_1 = if_parent_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "parent"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["parent"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["parent"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 465; s.pc = 4; return s.tmp_1; } + } + case 4: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_2 = if_xfrm_1_mk(s); + s.tmp_3 = if_parent_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "parent"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["parent"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["parent"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 466; s.pc = 6; return s.tmp_3; } + } + case 6: + r0 = s.retval; + s.tmp_2.arg0 = r0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "xfrm"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["xfrm"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["xfrm"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 467; s.pc = 5; return s.tmp_2; } + } + case 5: + r0 = s.retval; + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + s.tmp_5 = user_interface_base_Affine_parent__P3329_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_5.arg0 = r0; + s.tmp_5.arg1 = s.tmp_4; + s.callLocIdx = 468; s.pc = 7; return s.tmp_5; + case 7: + r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_img_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "img"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["img"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["img"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 469; s.pc = 8; return s.tmp_2; } + } + case 8: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["image"] = (s.tmp_1); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_Sprite_constructor__P3452.info = {"start":1088,"length":203,"line":38,"column":8,"endLine":42,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"inline","argumentNames":["this","opts"]} + +function user_interface_base_Sprite_constructor__P3452_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Sprite_constructor__P3452, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_isProgramRunning__P4451(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = (globals.theInterpreter___5944 != undefined); + return leave(s, r0) + default: oops() +} } } +microcode_isProgramRunning__P4451.info = {"start":2475,"length":85,"line":86,"column":4,"endLine":88,"endColumn":5,"fileName":"app.ts","functionName":"isProgramRunning","argumentNames":[]} + +function microcode_isProgramRunning__P4451_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_isProgramRunning__P4451, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + + +function helpers_imageDrawLine__P3111(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); + s.arg5 = (s.lambdaArgs[5]); + s.lambdaArgs = null; + } + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = helpers_pack__P5029_mk(s); + s.tmp_2.arg0 = s.arg1; + s.tmp_2.arg1 = s.arg2; + s.callLocIdx = 184; s.pc = 1; return s.tmp_2; + case 1: + r0 = s.retval; + s.tmp_1 = r0; + s.tmp_4 = helpers_pack__P5029_mk(s); + s.tmp_4.arg0 = s.arg3; + s.tmp_4.arg1 = s.arg4; + s.callLocIdx = 185; s.pc = 2; return s.tmp_4; + case 2: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods._drawLine(s.tmp_0, s.tmp_1, s.tmp_3, s.arg5); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +helpers_imageDrawLine__P3111.info = {"start":5336,"length":160,"line":162,"column":4,"endLine":164,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"imageDrawLine","argumentNames":["img","x","y","w","h","c"]} + +function helpers_imageDrawLine__P3111_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: helpers_imageDrawLine__P3111, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, + arg5: undefined, +} } + + + + +function settings_initScopes__P5556(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.rn___12649 = undefined; + s.tmp_1 = settings_runNumber__P4010_mk(s); + s.callLocIdx = 1115; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + s.tmp_0 = r0; + r0 = (s.tmp_0 + 1); + s.rn___12649 = (r0); + s.tmp_0 = settings_writeNumber__P4015_mk(s); + s.tmp_0.arg0 = globals.RUN_KEY___5544; + s.tmp_0.arg1 = s.rn___12649; + s.callLocIdx = 1116; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = pxsim.control.deviceSerialNumber(); + s.tmp_1 = r0; + r0 = (s.tmp_1 & 2147483647); + s.tmp_0 = r0; + r0 = pxsim_pxtcore.seedAddRandom(s.tmp_0); + r0 = pxsim_pxtcore.seedAddRandom(s.rn___12649); + s.tmp_0 = settings_setScope__P5555_mk(s); + r0 = pxsim_pxtcore.programName(); + s.tmp_0.arg0 = r0; + s.callLocIdx = 1117; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +settings_initScopes__P5556.info = {"start":1104,"length":230,"line":41,"column":4,"endLine":49,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"initScopes","argumentNames":[]} + +function settings_initScopes__P5556_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: settings_initScopes__P5556, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + rn___12649: undefined, +} } + + + + +function settings_setScope__P5555(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.currScope___12678 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_numops_toBoolDecr(s.arg0); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_2 > 100); + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 3; continue; } + r0 = pxsim_pxtrt.panic(922); + case 3: + case 4: + s.tmp_0 = settings_readString__P4018_mk(s); + s.tmp_0.arg0 = globals.SCOPE_KEY___5545; + s.callLocIdx = 1113; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + s.currScope___12678 = (r0); + r0 = (s.currScope___12678 != s.arg0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = pxsim.settings._userClean(); + s.tmp_0 = settings_writeString__P4013_mk(s); + s.tmp_0.arg0 = globals.SCOPE_KEY___5545; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 1114; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + case 5: + case 6: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +settings_setScope__P5555.info = {"start":826,"length":272,"line":31,"column":4,"endLine":39,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"setScope","argumentNames":["scope"]} + +function settings_setScope__P5555_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: settings_setScope__P5555, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + currScope___12678: undefined, + arg0: undefined, +} } + + + + +function settings_writeString__P4013(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + s.tmp_0 = settings_writeBuffer__P4012_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = pxsim.control.createBufferFromUTF8(s.arg1); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1119; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +settings_writeString__P4013.info = {"start":1895,"length":125,"line":75,"column":4,"endLine":77,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"writeString","argumentNames":["key","value"]} + +function settings_writeString__P4013_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: settings_writeString__P4013, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function settings_writeBuffer__P4012(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = pxsim.settings._set(s.arg0, s.arg1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim.settings._userClean(); + r0 = pxsim_pxtrt.panic(920); + case 1: + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +settings_writeBuffer__P4012.info = {"start":1538,"length":290,"line":63,"column":4,"endLine":70,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"writeBuffer","argumentNames":["key","value"]} + +function settings_writeBuffer__P4012_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: settings_writeBuffer__P4012, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function settings_readString__P4018(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.buf___12709 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim.settings._get(s.arg0); + s.buf___12709 = (r0); + r0 = pxsim_numops_toBoolDecr(s.buf___12709); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = undefined; + { step = 3; continue; } + { step = 2; continue; } + case 1: + r0 = pxsim.BufferMethods.toString(s.buf___12709); + { step = 3; continue; } + case 2: + r0 = undefined; + case 3: + return leave(s, r0) + default: oops() +} } } +settings_readString__P4018.info = {"start":2827,"length":177,"line":110,"column":4,"endLine":116,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"readString","argumentNames":["key"]} + +function settings_readString__P4018_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: settings_readString__P4018, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + buf___12709: undefined, + arg0: undefined, +} } + + + + +function settings_writeNumber__P4015(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.arg1); + s.tmp_1 = settings_writeBuffer__P4012_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_2 = msgpack_packNumberArray__P2773_mk(s); + s.tmp_2.arg0 = s.tmp_0; + s.callLocIdx = 1120; s.pc = 2; return s.tmp_2; + case 2: + r0 = s.retval; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1121; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +settings_writeNumber__P4015.info = {"start":2265,"length":122,"line":89,"column":4,"endLine":91,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"writeNumber","argumentNames":["key","value"]} + +function settings_writeNumber__P4015_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: settings_writeNumber__P4015, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function msgpack_packNumberArray__P2773(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.off___12727 = undefined; + s.n___12729 = undefined; + s.unnamed42___U2 = undefined; + s.unnamed43___U3 = undefined; + s.buf___12739 = undefined; + s.n___12745 = undefined; + s.unnamed44___U6 = undefined; + s.unnamed45___U7 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.off___12727 = (0); + s.n___12729 = (undefined); + s.unnamed42___U2 = (s.arg0); + s.unnamed43___U3 = (0); + case 1: + s.tmp_0 = r0 = s.unnamed43___U3; + r0 = pxsim_Array__length(s.unnamed42___U2); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = pxsim_Array__getAt(s.unnamed42___U2, s.unnamed43___U3); + s.n___12729 = (r0); + s.tmp_2 = r0 = s.off___12727; + s.tmp_4 = msgpack_packNumberCore__P4920_mk(s); + s.tmp_4.arg0 = null; + s.tmp_4.arg1 = s.off___12727; + s.tmp_4.arg2 = s.n___12729; + s.callLocIdx = 78; s.pc = 5; return s.tmp_4; + case 5: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.off___12727 = (r0); + r0 = (s.unnamed43___U3 + 1); + s.unnamed43___U3 = (r0); + { step = 1; continue; } + case 2: + s.unnamed42___U2 = (undefined); + r0 = pxsim.control.createBuffer(s.off___12727); + s.buf___12739 = (r0); + s.off___12727 = (0); + s.n___12745 = (undefined); + s.unnamed44___U6 = (s.arg0); + s.unnamed45___U7 = (0); + case 3: + s.tmp_0 = r0 = s.unnamed45___U7; + r0 = pxsim_Array__length(s.unnamed44___U6); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.unnamed44___U6, s.unnamed45___U7); + s.n___12745 = (r0); + s.tmp_2 = r0 = s.off___12727; + s.tmp_4 = msgpack_packNumberCore__P4920_mk(s); + s.tmp_4.arg0 = s.buf___12739; + s.tmp_4.arg1 = s.off___12727; + s.tmp_4.arg2 = s.n___12745; + s.callLocIdx = 79; s.pc = 6; return s.tmp_4; + case 6: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.off___12727 = (r0); + r0 = (s.unnamed45___U7 + 1); + s.unnamed45___U7 = (r0); + { step = 3; continue; } + case 4: + s.unnamed44___U6 = (undefined); + r0 = s.buf___12739; + return leave(s, r0) + default: oops() +} } } +msgpack_packNumberArray__P2773.info = {"start":3427,"length":330,"line":117,"column":4,"endLine":128,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"packNumberArray","argumentNames":["nums"]} + +function msgpack_packNumberArray__P2773_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: msgpack_packNumberArray__P2773, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + off___12727: undefined, + n___12729: undefined, + unnamed42___U2: undefined, + unnamed43___U3: undefined, + buf___12739: undefined, + n___12745: undefined, + unnamed44___U6: undefined, + unnamed45___U7: undefined, + arg0: undefined, +} } + + + + +function msgpack_packNumberCore__P4920(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tag___12759 = undefined; + s.fmt___12802 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + s.tag___12759 = (203); + s.tmp_1 = r0 = s.arg2; + r0 = (s.arg2 << 0); + s.tmp_2 = r0; + r0 = (s.tmp_1 == s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_3 = r0 = s.arg2; + r0 = (s.arg2 >>> 0); + s.tmp_4 = r0; + r0 = (s.tmp_3 == s.tmp_4); + case 2: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 19; continue; } + r0 = (-31 <= s.arg2); + s.tmp_6 = r0; + r0 = pxsim_numops_toBool(s.tmp_6); + if (r0) { step = 3; continue; } + r0 = s.tmp_6; + { step = 4; continue; } + case 3: + r0 = (s.arg2 <= 127); + case 4: + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + if (!r0) { step = 7; continue; } + r0 = pxsim_numops_toBoolDecr(s.arg0); + if (!r0) { step = 5; continue; } + r0 = pxsim.BufferMethods.setByte(s.arg0, s.arg1, s.arg2); + case 5: + case 6: + r0 = 1; + { step = 23; continue; } + { step = 18; continue; } + case 7: + r0 = (0 <= s.arg2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 12; continue; } + r0 = (s.arg2 <= 255); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 8; continue; } + s.tag___12759 = (204); + { step = 11; continue; } + case 8: + r0 = (s.arg2 <= 65535); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + s.tag___12759 = (205); + { step = 10; continue; } + case 9: + s.tag___12759 = (206); + case 10: + case 11: + { step = 17; continue; } + case 12: + r0 = (-127 <= s.arg2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + s.tag___12759 = (208); + { step = 16; continue; } + case 13: + r0 = (-32767 <= s.arg2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 14; continue; } + s.tag___12759 = (209); + { step = 15; continue; } + case 14: + s.tag___12759 = (210); + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + s.tmp_0 = msgpack_tagFormat__P4919_mk(s); + s.tmp_0.arg0 = s.tag___12759; + s.callLocIdx = 74; s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + s.fmt___12802 = (r0); + r0 = pxsim_numops_toBoolDecr(s.arg0); + if (!r0) { step = 21; continue; } + r0 = pxsim.BufferMethods.setByte(s.arg0, s.arg1, s.tag___12759); + s.tmp_0 = r0 = s.arg0; + s.tmp_1 = r0 = s.fmt___12802; + r0 = (s.arg1 + 1); + s.tmp_2 = r0; + r0 = pxsim.BufferMethods.setNumber(s.tmp_0, s.tmp_1, s.tmp_2, s.arg2); + case 21: + case 22: + s.tmp_1 = pins_sizeOf__P2764_mk(s); + s.tmp_1.arg0 = s.fmt___12802; + s.callLocIdx = 75; s.pc = 25; return s.tmp_1; + case 25: + r0 = s.retval; + s.tmp_0 = r0; + r0 = (s.tmp_0 + 1); + case 23: + return leave(s, r0) + default: oops() +} } } +msgpack_packNumberCore__P4920.info = {"start":1632,"length":951,"line":56,"column":4,"endLine":86,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"packNumberCore","argumentNames":["buf","offset","num"]} + +function msgpack_packNumberCore__P4920_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: msgpack_packNumberCore__P4920, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tag___12759: undefined, + fmt___12802: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, +} } + + + + +function pins_sizeOf__P2764(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = Buffer_sizeOfNumberFormat__P2804_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 73; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + return leave(s, r0) + default: oops() +} } } +pins_sizeOf__P2764.info = {"start":42,"length":101,"line":2,"column":4,"endLine":4,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"sizeOf","argumentNames":["format"]} + +function pins_sizeOf__P2764_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: pins_sizeOf__P2764, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function Buffer_sizeOfNumberFormat__P2804(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(6, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(7, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(8, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(9, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(10, s.tmp_0); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(12, s.tmp_0); + if (r0) { step = 11; continue; } + r0 = pxsim_pxtcore.switch_eq(11, s.tmp_0); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq(15, s.tmp_0); + if (r0) { step = 13; continue; } + r0 = pxsim_pxtcore.switch_eq(13, s.tmp_0); + if (r0) { step = 14; continue; } + r0 = pxsim_pxtcore.switch_eq(16, s.tmp_0); + if (r0) { step = 15; continue; } + r0 = pxsim_pxtcore.switch_eq(14, s.tmp_0); + if (r0) { step = 16; continue; } + r0 = s.tmp_0; + { step = 17; continue; } + case 1: + case 2: + case 3: + case 4: + r0 = 1; + { step = 18; continue; } + case 5: + case 6: + case 7: + case 8: + r0 = 2; + { step = 18; continue; } + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + r0 = 4; + { step = 18; continue; } + case 15: + case 16: + r0 = 8; + { step = 18; continue; } + case 17: + r0 = 0; + case 18: + return leave(s, r0) + default: oops() +} } } +Buffer_sizeOfNumberFormat__P2804.info = {"start":14912,"length":856,"line":508,"column":4,"endLine":532,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"sizeOfNumberFormat","argumentNames":["format"]} + +function Buffer_sizeOfNumberFormat__P2804_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: Buffer_sizeOfNumberFormat__P2804, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function msgpack_tagFormat__P4919(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_pxtcore.switch_eq(203, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(204, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(205, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(206, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(208, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(209, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(210, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = s.tmp_0; + { step = 8; continue; } + case 1: + r0 = 16; + { step = 9; continue; } + case 2: + r0 = 7; + { step = 9; continue; } + case 3: + r0 = 9; + { step = 9; continue; } + case 4: + r0 = 12; + { step = 9; continue; } + case 5: + r0 = 6; + { step = 9; continue; } + case 6: + r0 = 8; + { step = 9; continue; } + case 7: + r0 = 10; + { step = 9; continue; } + case 8: + r0 = null; + { step = 9; continue; } + r0 = undefined; + case 9: + return leave(s, r0) + default: oops() +} } } +msgpack_tagFormat__P4919.info = {"start":1145,"length":481,"line":42,"column":4,"endLine":54,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"tagFormat","argumentNames":["tag"]} + +function msgpack_tagFormat__P4919_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: msgpack_tagFormat__P4919, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function settings_runNumber__P4010(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_1 = settings_readNumber__P4020_mk(s); + s.tmp_1.arg0 = globals.RUN_KEY___5544; + s.callLocIdx = 1112; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = 0; + case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = s.tmp_2; + return leave(s, r0) + default: oops() +} } } +settings_runNumber__P4010.info = {"start":745,"length":75,"line":27,"column":4,"endLine":29,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"runNumber","argumentNames":[]} + +function settings_runNumber__P4010_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: settings_runNumber__P4010, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, +} } + + + + +function settings_readNumber__P4020(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.buf___12861 = undefined; + s.nums___12868 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim.settings._get(s.arg0); + s.buf___12861 = (r0); + r0 = pxsim_numops_toBoolDecr(s.buf___12861); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = undefined; + { step = 7; continue; } + { step = 6; continue; } + case 1: + s.tmp_2 = msgpack_unpackNumberArray__P2772_mk(s); + s.tmp_2.arg0 = s.buf___12861; + s.tmp_2.arg1 = 0; + s.callLocIdx = 1124; s.pc = 8; return s.tmp_2; + case 8: + r0 = s.retval; + s.nums___12868 = (r0); + s.tmp_0 = r0 = s.nums___12868; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + r0 = pxsim_Array__length(s.nums___12868); + s.tmp_1 = r0; + r0 = (s.tmp_1 >= 1); + case 3: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.nums___12868, 0); + { step = 7; continue; } + case 4: + case 5: + r0 = undefined; + { step = 7; continue; } + case 6: + r0 = undefined; + case 7: + return leave(s, r0) + default: oops() +} } } +settings_readNumber__P4020.info = {"start":3283,"length":313,"line":131,"column":4,"endLine":141,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"readNumber","argumentNames":["key"]} + +function settings_readNumber__P4020_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: settings_readNumber__P4020, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + buf___12861: undefined, + nums___12868: undefined, + arg0: undefined, +} } + + + + +function msgpack_unpackNumberArray__P2772(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.res___12881 = undefined; + s.fmt___12888 = undefined; + s.v___12897 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = pxsim_Array__mk(); + s.res___12881 = (r0); + case 1: + s.tmp_1 = r0 = s.arg1; + r0 = pxsim.BufferMethods.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + s.tmp_3 = r0 = s.arg1; + r0 = (s.tmp_3 + 1); + s.arg1 = (r0); + s.tmp_4 = msgpack_tagFormat__P4919_mk(s); + r0 = pxsim.BufferMethods.getByte(s.arg0, s.tmp_3); + s.tmp_4.arg0 = r0; + s.callLocIdx = 76; s.pc = 12; return s.tmp_4; + case 12: + r0 = s.retval; + s.fmt___12888 = (r0); + r0 = (s.fmt___12888 === null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_1 = r0 = s.arg0; + r0 = (s.arg1 - 1); + s.tmp_2 = r0; + r0 = pxsim.BufferMethods.getNumber(s.tmp_1, 6, s.tmp_2); + s.v___12897 = (r0); + r0 = (-31 <= s.v___12897); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + r0 = (s.v___12897 <= 127); + case 3: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__push(s.res___12881, s.v___12897); + { step = 5; continue; } + case 4: + r0 = null; + { step = 11; continue; } + case 5: + { step = 7; continue; } + case 6: + s.tmp_0 = r0 = s.res___12881; + r0 = pxsim.BufferMethods.getNumber(s.arg0, s.fmt___12888, s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + s.tmp_0 = r0 = s.arg1; + s.tmp_2 = pins_sizeOf__P2764_mk(s); + s.tmp_2.arg0 = s.fmt___12888; + s.callLocIdx = 77; s.pc = 13; return s.tmp_2; + case 13: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); + s.arg1 = (r0); + case 7: + case 8: + r0 = pxsim.BufferMethods.getByte(s.arg0, s.arg1); + s.tmp_1 = r0; + r0 = (s.tmp_1 === 193); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = (s.arg1 + 1); + s.arg1 = (r0); + { step = 8; continue; } + case 9: + { step = 1; continue; } + case 10: + r0 = s.res___12881; + case 11: + return leave(s, r0) + default: oops() +} } } +msgpack_unpackNumberArray__P2772.info = {"start":2650,"length":669,"line":91,"column":4,"endLine":111,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"unpackNumberArray","argumentNames":["buf","offset"]} + +function msgpack_unpackNumberArray__P2772_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: msgpack_unpackNumberArray__P2772, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + res___12881: undefined, + fmt___12888: undefined, + v___12897: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function helpers_stringSlice__P2148(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.len___12941 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + r0 = pxsim_String_.length(s.arg0); + s.len___12941 = (r0); + r0 = (s.arg1 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = Math_max__P2159_mk(s); + r0 = (s.len___12941 + s.arg1); + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = 0; + s.callLocIdx = 18; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + s.arg1 = (r0); + case 1: + case 2: + r0 = (s.arg2 === undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.arg2 = (s.len___12941); + { step = 6; continue; } + case 3: + r0 = (s.arg2 === null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.arg2 = (0); + case 4: + case 5: + case 6: + r0 = (s.arg2 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + r0 = (s.len___12941 + s.arg2); + s.arg2 = (r0); + case 7: + case 8: + s.tmp_0 = r0 = s.arg0; + s.tmp_1 = r0 = s.arg1; + r0 = (s.arg2 - s.arg1); + s.tmp_2 = r0; + r0 = pxsim_String_.substr(s.tmp_0, s.tmp_1, s.tmp_2); + return leave(s, r0) + default: oops() +} } } +helpers_stringSlice__P2148.info = {"start":11496,"length":440,"line":384,"column":4,"endLine":402,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringSlice","argumentNames":["s","start","end"]} + +function helpers_stringSlice__P2148_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: helpers_stringSlice__P2148, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + len___12941: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, +} } + + + + +function user_interface_base_icons_get__P3819(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = (s.arg0 == "edit_program"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = globals.largeEditIcon___3840; + { step = 51; continue; } + case 1: + case 2: + r0 = (s.arg0 == "MISSING"); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = globals.MISSING___3824; + { step = 51; continue; } + case 3: + case 4: + r0 = (s.arg0 == "largeDisk"); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 5; continue; } + r0 = globals.largeDisk___3844; + { step = 51; continue; } + case 5: + case 6: + r0 = (s.arg0 == "linear_graph_1"); + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 7; continue; } + r0 = globals.linearGraph1___3842; + { step = 51; continue; } + case 7: + case 8: + r0 = (s.arg0 == "green_tick"); + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 9; continue; } + r0 = globals.green_tick___3825; + { step = 51; continue; } + case 9: + case 10: + r0 = (s.arg0 == "led_light_sensor"); + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 11; continue; } + r0 = globals.led_light_sensor___3837; + { step = 51; continue; } + case 11: + case 12: + r0 = (s.arg0 == "thermometer"); + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 13; continue; } + r0 = globals.thermometer___3836; + { step = 51; continue; } + case 13: + case 14: + r0 = (s.arg0 == "accelerometer"); + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + if (!r0) { step = 15; continue; } + r0 = globals.accelerometer___3839; + { step = 51; continue; } + case 15: + case 16: + r0 = (s.arg0 == "finger_press"); + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); + if (!r0) { step = 17; continue; } + r0 = globals.finger_press___3834; + { step = 51; continue; } + case 17: + case 18: + r0 = (s.arg0 == "magnet"); + s.tmp_9 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_9); + if (!r0) { step = 19; continue; } + r0 = globals.magnet___3835; + { step = 51; continue; } + case 19: + case 20: + r0 = (s.arg0 == "pin_0"); + s.tmp_10 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_10); + if (!r0) { step = 21; continue; } + r0 = globals.pin_0___3828; + { step = 51; continue; } + case 21: + case 22: + r0 = (s.arg0 == "pin_1"); + s.tmp_11 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_11); + if (!r0) { step = 23; continue; } + r0 = globals.pin_1___3829; + { step = 51; continue; } + case 23: + case 24: + r0 = (s.arg0 == "pin_2"); + s.tmp_12 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_12); + if (!r0) { step = 25; continue; } + r0 = globals.pin_2___3830; + { step = 51; continue; } + case 25: + case 26: + r0 = (s.arg0 == "right_turn"); + s.tmp_13 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_13); + if (!r0) { step = 27; continue; } + r0 = globals.car_right_turn___3832; + { step = 51; continue; } + case 27: + case 28: + r0 = (s.arg0 == "right_spin"); + s.tmp_14 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_14); + if (!r0) { step = 29; continue; } + r0 = globals.car_right_spin___3833; + { step = 51; continue; } + case 29: + case 30: + r0 = (s.arg0 == "microphone"); + s.tmp_15 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_15); + if (!r0) { step = 31; continue; } + r0 = globals.microphone___3838; + { step = 51; continue; } + case 31: + case 32: + r0 = (s.arg0 == "tile_button_a"); + s.tmp_16 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_16); + if (!r0) { step = 33; continue; } + r0 = globals.tile_button_a___3826; + { step = 51; continue; } + case 33: + case 34: + r0 = (s.arg0 == "tile_button_b"); + s.tmp_17 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_17); + if (!r0) { step = 35; continue; } + r0 = globals.tile_button_b___3827; + { step = 51; continue; } + case 35: + case 36: + r0 = (s.arg0 == "compass"); + s.tmp_18 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_18); + if (!r0) { step = 37; continue; } + r0 = globals.compass___3831; + { step = 51; continue; } + case 37: + case 38: + r0 = (s.arg0 == "radio_set_group"); + s.tmp_19 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_19); + if (!r0) { step = 39; continue; } + r0 = globals.radio_set_group___3843; + { step = 51; continue; } + case 39: + case 40: + r0 = (s.arg0 == "largeSettingsGear"); + s.tmp_20 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_20); + if (!r0) { step = 41; continue; } + r0 = globals.largeSettingsGear___3841; + { step = 51; continue; } + case 41: + case 42: + r0 = (s.arg0 == "microbitLogo"); + s.tmp_21 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_21); + if (!r0) { step = 43; continue; } + r0 = globals.microbitLogo___3821; + { step = 51; continue; } + case 43: + case 44: + r0 = (s.arg0 == "microbitLogoWhiteBackground"); + s.tmp_22 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_22); + if (!r0) { step = 45; continue; } + r0 = globals.microbitLogoWhiteBackground___3823; + { step = 51; continue; } + case 45: + case 46: + globals.extraImage___5294 = (null); + r0 = pxsim_numops_toBoolDecr(globals.extraImage___5294); + if (!r0) { step = 47; continue; } + r0 = globals.extraImage___5294; + { step = 51; continue; } + case 47: + case 48: + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 49; continue; } + r0 = null; + { step = 51; continue; } + case 49: + case 50: + r0 = globals.MISSING___3824; + case 51: + return leave(s, r0) + default: oops() +} } } +user_interface_base_icons_get__P3819.info = {"start":868,"length":1825,"line":25,"column":8,"endLine":60,"endColumn":9,"fileName":"pxt_modules/user-interface-base/coreAssets.ts","functionName":"get","argumentNames":["name","nullIfMissing"]} + +function user_interface_base_icons_get__P3819_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_icons_get__P3819, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function user_interface_base_Borders_constructor__P3605(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Borders__C3604_VT)) failedCast(r0, user_interface_base_Borders__C3604_VT); + r0 = (s.arg0).fields["top"] = (s.arg1); + r0 = (s.arg0).fields["bottom"] = (s.arg2); + r0 = (s.arg0).fields["left"] = (s.arg3); + r0 = (s.arg0).fields["right"] = (s.arg4); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_Borders_constructor__P3605.info = {"start":61,"length":131,"line":2,"column":4,"endLine":7,"endColumn":9,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"inline","argumentNames":["this","top","bottom","left","right"]} + +function user_interface_base_Borders_constructor__P3605_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Borders_constructor__P3605, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, +} } + + + + +function user_interface_base_ButtonStyle_constructor__P3607(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonStyle__C3606_VT)) failedCast(r0, user_interface_base_ButtonStyle__C3606_VT); + r0 = (s.arg0).fields["fill"] = (s.arg1); + r0 = (s.arg0).fields["borders"] = (s.arg2); + r0 = (s.arg0).fields["shadow"] = (s.arg3); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_ButtonStyle_constructor__P3607.info = {"start":231,"length":109,"line":11,"column":4,"endLine":15,"endColumn":9,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"inline","argumentNames":["this","fill","borders","shadow"]} + +function user_interface_base_ButtonStyle_constructor__P3607_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_ButtonStyle_constructor__P3607, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, +} } + + + + +function controller_Button_constructor__P3225(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, controller_Button__C3219_VT)) failedCast(r0, controller_Button__C3219_VT); + r0 = (s.arg0).fields["id"] = (s.arg1); + r0 = (s.arg0).fields["_pressed"] = (false); + r0 = (s.arg0).fields["repeatDelay"] = (undefined); + r0 = (s.arg0).fields["repeatInterval"] = (undefined); + r0 = (s.arg0).fields["_repeatCount"] = (0); + r0 = (s.arg0).fields["handlerState"] = (undefined); + r0 = (s.arg1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim_pxtcore_mkAction(1, controller_Button_inline__P13089); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg0); + r0 = s.arg0.fields["id"]; + s.tmp_2 = r0; + r0 = pxsim.control.onEvent(2050, s.tmp_2, s.tmp_1, 16); + r0 = pxsim_pxtcore_mkAction(1, controller_Button_inline__P13096); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = s.arg0.fields["id"]; + s.tmp_1 = r0; + r0 = pxsim.control.onEvent(2051, s.tmp_1, s.tmp_0, 16); + r0 = (s.arg2 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = controller_setupButton__P5059_mk(s); + s.tmp_1.arg0 = s.arg1; + s.tmp_1.arg1 = s.arg2; + s.callLocIdx = 197; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + case 1: + case 2: + case 3: + case 4: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +controller_Button_constructor__P3225.info = {"start":2265,"length":921,"line":94,"column":8,"endLine":112,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"inline","argumentNames":["this","id","configKey"]} + +function controller_Button_constructor__P3225_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: controller_Button_constructor__P3225, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, +} } + + + + +function controller_Button_inline__P13089(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = controller_Button_setPressed__P3233_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = false; + s.callLocIdx = 195; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +controller_Button_inline__P13089.info = {"start":2938,"length":28,"line":106,"column":73,"endLine":106,"endColumn":101,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"inline","argumentNames":[]} + +function controller_Button_inline__P13089_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: controller_Button_inline__P13089, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + + +function controller_Button_inline__P13096(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = controller_Button_setPressed__P3233_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = true; + s.callLocIdx = 196; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +controller_Button_inline__P13096.info = {"start":3047,"length":27,"line":107,"column":75,"endLine":107,"endColumn":102,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"inline","argumentNames":[]} + +function controller_Button_inline__P13096_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: controller_Button_inline__P13096, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + + +function controller_setupButton__P5059(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + setupResume(s, 1); + pxsim.basic.pause(0); + checkResumeConsumed(); + return; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +controller_setupButton__P5059.info = {"start":1427,"length":82,"line":64,"column":4,"endLine":66,"endColumn":5,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"setupButton","argumentNames":["buttonId","key"]} + +function controller_setupButton__P5059_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: controller_setupButton__P5059, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, +} } + + + + +function controller_Button_setPressed__P3233(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, controller_Button__C3219_VT)) failedCast(r0, controller_Button__C3219_VT); + r0 = s.arg0.fields["_pressed"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 != s.arg1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = s.arg0.fields["_owner"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["_owner"]; + s.tmp_3 = r0; + r0 = (s.tmp_3).fields["connected"] = (true); + case 1: + case 2: + r0 = (s.arg0).fields["_pressed"] = (s.arg1); + r0 = s.arg0.fields["_pressed"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = (s.arg0).fields["_pressedElasped"] = (0); + s.tmp_0 = controller_Button_raiseButtonDown__P3227_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 198; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + { step = 4; continue; } + case 3: + r0 = (s.arg0).fields["_repeatCount"] = (0); + s.tmp_0 = controller_Button_raiseButtonUp__P3226_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 199; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + case 4: + case 5: + case 6: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +controller_Button_setPressed__P3233.info = {"start":6556,"length":477,"line":204,"column":8,"endLine":217,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"setPressed","argumentNames":["this","pressed"]} + +function controller_Button_setPressed__P3233_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: controller_Button_setPressed__P3233, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function controller_Button_raiseButtonUp__P3226(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, controller_Button__C3219_VT)) failedCast(r0, controller_Button__C3219_VT); + r0 = pxsim_numops_toBoolDecr(globals._userEventsEnabled___5054); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["id"]; + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2048, s.tmp_0, 1); + { step = 2; continue; } + case 1: + r0 = s.arg0.fields["id"]; + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2052, s.tmp_0, 1); + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +controller_Button_raiseButtonUp__P3226.info = {"start":3196,"length":222,"line":114,"column":8,"endLine":119,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"raiseButtonUp","argumentNames":["this"]} + +function controller_Button_raiseButtonUp__P3226_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: controller_Button_raiseButtonUp__P3226, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function controller_Button_raiseButtonDown__P3227(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, controller_Button__C3219_VT)) failedCast(r0, controller_Button__C3219_VT); + r0 = pxsim_numops_toBoolDecr(globals._userEventsEnabled___5054); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["id"]; + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2049, s.tmp_0, 1); + { step = 2; continue; } + case 1: + r0 = s.arg0.fields["id"]; + s.tmp_0 = r0; + r0 = pxsim.control.raiseEvent(2053, s.tmp_0, 1); + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +controller_Button_raiseButtonDown__P3227.info = {"start":3428,"length":227,"line":121,"column":8,"endLine":126,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"raiseButtonDown","argumentNames":["this"]} + +function controller_Button_raiseButtonDown__P3227_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: controller_Button_raiseButtonDown__P3227, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function user_interface_base_Vec2_constructor__P3389(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Vec2__C3384_VT)) failedCast(r0, user_interface_base_Vec2__C3384_VT); + r0 = (s.arg0).fields["x_"] = (s.arg1); + r0 = (s.arg0).fields["y_"] = (s.arg2); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_Vec2_constructor__P3389.info = {"start":392,"length":53,"line":18,"column":8,"endLine":19,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"inline","argumentNames":["this","x_","y_"]} + +function user_interface_base_Vec2_constructor__P3389_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Vec2_constructor__P3389, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, + arg2: undefined, +} } + + + + +function user_interface_base_Bounds_constructor__P3349(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", 0); + r0 = s.tmp_1; + case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + s.arg1 = (s.tmp_2); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_width_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "width"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["width"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["width"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 306; s.pc = 3; return s.tmp_2; } + } + case 3: r0 = s.retval; - { step = 225; continue; } - case 195: - case 196: - r0 = (s.arg0 == 211); - s.tmp_105 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_105); - if (!r0) { step = 197; continue; } - s.tmp_106 = icondb_operatorIcon__P3893_mk(s); - s.tmp_106.arg0 = "-"; - s.callLocIdx = 859; s.pc = 231; return s.tmp_106; - case 231: + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["width"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_height_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "height"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["height"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["height"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 307; s.pc = 4; return s.tmp_2; } + } + case 4: r0 = s.retval; - { step = 225; continue; } - case 197: - case 198: - r0 = (s.arg0 == 212); - s.tmp_107 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_107); - if (!r0) { step = 199; continue; } - s.tmp_108 = icondb_operatorIcon__P3893_mk(s); - s.tmp_108.arg0 = "*"; - s.callLocIdx = 860; s.pc = 232; return s.tmp_108; - case 232: + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["height"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_left_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "left"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["left"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["left"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 308; s.pc = 5; return s.tmp_2; } + } + case 5: r0 = s.retval; - { step = 225; continue; } - case 199: - case 200: - r0 = (s.arg0 == 210); - s.tmp_109 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_109); - if (!r0) { step = 201; continue; } - s.tmp_110 = icondb_operatorIcon__P3893_mk(s); - s.tmp_110.arg0 = "+"; - s.callLocIdx = 861; s.pc = 233; return s.tmp_110; - case 233: + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["left"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_top_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "top"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["top"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["top"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 309; s.pc = 6; return s.tmp_2; } + } + case 6: r0 = s.retval; - { step = 225; continue; } - case 201: - case 202: - r0 = (s.arg0 == 220); - s.tmp_111 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_111); - if (!r0) { step = 203; continue; } - r0 = globals.eq___3891; - { step = 225; continue; } - case 203: - case 204: - r0 = (s.arg0 == 221); - s.tmp_112 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_112); - if (!r0) { step = 205; continue; } - r0 = globals.neq___3892; - { step = 225; continue; } - case 205: - case 206: - r0 = (s.arg0 == 222); - s.tmp_113 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_113); - if (!r0) { step = 207; continue; } - r0 = globals.lt___3887; - { step = 225; continue; } - case 207: - case 208: - r0 = (s.arg0 == 223); - s.tmp_114 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_114); - if (!r0) { step = 209; continue; } - r0 = globals.lte___3889; - { step = 225; continue; } - case 209: - case 210: - r0 = (s.arg0 == 224); - s.tmp_115 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_115); - if (!r0) { step = 211; continue; } - r0 = globals.gt___3888; - { step = 225; continue; } - case 211: - case 212: - r0 = (s.arg0 == 225); - s.tmp_116 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_116); - if (!r0) { step = 213; continue; } - r0 = globals.gte___3890; - { step = 225; continue; } - case 213: - case 214: - s.tmp_117 = microcode_carImages__P5362_mk(s); - s.tmp_117.arg0 = s.arg0; - s.callLocIdx = 862; s.pc = 234; return s.tmp_117; - case 234: + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["top"] = (s.tmp_1); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_Bounds_constructor__P3349.info = {"start":1029,"length":353,"line":33,"column":8,"endLine":44,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"inline","argumentNames":["this","opts"]} + +function user_interface_base_Bounds_constructor__P3349_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Bounds_constructor__P3349, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function screen__P3145(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = globals.theScreen___3281; + return leave(s, r0) + default: oops() +} } } +screen__P3145.info = {"start":162,"length":55,"line":6,"column":0,"endLine":8,"endColumn":1,"fileName":"pxt_modules/display-shield/bitmap.ts","functionName":"screen","argumentNames":[]} + +function screen__P3145_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: screen__P3145, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + + +function shieldhelpers_registerSim__P3293(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = shieldhelpers_getScreenState__P5133_mk(s); + s.callLocIdx = 278; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - s.car___12057 = (r0); - r0 = pxsim_numops_toBoolDecr(s.car___12057); - if (!r0) { step = 215; continue; } - r0 = s.car___12057; - { step = 225; continue; } - case 215: - case 216: - s.tmp_0 = microcode_jacdacImages__P5363_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 863; s.pc = 235; return s.tmp_0; - case 235: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +shieldhelpers_registerSim__P3293.info = {"start":7256,"length":62,"line":256,"column":4,"endLine":258,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"registerSim","argumentNames":[]} + +function shieldhelpers_registerSim__P3293_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: shieldhelpers_registerSim__P3293, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + + +function shieldhelpers_getScreenState__P5133(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = pxsim_numops_toBoolDecr(globals._screenState___5131); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkClassInstance(shieldhelpers_ScreenState__C5120_VT); + s.tmp_2 = r0; + s.tmp_3 = shieldhelpers_ScreenState_constructor__P5129_mk(s); + s.tmp_3.arg0 = s.tmp_2; + s.callLocIdx = 250; s.pc = 3; return s.tmp_3; + case 3: r0 = s.retval; - s.jacdac___12063 = (r0); - r0 = pxsim_numops_toBoolDecr(s.jacdac___12063); - if (!r0) { step = 217; continue; } - r0 = s.jacdac___12063; - { step = 225; continue; } - case 217: - case 218: - globals.extraImage___5360 = (null); - s.tmp_0 = microcode_extraSamples__P5361_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 864; s.pc = 236; return s.tmp_0; - case 236: + globals._screenState___5131 = (s.tmp_2); + s.tmp_0 = shieldhelpers_startSim__P5132_mk(s); + s.callLocIdx = 251; s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals.extraImage___5360); - if (!r0) { step = 219; continue; } - r0 = globals.extraImage___5360; - { step = 225; continue; } - case 219: - case 220: - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 221; continue; } - r0 = null; - { step = 225; continue; } - case 221: - case 222: - r0 = pxsim_pxtcore.typeOf(s.arg0); + case 1: + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +shieldhelpers_getScreenState__P5133.info = {"start":3209,"length":147,"line":111,"column":4,"endLine":116,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"getScreenState","argumentNames":[]} + +function shieldhelpers_getScreenState__P5133_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: shieldhelpers_getScreenState__P5133, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, +} } + + + + +function shieldhelpers_startSim__P5132(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = control_simmessages_onReceived__P2817_mk(s); + s.tmp_0.arg0 = "microbit-apps/display-shield"; + s.tmp_0.arg1 = shieldhelpers_handleShieldMessage__P5147; + s.callLocIdx = 247; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = shieldhelpers_ScreenState_initSim__P5125_mk(s); + s.tmp_0.arg0 = globals._screenState___5131; + s.callLocIdx = 248; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + case 1: + r0 = globals._screenState___5131.fields["gotSimMessage"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; - r0 = (s.tmp_1 === "string"); + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 223; continue; } - s.tmp_2 = user_interface_base_icons_get__P3846_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = s.arg1; - s.callLocIdx = 865; s.pc = 237; return s.tmp_2; - case 237: + if (!r0) { step = 2; continue; } + setupResume(s, 5); + pxsim.basic.pause(0); + checkResumeConsumed(); + return; + case 5: r0 = s.retval; - { step = 225; continue; } - case 223: - case 224: - r0 = globals.MISSING___3851; - case 225: + s.tmp_0 = shieldhelpers_ScreenState_initSim__P5125_mk(s); + s.tmp_0.arg0 = globals._screenState___5131; + s.callLocIdx = 249; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + { step = 1; continue; } + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_icons_get__P3883.info = {"start":5421,"length":9611,"line":105,"column":8,"endLine":284,"endColumn":9,"fileName":"assets.ts","functionName":"get","argumentNames":["name","nullIfMissing"]} +shieldhelpers_startSim__P5132.info = {"start":2935,"length":268,"line":102,"column":4,"endLine":109,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"startSim","argumentNames":[]} -function microcode_icons_get__P3883_mk(s) { +function shieldhelpers_startSim__P5132_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_icons_get__P3883, depth: s.depth + 1, + parent: s, fn: shieldhelpers_startSim__P5132, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, - tmp_27: undefined, - tmp_28: undefined, - tmp_29: undefined, - tmp_30: undefined, - tmp_31: undefined, - tmp_32: undefined, - tmp_33: undefined, - tmp_34: undefined, - tmp_35: undefined, - tmp_36: undefined, - tmp_37: undefined, - tmp_38: undefined, - tmp_39: undefined, - tmp_40: undefined, - tmp_41: undefined, - tmp_42: undefined, - tmp_43: undefined, - tmp_44: undefined, - tmp_45: undefined, - tmp_46: undefined, - tmp_47: undefined, - tmp_48: undefined, - tmp_49: undefined, - tmp_50: undefined, - tmp_51: undefined, - tmp_52: undefined, - tmp_53: undefined, - tmp_54: undefined, - tmp_55: undefined, - tmp_56: undefined, - tmp_57: undefined, - tmp_58: undefined, - tmp_59: undefined, - tmp_60: undefined, - tmp_61: undefined, - tmp_62: undefined, - tmp_63: undefined, - tmp_64: undefined, - tmp_65: undefined, - tmp_66: undefined, - tmp_67: undefined, - tmp_68: undefined, - tmp_69: undefined, - tmp_70: undefined, - tmp_71: undefined, - tmp_72: undefined, - tmp_73: undefined, - tmp_74: undefined, - tmp_75: undefined, - tmp_76: undefined, - tmp_77: undefined, - tmp_78: undefined, - tmp_79: undefined, - tmp_80: undefined, - tmp_81: undefined, - tmp_82: undefined, - tmp_83: undefined, - tmp_84: undefined, - tmp_85: undefined, - tmp_86: undefined, - tmp_87: undefined, - tmp_88: undefined, - tmp_89: undefined, - tmp_90: undefined, - tmp_91: undefined, - tmp_92: undefined, - tmp_93: undefined, - tmp_94: undefined, - tmp_95: undefined, - tmp_96: undefined, - tmp_97: undefined, - tmp_98: undefined, - tmp_99: undefined, - tmp_100: undefined, - tmp_101: undefined, - tmp_102: undefined, - tmp_103: undefined, - tmp_104: undefined, - tmp_105: undefined, - tmp_106: undefined, - tmp_107: undefined, - tmp_108: undefined, - tmp_109: undefined, - tmp_110: undefined, - tmp_111: undefined, - tmp_112: undefined, - tmp_113: undefined, - tmp_114: undefined, - tmp_115: undefined, - tmp_116: undefined, - tmp_117: undefined, - car___12057: undefined, - jacdac___12063: undefined, +} } + + + + +function shieldhelpers_ScreenState_initSim__P5125(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.msg___13209 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, shieldhelpers_ScreenState__C5120_VT)) failedCast(r0, shieldhelpers_ScreenState__C5120_VT); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "initialize"); + r0 = s.arg0.fields["runId"]; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "runId", s.tmp_1); + s.msg___13209 = (s.tmp_0); + s.tmp_0 = shieldhelpers_ScreenState_sendMessage__P5124_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = JSON_stringify__P2807_mk(s); + s.tmp_1.arg0 = s.msg___13209; + s.tmp_1.arg1 = null; + s.tmp_1.arg2 = 0; + s.callLocIdx = 239; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 240; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +shieldhelpers_ScreenState_initSim__P5125.info = {"start":1681,"length":202,"line":60,"column":8,"endLine":66,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"initSim","argumentNames":["this"]} + +function shieldhelpers_ScreenState_initSim__P5125_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: shieldhelpers_ScreenState_initSim__P5125, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + msg___13209: undefined, + arg0: undefined, +} } + + + + +function JSON_stringify__P2807(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.ss___13221 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + r0 = pxsim_pxtcore_mkClassInstance(JSON_Stringifier__C4936_VT); + s.ss___13221 = (r0); + s.tmp_0 = r0 = s.ss___13221; + r0 = pxsim_String_.mkEmpty(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["currIndent"] = (s.tmp_1); + r0 = (s.arg2 | 0); + s.arg2 = (r0); + r0 = (s.arg2 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.arg2 = (0); + case 1: + case 2: + r0 = (s.arg2 > 10); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.arg2 = (10); + case 3: + case 4: + s.tmp_0 = r0 = s.ss___13221; + r0 = pxsim_String_.mkEmpty(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["indentStep"] = (s.tmp_1); + s.tmp_0 = r0 = s.ss___13221; + r0 = pxsim_String_.mkEmpty(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["currIndent"] = (s.tmp_1); + r0 = (s.ss___13221).fields["indent"] = (s.arg2); + case 5: + s.tmp_0 = r0 = s.arg2; + r0 = (s.tmp_0 - 1); + s.arg2 = (r0); + r0 = (s.tmp_0 > 0); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 6; continue; } + s.tmp_2 = r0 = s.ss___13221; + r0 = s.tmp_2.fields["indentStep"]; + s.tmp_5 = r0; + if ((s.tmp_5) && (s.tmp_5).vtable) { + setupResume(s, 7); + pxsim_String__stringConv(s.tmp_5); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_5) + ""; } + case 7: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_4, " "); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["indentStep"] = (s.tmp_3); + { step = 5; continue; } + case 6: + s.tmp_0 = JSON_Stringifier_go__P4938_mk(s); + s.tmp_0.arg0 = s.ss___13221; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 120; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + return leave(s, r0) + default: oops() +} } } +JSON_stringify__P2807.info = {"start":8773,"length":414,"line":288,"column":4,"endLine":300,"endColumn":5,"fileName":"pxt_modules/core/json.ts","functionName":"stringify","argumentNames":["value","replacer","indent"]} + +function JSON_stringify__P2807_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: JSON_stringify__P2807, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + ss___13221: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function user_interface_base_icons_get__P3846(s) { +function JSON_Stringifier_go__P4938(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -24724,219 +27969,573 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.t___13262 = undefined; + s.arr___13286 = undefined; + s.r___13292 = undefined; + s.i___13309 = undefined; + s.keys___13373 = undefined; + s.r___13380 = undefined; + s.i___13397 = undefined; + s.k___13403 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 == "edit_program"); + r0 = s.arg0; + if (!checkSubtype(r0, JSON_Stringifier__C4936_VT)) failedCast(r0, JSON_Stringifier__C4936_VT); + r0 = pxsim_pxtcore.typeOf(s.arg1); + s.t___13262 = (r0); + r0 = (s.t___13262 == "string"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = globals.largeEditIcon___3867; - { step = 51; continue; } + s.tmp_1 = JSON_Stringifier_doString__P4937_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.arg1; + s.callLocIdx = 114; s.pc = 38; return s.tmp_1; + case 38: + r0 = s.retval; + { step = 37; continue; } + { step = 36; continue; } case 1: + r0 = (s.t___13262 == "boolean"); + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (!r0) { step = 2; continue; } + r0 = s.tmp_2; + { step = 3; continue; } case 2: - r0 = (s.arg0 == "MISSING"); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = globals.MISSING___3851; - { step = 51; continue; } + r0 = (s.t___13262 == "number"); case 3: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (!r0) { step = 4; continue; } + r0 = s.tmp_3; + { step = 5; continue; } case 4: - r0 = (s.arg0 == "largeDisk"); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 5; continue; } - r0 = globals.largeDisk___3871; - { step = 51; continue; } + r0 = (s.arg1 == null); case 5: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 6; continue; } + r0 = pxsim_String_.mkEmpty(); + s.tmp_5 = r0; + if ((s.arg1) && (s.arg1).vtable) { + setupResume(s, 39); + pxsim_String__stringConv(s.arg1); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg1) + ""; } + case 39: + r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_String__concat(s.tmp_5, s.tmp_6); + { step = 37; continue; } + { step = 35; continue; } case 6: - r0 = (s.arg0 == "linear_graph_1"); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); + r0 = pxsim_Array_.isArray(s.arg1); + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + if (!r0) { step = 19; continue; } + s.arr___13286 = (s.arg1); + r0 = pxsim_Array__length(s.arr___13286); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 7; continue; } - r0 = globals.linearGraph1___3869; - { step = 51; continue; } + r0 = "[]"; + { step = 37; continue; } + { step = 18; continue; } case 7: - case 8: - r0 = (s.arg0 == "green_tick"); + s.r___13292 = ("["); + r0 = s.arg0.fields["indent"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + s.tmp_1 = r0 = s.arg0; + r0 = s.tmp_1.fields["currIndent"]; s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 9; continue; } - r0 = globals.green_tick___3852; - { step = 51; continue; } + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 40); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 40: + r0 = s.retval; + s.tmp_3 = r0; + r0 = s.arg0.fields["indentStep"]; + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 41); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 41: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_5); + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["currIndent"] = (s.tmp_2); + if ((s.r___13292) && (s.r___13292).vtable) { + setupResume(s, 42); + pxsim_String__stringConv(s.r___13292); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13292) + ""; } + case 42: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_String__concat(s.tmp_0, "\n"); + s.r___13292 = (r0); + case 8: case 9: + s.i___13309 = (0); case 10: - r0 = (s.arg0 == "led_light_sensor"); + s.tmp_1 = r0 = s.i___13309; + r0 = pxsim_Array__length(s.arr___13286); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + if ((s.r___13292) && (s.r___13292).vtable) { + setupResume(s, 43); + pxsim_String__stringConv(s.r___13292); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13292) + ""; } + case 43: + r0 = s.retval; + s.tmp_3 = r0; + r0 = s.arg0.fields["currIndent"]; + s.tmp_7 = r0; + if ((s.tmp_7) && (s.tmp_7).vtable) { + setupResume(s, 44); + pxsim_String__stringConv(s.tmp_7); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_7) + ""; } + case 44: + r0 = s.retval; + s.tmp_6 = r0; + s.tmp_10 = JSON_Stringifier_go__P4938_mk(s); + s.tmp_10.arg0 = s.arg0; + r0 = pxsim_Array__getAt(s.arr___13286, s.i___13309); + s.tmp_10.arg1 = r0; + s.callLocIdx = 115; s.pc = 45; return s.tmp_10; + case 45: + r0 = s.retval; + s.tmp_9 = r0; + if ((s.tmp_9) && (s.tmp_9).vtable) { + setupResume(s, 46); + pxsim_String__stringConv(s.tmp_9); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_9) + ""; } + case 46: + r0 = s.retval; + s.tmp_8 = r0; + r0 = pxsim_String__concat(s.tmp_6, s.tmp_8); s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if ((s.tmp_5) && (s.tmp_5).vtable) { + setupResume(s, 47); + pxsim_String__stringConv(s.tmp_5); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_5) + ""; } + case 47: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); + s.r___13292 = (r0); + s.tmp_1 = r0 = s.i___13309; + r0 = pxsim_Array__length(s.arr___13286); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 != s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 11; continue; } - r0 = globals.led_light_sensor___3864; - { step = 51; continue; } + if ((s.r___13292) && (s.r___13292).vtable) { + setupResume(s, 48); + pxsim_String__stringConv(s.r___13292); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13292) + ""; } + case 48: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_4, ","); + s.r___13292 = (r0); case 11: case 12: - r0 = (s.arg0 == "thermometer"); - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); + r0 = s.arg0.fields["indent"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 13; continue; } - r0 = globals.thermometer___3863; - { step = 51; continue; } + if ((s.r___13292) && (s.r___13292).vtable) { + setupResume(s, 49); + pxsim_String__stringConv(s.r___13292); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13292) + ""; } + case 49: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_1, "\n"); + s.r___13292 = (r0); case 13: case 14: - r0 = (s.arg0 == "accelerometer"); - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 15; continue; } - r0 = globals.accelerometer___3866; - { step = 51; continue; } + r0 = (s.i___13309 + 1); + s.i___13309 = (r0); + { step = 10; continue; } case 15: + r0 = s.arg0.fields["indent"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 16; continue; } + s.tmp_1 = r0 = s.arg0; + s.tmp_3 = helpers_stringSlice__P2148_mk(s); + r0 = s.arg0.fields["currIndent"]; + s.tmp_3.arg0 = r0; + r0 = s.arg0.fields["indent"]; + s.tmp_3.arg1 = r0; + s.tmp_3.arg2 = undefined; + s.callLocIdx = 116; s.pc = 50; return s.tmp_3; + case 50: + r0 = s.retval; + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["currIndent"] = (s.tmp_2); case 16: - r0 = (s.arg0 == "finger_press"); - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 17; continue; } - r0 = globals.finger_press___3861; - { step = 51; continue; } case 17: + if ((s.r___13292) && (s.r___13292).vtable) { + setupResume(s, 51); + pxsim_String__stringConv(s.r___13292); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13292) + ""; } + case 51: + r0 = s.retval; + s.tmp_0 = r0; + r0 = s.arg0.fields["currIndent"]; + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 52); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 52: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat(s.tmp_3, "]"); + s.tmp_2 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 53); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 53: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___13292 = (r0); + r0 = s.r___13292; + { step = 37; continue; } case 18: - r0 = (s.arg0 == "magnet"); - s.tmp_9 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_9); - if (!r0) { step = 19; continue; } - r0 = globals.magnet___3862; - { step = 51; continue; } + { step = 34; continue; } case 19: + r0 = pxsim_pxtrt.keysOf(s.arg1); + s.keys___13373 = (r0); + r0 = pxsim_Array__length(s.keys___13373); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 20; continue; } + r0 = "{}"; + { step = 37; continue; } case 20: - r0 = (s.arg0 == "pin_0"); - s.tmp_10 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_10); - if (!r0) { step = 21; continue; } - r0 = globals.pin_0___3855; - { step = 51; continue; } case 21: + s.r___13380 = ("{"); + r0 = s.arg0.fields["indent"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 22; continue; } + s.tmp_1 = r0 = s.arg0; + r0 = s.tmp_1.fields["currIndent"]; + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 54); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 54: + r0 = s.retval; + s.tmp_3 = r0; + r0 = s.arg0.fields["indentStep"]; + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 55); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 55: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_5); + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["currIndent"] = (s.tmp_2); + if ((s.r___13380) && (s.r___13380).vtable) { + setupResume(s, 56); + pxsim_String__stringConv(s.r___13380); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13380) + ""; } + case 56: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_String__concat(s.tmp_0, "\n"); + s.r___13380 = (r0); case 22: - r0 = (s.arg0 == "pin_1"); - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 23; continue; } - r0 = globals.pin_1___3856; - { step = 51; continue; } case 23: + s.i___13397 = (0); case 24: - r0 = (s.arg0 == "pin_2"); - s.tmp_12 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_12); + s.tmp_1 = r0 = s.i___13397; + r0 = pxsim_Array__length(s.keys___13373); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 31; continue; } + r0 = pxsim_Array__getAt(s.keys___13373, s.i___13397); + s.k___13403 = (r0); + if ((s.r___13380) && (s.r___13380).vtable) { + setupResume(s, 57); + pxsim_String__stringConv(s.r___13380); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13380) + ""; } + case 57: + r0 = s.retval; + s.tmp_0 = r0; + r0 = s.arg0.fields["currIndent"]; + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 58); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 58: + r0 = s.retval; + s.tmp_3 = r0; + s.tmp_7 = JSON_Stringifier_doString__P4937_mk(s); + s.tmp_7.arg0 = s.arg0; + s.tmp_7.arg1 = s.k___13403; + s.callLocIdx = 117; s.pc = 59; return s.tmp_7; + case 59: + r0 = s.retval; + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 60); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 60: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_5); + s.tmp_2 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 61); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 61: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___13380 = (r0); + r0 = s.arg0.fields["indent"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 25; continue; } - r0 = globals.pin_2___3857; - { step = 51; continue; } + if ((s.r___13380) && (s.r___13380).vtable) { + setupResume(s, 62); + pxsim_String__stringConv(s.r___13380); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13380) + ""; } + case 62: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_1, ": "); + s.r___13380 = (r0); + { step = 26; continue; } case 25: + if ((s.r___13380) && (s.r___13380).vtable) { + setupResume(s, 63); + pxsim_String__stringConv(s.r___13380); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13380) + ""; } + case 63: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_String__concat(s.tmp_0, ":"); + s.r___13380 = (r0); case 26: - r0 = (s.arg0 == "right_turn"); - s.tmp_13 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_13); + if ((s.r___13380) && (s.r___13380).vtable) { + setupResume(s, 64); + pxsim_String__stringConv(s.r___13380); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13380) + ""; } + case 64: + r0 = s.retval; + s.tmp_0 = r0; + s.tmp_3 = JSON_Stringifier_go__P4938_mk(s); + s.tmp_3.arg0 = s.arg0; + r0 = pxsim_pxtrt.mapGetGeneric(s.arg1, s.k___13403); + s.tmp_3.arg1 = r0; + s.callLocIdx = 118; s.pc = 65; return s.tmp_3; + case 65: + r0 = s.retval; + s.tmp_2 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 66); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 66: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___13380 = (r0); + s.tmp_1 = r0 = s.i___13397; + r0 = pxsim_Array__length(s.keys___13373); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 != s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 27; continue; } - r0 = globals.car_right_turn___3859; - { step = 51; continue; } + if ((s.r___13380) && (s.r___13380).vtable) { + setupResume(s, 67); + pxsim_String__stringConv(s.r___13380); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13380) + ""; } + case 67: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_4, ","); + s.r___13380 = (r0); case 27: case 28: - r0 = (s.arg0 == "right_spin"); - s.tmp_14 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_14); + r0 = s.arg0.fields["indent"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 29; continue; } - r0 = globals.car_right_spin___3860; - { step = 51; continue; } + if ((s.r___13380) && (s.r___13380).vtable) { + setupResume(s, 68); + pxsim_String__stringConv(s.r___13380); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13380) + ""; } + case 68: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_1, "\n"); + s.r___13380 = (r0); case 29: case 30: - r0 = (s.arg0 == "microphone"); - s.tmp_15 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_15); - if (!r0) { step = 31; continue; } - r0 = globals.microphone___3865; - { step = 51; continue; } + r0 = (s.i___13397 + 1); + s.i___13397 = (r0); + { step = 24; continue; } case 31: + r0 = s.arg0.fields["indent"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 32; continue; } + s.tmp_1 = r0 = s.arg0; + s.tmp_3 = helpers_stringSlice__P2148_mk(s); + r0 = s.arg0.fields["currIndent"]; + s.tmp_3.arg0 = r0; + r0 = s.arg0.fields["indent"]; + s.tmp_3.arg1 = r0; + s.tmp_3.arg2 = undefined; + s.callLocIdx = 119; s.pc = 69; return s.tmp_3; + case 69: + r0 = s.retval; + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["currIndent"] = (s.tmp_2); case 32: - r0 = (s.arg0 == "tile_button_a"); - s.tmp_16 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_16); - if (!r0) { step = 33; continue; } - r0 = globals.tile_button_a___3853; - { step = 51; continue; } case 33: + if ((s.r___13380) && (s.r___13380).vtable) { + setupResume(s, 70); + pxsim_String__stringConv(s.r___13380); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13380) + ""; } + case 70: + r0 = s.retval; + s.tmp_0 = r0; + r0 = s.arg0.fields["currIndent"]; + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 71); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 71: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat(s.tmp_3, "}"); + s.tmp_2 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 72); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 72: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___13380 = (r0); + r0 = s.r___13380; + { step = 37; continue; } case 34: - r0 = (s.arg0 == "tile_button_b"); - s.tmp_17 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_17); - if (!r0) { step = 35; continue; } - r0 = globals.tile_button_b___3854; - { step = 51; continue; } case 35: case 36: - r0 = (s.arg0 == "compass"); - s.tmp_18 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_18); - if (!r0) { step = 37; continue; } - r0 = globals.compass___3858; - { step = 51; continue; } + r0 = undefined; case 37: - case 38: - r0 = (s.arg0 == "radio_set_group"); - s.tmp_19 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_19); - if (!r0) { step = 39; continue; } - r0 = globals.radio_set_group___3870; - { step = 51; continue; } - case 39: - case 40: - r0 = (s.arg0 == "largeSettingsGear"); - s.tmp_20 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_20); - if (!r0) { step = 41; continue; } - r0 = globals.largeSettingsGear___3868; - { step = 51; continue; } - case 41: - case 42: - r0 = (s.arg0 == "microbitLogo"); - s.tmp_21 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_21); - if (!r0) { step = 43; continue; } - r0 = globals.microbitLogo___3848; - { step = 51; continue; } - case 43: - case 44: - r0 = (s.arg0 == "microbitLogoWhiteBackground"); - s.tmp_22 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_22); - if (!r0) { step = 45; continue; } - r0 = globals.microbitLogoWhiteBackground___3850; - { step = 51; continue; } - case 45: - case 46: - globals.extraImage___5305 = (null); - r0 = pxsim_numops_toBoolDecr(globals.extraImage___5305); - if (!r0) { step = 47; continue; } - r0 = globals.extraImage___5305; - { step = 51; continue; } - case 47: - case 48: - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 49; continue; } - r0 = null; - { step = 51; continue; } - case 49: - case 50: - r0 = globals.MISSING___3851; - case 51: return leave(s, r0) default: oops() } } } -user_interface_base_icons_get__P3846.info = {"start":868,"length":1825,"line":25,"column":8,"endLine":60,"endColumn":9,"fileName":"pxt_modules/user-interface-base/coreAssets.ts","functionName":"get","argumentNames":["name","nullIfMissing"]} +JSON_Stringifier_go__P4938.info = {"start":6319,"length":2076,"line":223,"column":8,"endLine":279,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"go","argumentNames":["this","v"]} -function user_interface_base_icons_get__P3846_mk(s) { +function JSON_Stringifier_go__P4938_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_icons_get__P3846, depth: s.depth + 1, + parent: s, fn: JSON_Stringifier_go__P4938, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -24949,18 +28548,14 @@ function user_interface_base_icons_get__P3846_mk(s) { tmp_8: undefined, tmp_9: undefined, tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, + t___13262: undefined, + arr___13286: undefined, + r___13292: undefined, + i___13309: undefined, + keys___13373: undefined, + r___13380: undefined, + i___13397: undefined, + k___13403: undefined, arg0: undefined, arg1: undefined, } } @@ -24968,8 +28563,7 @@ function user_interface_base_icons_get__P3846_mk(s) { - -function microcode_extraSamples__P5361(s) { +function JSON_Stringifier_doString__P4937(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -24979,107 +28573,133 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.r___13489 = undefined; + s.i___13490 = undefined; + s.c___13496 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 == "clap_lights"); + r0 = s.arg0; + if (!checkSubtype(r0, JSON_Stringifier__C4936_VT)) failedCast(r0, JSON_Stringifier__C4936_VT); + s.r___13489 = ("\""); + s.i___13490 = (0); + case 1: + s.tmp_1 = r0 = s.i___13490; + r0 = pxsim_String_.length(s.arg1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - globals.extraImage___5360 = (globals.sampleClapLights___3988); - case 1: + if (!r0) { step = 14; continue; } + r0 = pxsim_String_.charAt(s.arg1, s.i___13490); + s.c___13496 = (r0); + r0 = (s.c___13496 == "\n"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.c___13496 = ("\\n"); + { step = 13; continue; } case 2: - r0 = (s.arg0 == "firefly"); + r0 = (s.c___13496 == "\r"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - globals.extraImage___5360 = (globals.sampleFirefly___3987); + s.c___13496 = ("\\r"); + { step = 12; continue; } case 3: + r0 = (s.c___13496 == "\t"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.c___13496 = ("\\t"); + { step = 11; continue; } case 4: - r0 = (s.arg0 == "flashing_heart"); + r0 = (s.c___13496 == "\b"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 5; continue; } - globals.extraImage___5360 = (globals.sampleFlashingHeart___3985); + s.c___13496 = ("\\b"); + { step = 10; continue; } case 5: + r0 = (s.c___13496 == "\\"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.c___13496 = ("\\\\"); + { step = 9; continue; } case 6: - r0 = (s.arg0 == "rock_paper_scissors"); + r0 = (s.c___13496 == "\""); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 7; continue; } - globals.extraImage___5360 = (globals.sampleRockPaperScissors___3989); + s.c___13496 = ("\\\""); case 7: case 8: - r0 = (s.arg0 == "teleport_duck"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - globals.extraImage___5360 = (globals.sampleTeleportDuck___3990); case 9: case 10: - r0 = (s.arg0 == "pet_hamster"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 11; continue; } - globals.extraImage___5360 = (globals.samplePetHamster___3991); case 11: case 12: - r0 = (s.arg0 == "heads_tails"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - globals.extraImage___5360 = (globals.sampleHeadsOrTails___3992); case 13: - case 14: - r0 = (s.arg0 == "reaction_time"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - globals.extraImage___5360 = (globals.sampleReactionTime___3993); + if ((s.r___13489) && (s.r___13489).vtable) { + setupResume(s, 15); + pxsim_String__stringConv(s.r___13489); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13489) + ""; } case 15: - case 16: - r0 = (s.arg0 == "hot_potato"); + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 17; continue; } - globals.extraImage___5360 = (globals.sampleHotPotato___3994); + if ((s.c___13496) && (s.c___13496).vtable) { + setupResume(s, 16); + pxsim_String__stringConv(s.c___13496); + checkResumeConsumed(); + return; + } else { s.retval = (s.c___13496) + ""; } + case 16: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___13489 = (r0); + r0 = (s.i___13490 + 1); + s.i___13490 = (r0); + { step = 1; continue; } + case 14: + if ((s.r___13489) && (s.r___13489).vtable) { + setupResume(s, 17); + pxsim_String__stringConv(s.r___13489); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13489) + ""; } case 17: - case 18: - r0 = (s.arg0 == "clap_lights"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 19; continue; } - globals.extraImage___5360 = (globals.sampleClapLights___3988); - case 19: - case 20: - r0 = (s.arg0 == "railroad_crossing"); + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 21; continue; } - globals.extraImage___5360 = (globals.sampleRailCrossingLight___3995); - case 21: - case 22: - r0 = undefined; + r0 = pxsim_String__concat(s.tmp_0, "\""); return leave(s, r0) default: oops() } } } -microcode_extraSamples__P5361.info = {"start":82,"length":1017,"line":4,"column":4,"endLine":19,"endColumn":5,"fileName":"assets.ts","functionName":"extraSamples","argumentNames":["name"]} +JSON_Stringifier_doString__P4937.info = {"start":5837,"length":472,"line":208,"column":8,"endLine":221,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doString","argumentNames":["this","s"]} -function microcode_extraSamples__P5361_mk(s) { +function JSON_Stringifier_doString__P4937_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_extraSamples__P5361, depth: s.depth + 1, + parent: s, fn: JSON_Stringifier_doString__P4937, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + r___13489: undefined, + i___13490: undefined, + c___13496: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_jacdacImages__P5363(s) { +function shieldhelpers_ScreenState_sendMessage__P5124(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25091,235 +28711,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 == 75); + r0 = s.arg0; + if (!checkSubtype(r0, shieldhelpers_ScreenState__C5120_VT)) failedCast(r0, shieldhelpers_ScreenState__C5120_VT); + r0 = pxsim.control.createBufferFromUTF8(s.arg1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = globals.kita_key_1___4008; - { step = 47; continue; } - case 1: - case 2: - r0 = (s.arg0 == 76); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = globals.kita_key_2___4009; - { step = 47; continue; } - case 3: - case 4: - r0 = (s.arg0 == 22); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 5; continue; } - r0 = globals.magnet___3862; - { step = 47; continue; } - case 5: - case 6: - r0 = (s.arg0 == 23); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 7; continue; } - r0 = globals.kita_slider___4006; - { step = 47; continue; } - case 7: - case 8: - r0 = (s.arg0 == 24); - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 9; continue; } - r0 = globals.kita_rotary___4010; - { step = 47; continue; } - case 9: - case 10: - r0 = (s.arg0 == 98); - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 11; continue; } - r0 = globals.kita_rotary_left___4011; - { step = 47; continue; } - case 11: - case 12: - r0 = (s.arg0 == 99); - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 13; continue; } - r0 = globals.kita_rotary_right___4012; - { step = 47; continue; } - case 13: - case 14: - r0 = (s.arg0 == 47); - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 15; continue; } - r0 = globals.rgbLed___3948; - { step = 47; continue; } - case 15: - case 16: - r0 = (s.arg0 == 182); - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 17; continue; } - r0 = globals.tile_color_red___3941; - { step = 47; continue; } - case 17: - case 18: - r0 = (s.arg0 == 183); - s.tmp_9 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_9); - if (!r0) { step = 19; continue; } - r0 = globals.tile_color_green___3945; - { step = 47; continue; } - case 19: - case 20: - r0 = (s.arg0 == 184); - s.tmp_10 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_10); - if (!r0) { step = 21; continue; } - r0 = globals.tile_color_blue___3942; - { step = 47; continue; } - case 21: - case 22: - r0 = (s.arg0 == 185); - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 23; continue; } - r0 = globals.tile_color_magenta___3946; - { step = 47; continue; } - case 23: - case 24: - r0 = (s.arg0 == 186); - s.tmp_12 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_12); - if (!r0) { step = 25; continue; } - r0 = globals.tile_color_yellow___3947; - { step = 47; continue; } - case 25: - case 26: - r0 = (s.arg0 == 187); - s.tmp_13 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_13); - if (!r0) { step = 27; continue; } - r0 = globals.tile_color_black___3940; - { step = 47; continue; } - case 27: - case 28: - r0 = (s.arg0 == 188); - s.tmp_14 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_14); - if (!r0) { step = 29; continue; } - r0 = globals.tile_rainbow___3944; - { step = 47; continue; } - case 29: - case 30: - r0 = (s.arg0 == 189); - s.tmp_15 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_15); - if (!r0) { step = 31; continue; } - r0 = globals.tile_sparkle___3943; - { step = 47; continue; } - case 31: - case 32: - r0 = (s.arg0 == 53); - s.tmp_16 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_16); - if (!r0) { step = 33; continue; } - r0 = globals.servo_set_angle___3998; - { step = 47; continue; } - case 33: - case 34: - r0 = (s.arg0 == 55); - s.tmp_17 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_17); - if (!r0) { step = 35; continue; } - r0 = globals.servo_power___3997; - { step = 47; continue; } - case 35: - case 36: - r0 = (s.arg0 == 54); - s.tmp_18 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_18); - if (!r0) { step = 37; continue; } - r0 = globals.relay___4030; - { step = 47; continue; } - case 37: - case 38: - r0 = (s.arg0 == 15); - s.tmp_19 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_19); - if (!r0) { step = 39; continue; } - r0 = globals.light_sensor___3951; - { step = 47; continue; } - case 39: - case 40: - r0 = (s.arg0 == 29); - s.tmp_20 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_20); - if (!r0) { step = 41; continue; } - r0 = globals.distance_sensor___4028; - { step = 47; continue; } - case 41: - case 42: - r0 = (s.arg0 == 28); - s.tmp_21 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_21); - if (!r0) { step = 43; continue; } - r0 = globals.soil_moisture___4029; - { step = 47; continue; } - case 43: - case 44: - r0 = (s.arg0 == 30); - s.tmp_22 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_22); - if (!r0) { step = 45; continue; } - r0 = globals.reflected_light_sensor___4007; - { step = 47; continue; } - case 45: - case 46: - r0 = null; - case 47: + r0 = pxsim_pxtcore.sendMessage("microbit-apps/display-shield", s.tmp_0, false); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_jacdacImages__P5363.info = {"start":3413,"length":1973,"line":67,"column":4,"endLine":102,"endColumn":5,"fileName":"assets.ts","functionName":"jacdacImages","argumentNames":["name"]} +shieldhelpers_ScreenState_sendMessage__P5124.info = {"start":1528,"length":143,"line":56,"column":8,"endLine":58,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"sendMessage","argumentNames":["this","msg"]} -function microcode_jacdacImages__P5363_mk(s) { +function shieldhelpers_ScreenState_sendMessage__P5124_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_jacdacImages__P5363, depth: s.depth + 1, + parent: s, fn: shieldhelpers_ScreenState_sendMessage__P5124, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_carImages__P5362(s) { +function shieldhelpers_handleShieldMessage__P5147(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25329,241 +28748,210 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.s___13539 = undefined; + s.msg___13543 = undefined; + s.button___13564 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (s.arg0 == 52); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = globals.car___4013; - { step = 55; continue; } - case 1: - case 2: - r0 = (s.arg0 == 190); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = globals.car_forward___4014; - { step = 55; continue; } - case 3: - case 4: - r0 = (s.arg0 == 191); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 5; continue; } - r0 = globals.car_reverse___4016; - { step = 55; continue; } - case 5: - case 6: - r0 = (s.arg0 == 192); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 7; continue; } - r0 = globals.car_left_turn___4017; - { step = 55; continue; } - case 7: - case 8: - r0 = (s.arg0 == 193); - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 9; continue; } - r0 = globals.car_right_turn___3859; - { step = 55; continue; } - case 9: - case 10: - r0 = (s.arg0 == 194); - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 11; continue; } - r0 = globals.car_stop___4019; - { step = 55; continue; } - case 11: - case 12: - r0 = (s.arg0 == 195); - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 13; continue; } - r0 = globals.car_forward_fast___4015; - { step = 55; continue; } + r0 = pxsim.BufferMethods.toString(s.arg0); + s.s___13539 = (r0); + s.tmp_0 = JSON_parse__P2808_mk(s); + s.tmp_0.arg0 = s.s___13539; + s.callLocIdx = 264; s.pc = 13; return s.tmp_0; case 13: - case 14: - r0 = (s.arg0 == 196); - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 15; continue; } - r0 = globals.car_left_spin___4018; - { step = 55; continue; } + r0 = s.retval; + s.msg___13543 = (r0); + r0 = pxsim_numops_toBoolDecr(s.msg___13543); + if (!r0) { step = 11; continue; } + s.tmp_0 = console_log__P2528_mk(s); + s.tmp_1 = if_type_1_mk(s); + s.tmp_1.arg0 = s.msg___13543; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "type"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["type"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["type"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 265; s.pc = 15; return s.tmp_1; } + } case 15: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.callLocIdx = 266; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; + s.tmp_0 = shieldhelpers_getScreenState__P5133_mk(s); + s.callLocIdx = 267; s.pc = 16; return s.tmp_0; case 16: - r0 = (s.arg0 == 197); - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 17; continue; } - r0 = globals.car_right_spin___3860; - { step = 55; continue; } + r0 = s.retval; + r0 = (globals._screenState___5131).fields["gotSimMessage"] = (true); + setupResume(s, 17); + pxsim.basic.pause(0); + checkResumeConsumed(); + return; case 17: + r0 = s.retval; + s.tmp_2 = if_type_1_mk(s); + s.tmp_2.arg0 = s.msg___13543; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "type"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["type"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["type"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 268; s.pc = 18; return s.tmp_2; } + } case 18: - r0 = (s.arg0 == 198); - s.tmp_9 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_9); - if (!r0) { step = 19; continue; } - r0 = globals.tile_color_red___3941; - { step = 55; continue; } + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 === "button-down"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_4 = if_type_1_mk(s); + s.tmp_4.arg0 = s.msg___13543; + if (!s.tmp_4.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "type"); + } else { + s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["type"]; + if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["type"]; } + else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } + else { s.callLocIdx = 269; s.pc = 19; return s.tmp_4; } + } case 19: - case 20: - r0 = (s.arg0 == 199); - s.tmp_10 = r0; - r0 = pxsim_numops_toBool(s.tmp_10); - if (!r0) { step = 21; continue; } - r0 = s.tmp_10; - { step = 22; continue; } - case 21: - r0 = (s.arg0 == 204); - case 22: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_3 === "button-up"); + case 2: // jmp value (already in r0) - s.tmp_11 = r0; - r0 = pxsim_numops_toBool(s.tmp_11); - if (!r0) { step = 23; continue; } - r0 = s.tmp_11; - { step = 24; continue; } + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 5; continue; } + s.tmp_6 = shieldhelpers_getButton__P5146_mk(s); + s.tmp_7 = if_buttonId_1_mk(s); + s.tmp_7.arg0 = s.msg___13543; + if (!s.tmp_7.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "buttonId"); + } else { + s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["buttonId"]; + if (s.tmp_7.fn == null) { s.retval = s.tmp_7.arg0.fields["buttonId"]; } + else if (!s.tmp_7.fn.isGetter) { s.retval = bind(s.tmp_7); } + else { s.callLocIdx = 270; s.pc = 21; return s.tmp_7; } + } + case 21: + r0 = s.retval; + s.tmp_6.arg0 = r0; + s.callLocIdx = 271; s.pc = 20; return s.tmp_6; + case 20: + r0 = s.retval; + s.button___13564 = (r0); + r0 = pxsim_numops_toBoolDecr(s.button___13564); + if (!r0) { step = 3; continue; } + s.tmp_0 = controller_Button_setPressed__P3233_mk(s); + s.tmp_0.arg0 = s.button___13564; + s.tmp_2 = if_type_1_mk(s); + s.tmp_2.arg0 = s.msg___13543; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "type"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["type"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["type"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 272; s.pc = 23; return s.tmp_2; } + } case 23: - r0 = (s.arg0 == 110); + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 === "button-down"); + s.tmp_0.arg1 = r0; + s.callLocIdx = 273; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + case 3: + case 4: + { step = 10; continue; } + case 5: + s.tmp_2 = if_type_1_mk(s); + s.tmp_2.arg0 = s.msg___13543; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "type"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["type"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["type"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 274; s.pc = 24; return s.tmp_2; } + } case 24: - // jmp value (already in r0) - s.tmp_12 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_12); - if (!r0) { step = 25; continue; } - r0 = globals.tile_color_green___3945; - { step = 55; continue; } + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 === "display-on"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_3 = shieldhelpers_getScreenState__P5133_mk(s); + s.callLocIdx = 275; s.pc = 25; return s.tmp_3; case 25: + r0 = s.retval; + r0 = (globals._screenState___5131).fields["displayOn"] = (true); + setupResume(s, 26); + pxsim.basic.pause(0); + checkResumeConsumed(); + return; case 26: - r0 = (s.arg0 == 200); - s.tmp_13 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_13); - if (!r0) { step = 27; continue; } - r0 = globals.tile_color_blue___3942; - { step = 55; continue; } + r0 = s.retval; + r0 = pxsim.control.raiseEvent(3043, 0, 1); + { step = 9; continue; } + case 6: + s.tmp_2 = if_type_1_mk(s); + s.tmp_2.arg0 = s.msg___13543; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "type"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["type"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["type"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 276; s.pc = 27; return s.tmp_2; } + } case 27: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 === "display-off"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.tmp_3 = shieldhelpers_getScreenState__P5133_mk(s); + s.callLocIdx = 277; s.pc = 28; return s.tmp_3; case 28: - r0 = (s.arg0 == 201); - s.tmp_14 = r0; - r0 = pxsim_numops_toBool(s.tmp_14); - if (!r0) { step = 29; continue; } - r0 = s.tmp_14; - { step = 30; continue; } + r0 = s.retval; + r0 = (globals._screenState___5131).fields["displayOn"] = (false); + setupResume(s, 29); + pxsim.basic.pause(0); + checkResumeConsumed(); + return; case 29: - r0 = (s.arg0 == 205); - case 30: - // jmp value (already in r0) - s.tmp_15 = r0; - r0 = pxsim_numops_toBool(s.tmp_15); - if (!r0) { step = 31; continue; } - r0 = s.tmp_15; - { step = 32; continue; } - case 31: - r0 = (s.arg0 == 111); - case 32: - // jmp value (already in r0) - s.tmp_16 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_16); - if (!r0) { step = 33; continue; } - r0 = globals.tile_color_black___3940; - { step = 55; continue; } - case 33: - case 34: - r0 = (s.arg0 == 202); - s.tmp_17 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_17); - if (!r0) { step = 35; continue; } - r0 = globals.arm_open___3905; - { step = 55; continue; } - case 35: - case 36: - r0 = (s.arg0 == 203); - s.tmp_18 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_18); - if (!r0) { step = 37; continue; } - r0 = globals.arm_close___3906; - { step = 55; continue; } - case 37: - case 38: - r0 = (s.arg0 == 25); - s.tmp_19 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_19); - if (!r0) { step = 39; continue; } - r0 = globals.car_wall___4020; - { step = 55; continue; } - case 39: - case 40: - r0 = (s.arg0 == 26); - s.tmp_20 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_20); - if (!r0) { step = 41; continue; } - r0 = globals.line_sensor___4021; - { step = 55; continue; } - case 41: - case 42: - r0 = (s.arg0 == 102); - s.tmp_21 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_21); - if (!r0) { step = 43; continue; } - r0 = globals.line_left_on___4023; - { step = 55; continue; } - case 43: - case 44: - r0 = (s.arg0 == 103); - s.tmp_22 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_22); - if (!r0) { step = 45; continue; } - r0 = globals.line_right_on___4024; - { step = 55; continue; } - case 45: - case 46: - r0 = (s.arg0 == 104); - s.tmp_23 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_23); - if (!r0) { step = 47; continue; } - r0 = globals.line_both_on___4025; - { step = 55; continue; } - case 47: - case 48: - r0 = (s.arg0 == 105); - s.tmp_24 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_24); - if (!r0) { step = 49; continue; } - r0 = globals.line_neither_on___4022; - { step = 55; continue; } - case 49: - case 50: - r0 = (s.arg0 == 106); - s.tmp_25 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_25); - if (!r0) { step = 51; continue; } - r0 = globals.line_none_from_left___4026; - { step = 55; continue; } - case 51: - case 52: - r0 = (s.arg0 == 107); - s.tmp_26 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_26); - if (!r0) { step = 53; continue; } - r0 = globals.line_none_from_right___4027; - { step = 55; continue; } - case 53: - case 54: - r0 = null; - case 55: + r0 = s.retval; + r0 = pxsim.control.raiseEvent(3042, 0, 1); + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_carImages__P5362.info = {"start":1105,"length":2183,"line":21,"column":4,"endLine":63,"endColumn":5,"fileName":"assets.ts","functionName":"carImages","argumentNames":["name"]} +shieldhelpers_handleShieldMessage__P5147.info = {"start":6131,"length":1034,"line":225,"column":4,"endLine":250,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"handleShieldMessage","argumentNames":["b"]} -function microcode_carImages__P5362_mk(s) { +function shieldhelpers_handleShieldMessage__P5147_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_carImages__P5362, depth: s.depth + 1, + parent: s, fn: shieldhelpers_handleShieldMessage__P5147, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -25573,33 +28961,16 @@ function microcode_carImages__P5362_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, + s___13539: undefined, + msg___13543: undefined, + button___13564: undefined, arg0: undefined, } } - -function icondb_operatorIcon__P3893(s) { +function shieldhelpers_getButton__P5146(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25609,46 +28980,69 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.img___12414 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim.bitmaps.create(11, 11); - s.img___12414 = (r0); - r0 = pxsim.BitmapMethods.fill(s.img___12414, 0); - s.tmp_0 = helpers_imagePrint__P3342_mk(s); - s.tmp_0.arg0 = s.img___12414; - s.tmp_0.arg1 = s.arg0; - s.tmp_0.arg2 = 3; - s.tmp_0.arg3 = 1; - s.tmp_0.arg4 = 15; - s.tmp_0.arg5 = undefined; - s.tmp_0.arg6 = undefined; - s.callLocIdx = 873; s.pc = 1; return s.tmp_0; + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_pxtcore.switch_eq("left", s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq("right", s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq("up", s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq("down", s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq("a", s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq("b", s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq("menu", s.tmp_0); + if (r0) { step = 7; continue; } + r0 = s.tmp_0; + { step = 8; continue; } case 1: - r0 = s.retval; - r0 = s.img___12414; + r0 = globals.left___3241; + { step = 9; continue; } + case 2: + r0 = globals.right___3243; + { step = 9; continue; } + case 3: + r0 = globals.up___3242; + { step = 9; continue; } + case 4: + r0 = globals.down___3244; + { step = 9; continue; } + case 5: + r0 = globals.A___3239; + { step = 9; continue; } + case 6: + r0 = globals.B___3240; + { step = 9; continue; } + case 7: + r0 = globals.menu___3245; + { step = 9; continue; } + case 8: + r0 = null; + case 9: return leave(s, r0) default: oops() } } } -icondb_operatorIcon__P3893.info = {"start":21627,"length":162,"line":356,"column":4,"endLine":361,"endColumn":5,"fileName":"assets.ts","functionName":"operatorIcon","argumentNames":["op"]} +shieldhelpers_getButton__P5146.info = {"start":5686,"length":439,"line":212,"column":4,"endLine":223,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"getButton","argumentNames":["id"]} -function icondb_operatorIcon__P3893_mk(s) { +function shieldhelpers_getButton__P5146_mk(s) { checkStack(s.depth); return { - parent: s, fn: icondb_operatorIcon__P3893, depth: s.depth + 1, + parent: s, fn: shieldhelpers_getButton__P5146, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - img___12414: undefined, arg0: undefined, } } - -function icondb_numberToImage__P4005(s) { +function JSON_parse__P2808(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25658,49 +29052,85 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.p___13619 = undefined; + s.r___13629 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (globals.editorMode___4638 != 2); + r0 = pxsim_pxtcore_mkClassInstance(JSON_Parser__C4926_VT); + s.p___13619 = (r0); + r0 = (s.p___13619).fields["ptr"] = (0); + r0 = (s.p___13619).fields["s"] = (s.arg0); + s.tmp_0 = JSON_Parser_value__P4935_mk(s); + s.tmp_0.arg0 = s.p___13619; + s.callLocIdx = 121; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.r___13629 = (r0); + s.tmp_1 = JSON_Parser_skipWS__P4928_mk(s); + s.tmp_1.arg0 = s.p___13619; + s.callLocIdx = 122; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_Array__getAt(globals.num2image___5645, s.arg0); - { step = 3; continue; } - { step = 2; continue; } - case 1: - s.tmp_1 = icondb_numberToDecimalImage__P4004_mk(s); - r0 = (s.arg0 + 1); - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = true; - s.callLocIdx = 878; s.pc = 4; return s.tmp_1; - case 4: + s.tmp_2 = JSON_Parser_error__P4927_mk(s); + s.tmp_2.arg0 = s.p___13619; + s.tmp_2.arg1 = "excessive input"; + s.callLocIdx = 123; s.pc = 8; return s.tmp_2; + case 8: r0 = s.retval; - { step = 3; continue; } + case 1: case 2: + r0 = s.p___13619.fields["errorMsg"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = s.p___13619.fields["errorMsg"]; + s.tmp_3 = r0; + if ((s.tmp_3) && (s.tmp_3).vtable) { + setupResume(s, 9); + pxsim_String__stringConv(s.tmp_3); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_3) + ""; } + case 9: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_String__concat("Invalid JSON: ", s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim.control.dmesg(s.tmp_1); r0 = undefined; + { step = 5; continue; } case 3: + case 4: + r0 = s.r___13629; + case 5: return leave(s, r0) default: oops() } } } -icondb_numberToImage__P4005.info = {"start":100821,"length":194,"line":2747,"column":4,"endLine":2751,"endColumn":5,"fileName":"assets.ts","functionName":"numberToImage","argumentNames":["i"]} +JSON_parse__P2808.info = {"start":9325,"length":347,"line":307,"column":4,"endLine":320,"endColumn":5,"fileName":"pxt_modules/core/json.ts","functionName":"parse","argumentNames":["s"]} -function icondb_numberToImage__P4005_mk(s) { +function JSON_parse__P2808_mk(s) { checkStack(s.depth); return { - parent: s, fn: icondb_numberToImage__P4005, depth: s.depth + 1, + parent: s, fn: JSON_parse__P2808, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + p___13619: undefined, + r___13629: undefined, arg0: undefined, } } - -function icondb_numberToDecimalImage__P4004(s) { +function JSON_Parser_error__P4927(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25710,73 +29140,85 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.str___12438 = undefined; - s.width___12447 = undefined; - s.img___12451 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore.typeOf(s.arg0); - s.tmp_1 = r0; - r0 = (s.tmp_1 == "number"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim_numops.toString(s.arg0); - { step = 2; continue; } - case 1: r0 = s.arg0; - case 2: - // jmp value (already in r0) + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); + r0 = s.arg0.fields["errorMsg"]; s.tmp_2 = r0; - s.str___12438 = (s.tmp_2); - r0 = pxsim_String_.length(s.str___12438); - s.tmp_0 = r0; - r0 = (s.tmp_0 * 8); - s.width___12447 = (r0); - r0 = (s.width___12447 + 8); - s.tmp_0 = r0; - r0 = pxsim.bitmaps.create(s.tmp_0, 16); - s.img___12451 = (r0); - r0 = pxsim_numops_toBoolDecr(s.arg1); + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = pxsim.BitmapMethods.fill(s.img___12451, 1); + if (!r0) { step = 1; continue; } + s.tmp_3 = r0 = s.arg0; + if ((s.arg1) && (s.arg1).vtable) { + setupResume(s, 3); + pxsim_String__stringConv(s.arg1); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg1) + ""; } case 3: + r0 = s.retval; + s.tmp_7 = r0; + r0 = pxsim_String__concat(s.tmp_7, " at position "); + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 4); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } case 4: - s.tmp_0 = helpers_imagePrint__P3342_mk(s); - s.tmp_0.arg0 = s.img___12451; - s.tmp_0.arg1 = s.str___12438; - s.tmp_0.arg2 = 6; - s.tmp_0.arg3 = 4; - s.tmp_0.arg4 = 15; - s.tmp_0.arg5 = undefined; - s.tmp_0.arg6 = undefined; - s.callLocIdx = 877; s.pc = 5; return s.tmp_0; + r0 = s.retval; + s.tmp_5 = r0; + r0 = s.arg0.fields["ptr"]; + s.tmp_9 = r0; + if ((s.tmp_9) && (s.tmp_9).vtable) { + setupResume(s, 5); + pxsim_String__stringConv(s.tmp_9); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_9) + ""; } case 5: r0 = s.retval; - r0 = s.img___12451; + s.tmp_8 = r0; + r0 = pxsim_String__concat(s.tmp_5, s.tmp_8); + s.tmp_4 = r0; + r0 = (s.tmp_3).fields["errorMsg"] = (s.tmp_4); + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["s"]; + s.tmp_2 = r0; + r0 = pxsim_String_.length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + case 1: + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -icondb_numberToDecimalImage__P4004.info = {"start":100472,"length":343,"line":2735,"column":4,"endLine":2745,"endColumn":5,"fileName":"assets.ts","functionName":"numberToDecimalImage","argumentNames":["i","transparent"]} +JSON_Parser_error__P4927.info = {"start":1009,"length":184,"line":43,"column":8,"endLine":48,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"error","argumentNames":["this","msg"]} -function icondb_numberToDecimalImage__P4004_mk(s) { +function JSON_Parser_error__P4927_mk(s) { checkStack(s.depth); return { - parent: s, fn: icondb_numberToDecimalImage__P4004, depth: s.depth + 1, + parent: s, fn: JSON_Parser_error__P4927, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - str___12438: undefined, - width___12447: undefined, - img___12451: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, arg0: undefined, arg1: undefined, } } @@ -25784,8 +29226,7 @@ function icondb_numberToDecimalImage__P4004_mk(s) { - -function helpers_imageDrawLine__P3138(s) { +function JSON_Parser_skipWS__P4928(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25795,60 +29236,90 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.c___13674 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); - s.arg5 = (s.lambdaArgs[5]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = helpers_pack__P5040_mk(s); - s.tmp_2.arg0 = s.arg1; - s.tmp_2.arg1 = s.arg2; - s.callLocIdx = 192; s.pc = 1; return s.tmp_2; + r0 = s.arg0; + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); case 1: + s.tmp_0 = JSON_Parser_nextChar__P4929_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 86; s.pc = 11; return s.tmp_0; + case 11: r0 = s.retval; - s.tmp_1 = r0; - s.tmp_4 = helpers_pack__P5040_mk(s); - s.tmp_4.arg0 = s.arg3; - s.tmp_4.arg1 = s.arg4; - s.callLocIdx = 193; s.pc = 2; return s.tmp_4; + s.c___13674 = (r0); + r0 = (s.c___13674 == 32); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } case 2: - r0 = s.retval; + r0 = (s.c___13674 == 10); + case 3: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = s.tmp_1; + { step = 5; continue; } + case 4: + r0 = (s.c___13674 == 13); + case 5: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (!r0) { step = 6; continue; } + r0 = s.tmp_2; + { step = 7; continue; } + case 6: + r0 = (s.c___13674 == 9); + case 7: + // jmp value (already in r0) s.tmp_3 = r0; - r0 = pxsim.BitmapMethods._drawLine(s.tmp_0, s.tmp_1, s.tmp_3, s.arg5); + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 8; continue; } + { step = 9; continue; } + case 8: + s.tmp_4 = r0 = s.arg0; + r0 = s.tmp_4.fields["ptr"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["ptr"] = (s.tmp_5); + r0 = s.c___13674; + { step = 10; continue; } + case 9: + { step = 1; continue; } r0 = undefined; + case 10: return leave(s, r0) default: oops() } } } -helpers_imageDrawLine__P3138.info = {"start":5336,"length":160,"line":162,"column":4,"endLine":164,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"imageDrawLine","argumentNames":["img","x","y","w","h","c"]} +JSON_Parser_skipWS__P4928.info = {"start":1203,"length":301,"line":50,"column":8,"endLine":60,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"skipWS","argumentNames":["this"]} -function helpers_imageDrawLine__P3138_mk(s) { +function JSON_Parser_skipWS__P4928_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_imageDrawLine__P3138, depth: s.depth + 1, + parent: s, fn: JSON_Parser_skipWS__P4928, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + c___13674: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, - arg5: undefined, } } - -function user_interface_base_Borders_constructor__P3632(s) { +function JSON_Parser_nextChar__P4929(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25860,41 +29331,59 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Borders__C3631_VT)) failedCast(r0, user_interface_base_Borders__C3631_VT); - r0 = (s.arg0).fields["top"] = (s.arg1); - r0 = (s.arg0).fields["bottom"] = (s.arg2); - r0 = (s.arg0).fields["left"] = (s.arg3); - r0 = (s.arg0).fields["right"] = (s.arg4); - r0 = undefined; + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); + r0 = s.arg0.fields["ptr"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["s"]; + s.tmp_3 = r0; + r0 = pxsim_String_.length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_4 = r0 = s.arg0; + r0 = s.tmp_4.fields["ptr"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 + 1); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["ptr"] = (s.tmp_5); + r0 = s.arg0.fields["s"]; + s.tmp_7 = r0; + r0 = pxsim_String_.charCodeAt(s.tmp_7, s.tmp_6); + { step = 3; continue; } + case 1: + case 2: + r0 = 0; + case 3: return leave(s, r0) default: oops() } } } -user_interface_base_Borders_constructor__P3632.info = {"start":61,"length":131,"line":2,"column":4,"endLine":7,"endColumn":9,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"inline","argumentNames":["this","top","bottom","left","right"]} +JSON_Parser_nextChar__P4929.info = {"start":1514,"length":138,"line":62,"column":8,"endLine":66,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"nextChar","argumentNames":["this"]} -function user_interface_base_Borders_constructor__P3632_mk(s) { +function JSON_Parser_nextChar__P4929_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Borders_constructor__P3632, depth: s.depth + 1, + parent: s, fn: JSON_Parser_nextChar__P4929, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function user_interface_base_ButtonStyle_constructor__P3634(s) { +function JSON_Parser_value__P4935(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25904,40 +29393,211 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.c___13710 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonStyle__C3633_VT)) failedCast(r0, user_interface_base_ButtonStyle__C3633_VT); - r0 = (s.arg0).fields["fill"] = (s.arg1); - r0 = (s.arg0).fields["borders"] = (s.arg2); - r0 = (s.arg0).fields["shadow"] = (s.arg3); - r0 = undefined; + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); + r0 = s.arg0.fields["errorMsg"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = null; + { step = 27; continue; } + case 1: + case 2: + s.tmp_1 = JSON_Parser_skipWS__P4928_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 105; s.pc = 28; return s.tmp_1; + case 28: + r0 = s.retval; + s.c___13710 = (r0); + r0 = (s.c___13710 == 123); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = JSON_Parser_doObject__P4932_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 106; s.pc = 29; return s.tmp_1; + case 29: + r0 = s.retval; + { step = 27; continue; } + { step = 26; continue; } + case 3: + r0 = (s.c___13710 == 91); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 4; continue; } + s.tmp_3 = JSON_Parser_doArray__P4931_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 107; s.pc = 30; return s.tmp_3; + case 30: + r0 = s.retval; + { step = 27; continue; } + { step = 25; continue; } + case 4: + r0 = (48 <= s.c___13710); + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (r0) { step = 5; continue; } + r0 = s.tmp_4; + { step = 6; continue; } + case 5: + r0 = (s.c___13710 <= 57); + case 6: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (!r0) { step = 7; continue; } + r0 = s.tmp_5; + { step = 8; continue; } + case 7: + r0 = (s.c___13710 == 45); + case 8: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 9; continue; } + s.tmp_7 = JSON_Parser_doNumber__P4933_mk(s); + s.tmp_7.arg0 = s.arg0; + s.callLocIdx = 108; s.pc = 31; return s.tmp_7; + case 31: + r0 = s.retval; + { step = 27; continue; } + { step = 24; continue; } + case 9: + r0 = (s.c___13710 == 34); + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); + if (!r0) { step = 10; continue; } + s.tmp_9 = JSON_Parser_doString__P4930_mk(s); + s.tmp_9.arg0 = s.arg0; + s.callLocIdx = 109; s.pc = 32; return s.tmp_9; + case 32: + r0 = s.retval; + { step = 27; continue; } + { step = 23; continue; } + case 10: + r0 = (s.c___13710 == 116); + s.tmp_10 = r0; + r0 = pxsim_numops_toBool(s.tmp_10); + if (r0) { step = 11; continue; } + r0 = s.tmp_10; + { step = 12; continue; } + case 11: + s.tmp_11 = JSON_Parser_checkKw__P4934_mk(s); + s.tmp_11.arg0 = s.arg0; + s.tmp_11.arg1 = "true"; + s.callLocIdx = 110; s.pc = 33; return s.tmp_11; + case 33: + r0 = s.retval; + case 12: + // jmp value (already in r0) + s.tmp_12 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_12); + if (!r0) { step = 13; continue; } + r0 = true; + { step = 27; continue; } + { step = 22; continue; } + case 13: + r0 = (s.c___13710 == 102); + s.tmp_13 = r0; + r0 = pxsim_numops_toBool(s.tmp_13); + if (r0) { step = 14; continue; } + r0 = s.tmp_13; + { step = 15; continue; } + case 14: + s.tmp_14 = JSON_Parser_checkKw__P4934_mk(s); + s.tmp_14.arg0 = s.arg0; + s.tmp_14.arg1 = "false"; + s.callLocIdx = 111; s.pc = 34; return s.tmp_14; + case 34: + r0 = s.retval; + case 15: + // jmp value (already in r0) + s.tmp_15 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_15); + if (!r0) { step = 16; continue; } + r0 = false; + { step = 27; continue; } + { step = 21; continue; } + case 16: + r0 = (s.c___13710 == 110); + s.tmp_16 = r0; + r0 = pxsim_numops_toBool(s.tmp_16); + if (r0) { step = 17; continue; } + r0 = s.tmp_16; + { step = 18; continue; } + case 17: + s.tmp_17 = JSON_Parser_checkKw__P4934_mk(s); + s.tmp_17.arg0 = s.arg0; + s.tmp_17.arg1 = "null"; + s.callLocIdx = 112; s.pc = 35; return s.tmp_17; + case 35: + r0 = s.retval; + case 18: + // jmp value (already in r0) + s.tmp_18 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_18); + if (!r0) { step = 19; continue; } + r0 = null; + { step = 27; continue; } + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + s.tmp_19 = JSON_Parser_error__P4927_mk(s); + s.tmp_19.arg0 = s.arg0; + s.tmp_19.arg1 = "unexpected token"; + s.callLocIdx = 113; s.pc = 36; return s.tmp_19; + case 36: + r0 = s.retval; + r0 = null; + case 27: return leave(s, r0) default: oops() } } } -user_interface_base_ButtonStyle_constructor__P3634.info = {"start":231,"length":109,"line":11,"column":4,"endLine":15,"endColumn":9,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"inline","argumentNames":["this","fill","borders","shadow"]} +JSON_Parser_value__P4935.info = {"start":4976,"length":743,"line":178,"column":8,"endLine":200,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"value","argumentNames":["this"]} -function user_interface_base_ButtonStyle_constructor__P3634_mk(s) { +function JSON_Parser_value__P4935_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonStyle_constructor__P3634, depth: s.depth + 1, + parent: s, fn: JSON_Parser_value__P4935, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + c___13710: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function controller_Button_constructor__P3252(s) { +function JSON_Parser_checkKw__P4934(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -25950,71 +29610,70 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, controller_Button__C3246_VT)) failedCast(r0, controller_Button__C3246_VT); - r0 = (s.arg0).fields["id"] = (s.arg1); - r0 = (s.arg0).fields["_pressed"] = (false); - r0 = (s.arg0).fields["repeatDelay"] = (undefined); - r0 = (s.arg0).fields["repeatInterval"] = (undefined); - r0 = (s.arg0).fields["_repeatCount"] = (0); - r0 = (s.arg0).fields["handlerState"] = (undefined); - r0 = (s.arg1 > 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = pxsim_pxtcore_mkAction(1, controller_Button_inline__P12520); - s.tmp_1 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg0); - r0 = s.arg0.fields["id"]; - s.tmp_2 = r0; - r0 = pxsim.control.onEvent(2050, s.tmp_2, s.tmp_1, 16); - r0 = pxsim_pxtcore_mkAction(1, controller_Button_inline__P12527); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = s.arg0.fields["id"]; + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); + s.tmp_2 = helpers_stringSlice__P2148_mk(s); + r0 = s.arg0.fields["s"]; + s.tmp_2.arg0 = r0; + r0 = s.arg0.fields["ptr"]; + s.tmp_2.arg1 = r0; + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = pxsim_String_.length(s.arg1); + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_2.arg2 = r0; + s.callLocIdx = 104; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim.control.onEvent(2051, s.tmp_1, s.tmp_0, 16); - r0 = (s.arg2 > 0); + r0 = (s.tmp_1 == s.arg1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_1 = controller_setupButton__P5070_mk(s); - s.tmp_1.arg0 = s.arg1; - s.tmp_1.arg1 = s.arg2; - s.callLocIdx = 204; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; + s.tmp_5 = r0 = s.arg0; + r0 = s.tmp_5.fields["ptr"]; + s.tmp_7 = r0; + r0 = pxsim_String_.length(s.arg1); + s.tmp_8 = r0; + r0 = (s.tmp_7 + s.tmp_8); + s.tmp_6 = r0; + r0 = (s.tmp_5).fields["ptr"] = (s.tmp_6); + r0 = true; + { step = 3; continue; } case 1: case 2: + r0 = false; case 3: - case 4: - r0 = undefined; return leave(s, r0) default: oops() } } } -controller_Button_constructor__P3252.info = {"start":2265,"length":921,"line":94,"column":8,"endLine":112,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"inline","argumentNames":["this","id","configKey"]} +JSON_Parser_checkKw__P4934.info = {"start":4764,"length":202,"line":170,"column":8,"endLine":176,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"checkKw","argumentNames":["this","k"]} -function controller_Button_constructor__P3252_mk(s) { +function JSON_Parser_checkKw__P4934_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_Button_constructor__P3252, depth: s.depth + 1, + parent: s, fn: JSON_Parser_checkKw__P4934, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function controller_Button_inline__P12520(s) { +function JSON_Parser_doString__P4930(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26024,65 +29683,193 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = controller_Button_setPressed__P3260_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = false; - s.callLocIdx = 202; s.pc = 1; return s.tmp_0; + s.r___13770 = undefined; + s.c___13775 = undefined; + s.q___13789 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); + r0 = pxsim_String_.mkEmpty(); + s.r___13770 = (r0); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); case 1: + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + r0 = s.arg0.fields["s"]; + s.tmp_3 = r0; + r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_2); + s.c___13775 = (r0); + r0 = (s.c___13775 == "\""); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = s.r___13770; + { step = 16; continue; } + case 2: + case 3: + r0 = (s.c___13775 == "\\"); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 14; continue; } + s.tmp_2 = r0 = s.arg0; + r0 = s.tmp_2.fields["ptr"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 + 1); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["ptr"] = (s.tmp_3); + r0 = s.arg0.fields["s"]; + s.tmp_5 = r0; + r0 = pxsim_String_.charAt(s.tmp_5, s.tmp_4); + s.q___13789 = (r0); + r0 = (s.q___13789 == "b"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.q___13789 = ("\b"); + { step = 13; continue; } + case 4: + r0 = (s.q___13789 == "n"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.q___13789 = ("\n"); + { step = 12; continue; } + case 5: + r0 = (s.q___13789 == "r"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.q___13789 = ("\r"); + { step = 11; continue; } + case 6: + r0 = (s.q___13789 == "t"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.q___13789 = ("\t"); + { step = 10; continue; } + case 7: + r0 = (s.q___13789 == "u"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + s.tmp_2 = JSON_parseIntRadix__P2806_mk(s); + s.tmp_3 = helpers_stringSlice__P2148_mk(s); + r0 = s.arg0.fields["s"]; + s.tmp_3.arg0 = r0; + r0 = s.arg0.fields["ptr"]; + s.tmp_3.arg1 = r0; + r0 = s.arg0.fields["ptr"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 + 4); + s.tmp_3.arg2 = r0; + s.callLocIdx = 87; s.pc = 18; return s.tmp_3; + case 18: r0 = s.retval; - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -controller_Button_inline__P12520.info = {"start":2938,"length":28,"line":106,"column":73,"endLine":106,"endColumn":101,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"inline","argumentNames":[]} - -function controller_Button_inline__P12520_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: controller_Button_inline__P12520, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, -} } - - - - - -function controller_Button_inline__P12527(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.tmp_0 = controller_Button_setPressed__P3260_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = true; - s.callLocIdx = 203; s.pc = 1; return s.tmp_0; - case 1: + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = 16; + s.callLocIdx = 88; s.pc = 17; return s.tmp_2; + case 17: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String_.fromCharCode(s.tmp_1); + s.q___13789 = (r0); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 4); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + if ((s.r___13770) && (s.r___13770).vtable) { + setupResume(s, 19); + pxsim_String__stringConv(s.r___13770); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13770) + ""; } + case 19: + r0 = s.retval; + s.tmp_0 = r0; + if ((s.q___13789) && (s.q___13789).vtable) { + setupResume(s, 20); + pxsim_String__stringConv(s.q___13789); + checkResumeConsumed(); + return; + } else { s.retval = (s.q___13789) + ""; } + case 20: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___13770 = (r0); + { step = 15; continue; } + case 14: + if ((s.r___13770) && (s.r___13770).vtable) { + setupResume(s, 21); + pxsim_String__stringConv(s.r___13770); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___13770) + ""; } + case 21: + r0 = s.retval; + s.tmp_0 = r0; + if ((s.c___13775) && (s.c___13775).vtable) { + setupResume(s, 22); + pxsim_String__stringConv(s.c___13775); + checkResumeConsumed(); + return; + } else { s.retval = (s.c___13775) + ""; } + case 22: r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___13770 = (r0); + case 15: + { step = 1; continue; } r0 = undefined; + case 16: return leave(s, r0) default: oops() } } } -controller_Button_inline__P12527.info = {"start":3047,"length":27,"line":107,"column":75,"endLine":107,"endColumn":102,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"inline","argumentNames":[]} +JSON_Parser_doString__P4930.info = {"start":1662,"length":795,"line":68,"column":8,"endLine":90,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doString","argumentNames":["this"]} -function controller_Button_inline__P12527_mk(s) { +function JSON_Parser_doString__P4930_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_Button_inline__P12527, depth: s.depth + 1, + parent: s, fn: JSON_Parser_doString__P4930, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + r___13770: undefined, + c___13775: undefined, + q___13789: undefined, + arg0: undefined, } } - -function controller_setupButton__P5070(s) { +function JSON_parseIntRadix__P2806(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26092,28 +29879,211 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.m___13853 = undefined; + s.r___13854 = undefined; + s.i___13855 = undefined; + s.c___13861 = undefined; + s.v___13886 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - setupResume(s, 1); - pxsim.basic.pause(0); - checkResumeConsumed(); - return; + r0 = (s.arg1 == null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; + r0 = (s.arg1 == 10); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = pxsim_String_.toNumber(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_2 | 0); + { step = 36; continue; } + case 3: + case 4: + s.m___13853 = (false); + s.r___13854 = (0); + s.i___13855 = (0); + case 5: + s.tmp_1 = r0 = s.i___13855; + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 33; continue; } + r0 = pxsim_String_.charCodeAt(s.arg0, s.i___13855); + s.c___13861 = (r0); + r0 = (s.c___13861 == 32); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = s.tmp_0; + { step = 7; continue; } + case 6: + r0 = (s.c___13861 == 10); + case 7: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 8; continue; } + r0 = s.tmp_1; + { step = 9; continue; } + case 8: + r0 = (s.c___13861 == 13); + case 9: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (!r0) { step = 10; continue; } + r0 = s.tmp_2; + { step = 11; continue; } + case 10: + r0 = (s.c___13861 == 9); + case 11: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 12; continue; } + { step = 32; continue; } + case 12: + case 13: + r0 = (s.r___13854 == 0); + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (r0) { step = 14; continue; } + r0 = s.tmp_4; + { step = 15; continue; } + case 14: + r0 = pxsim_numops_toBoolDecr(s.m___13853); + s.tmp_5 = r0; + r0 = pxsim_Boolean__bang(s.tmp_5); + case 15: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBool(s.tmp_6); + if (r0) { step = 16; continue; } + r0 = s.tmp_6; + { step = 17; continue; } + case 16: + r0 = (s.c___13861 == 45); + case 17: + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + if (!r0) { step = 18; continue; } + s.m___13853 = (true); + { step = 32; continue; } + case 18: + case 19: + s.v___13886 = (-1); + r0 = (48 <= s.c___13861); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 20; continue; } + r0 = s.tmp_0; + { step = 21; continue; } + case 20: + r0 = (s.c___13861 <= 57); + case 21: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 22; continue; } + r0 = (s.c___13861 - 48); + s.v___13886 = (r0); + { step = 27; continue; } + case 22: + r0 = (s.c___13861 | 32); + s.c___13861 = (r0); + r0 = (97 <= s.c___13861); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 23; continue; } + r0 = s.tmp_0; + { step = 24; continue; } + case 23: + r0 = (s.c___13861 <= 122); + case 24: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 25; continue; } + r0 = (s.c___13861 - 97); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 10); + s.v___13886 = (r0); + case 25: + case 26: + case 27: + r0 = (0 <= s.v___13886); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 28; continue; } + r0 = s.tmp_0; + { step = 29; continue; } + case 28: + r0 = (s.v___13886 < s.arg1); + case 29: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 30; continue; } + r0 = (s.r___13854 * s.arg1); + s.r___13854 = (r0); + r0 = (s.r___13854 + s.v___13886); + s.r___13854 = (r0); + { step = 31; continue; } + case 30: r0 = undefined; + { step = 36; continue; } + case 31: + case 32: + r0 = (s.i___13855 + 1); + s.i___13855 = (r0); + { step = 5; continue; } + case 33: + r0 = pxsim_numops_toBoolDecr(s.m___13853); + if (!r0) { step = 34; continue; } + r0 = (0 - s.r___13854); + { step = 35; continue; } + case 34: + r0 = s.r___13854; + case 35: + // jmp value (already in r0) + s.tmp_0 = r0; + r0 = s.tmp_0; + case 36: return leave(s, r0) default: oops() } } } -controller_setupButton__P5070.info = {"start":1427,"length":82,"line":64,"column":4,"endLine":66,"endColumn":5,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"setupButton","argumentNames":["buttonId","key"]} +JSON_parseIntRadix__P2806.info = {"start":21,"length":894,"line":1,"column":4,"endLine":35,"endColumn":5,"fileName":"pxt_modules/core/json.ts","functionName":"parseIntRadix","argumentNames":["s","base"]} -function controller_setupButton__P5070_mk(s) { +function JSON_parseIntRadix__P2806_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_setupButton__P5070, depth: s.depth + 1, + parent: s, fn: JSON_parseIntRadix__P2806, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + m___13853: undefined, + r___13854: undefined, + i___13855: undefined, + c___13861: undefined, + v___13886: undefined, arg0: undefined, arg1: undefined, } } @@ -26121,8 +30091,7 @@ function controller_setupButton__P5070_mk(s) { - -function controller_Button_setPressed__P3260(s) { +function JSON_Parser_doNumber__P4933(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26132,74 +30101,152 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.beg___13936 = undefined; + s.c___13940 = undefined; + s.ss___13968 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, controller_Button__C3246_VT)) failedCast(r0, controller_Button__C3246_VT); - r0 = s.arg0.fields["_pressed"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 != s.arg1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = s.arg0.fields["_owner"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["_owner"]; - s.tmp_3 = r0; - r0 = (s.tmp_3).fields["connected"] = (true); + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); + r0 = s.arg0.fields["ptr"]; + s.beg___13936 = (r0); case 1: - case 2: - r0 = (s.arg0).fields["_pressed"] = (s.arg1); - r0 = s.arg0.fields["_pressed"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = (s.arg0).fields["_pressedElasped"] = (0); - s.tmp_0 = controller_Button_raiseButtonDown__P3254_mk(s); + s.tmp_0 = JSON_Parser_nextChar__P4929_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 205; s.pc = 7; return s.tmp_0; - case 7: + s.callLocIdx = 101; s.pc = 20; return s.tmp_0; + case 20: r0 = s.retval; - { step = 4; continue; } + s.c___13940 = (r0); + r0 = (48 <= s.c___13940); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + r0 = (s.c___13940 <= 57); case 3: - r0 = (s.arg0).fields["_repeatCount"] = (0); - s.tmp_0 = controller_Button_raiseButtonUp__P3253_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 206; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = s.tmp_1; + { step = 5; continue; } case 4: + r0 = (s.c___13940 == 43); case 5: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (!r0) { step = 6; continue; } + r0 = s.tmp_2; + { step = 7; continue; } case 6: - r0 = undefined; + r0 = (s.c___13940 == 45); + case 7: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (!r0) { step = 8; continue; } + r0 = s.tmp_3; + { step = 9; continue; } + case 8: + r0 = (s.c___13940 == 46); + case 9: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (!r0) { step = 10; continue; } + r0 = s.tmp_4; + { step = 11; continue; } + case 10: + r0 = (s.c___13940 == 69); + case 11: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (!r0) { step = 12; continue; } + r0 = s.tmp_5; + { step = 13; continue; } + case 12: + r0 = (s.c___13940 == 101); + case 13: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 14; continue; } + { step = 15; continue; } + case 14: + s.tmp_7 = r0 = s.arg0; + r0 = s.tmp_7.fields["ptr"]; + s.tmp_9 = r0; + r0 = (s.tmp_9 - 1); + s.tmp_8 = r0; + r0 = (s.tmp_7).fields["ptr"] = (s.tmp_8); + { step = 16; continue; } + case 15: + { step = 1; continue; } + case 16: + s.tmp_0 = helpers_stringSlice__P2148_mk(s); + r0 = s.arg0.fields["s"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.beg___13936; + r0 = s.arg0.fields["ptr"]; + s.tmp_0.arg2 = r0; + s.callLocIdx = 102; s.pc = 21; return s.tmp_0; + case 21: + r0 = s.retval; + s.ss___13968 = (r0); + r0 = pxsim_String_.length(s.ss___13968); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 17; continue; } + s.tmp_2 = JSON_Parser_error__P4927_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = "expecting number"; + s.callLocIdx = 103; s.pc = 22; return s.tmp_2; + case 22: + r0 = s.retval; + r0 = 0; + { step = 19; continue; } + case 17: + case 18: + r0 = pxsim_String_.toNumber(s.ss___13968); + case 19: return leave(s, r0) default: oops() } } } -controller_Button_setPressed__P3260.info = {"start":6556,"length":477,"line":204,"column":8,"endLine":217,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"setPressed","argumentNames":["this","pressed"]} +JSON_Parser_doNumber__P4933.info = {"start":4169,"length":585,"line":151,"column":8,"endLine":168,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doNumber","argumentNames":["this"]} -function controller_Button_setPressed__P3260_mk(s) { +function JSON_Parser_doNumber__P4933_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_Button_setPressed__P3260, depth: s.depth + 1, + parent: s, fn: JSON_Parser_doNumber__P4933, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + beg___13936: undefined, + c___13940: undefined, + ss___13968: undefined, arg0: undefined, - arg1: undefined, } } - -function controller_Button_raiseButtonUp__P3253(s) { +function JSON_Parser_doArray__P4931(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26209,43 +30256,119 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.r___13984 = undefined; + s.c___13990 = undefined; + s.v___13998 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, controller_Button__C3246_VT)) failedCast(r0, controller_Button__C3246_VT); - r0 = pxsim_numops_toBoolDecr(globals._userEventsEnabled___5065); - if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["id"]; - s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2048, s.tmp_0, 1); - { step = 2; continue; } + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); + r0 = pxsim_Array__mk(); + s.r___13984 = (r0); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); case 1: - r0 = s.arg0.fields["id"]; + s.tmp_0 = JSON_Parser_skipWS__P4928_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 89; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.c___13990 = (r0); + r0 = (s.c___13990 == 93); s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2052, s.tmp_0, 1); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = r0 = s.arg0; + r0 = s.tmp_1.fields["ptr"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); + r0 = s.r___13984; + { step = 11; continue; } case 2: + case 3: + s.tmp_0 = JSON_Parser_value__P4935_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 90; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + s.v___13998 = (r0); + r0 = s.arg0.fields["errorMsg"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = null; + { step = 11; continue; } + case 4: + case 5: + r0 = pxsim_Array__push(s.r___13984, s.v___13998); + s.tmp_0 = JSON_Parser_skipWS__P4928_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 91; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; + s.c___13990 = (r0); + r0 = (s.c___13990 == 44); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_1 = r0 = s.arg0; + r0 = s.tmp_1.fields["ptr"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); + { step = 10; continue; } + case 6: + case 7: + r0 = (s.c___13990 == 93); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + { step = 10; continue; } + case 8: + case 9: + s.tmp_1 = JSON_Parser_error__P4927_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = "expecting comma"; + s.callLocIdx = 92; s.pc = 15; return s.tmp_1; + case 15: + r0 = s.retval; + case 10: + { step = 1; continue; } r0 = undefined; + case 11: return leave(s, r0) default: oops() } } } -controller_Button_raiseButtonUp__P3253.info = {"start":3196,"length":222,"line":114,"column":8,"endLine":119,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"raiseButtonUp","argumentNames":["this"]} +JSON_Parser_doArray__P4931.info = {"start":2467,"length":646,"line":92,"column":8,"endLine":114,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doArray","argumentNames":["this"]} -function controller_Button_raiseButtonUp__P3253_mk(s) { +function JSON_Parser_doArray__P4931_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_Button_raiseButtonUp__P3253, depth: s.depth + 1, + parent: s, fn: JSON_Parser_doArray__P4931, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + r___13984: undefined, + c___13990: undefined, + v___13998: undefined, arg0: undefined, } } - -function controller_Button_raiseButtonDown__P3254(s) { +function JSON_Parser_doObject__P4932(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26255,43 +30378,179 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.r___14019 = undefined; + s.c___14025 = undefined; + s.k___14037 = undefined; + s.v___14049 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, controller_Button__C3246_VT)) failedCast(r0, controller_Button__C3246_VT); - r0 = pxsim_numops_toBoolDecr(globals._userEventsEnabled___5065); - if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["id"]; - s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2049, s.tmp_0, 1); - { step = 2; continue; } + if (!checkSubtype(r0, JSON_Parser__C4926_VT)) failedCast(r0, JSON_Parser__C4926_VT); + r0 = pxsim_pxtrt.mkMap(); + s.r___14019 = (r0); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); case 1: - r0 = s.arg0.fields["id"]; + s.tmp_0 = JSON_Parser_skipWS__P4928_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 93; s.pc = 16; return s.tmp_0; + case 16: + r0 = s.retval; + s.c___14025 = (r0); + r0 = (s.c___14025 == 125); s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2053, s.tmp_0, 1); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = r0 = s.arg0; + r0 = s.tmp_1.fields["ptr"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); + r0 = s.r___14019; + { step = 15; continue; } case 2: + case 3: + r0 = (s.c___14025 != 34); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_1 = JSON_Parser_error__P4927_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = "expecting key"; + s.callLocIdx = 94; s.pc = 17; return s.tmp_1; + case 17: + r0 = s.retval; + r0 = s.r___14019; + { step = 15; continue; } + case 4: + case 5: + s.tmp_0 = JSON_Parser_doString__P4930_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 95; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + s.k___14037 = (r0); + s.tmp_0 = JSON_Parser_skipWS__P4928_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 96; s.pc = 19; return s.tmp_0; + case 19: + r0 = s.retval; + s.c___14025 = (r0); + r0 = (s.c___14025 != 58); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_1 = JSON_Parser_error__P4927_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = "expecting colon"; + s.callLocIdx = 97; s.pc = 20; return s.tmp_1; + case 20: + r0 = s.retval; + r0 = s.r___14019; + { step = 15; continue; } + case 6: + case 7: + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + s.tmp_0 = JSON_Parser_value__P4935_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 98; s.pc = 21; return s.tmp_0; + case 21: + r0 = s.retval; + s.v___14049 = (r0); + r0 = s.arg0.fields["errorMsg"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + r0 = null; + { step = 15; continue; } + case 8: + case 9: + r0 = pxsim_pxtrt.mapSetGeneric(s.r___14019, s.k___14037, s.v___14049); + s.tmp_0 = JSON_Parser_skipWS__P4928_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 99; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + s.c___14025 = (r0); + r0 = (s.c___14025 == 44); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + s.tmp_1 = r0 = s.arg0; + r0 = s.tmp_1.fields["ptr"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); + { step = 14; continue; } + case 10: + case 11: + r0 = (s.c___14025 == 125); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 12; continue; } + { step = 14; continue; } + case 12: + case 13: + s.tmp_1 = JSON_Parser_error__P4927_mk(s); + s.tmp_1.arg0 = s.arg0; + r0 = pxsim_String_.fromCharCode(s.c___14025); + s.tmp_3 = r0; + if ((s.tmp_3) && (s.tmp_3).vtable) { + setupResume(s, 24); + pxsim_String__stringConv(s.tmp_3); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_3) + ""; } + case 24: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_String__concat("expecting comma, got ", s.tmp_2); + s.tmp_1.arg1 = r0; + s.callLocIdx = 100; s.pc = 23; return s.tmp_1; + case 23: + r0 = s.retval; + case 14: + { step = 1; continue; } r0 = undefined; + case 15: return leave(s, r0) default: oops() } } } -controller_Button_raiseButtonDown__P3254.info = {"start":3428,"length":227,"line":121,"column":8,"endLine":126,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"raiseButtonDown","argumentNames":["this"]} +JSON_Parser_doObject__P4932.info = {"start":3123,"length":1036,"line":116,"column":8,"endLine":149,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doObject","argumentNames":["this"]} -function controller_Button_raiseButtonDown__P3254_mk(s) { +function JSON_Parser_doObject__P4932_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_Button_raiseButtonDown__P3254, depth: s.depth + 1, + parent: s, fn: JSON_Parser_doObject__P4932, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + r___14019: undefined, + c___14025: undefined, + k___14037: undefined, + v___14049: undefined, arg0: undefined, } } - -function user_interface_base_Vec2_constructor__P3416(s) { +function control_simmessages_onReceived__P2817(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26304,34 +30563,53 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Vec2__C3411_VT)) failedCast(r0, user_interface_base_Vec2__C3411_VT); - r0 = (s.arg0).fields["x_"] = (s.arg1); - r0 = (s.arg0).fields["y_"] = (s.arg2); + r0 = pxsim_numops_toBoolDecr(s.arg0); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 5; continue; } + case 1: + case 2: + r0 = pxsim_numops_toBoolDecr(globals.handlers___4948); + s.tmp_3 = r0; + r0 = pxsim_Boolean__bang(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + r0 = pxsim_pxtrt.mkMap(); + globals.handlers___4948 = (r0); + case 3: + case 4: + r0 = pxsim_pxtrt.mapSetGeneric(globals.handlers___4948, s.arg0, s.arg1); + r0 = pxsim.control.onEvent(2999, 1, control_simmessages_consumeMessages__P4949, 0); + case 5: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_constructor__P3416.info = {"start":392,"length":53,"line":18,"column":8,"endLine":19,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"inline","argumentNames":["this","x_","y_"]} +control_simmessages_onReceived__P2817.info = {"start":1063,"length":293,"line":32,"column":4,"endLine":39,"endColumn":5,"fileName":"pxt_modules/core/controlmessage.ts","functionName":"onReceived","argumentNames":["channel","handler"]} -function user_interface_base_Vec2_constructor__P3416_mk(s) { +function control_simmessages_onReceived__P2817_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_constructor__P3416, depth: s.depth + 1, + parent: s, fn: control_simmessages_onReceived__P2817, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function user_interface_base_Bounds_constructor__P3376(s) { +function control_simmessages_consumeMessages__P4949(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26341,113 +30619,71 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0 = s.arg1; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + s.channel___14094 = undefined; + s.msg___14099 = undefined; + s.handler___14102 = undefined; case 1: - r0 = pxsim_pxtrt.mkMap(); + r0 = pxsim_numops_toBoolDecr(true); + if (!r0) { step = 8; continue; } + r0 = pxsim_pxtcore.peekMessageChannel(); + s.channel___14094 = (r0); + r0 = pxsim_numops_toBoolDecr(s.channel___14094); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", 0); - r0 = s.tmp_1; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + { step = 8; continue; } case 2: - // jmp value (already in r0) - s.tmp_2 = r0; - s.arg1 = (s.tmp_2); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_width_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "width"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["width"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["width"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 313; s.pc = 3; return s.tmp_2; } - } case 3: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["width"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_height_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "height"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["height"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["height"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 314; s.pc = 4; return s.tmp_2; } - } + r0 = pxsim_pxtcore.readMessageData(); + s.msg___14099 = (r0); + s.tmp_0 = r0 = globals.handlers___4948; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 4; continue; } + r0 = s.tmp_0; + { step = 5; continue; } case 4: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["height"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_left_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "left"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["left"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["left"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 315; s.pc = 5; return s.tmp_2; } - } + r0 = pxsim_pxtrt.mapGetGeneric(globals.handlers___4948, s.channel___14094); case 5: - r0 = s.retval; + // jmp value (already in r0) s.tmp_1 = r0; - r0 = (s.tmp_0).fields["left"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_top_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "top"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["top"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["top"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 316; s.pc = 6; return s.tmp_2; } - } - case 6: + s.handler___14102 = (s.tmp_1); + r0 = pxsim_numops_toBoolDecr(s.handler___14102); + if (!r0) { step = 6; continue; } + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.handler___14102; + s.tmp_0.arg0 = s.msg___14099; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 131; s.pc = 9; return s.tmp_0; + case 9: r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["top"] = (s.tmp_1); + case 6: + case 7: + { step = 1; continue; } + case 8: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_constructor__P3376.info = {"start":1029,"length":353,"line":33,"column":8,"endLine":44,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"inline","argumentNames":["this","opts"]} +control_simmessages_consumeMessages__P4949.info = {"start":564,"length":414,"line":15,"column":4,"endLine":27,"endColumn":5,"fileName":"pxt_modules/core/controlmessage.ts","functionName":"consumeMessages","argumentNames":[]} -function user_interface_base_Bounds_constructor__P3376_mk(s) { +function control_simmessages_consumeMessages__P4949_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_constructor__P3376, depth: s.depth + 1, + parent: s, fn: control_simmessages_consumeMessages__P4949, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - arg0: undefined, - arg1: undefined, + channel___14094: undefined, + msg___14099: undefined, + handler___14102: undefined, } } - -function screen__P3172(s) { +function shieldhelpers_ScreenState_constructor__P5129(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26457,24 +30693,54 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = globals.theScreen___3308; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, shieldhelpers_ScreenState__C5120_VT)) failedCast(r0, shieldhelpers_ScreenState__C5120_VT); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim.Math_.random(); + s.tmp_3 = r0; + if ((s.tmp_3) && (s.tmp_3).vtable) { + setupResume(s, 1); + pxsim_String__stringConv(s.tmp_3); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_3) + ""; } + case 1: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_String_.mkEmpty(); + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_2, s.tmp_4); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["runId"] = (s.tmp_1); + r0 = (s.arg0).fields["displayOn"] = (undefined); + r0 = (s.arg0).fields["gotSimMessage"] = (false); + r0 = undefined; return leave(s, r0) default: oops() } } } -screen__P3172.info = {"start":162,"length":55,"line":6,"column":0,"endLine":8,"endColumn":1,"fileName":"pxt_modules/display-shield/bitmap.ts","functionName":"screen","argumentNames":[]} +shieldhelpers_ScreenState_constructor__P5129.info = {"start":1151,"length":148,"line":38,"column":8,"endLine":42,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"inline","argumentNames":["this"]} -function screen__P3172_mk(s) { +function shieldhelpers_ScreenState_constructor__P5129_mk(s) { checkStack(s.depth); return { - parent: s, fn: screen__P3172, depth: s.depth + 1, + parent: s, fn: shieldhelpers_ScreenState_constructor__P5129, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, } } - -function shieldhelpers_registerSim__P3320(s) { +function __screen_internal_createScreen__P3283(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26484,29 +30750,49 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = shieldhelpers_getScreenState__P5144_mk(s); - s.callLocIdx = 285; s.pc = 1; return s.tmp_0; + s.img___14124 = undefined; + s.tmp_1 = shieldhelpers_displayWidth__P3291_mk(s); + s.callLocIdx = 235; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - r0 = undefined; + s.tmp_0 = r0; + s.tmp_3 = shieldhelpers_displayHeight__P3290_mk(s); + s.callLocIdx = 236; s.pc = 2; return s.tmp_3; + case 2: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim.bitmaps.create(s.tmp_0, s.tmp_2); + s.img___14124 = (r0); + r0 = pxsim_pxtcore_mkAction(1, __screen_internal_createScreen_inline__P14130); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.img___14124); + s.tmp_1 = control___screen_setupUpdate__P3279_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 238; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + r0 = s.img___14124; return leave(s, r0) default: oops() } } } -shieldhelpers_registerSim__P3320.info = {"start":7256,"length":62,"line":256,"column":4,"endLine":258,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"registerSim","argumentNames":[]} +__screen_internal_createScreen__P3283.info = {"start":617,"length":383,"line":17,"column":4,"endLine":24,"endColumn":5,"fileName":"pxt_modules/display-shield/init.ts","functionName":"createScreen","argumentNames":[]} -function shieldhelpers_registerSim__P3320_mk(s) { +function __screen_internal_createScreen__P3283_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_registerSim__P3320, depth: s.depth + 1, + parent: s, fn: __screen_internal_createScreen__P3283, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + img___14124: undefined, } } - -function shieldhelpers_getScreenState__P5144(s) { +function __screen_internal_createScreen_inline__P14130(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26516,48 +30802,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_numops_toBoolDecr(globals._screenState___5142); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkClassInstance(shieldhelpers_ScreenState__C5131_VT); - s.tmp_2 = r0; - s.tmp_3 = shieldhelpers_ScreenState_constructor__P5140_mk(s); - s.tmp_3.arg0 = s.tmp_2; - s.callLocIdx = 257; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; - globals._screenState___5142 = (s.tmp_2); - s.tmp_0 = shieldhelpers_startSim__P5143_mk(s); - s.callLocIdx = 258; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; + s.tmp_0 = shieldhelpers_updateScreen__P3287_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 237; s.pc = 1; return s.tmp_0; case 1: - case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_getScreenState__P5144.info = {"start":3209,"length":147,"line":111,"column":4,"endLine":116,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"getScreenState","argumentNames":[]} +__screen_internal_createScreen_inline__P14130.info = {"start":926,"length":37,"line":22,"column":37,"endLine":22,"endColumn":74,"fileName":"pxt_modules/display-shield/init.ts","functionName":"inline","argumentNames":[]} -function shieldhelpers_getScreenState__P5144_mk(s) { +function __screen_internal_createScreen_inline__P14130_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_getScreenState__P5144, depth: s.depth + 1, + parent: s, fn: __screen_internal_createScreen_inline__P14130, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, } } - -function shieldhelpers_startSim__P5143(s) { +function shieldhelpers_updateScreen__P3287(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26567,60 +30834,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = control_simmessages_onReceived__P2817_mk(s); - s.tmp_0.arg0 = "microbit-apps/display-shield"; - s.tmp_0.arg1 = shieldhelpers_handleShieldMessage__P5158; - s.callLocIdx = 254; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = shieldhelpers_ScreenState_initSim__P5136_mk(s); - s.tmp_0.arg0 = globals._screenState___5142; - s.callLocIdx = 255; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_pxtcore.updateScreen(s.arg0); + s.tmp_0 = shieldhelpers_simUpdateScreen__P5134_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 254; s.pc = 1; return s.tmp_0; case 1: - r0 = globals._screenState___5142.fields["gotSimMessage"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - setupResume(s, 5); - pxsim.basic.pause(0); - checkResumeConsumed(); - return; - case 5: - r0 = s.retval; - s.tmp_0 = shieldhelpers_ScreenState_initSim__P5136_mk(s); - s.tmp_0.arg0 = globals._screenState___5142; - s.callLocIdx = 256; s.pc = 6; return s.tmp_0; - case 6: r0 = s.retval; - { step = 1; continue; } - case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_startSim__P5143.info = {"start":2935,"length":268,"line":102,"column":4,"endLine":109,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"startSim","argumentNames":[]} +shieldhelpers_updateScreen__P3287.info = {"start":3535,"length":120,"line":125,"column":4,"endLine":128,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"updateScreen","argumentNames":["img"]} -function shieldhelpers_startSim__P5143_mk(s) { +function shieldhelpers_updateScreen__P3287_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_startSim__P5143, depth: s.depth + 1, + parent: s, fn: shieldhelpers_updateScreen__P3287, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, + arg0: undefined, } } - -function shieldhelpers_ScreenState_initSim__P5136(s) { +function shieldhelpers_simUpdateScreen__P5134(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26630,55 +30872,43 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.msg___12640 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, shieldhelpers_ScreenState__C5131_VT)) failedCast(r0, shieldhelpers_ScreenState__C5131_VT); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "initialize"); - r0 = s.arg0.fields["runId"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "runId", s.tmp_1); - s.msg___12640 = (s.tmp_0); - s.tmp_0 = shieldhelpers_ScreenState_sendMessage__P5135_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_1 = JSON_stringify__P2807_mk(s); - s.tmp_1.arg0 = s.msg___12640; - s.tmp_1.arg1 = null; - s.tmp_1.arg2 = 0; - s.callLocIdx = 246; s.pc = 2; return s.tmp_1; - case 2: + s.tmp_0 = shieldhelpers_getScreenState__P5133_mk(s); + s.callLocIdx = 252; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 247; s.pc = 1; return s.tmp_0; - case 1: + r0 = pxsim_numops_toBoolDecr(globals._screenState___5131); + if (!r0) { step = 1; continue; } + s.tmp_0 = shieldhelpers_ScreenState_showImage__P5128_mk(s); + s.tmp_0.arg0 = globals._screenState___5131; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 253; s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_ScreenState_initSim__P5136.info = {"start":1681,"length":202,"line":60,"column":8,"endLine":66,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"initSim","argumentNames":["this"]} +shieldhelpers_simUpdateScreen__P5134.info = {"start":3383,"length":146,"line":119,"column":4,"endLine":123,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"simUpdateScreen","argumentNames":["img"]} -function shieldhelpers_ScreenState_initSim__P5136_mk(s) { +function shieldhelpers_simUpdateScreen__P5134_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_ScreenState_initSim__P5136, depth: s.depth + 1, + parent: s, fn: shieldhelpers_simUpdateScreen__P5134, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - msg___12640: undefined, arg0: undefined, } } - -function JSON_stringify__P2807(s) { +function shieldhelpers_ScreenState_showImage__P5128(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26688,102 +30918,66 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ss___12652 = undefined; + s.msg___14148 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(JSON_Stringifier__C4924_VT); - s.ss___12652 = (r0); - s.tmp_0 = r0 = s.ss___12652; - r0 = pxsim_String_.mkEmpty(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["currIndent"] = (s.tmp_1); - r0 = (s.arg2 | 0); - s.arg2 = (r0); - r0 = (s.arg2 < 0); + r0 = s.arg0; + if (!checkSubtype(r0, shieldhelpers_ScreenState__C5120_VT)) failedCast(r0, shieldhelpers_ScreenState__C5120_VT); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.arg2 = (0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "show-image"); + r0 = s.arg0.fields["runId"]; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "runId", s.tmp_1); + s.tmp_3 = helpers_bufferToBase64__P2783_mk(s); + r0 = pxsim.BitmapMethods.__buffer(s.arg1); + s.tmp_3.arg0 = r0; + s.callLocIdx = 244; s.pc = 1; return s.tmp_3; case 1: - case 2: - r0 = (s.arg2 > 10); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.arg2 = (10); + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", s.tmp_2); + s.msg___14148 = (s.tmp_0); + s.tmp_0 = shieldhelpers_ScreenState_sendMessage__P5124_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = JSON_stringify__P2807_mk(s); + s.tmp_1.arg0 = s.msg___14148; + s.tmp_1.arg1 = null; + s.tmp_1.arg2 = 0; + s.callLocIdx = 245; s.pc = 3; return s.tmp_1; case 3: - case 4: - s.tmp_0 = r0 = s.ss___12652; - r0 = pxsim_String_.mkEmpty(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["indentStep"] = (s.tmp_1); - s.tmp_0 = r0 = s.ss___12652; - r0 = pxsim_String_.mkEmpty(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["currIndent"] = (s.tmp_1); - r0 = (s.ss___12652).fields["indent"] = (s.arg2); - case 5: - s.tmp_0 = r0 = s.arg2; - r0 = (s.tmp_0 - 1); - s.arg2 = (r0); - r0 = (s.tmp_0 > 0); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 6; continue; } - s.tmp_2 = r0 = s.ss___12652; - r0 = s.tmp_2.fields["indentStep"]; - s.tmp_5 = r0; - if ((s.tmp_5) && (s.tmp_5).vtable) { - setupResume(s, 7); - pxsim_String__stringConv(s.tmp_5); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_5) + ""; } - case 7: r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_4, " "); - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["indentStep"] = (s.tmp_3); - { step = 5; continue; } - case 6: - s.tmp_0 = JSON_Stringifier_go__P4926_mk(s); - s.tmp_0.arg0 = s.ss___12652; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 115; s.pc = 8; return s.tmp_0; - case 8: + s.tmp_0.arg1 = r0; + s.callLocIdx = 246; s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -JSON_stringify__P2807.info = {"start":8773,"length":414,"line":288,"column":4,"endLine":300,"endColumn":5,"fileName":"pxt_modules/core/json.ts","functionName":"stringify","argumentNames":["value","replacer","indent"]} +shieldhelpers_ScreenState_showImage__P5128.info = {"start":2540,"length":319,"line":88,"column":8,"endLine":96,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"showImage","argumentNames":["this","img"]} -function JSON_stringify__P2807_mk(s) { +function shieldhelpers_ScreenState_showImage__P5128_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_stringify__P2807, depth: s.depth + 1, + parent: s, fn: shieldhelpers_ScreenState_showImage__P5128, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - ss___12652: undefined, + msg___14148: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function JSON_Stringifier_go__P4926(s) { +function helpers_bufferToBase64__P2783(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -26793,573 +30987,258 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.t___12693 = undefined; - s.arr___12717 = undefined; - s.r___12723 = undefined; - s.i___12740 = undefined; - s.keys___12804 = undefined; - s.r___12811 = undefined; - s.i___12828 = undefined; - s.k___12834 = undefined; + s.len___14159 = undefined; + s.r___14162 = undefined; + s.i___14163 = undefined; + s.x0___14168 = undefined; + s.x1___14202 = undefined; + s.x2___14242 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Stringifier__C4924_VT)) failedCast(r0, JSON_Stringifier__C4924_VT); - r0 = pxsim_pxtcore.typeOf(s.arg1); - s.t___12693 = (r0); - r0 = (s.t___12693 == "string"); + r0 = pxsim.BufferMethods.length(s.arg0); + s.len___14159 = (r0); + r0 = pxsim_String_.mkEmpty(); + s.r___14162 = (r0); + s.i___14163 = (0); + case 1: + r0 = (s.i___14163 < s.len___14159); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = JSON_Stringifier_doString__P4925_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.arg1; - s.callLocIdx = 109; s.pc = 38; return s.tmp_1; - case 38: - r0 = s.retval; - { step = 37; continue; } - { step = 36; continue; } - case 1: - r0 = (s.t___12693 == "boolean"); - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (!r0) { step = 2; continue; } - r0 = s.tmp_2; - { step = 3; continue; } - case 2: - r0 = (s.t___12693 == "number"); - case 3: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (!r0) { step = 4; continue; } - r0 = s.tmp_3; - { step = 5; continue; } - case 4: - r0 = (s.arg1 == null); - case 5: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); if (!r0) { step = 6; continue; } - r0 = pxsim_String_.mkEmpty(); - s.tmp_5 = r0; - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 39); - pxsim_String__stringConv(s.arg1); + r0 = pxsim.BufferMethods.getByte(s.arg0, s.i___14163); + s.x0___14168 = (r0); + if ((s.r___14162) && (s.r___14162).vtable) { + setupResume(s, 7); + pxsim_String__stringConv(s.r___14162); checkResumeConsumed(); return; - } else { s.retval = (s.arg1) + ""; } - case 39: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_String__concat(s.tmp_5, s.tmp_6); - { step = 37; continue; } - { step = 35; continue; } - case 6: - r0 = pxsim_Array_.isArray(s.arg1); - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 19; continue; } - s.arr___12717 = (s.arg1); - r0 = pxsim_Array__length(s.arr___12717); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = "[]"; - { step = 37; continue; } - { step = 18; continue; } + } else { s.retval = (s.r___14162) + ""; } case 7: - s.r___12723 = ("["); - r0 = s.arg0.fields["indent"]; + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.tmp_1 = r0 = s.arg0; - r0 = s.tmp_1.fields["currIndent"]; + s.tmp_3 = r0 = globals._b64___2782; + r0 = (s.x0___14168 >> 2); s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 40); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 40: - r0 = s.retval; - s.tmp_3 = r0; - r0 = s.arg0.fields["indentStep"]; - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 41); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 41: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_5); + r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); s.tmp_2 = r0; - r0 = (s.tmp_1).fields["currIndent"] = (s.tmp_2); - if ((s.r___12723) && (s.r___12723).vtable) { - setupResume(s, 42); - pxsim_String__stringConv(s.r___12723); + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 8); + pxsim_String__stringConv(s.tmp_2); checkResumeConsumed(); return; - } else { s.retval = (s.r___12723) + ""; } - case 42: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String__concat(s.tmp_0, "\n"); - s.r___12723 = (r0); + } else { s.retval = (s.tmp_2) + ""; } case 8: - case 9: - s.i___12740 = (0); - case 10: - s.tmp_1 = r0 = s.i___12740; - r0 = pxsim_Array__length(s.arr___12717); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___14162 = (r0); + r0 = (s.i___14163 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_1 >= s.len___14159); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - if ((s.r___12723) && (s.r___12723).vtable) { - setupResume(s, 43); - pxsim_String__stringConv(s.r___12723); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12723) + ""; } - case 43: - r0 = s.retval; - s.tmp_3 = r0; - r0 = s.arg0.fields["currIndent"]; - s.tmp_7 = r0; - if ((s.tmp_7) && (s.tmp_7).vtable) { - setupResume(s, 44); - pxsim_String__stringConv(s.tmp_7); + if (!r0) { step = 2; continue; } + if ((s.r___14162) && (s.r___14162).vtable) { + setupResume(s, 9); + pxsim_String__stringConv(s.r___14162); checkResumeConsumed(); return; - } else { s.retval = (s.tmp_7) + ""; } - case 44: - r0 = s.retval; - s.tmp_6 = r0; - s.tmp_10 = JSON_Stringifier_go__P4926_mk(s); - s.tmp_10.arg0 = s.arg0; - r0 = pxsim_Array__getAt(s.arr___12717, s.i___12740); - s.tmp_10.arg1 = r0; - s.callLocIdx = 110; s.pc = 45; return s.tmp_10; - case 45: + } else { s.retval = (s.r___14162) + ""; } + case 9: r0 = s.retval; + s.tmp_2 = r0; + s.tmp_7 = r0 = globals._b64___2782; + r0 = (s.x0___14168 & 3); s.tmp_9 = r0; - if ((s.tmp_9) && (s.tmp_9).vtable) { - setupResume(s, 46); - pxsim_String__stringConv(s.tmp_9); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_9) + ""; } - case 46: - r0 = s.retval; + r0 = (s.tmp_9 << 4); s.tmp_8 = r0; - r0 = pxsim_String__concat(s.tmp_6, s.tmp_8); - s.tmp_5 = r0; - if ((s.tmp_5) && (s.tmp_5).vtable) { - setupResume(s, 47); - pxsim_String__stringConv(s.tmp_5); + r0 = pxsim_String_.charAt(s.tmp_7, s.tmp_8); + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 10); + pxsim_String__stringConv(s.tmp_6); checkResumeConsumed(); return; - } else { s.retval = (s.tmp_5) + ""; } - case 47: + } else { s.retval = (s.tmp_6) + ""; } + case 10: r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat(s.tmp_5, "=="); s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); - s.r___12723 = (r0); - s.tmp_1 = r0 = s.i___12740; - r0 = pxsim_Array__length(s.arr___12717); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 != s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 11; continue; } - if ((s.r___12723) && (s.r___12723).vtable) { - setupResume(s, 48); - pxsim_String__stringConv(s.r___12723); + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 11); + pxsim_String__stringConv(s.tmp_4); checkResumeConsumed(); return; - } else { s.retval = (s.r___12723) + ""; } - case 48: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_4, ","); - s.r___12723 = (r0); + } else { s.retval = (s.tmp_4) + ""; } case 11: - case 12: - r0 = s.arg0.fields["indent"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - if ((s.r___12723) && (s.r___12723).vtable) { - setupResume(s, 49); - pxsim_String__stringConv(s.r___12723); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12723) + ""; } - case 49: r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat(s.tmp_2, s.tmp_3); + s.r___14162 = (r0); + { step = 5; continue; } + case 2: + s.tmp_0 = r0 = s.arg0; + r0 = (s.i___14163 + 1); s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_1, "\n"); - s.r___12723 = (r0); - case 13: - case 14: - r0 = (s.i___12740 + 1); - s.i___12740 = (r0); - { step = 10; continue; } - case 15: - r0 = s.arg0.fields["indent"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 16; continue; } - s.tmp_1 = r0 = s.arg0; - s.tmp_3 = helpers_stringSlice__P2148_mk(s); - r0 = s.arg0.fields["currIndent"]; - s.tmp_3.arg0 = r0; - r0 = s.arg0.fields["indent"]; - s.tmp_3.arg1 = r0; - s.tmp_3.arg2 = undefined; - s.callLocIdx = 111; s.pc = 50; return s.tmp_3; - case 50: - r0 = s.retval; - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["currIndent"] = (s.tmp_2); - case 16: - case 17: - if ((s.r___12723) && (s.r___12723).vtable) { - setupResume(s, 51); - pxsim_String__stringConv(s.r___12723); + r0 = pxsim.BufferMethods.getByte(s.tmp_0, s.tmp_1); + s.x1___14202 = (r0); + if ((s.r___14162) && (s.r___14162).vtable) { + setupResume(s, 12); + pxsim_String__stringConv(s.r___14162); checkResumeConsumed(); return; - } else { s.retval = (s.r___12723) + ""; } - case 51: + } else { s.retval = (s.r___14162) + ""; } + case 12: r0 = s.retval; s.tmp_0 = r0; - r0 = s.arg0.fields["currIndent"]; + s.tmp_3 = r0 = globals._b64___2782; + r0 = (s.x0___14168 & 3); + s.tmp_6 = r0; + r0 = (s.tmp_6 << 4); + s.tmp_5 = r0; + r0 = (s.x1___14202 >> 4); + s.tmp_7 = r0; + r0 = (s.tmp_5 | s.tmp_7); s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 52); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 52: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_3, "]"); + r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); s.tmp_2 = r0; if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 53); + setupResume(s, 13); pxsim_String__stringConv(s.tmp_2); checkResumeConsumed(); return; } else { s.retval = (s.tmp_2) + ""; } - case 53: + case 13: r0 = s.retval; s.tmp_1 = r0; r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___12723 = (r0); - r0 = s.r___12723; - { step = 37; continue; } - case 18: - { step = 34; continue; } - case 19: - r0 = pxsim_pxtrt.keysOf(s.arg1); - s.keys___12804 = (r0); - r0 = pxsim_Array__length(s.keys___12804); + s.r___14162 = (r0); + r0 = (s.i___14163 + 2); s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 20; continue; } - r0 = "{}"; - { step = 37; continue; } - case 20: - case 21: - s.r___12811 = ("{"); - r0 = s.arg0.fields["indent"]; + r0 = (s.tmp_1 >= s.len___14159); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 22; continue; } - s.tmp_1 = r0 = s.arg0; - r0 = s.tmp_1.fields["currIndent"]; - s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 54); - pxsim_String__stringConv(s.tmp_4); + if (!r0) { step = 3; continue; } + if ((s.r___14162) && (s.r___14162).vtable) { + setupResume(s, 14); + pxsim_String__stringConv(s.r___14162); checkResumeConsumed(); return; - } else { s.retval = (s.tmp_4) + ""; } - case 54: + } else { s.retval = (s.r___14162) + ""; } + case 14: r0 = s.retval; - s.tmp_3 = r0; - r0 = s.arg0.fields["indentStep"]; + s.tmp_2 = r0; + s.tmp_7 = r0 = globals._b64___2782; + r0 = (s.x1___14202 & 15); + s.tmp_9 = r0; + r0 = (s.tmp_9 << 2); + s.tmp_8 = r0; + r0 = pxsim_String_.charAt(s.tmp_7, s.tmp_8); s.tmp_6 = r0; if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 55); + setupResume(s, 15); pxsim_String__stringConv(s.tmp_6); checkResumeConsumed(); return; } else { s.retval = (s.tmp_6) + ""; } - case 55: + case 15: r0 = s.retval; s.tmp_5 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_5); - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["currIndent"] = (s.tmp_2); - if ((s.r___12811) && (s.r___12811).vtable) { - setupResume(s, 56); - pxsim_String__stringConv(s.r___12811); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12811) + ""; } - case 56: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String__concat(s.tmp_0, "\n"); - s.r___12811 = (r0); - case 22: - case 23: - s.i___12828 = (0); - case 24: - s.tmp_1 = r0 = s.i___12828; - r0 = pxsim_Array__length(s.keys___12804); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 31; continue; } - r0 = pxsim_Array__getAt(s.keys___12804, s.i___12828); - s.k___12834 = (r0); - if ((s.r___12811) && (s.r___12811).vtable) { - setupResume(s, 57); - pxsim_String__stringConv(s.r___12811); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12811) + ""; } - case 57: - r0 = s.retval; - s.tmp_0 = r0; - r0 = s.arg0.fields["currIndent"]; + r0 = pxsim_String__concat(s.tmp_5, "="); s.tmp_4 = r0; if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 58); + setupResume(s, 16); pxsim_String__stringConv(s.tmp_4); checkResumeConsumed(); return; } else { s.retval = (s.tmp_4) + ""; } - case 58: + case 16: r0 = s.retval; s.tmp_3 = r0; - s.tmp_7 = JSON_Stringifier_doString__P4925_mk(s); - s.tmp_7.arg0 = s.arg0; - s.tmp_7.arg1 = s.k___12834; - s.callLocIdx = 112; s.pc = 59; return s.tmp_7; - case 59: - r0 = s.retval; - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 60); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 60: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_5); - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 61); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 61: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___12811 = (r0); - r0 = s.arg0.fields["indent"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 25; continue; } - if ((s.r___12811) && (s.r___12811).vtable) { - setupResume(s, 62); - pxsim_String__stringConv(s.r___12811); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12811) + ""; } - case 62: - r0 = s.retval; + r0 = pxsim_String__concat(s.tmp_2, s.tmp_3); + s.r___14162 = (r0); + { step = 4; continue; } + case 3: + s.tmp_0 = r0 = s.arg0; + r0 = (s.i___14163 + 2); s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_1, ": "); - s.r___12811 = (r0); - { step = 26; continue; } - case 25: - if ((s.r___12811) && (s.r___12811).vtable) { - setupResume(s, 63); - pxsim_String__stringConv(s.r___12811); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12811) + ""; } - case 63: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String__concat(s.tmp_0, ":"); - s.r___12811 = (r0); - case 26: - if ((s.r___12811) && (s.r___12811).vtable) { - setupResume(s, 64); - pxsim_String__stringConv(s.r___12811); + r0 = pxsim.BufferMethods.getByte(s.tmp_0, s.tmp_1); + s.x2___14242 = (r0); + if ((s.r___14162) && (s.r___14162).vtable) { + setupResume(s, 17); + pxsim_String__stringConv(s.r___14162); checkResumeConsumed(); return; - } else { s.retval = (s.r___12811) + ""; } - case 64: + } else { s.retval = (s.r___14162) + ""; } + case 17: r0 = s.retval; s.tmp_0 = r0; - s.tmp_3 = JSON_Stringifier_go__P4926_mk(s); - s.tmp_3.arg0 = s.arg0; - r0 = pxsim_pxtrt.mapGetGeneric(s.arg1, s.k___12834); - s.tmp_3.arg1 = r0; - s.callLocIdx = 113; s.pc = 65; return s.tmp_3; - case 65: - r0 = s.retval; + s.tmp_3 = r0 = globals._b64___2782; + r0 = (s.x1___14202 & 15); + s.tmp_6 = r0; + r0 = (s.tmp_6 << 2); + s.tmp_5 = r0; + r0 = (s.x2___14242 >> 6); + s.tmp_7 = r0; + r0 = (s.tmp_5 | s.tmp_7); + s.tmp_4 = r0; + r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); s.tmp_2 = r0; if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 66); + setupResume(s, 18); pxsim_String__stringConv(s.tmp_2); checkResumeConsumed(); return; } else { s.retval = (s.tmp_2) + ""; } - case 66: + case 18: r0 = s.retval; s.tmp_1 = r0; r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___12811 = (r0); - s.tmp_1 = r0 = s.i___12828; - r0 = pxsim_Array__length(s.keys___12804); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 != s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 27; continue; } - if ((s.r___12811) && (s.r___12811).vtable) { - setupResume(s, 67); - pxsim_String__stringConv(s.r___12811); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12811) + ""; } - case 67: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_4, ","); - s.r___12811 = (r0); - case 27: - case 28: - r0 = s.arg0.fields["indent"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 29; continue; } - if ((s.r___12811) && (s.r___12811).vtable) { - setupResume(s, 68); - pxsim_String__stringConv(s.r___12811); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12811) + ""; } - case 68: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_1, "\n"); - s.r___12811 = (r0); - case 29: - case 30: - r0 = (s.i___12828 + 1); - s.i___12828 = (r0); - { step = 24; continue; } - case 31: - r0 = s.arg0.fields["indent"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 32; continue; } - s.tmp_1 = r0 = s.arg0; - s.tmp_3 = helpers_stringSlice__P2148_mk(s); - r0 = s.arg0.fields["currIndent"]; - s.tmp_3.arg0 = r0; - r0 = s.arg0.fields["indent"]; - s.tmp_3.arg1 = r0; - s.tmp_3.arg2 = undefined; - s.callLocIdx = 114; s.pc = 69; return s.tmp_3; - case 69: - r0 = s.retval; - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["currIndent"] = (s.tmp_2); - case 32: - case 33: - if ((s.r___12811) && (s.r___12811).vtable) { - setupResume(s, 70); - pxsim_String__stringConv(s.r___12811); + s.r___14162 = (r0); + if ((s.r___14162) && (s.r___14162).vtable) { + setupResume(s, 19); + pxsim_String__stringConv(s.r___14162); checkResumeConsumed(); return; - } else { s.retval = (s.r___12811) + ""; } - case 70: + } else { s.retval = (s.r___14162) + ""; } + case 19: r0 = s.retval; s.tmp_0 = r0; - r0 = s.arg0.fields["currIndent"]; + s.tmp_3 = r0 = globals._b64___2782; + r0 = (s.x2___14242 & 63); s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 71); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 71: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_3, "}"); + r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); s.tmp_2 = r0; if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 72); + setupResume(s, 20); pxsim_String__stringConv(s.tmp_2); checkResumeConsumed(); return; } else { s.retval = (s.tmp_2) + ""; } - case 72: + case 20: r0 = s.retval; s.tmp_1 = r0; r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___12811 = (r0); - r0 = s.r___12811; - { step = 37; continue; } - case 34: - case 35: - case 36: - r0 = undefined; - case 37: + s.r___14162 = (r0); + case 4: + case 5: + r0 = (s.i___14163 + 3); + s.i___14163 = (r0); + { step = 1; continue; } + case 6: + r0 = s.r___14162; return leave(s, r0) default: oops() } } } -JSON_Stringifier_go__P4926.info = {"start":6319,"length":2076,"line":223,"column":8,"endLine":279,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"go","argumentNames":["this","v"]} +helpers_bufferToBase64__P2783.info = {"start":5805,"length":708,"line":196,"column":4,"endLine":217,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"bufferToBase64","argumentNames":["buf"]} -function JSON_Stringifier_go__P4926_mk(s) { +function helpers_bufferToBase64__P2783_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Stringifier_go__P4926, depth: s.depth + 1, + parent: s, fn: helpers_bufferToBase64__P2783, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -27371,24 +31250,92 @@ function JSON_Stringifier_go__P4926_mk(s) { tmp_7: undefined, tmp_8: undefined, tmp_9: undefined, - tmp_10: undefined, - t___12693: undefined, - arr___12717: undefined, - r___12723: undefined, - i___12740: undefined, - keys___12804: undefined, - r___12811: undefined, - i___12828: undefined, - k___12834: undefined, + len___14159: undefined, + r___14162: undefined, + i___14163: undefined, + x0___14168: undefined, + x1___14202: undefined, + x2___14242: undefined, + arg0: undefined, +} } + + + + +function control___screen_setupUpdate__P3279(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + globals.__updated___5084 = (true); + globals.__update___5082 = (s.arg0); + s.tmp_0 = lambda_1_mk(s); + s.tmp_0.argL = s.arg0; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 229; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +control___screen_setupUpdate__P3279.info = {"start":280,"length":125,"line":15,"column":4,"endLine":19,"endColumn":5,"fileName":"pxt_modules/display-shield/frame.ts","functionName":"setupUpdate","argumentNames":["update"]} + +function control___screen_setupUpdate__P3279_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: control___screen_setupUpdate__P3279, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, - arg1: undefined, } } +function shieldhelpers_displayHeight__P3290(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = pxsim_pxtcore.displayHeight(); + globals.__height___5138 = (r0); + s.tmp_0 = shieldhelpers_simDisplayHeight__P5139_mk(s); + s.callLocIdx = 260; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = globals.__height___5138; + return leave(s, r0) + default: oops() +} } } +shieldhelpers_displayHeight__P3290.info = {"start":4497,"length":149,"line":166,"column":4,"endLine":170,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"displayHeight","argumentNames":[]} + +function shieldhelpers_displayHeight__P3290_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: shieldhelpers_displayHeight__P3290, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + -function JSON_Stringifier_doString__P4925(s) { +function shieldhelpers_simDisplayHeight__P5139(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -27398,134 +31345,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___12920 = undefined; - s.i___12921 = undefined; - s.c___12927 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Stringifier__C4924_VT)) failedCast(r0, JSON_Stringifier__C4924_VT); - s.r___12920 = ("\""); - s.i___12921 = (0); - case 1: - s.tmp_1 = r0 = s.i___12921; - r0 = pxsim_String_.length(s.arg1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - r0 = pxsim_String_.charAt(s.arg1, s.i___12921); - s.c___12927 = (r0); - r0 = (s.c___12927 == "\n"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.c___12927 = ("\\n"); - { step = 13; continue; } - case 2: - r0 = (s.c___12927 == "\r"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.c___12927 = ("\\r"); - { step = 12; continue; } + globals.__height___5138 = (120); + s.tmp_0 = shieldhelpers_getScreenState__P5133_mk(s); + s.callLocIdx = 258; s.pc = 3; return s.tmp_0; case 3: - r0 = (s.c___12927 == "\t"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.c___12927 = ("\\t"); - { step = 11; continue; } - case 4: - r0 = (s.c___12927 == "\b"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.c___12927 = ("\\b"); - { step = 10; continue; } - case 5: - r0 = (s.c___12927 == "\\"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.c___12927 = ("\\\\"); - { step = 9; continue; } - case 6: - r0 = (s.c___12927 == "\""); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.c___12927 = ("\\\""); - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - if ((s.r___12920) && (s.r___12920).vtable) { - setupResume(s, 15); - pxsim_String__stringConv(s.r___12920); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12920) + ""; } - case 15: - r0 = s.retval; - s.tmp_0 = r0; - if ((s.c___12927) && (s.c___12927).vtable) { - setupResume(s, 16); - pxsim_String__stringConv(s.c___12927); - checkResumeConsumed(); - return; - } else { s.retval = (s.c___12927) + ""; } - case 16: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___12920 = (r0); - r0 = (s.i___12921 + 1); - s.i___12921 = (r0); - { step = 1; continue; } - case 14: - if ((s.r___12920) && (s.r___12920).vtable) { - setupResume(s, 17); - pxsim_String__stringConv(s.r___12920); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___12920) + ""; } - case 17: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String__concat(s.tmp_0, "\""); + r0 = pxsim_numops_toBoolDecr(globals._screenState___5131); + if (!r0) { step = 1; continue; } + r0 = 120; + globals.__height___5138 = (r0); + case 1: + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -JSON_Stringifier_doString__P4925.info = {"start":5837,"length":472,"line":208,"column":8,"endLine":221,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doString","argumentNames":["this","s"]} +shieldhelpers_simDisplayHeight__P5139.info = {"start":4324,"length":163,"line":159,"column":4,"endLine":164,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"simDisplayHeight","argumentNames":[]} -function JSON_Stringifier_doString__P4925_mk(s) { +function shieldhelpers_simDisplayHeight__P5139_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Stringifier_doString__P4925, depth: s.depth + 1, + parent: s, fn: shieldhelpers_simDisplayHeight__P5139, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - r___12920: undefined, - i___12921: undefined, - c___12927: undefined, - arg0: undefined, - arg1: undefined, } } - -function shieldhelpers_ScreenState_sendMessage__P5135(s) { +function shieldhelpers_ScreenState_displayHeight__P5121(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -27537,35 +31385,28 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, shieldhelpers_ScreenState__C5131_VT)) failedCast(r0, shieldhelpers_ScreenState__C5131_VT); - r0 = pxsim.control.createBufferFromUTF8(s.arg1); - s.tmp_0 = r0; - r0 = pxsim_pxtcore.sendMessage("microbit-apps/display-shield", s.tmp_0, false); - r0 = undefined; + if (!checkSubtype(r0, shieldhelpers_ScreenState__C5120_VT)) failedCast(r0, shieldhelpers_ScreenState__C5120_VT); + r0 = 120; return leave(s, r0) default: oops() } } } -shieldhelpers_ScreenState_sendMessage__P5135.info = {"start":1528,"length":143,"line":56,"column":8,"endLine":58,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"sendMessage","argumentNames":["this","msg"]} +shieldhelpers_ScreenState_displayHeight__P5121.info = {"start":1309,"length":59,"line":44,"column":8,"endLine":46,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"displayHeight","argumentNames":["this"]} -function shieldhelpers_ScreenState_sendMessage__P5135_mk(s) { +function shieldhelpers_ScreenState_displayHeight__P5121_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_ScreenState_sendMessage__P5135, depth: s.depth + 1, + parent: s, fn: shieldhelpers_ScreenState_displayHeight__P5121, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function shieldhelpers_handleShieldMessage__P5158(s) { +function shieldhelpers_displayWidth__P3291(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -27575,230 +31416,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.s___12970 = undefined; - s.msg___12974 = undefined; - s.button___12995 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim.BufferMethods.toString(s.arg0); - s.s___12970 = (r0); - s.tmp_0 = JSON_parse__P2808_mk(s); - s.tmp_0.arg0 = s.s___12970; - s.callLocIdx = 271; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - s.msg___12974 = (r0); - r0 = pxsim_numops_toBoolDecr(s.msg___12974); - if (!r0) { step = 11; continue; } - s.tmp_0 = console_log__P2528_mk(s); - s.tmp_1 = if_type_1_mk(s); - s.tmp_1.arg0 = s.msg___12974; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "type"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["type"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["type"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 272; s.pc = 15; return s.tmp_1; } - } - case 15: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.callLocIdx = 273; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - s.tmp_0 = shieldhelpers_getScreenState__P5144_mk(s); - s.callLocIdx = 274; s.pc = 16; return s.tmp_0; - case 16: - r0 = s.retval; - r0 = (globals._screenState___5142).fields["gotSimMessage"] = (true); - setupResume(s, 17); - pxsim.basic.pause(0); - checkResumeConsumed(); - return; - case 17: - r0 = s.retval; - s.tmp_2 = if_type_1_mk(s); - s.tmp_2.arg0 = s.msg___12974; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "type"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["type"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["type"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 275; s.pc = 18; return s.tmp_2; } - } - case 18: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 === "button-down"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_pxtcore.displayWidth(); + globals.__width___5141 = (r0); + s.tmp_0 = shieldhelpers_simDisplayWidth__P5142_mk(s); + s.callLocIdx = 263; s.pc = 1; return s.tmp_0; case 1: - s.tmp_4 = if_type_1_mk(s); - s.tmp_4.arg0 = s.msg___12974; - if (!s.tmp_4.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "type"); - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["type"]; - if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["type"]; } - else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 276; s.pc = 19; return s.tmp_4; } - } - case 19: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_3 === "button-up"); - case 2: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 5; continue; } - s.tmp_6 = shieldhelpers_getButton__P5157_mk(s); - s.tmp_7 = if_buttonId_1_mk(s); - s.tmp_7.arg0 = s.msg___12974; - if (!s.tmp_7.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "buttonId"); - } else { - s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["buttonId"]; - if (s.tmp_7.fn == null) { s.retval = s.tmp_7.arg0.fields["buttonId"]; } - else if (!s.tmp_7.fn.isGetter) { s.retval = bind(s.tmp_7); } - else { s.callLocIdx = 277; s.pc = 21; return s.tmp_7; } - } - case 21: - r0 = s.retval; - s.tmp_6.arg0 = r0; - s.callLocIdx = 278; s.pc = 20; return s.tmp_6; - case 20: - r0 = s.retval; - s.button___12995 = (r0); - r0 = pxsim_numops_toBoolDecr(s.button___12995); - if (!r0) { step = 3; continue; } - s.tmp_0 = controller_Button_setPressed__P3260_mk(s); - s.tmp_0.arg0 = s.button___12995; - s.tmp_2 = if_type_1_mk(s); - s.tmp_2.arg0 = s.msg___12974; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "type"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["type"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["type"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 279; s.pc = 23; return s.tmp_2; } - } - case 23: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 === "button-down"); - s.tmp_0.arg1 = r0; - s.callLocIdx = 280; s.pc = 22; return s.tmp_0; - case 22: - r0 = s.retval; - case 3: - case 4: - { step = 10; continue; } - case 5: - s.tmp_2 = if_type_1_mk(s); - s.tmp_2.arg0 = s.msg___12974; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "type"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["type"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["type"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 281; s.pc = 24; return s.tmp_2; } - } - case 24: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 === "display-on"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_3 = shieldhelpers_getScreenState__P5144_mk(s); - s.callLocIdx = 282; s.pc = 25; return s.tmp_3; - case 25: - r0 = s.retval; - r0 = (globals._screenState___5142).fields["displayOn"] = (true); - setupResume(s, 26); - pxsim.basic.pause(0); - checkResumeConsumed(); - return; - case 26: - r0 = s.retval; - r0 = pxsim.control.raiseEvent(3043, 0, 1); - { step = 9; continue; } - case 6: - s.tmp_2 = if_type_1_mk(s); - s.tmp_2.arg0 = s.msg___12974; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "type"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["type"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["type"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 283; s.pc = 27; return s.tmp_2; } - } - case 27: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 === "display-off"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.tmp_3 = shieldhelpers_getScreenState__P5144_mk(s); - s.callLocIdx = 284; s.pc = 28; return s.tmp_3; - case 28: - r0 = s.retval; - r0 = (globals._screenState___5142).fields["displayOn"] = (false); - setupResume(s, 29); - pxsim.basic.pause(0); - checkResumeConsumed(); - return; - case 29: r0 = s.retval; - r0 = pxsim.control.raiseEvent(3042, 0, 1); - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - r0 = undefined; + r0 = globals.__width___5141; return leave(s, r0) default: oops() } } } -shieldhelpers_handleShieldMessage__P5158.info = {"start":6131,"length":1034,"line":225,"column":4,"endLine":250,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"handleShieldMessage","argumentNames":["b"]} +shieldhelpers_displayWidth__P3291.info = {"start":4863,"length":144,"line":182,"column":4,"endLine":186,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"displayWidth","argumentNames":[]} -function shieldhelpers_handleShieldMessage__P5158_mk(s) { +function shieldhelpers_displayWidth__P3291_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_handleShieldMessage__P5158, depth: s.depth + 1, + parent: s, fn: shieldhelpers_displayWidth__P3291, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - s___12970: undefined, - msg___12974: undefined, - button___12995: undefined, - arg0: undefined, } } - -function shieldhelpers_getButton__P5157(s) { +function shieldhelpers_simDisplayWidth__P5142(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -27808,70 +31449,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq("left", s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq("right", s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq("up", s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq("down", s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq("a", s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq("b", s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq("menu", s.tmp_0); - if (r0) { step = 7; continue; } - r0 = s.tmp_0; - { step = 8; continue; } + globals.__width___5141 = (160); + s.tmp_0 = shieldhelpers_getScreenState__P5133_mk(s); + s.callLocIdx = 261; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(globals._screenState___5131); + if (!r0) { step = 1; continue; } + r0 = 160; + globals.__width___5141 = (r0); case 1: - r0 = globals.left___3268; - { step = 9; continue; } case 2: - r0 = globals.right___3270; - { step = 9; continue; } - case 3: - r0 = globals.up___3269; - { step = 9; continue; } - case 4: - r0 = globals.down___3271; - { step = 9; continue; } - case 5: - r0 = globals.A___3266; - { step = 9; continue; } - case 6: - r0 = globals.B___3267; - { step = 9; continue; } - case 7: - r0 = globals.menu___3272; - { step = 9; continue; } - case 8: - r0 = null; - case 9: + r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_getButton__P5157.info = {"start":5686,"length":439,"line":212,"column":4,"endLine":223,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"getButton","argumentNames":["id"]} +shieldhelpers_simDisplayWidth__P5142.info = {"start":4698,"length":159,"line":175,"column":4,"endLine":180,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"simDisplayWidth","argumentNames":[]} -function shieldhelpers_getButton__P5157_mk(s) { +function shieldhelpers_simDisplayWidth__P5142_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_getButton__P5157, depth: s.depth + 1, + parent: s, fn: shieldhelpers_simDisplayWidth__P5142, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, } } - -function JSON_parse__P2808(s) { +function shieldhelpers_ScreenState_displayWidth__P5122(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -27881,86 +31487,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.p___13050 = undefined; - s.r___13060 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(JSON_Parser__C4914_VT); - s.p___13050 = (r0); - r0 = (s.p___13050).fields["ptr"] = (0); - r0 = (s.p___13050).fields["s"] = (s.arg0); - s.tmp_0 = JSON_Parser_value__P4923_mk(s); - s.tmp_0.arg0 = s.p___13050; - s.callLocIdx = 116; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.r___13060 = (r0); - s.tmp_1 = JSON_Parser_skipWS__P4916_mk(s); - s.tmp_1.arg0 = s.p___13050; - s.callLocIdx = 117; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_2 = JSON_Parser_error__P4915_mk(s); - s.tmp_2.arg0 = s.p___13050; - s.tmp_2.arg1 = "excessive input"; - s.callLocIdx = 118; s.pc = 8; return s.tmp_2; - case 8: - r0 = s.retval; - case 1: - case 2: - r0 = s.p___13050.fields["errorMsg"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = s.p___13050.fields["errorMsg"]; - s.tmp_3 = r0; - if ((s.tmp_3) && (s.tmp_3).vtable) { - setupResume(s, 9); - pxsim_String__stringConv(s.tmp_3); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_3) + ""; } - case 9: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_String__concat("Invalid JSON: ", s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim.control.dmesg(s.tmp_1); - r0 = undefined; - { step = 5; continue; } - case 3: - case 4: - r0 = s.r___13060; - case 5: + r0 = s.arg0; + if (!checkSubtype(r0, shieldhelpers_ScreenState__C5120_VT)) failedCast(r0, shieldhelpers_ScreenState__C5120_VT); + r0 = 160; return leave(s, r0) default: oops() } } } -JSON_parse__P2808.info = {"start":9325,"length":347,"line":307,"column":4,"endLine":320,"endColumn":5,"fileName":"pxt_modules/core/json.ts","functionName":"parse","argumentNames":["s"]} +shieldhelpers_ScreenState_displayWidth__P5122.info = {"start":1378,"length":58,"line":48,"column":8,"endLine":50,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"displayWidth","argumentNames":["this"]} -function JSON_parse__P2808_mk(s) { +function shieldhelpers_ScreenState_displayWidth__P5122_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_parse__P2808, depth: s.depth + 1, + parent: s, fn: shieldhelpers_ScreenState_displayWidth__P5122, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - p___13050: undefined, - r___13060: undefined, arg0: undefined, } } - -function JSON_Parser_error__P4915(s) { +function shieldhelpers_setPalette__P3288(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -27972,92 +31522,33 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - r0 = s.arg0.fields["errorMsg"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = r0 = s.arg0; - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 3); - pxsim_String__stringConv(s.arg1); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg1) + ""; } - case 3: - r0 = s.retval; - s.tmp_7 = r0; - r0 = pxsim_String__concat(s.tmp_7, " at position "); - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 4); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 4: - r0 = s.retval; - s.tmp_5 = r0; - r0 = s.arg0.fields["ptr"]; - s.tmp_9 = r0; - if ((s.tmp_9) && (s.tmp_9).vtable) { - setupResume(s, 5); - pxsim_String__stringConv(s.tmp_9); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_9) + ""; } - case 5: - r0 = s.retval; - s.tmp_8 = r0; - r0 = pxsim_String__concat(s.tmp_5, s.tmp_8); - s.tmp_4 = r0; - r0 = (s.tmp_3).fields["errorMsg"] = (s.tmp_4); - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["s"]; - s.tmp_2 = r0; - r0 = pxsim_String_.length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + r0 = pxsim_pxtcore.setPalette(s.arg0); + s.tmp_0 = shieldhelpers_simSetPalette__P5135_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 257; s.pc = 1; return s.tmp_0; case 1: - case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -JSON_Parser_error__P4915.info = {"start":1009,"length":184,"line":43,"column":8,"endLine":48,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"error","argumentNames":["this","msg"]} +shieldhelpers_setPalette__P3288.info = {"start":3825,"length":108,"line":137,"column":4,"endLine":140,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"setPalette","argumentNames":["b"]} -function JSON_Parser_error__P4915_mk(s) { +function shieldhelpers_setPalette__P3288_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_error__P4915, depth: s.depth + 1, + parent: s, fn: shieldhelpers_setPalette__P3288, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, arg0: undefined, - arg1: undefined, } } - -function JSON_Parser_skipWS__P4916(s) { +function shieldhelpers_simSetPalette__P5135(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -28067,91 +31558,43 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.c___13105 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - case 1: - s.tmp_0 = JSON_Parser_nextChar__P4917_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 81; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - s.c___13105 = (r0); - r0 = (s.c___13105 == 32); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } - case 2: - r0 = (s.c___13105 == 10); + s.tmp_0 = shieldhelpers_getScreenState__P5133_mk(s); + s.callLocIdx = 255; s.pc = 3; return s.tmp_0; case 3: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = s.tmp_1; - { step = 5; continue; } + r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(globals._screenState___5131); + if (!r0) { step = 1; continue; } + s.tmp_0 = shieldhelpers_ScreenState_setPalette__P5127_mk(s); + s.tmp_0.arg0 = globals._screenState___5131; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 256; s.pc = 4; return s.tmp_0; case 4: - r0 = (s.c___13105 == 13); - case 5: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (!r0) { step = 6; continue; } - r0 = s.tmp_2; - { step = 7; continue; } - case 6: - r0 = (s.c___13105 == 9); - case 7: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 8; continue; } - { step = 9; continue; } - case 8: - s.tmp_4 = r0 = s.arg0; - r0 = s.tmp_4.fields["ptr"]; - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["ptr"] = (s.tmp_5); - r0 = s.c___13105; - { step = 10; continue; } - case 9: - { step = 1; continue; } + r0 = s.retval; + case 1: + case 2: r0 = undefined; - case 10: return leave(s, r0) default: oops() } } } -JSON_Parser_skipWS__P4916.info = {"start":1203,"length":301,"line":50,"column":8,"endLine":60,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"skipWS","argumentNames":["this"]} +shieldhelpers_simSetPalette__P5135.info = {"start":3686,"length":133,"line":131,"column":4,"endLine":135,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"simSetPalette","argumentNames":["b"]} -function JSON_Parser_skipWS__P4916_mk(s) { +function shieldhelpers_simSetPalette__P5135_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_skipWS__P4916, depth: s.depth + 1, + parent: s, fn: shieldhelpers_simSetPalette__P5135, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - c___13105: undefined, arg0: undefined, } } - -function JSON_Parser_nextChar__P4917(s) { +function shieldhelpers_ScreenState_setPalette__P5127(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -28161,62 +31604,65 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.msg___14319 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - r0 = s.arg0.fields["ptr"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["s"]; - s.tmp_3 = r0; - r0 = pxsim_String_.length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + if (!checkSubtype(r0, shieldhelpers_ScreenState__C5120_VT)) failedCast(r0, shieldhelpers_ScreenState__C5120_VT); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_4 = r0 = s.arg0; - r0 = s.tmp_4.fields["ptr"]; - s.tmp_6 = r0; - r0 = (s.tmp_6 + 1); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["ptr"] = (s.tmp_5); - r0 = s.arg0.fields["s"]; - s.tmp_7 = r0; - r0 = pxsim_String_.charCodeAt(s.tmp_7, s.tmp_6); - { step = 3; continue; } + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "set-palette"); + r0 = s.arg0.fields["runId"]; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "runId", s.tmp_1); + s.tmp_3 = helpers_bufferToBase64__P2783_mk(s); + s.tmp_3.arg0 = s.arg1; + s.callLocIdx = 241; s.pc = 1; return s.tmp_3; case 1: - case 2: - r0 = 0; + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", s.tmp_2); + s.msg___14319 = (s.tmp_0); + s.tmp_0 = shieldhelpers_ScreenState_sendMessage__P5124_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = JSON_stringify__P2807_mk(s); + s.tmp_1.arg0 = s.msg___14319; + s.tmp_1.arg1 = null; + s.tmp_1.arg2 = 0; + s.callLocIdx = 242; s.pc = 3; return s.tmp_1; case 3: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 243; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -JSON_Parser_nextChar__P4917.info = {"start":1514,"length":138,"line":62,"column":8,"endLine":66,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"nextChar","argumentNames":["this"]} +shieldhelpers_ScreenState_setPalette__P5127.info = {"start":2217,"length":313,"line":78,"column":8,"endLine":86,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"setPalette","argumentNames":["this","buf"]} -function JSON_Parser_nextChar__P4917_mk(s) { +function shieldhelpers_ScreenState_setPalette__P5127_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_nextChar__P4917, depth: s.depth + 1, + parent: s, fn: shieldhelpers_ScreenState_setPalette__P5127, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, + msg___14319: undefined, arg0: undefined, + arg1: undefined, } } - -function JSON_Parser_value__P4923(s) { +function control___screen_update__P3278(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -28226,212 +31672,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.c___13141 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - r0 = s.arg0.fields["errorMsg"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(globals.__update___5082); if (!r0) { step = 1; continue; } - r0 = null; - { step = 27; continue; } - case 1: - case 2: - s.tmp_1 = JSON_Parser_skipWS__P4916_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 100; s.pc = 28; return s.tmp_1; - case 28: - r0 = s.retval; - s.c___13141 = (r0); - r0 = (s.c___13141 == 123); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_1 = JSON_Parser_doObject__P4920_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 101; s.pc = 29; return s.tmp_1; - case 29: - r0 = s.retval; - { step = 27; continue; } - { step = 26; continue; } + s.tmp_0 = lambda_1_mk(s); + s.tmp_0.argL = globals.__update___5082; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 228; s.pc = 3; return s.tmp_0; case 3: - r0 = (s.c___13141 == 91); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 4; continue; } - s.tmp_3 = JSON_Parser_doArray__P4919_mk(s); - s.tmp_3.arg0 = s.arg0; - s.callLocIdx = 102; s.pc = 30; return s.tmp_3; - case 30: - r0 = s.retval; - { step = 27; continue; } - { step = 25; continue; } - case 4: - r0 = (48 <= s.c___13141); - s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (r0) { step = 5; continue; } - r0 = s.tmp_4; - { step = 6; continue; } - case 5: - r0 = (s.c___13141 <= 57); - case 6: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBool(s.tmp_5); - if (!r0) { step = 7; continue; } - r0 = s.tmp_5; - { step = 8; continue; } - case 7: - r0 = (s.c___13141 == 45); - case 8: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 9; continue; } - s.tmp_7 = JSON_Parser_doNumber__P4921_mk(s); - s.tmp_7.arg0 = s.arg0; - s.callLocIdx = 103; s.pc = 31; return s.tmp_7; - case 31: - r0 = s.retval; - { step = 27; continue; } - { step = 24; continue; } - case 9: - r0 = (s.c___13141 == 34); - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 10; continue; } - s.tmp_9 = JSON_Parser_doString__P4918_mk(s); - s.tmp_9.arg0 = s.arg0; - s.callLocIdx = 104; s.pc = 32; return s.tmp_9; - case 32: - r0 = s.retval; - { step = 27; continue; } - { step = 23; continue; } - case 10: - r0 = (s.c___13141 == 116); - s.tmp_10 = r0; - r0 = pxsim_numops_toBool(s.tmp_10); - if (r0) { step = 11; continue; } - r0 = s.tmp_10; - { step = 12; continue; } - case 11: - s.tmp_11 = JSON_Parser_checkKw__P4922_mk(s); - s.tmp_11.arg0 = s.arg0; - s.tmp_11.arg1 = "true"; - s.callLocIdx = 105; s.pc = 33; return s.tmp_11; - case 33: - r0 = s.retval; - case 12: - // jmp value (already in r0) - s.tmp_12 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_12); - if (!r0) { step = 13; continue; } - r0 = true; - { step = 27; continue; } - { step = 22; continue; } - case 13: - r0 = (s.c___13141 == 102); - s.tmp_13 = r0; - r0 = pxsim_numops_toBool(s.tmp_13); - if (r0) { step = 14; continue; } - r0 = s.tmp_13; - { step = 15; continue; } - case 14: - s.tmp_14 = JSON_Parser_checkKw__P4922_mk(s); - s.tmp_14.arg0 = s.arg0; - s.tmp_14.arg1 = "false"; - s.callLocIdx = 106; s.pc = 34; return s.tmp_14; - case 34: - r0 = s.retval; - case 15: - // jmp value (already in r0) - s.tmp_15 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_15); - if (!r0) { step = 16; continue; } - r0 = false; - { step = 27; continue; } - { step = 21; continue; } - case 16: - r0 = (s.c___13141 == 110); - s.tmp_16 = r0; - r0 = pxsim_numops_toBool(s.tmp_16); - if (r0) { step = 17; continue; } - r0 = s.tmp_16; - { step = 18; continue; } - case 17: - s.tmp_17 = JSON_Parser_checkKw__P4922_mk(s); - s.tmp_17.arg0 = s.arg0; - s.tmp_17.arg1 = "null"; - s.callLocIdx = 107; s.pc = 35; return s.tmp_17; - case 35: - r0 = s.retval; - case 18: - // jmp value (already in r0) - s.tmp_18 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_18); - if (!r0) { step = 19; continue; } - r0 = null; - { step = 27; continue; } - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - s.tmp_19 = JSON_Parser_error__P4915_mk(s); - s.tmp_19.arg0 = s.arg0; - s.tmp_19.arg1 = "unexpected token"; - s.callLocIdx = 108; s.pc = 36; return s.tmp_19; - case 36: r0 = s.retval; - r0 = null; - case 27: + case 1: + case 2: + globals.__updated___5084 = (true); + r0 = undefined; return leave(s, r0) default: oops() } } } -JSON_Parser_value__P4923.info = {"start":4976,"length":743,"line":178,"column":8,"endLine":200,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"value","argumentNames":["this"]} +control___screen_update__P3278.info = {"start":172,"length":102,"line":9,"column":4,"endLine":13,"endColumn":5,"fileName":"pxt_modules/display-shield/frame.ts","functionName":"update","argumentNames":[]} -function JSON_Parser_value__P4923_mk(s) { +function control___screen_update__P3278_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_value__P4923, depth: s.depth + 1, + parent: s, fn: control___screen_update__P3278, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - c___13141: undefined, - arg0: undefined, } } - -function JSON_Parser_checkKw__P4922(s) { +function pause__P2371(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -28443,72 +31712,45 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - s.tmp_2 = helpers_stringSlice__P2148_mk(s); - r0 = s.arg0.fields["s"]; - s.tmp_2.arg0 = r0; - r0 = s.arg0.fields["ptr"]; - s.tmp_2.arg1 = r0; - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = pxsim_String_.length(s.arg1); - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_2.arg2 = r0; - s.callLocIdx = 99; s.pc = 4; return s.tmp_2; - case 4: + s.tmp_1 = isNaN__P2122_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 31; s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 == s.arg1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_5 = r0 = s.arg0; - r0 = s.tmp_5.fields["ptr"]; - s.tmp_7 = r0; - r0 = pxsim_String_.length(s.arg1); - s.tmp_8 = r0; - r0 = (s.tmp_7 + s.tmp_8); - s.tmp_6 = r0; - r0 = (s.tmp_5).fields["ptr"] = (s.tmp_6); - r0 = true; - { step = 3; continue; } + s.arg0 = (20); case 1: case 2: - r0 = false; - case 3: + setupResume(s, 4); + pxsim.basic.pause(s.arg0); + checkResumeConsumed(); + return; + case 4: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -JSON_Parser_checkKw__P4922.info = {"start":4764,"length":202,"line":170,"column":8,"endLine":176,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"checkKw","argumentNames":["this","k"]} +pause__P2371.info = {"start":737,"length":84,"line":23,"column":0,"endLine":26,"endColumn":1,"fileName":"pxt_modules/core/basic.ts","functionName":"pause","argumentNames":["ms"]} -function JSON_Parser_checkKw__P4922_mk(s) { +function pause__P2371_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_checkKw__P4922, depth: s.depth + 1, + parent: s, fn: pause__P2371, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, arg0: undefined, - arg1: undefined, } } - -function JSON_Parser_doString__P4918(s) { +function control_runInParallel__P2441(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -28518,194 +31760,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___13201 = undefined; - s.c___13206 = undefined; - s.q___13220 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - r0 = pxsim_String_.mkEmpty(); - s.r___13201 = (r0); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); - case 1: - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); - r0 = s.arg0.fields["s"]; - s.tmp_3 = r0; - r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_2); - s.c___13206 = (r0); - r0 = (s.c___13206 == "\""); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = s.r___13201; - { step = 16; continue; } - case 2: - case 3: - r0 = (s.c___13206 == "\\"); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 14; continue; } - s.tmp_2 = r0 = s.arg0; - r0 = s.tmp_2.fields["ptr"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 + 1); - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["ptr"] = (s.tmp_3); - r0 = s.arg0.fields["s"]; - s.tmp_5 = r0; - r0 = pxsim_String_.charAt(s.tmp_5, s.tmp_4); - s.q___13220 = (r0); - r0 = (s.q___13220 == "b"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.q___13220 = ("\b"); - { step = 13; continue; } - case 4: - r0 = (s.q___13220 == "n"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.q___13220 = ("\n"); - { step = 12; continue; } - case 5: - r0 = (s.q___13220 == "r"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.q___13220 = ("\r"); - { step = 11; continue; } - case 6: - r0 = (s.q___13220 == "t"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.q___13220 = ("\t"); - { step = 10; continue; } - case 7: - r0 = (s.q___13220 == "u"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.tmp_2 = JSON_parseIntRadix__P2806_mk(s); - s.tmp_3 = helpers_stringSlice__P2148_mk(s); - r0 = s.arg0.fields["s"]; - s.tmp_3.arg0 = r0; - r0 = s.arg0.fields["ptr"]; - s.tmp_3.arg1 = r0; - r0 = s.arg0.fields["ptr"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 + 4); - s.tmp_3.arg2 = r0; - s.callLocIdx = 82; s.pc = 18; return s.tmp_3; - case 18: - r0 = s.retval; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = 16; - s.callLocIdx = 83; s.pc = 17; return s.tmp_2; - case 17: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String_.fromCharCode(s.tmp_1); - s.q___13220 = (r0); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 4); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - if ((s.r___13201) && (s.r___13201).vtable) { - setupResume(s, 19); - pxsim_String__stringConv(s.r___13201); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___13201) + ""; } - case 19: - r0 = s.retval; - s.tmp_0 = r0; - if ((s.q___13220) && (s.q___13220).vtable) { - setupResume(s, 20); - pxsim_String__stringConv(s.q___13220); - checkResumeConsumed(); - return; - } else { s.retval = (s.q___13220) + ""; } - case 20: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___13201 = (r0); - { step = 15; continue; } - case 14: - if ((s.r___13201) && (s.r___13201).vtable) { - setupResume(s, 21); - pxsim_String__stringConv(s.r___13201); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___13201) + ""; } - case 21: - r0 = s.retval; - s.tmp_0 = r0; - if ((s.c___13206) && (s.c___13206).vtable) { - setupResume(s, 22); - pxsim_String__stringConv(s.c___13206); - checkResumeConsumed(); - return; - } else { s.retval = (s.c___13206) + ""; } - case 22: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___13201 = (r0); - case 15: - { step = 1; continue; } + r0 = pxsim.control.inBackground(s.arg0); r0 = undefined; - case 16: return leave(s, r0) default: oops() } } } -JSON_Parser_doString__P4918.info = {"start":1662,"length":795,"line":68,"column":8,"endLine":90,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doString","argumentNames":["this"]} +control_runInParallel__P2441.info = {"start":195,"length":85,"line":10,"column":4,"endLine":12,"endColumn":5,"fileName":"pxt_modules/core/control.ts","functionName":"runInParallel","argumentNames":["a"]} -function JSON_Parser_doString__P4918_mk(s) { +function control_runInParallel__P2441_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_doString__P4918, depth: s.depth + 1, + parent: s, fn: control_runInParallel__P2441, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - r___13201: undefined, - c___13206: undefined, - q___13220: undefined, arg0: undefined, } } - -function JSON_parseIntRadix__P2806(s) { +function scene_consoleOverlay_listener__P5052(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -28715,197 +31792,139 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.m___13284 = undefined; - s.r___13285 = undefined; - s.i___13286 = undefined; - s.c___13292 = undefined; - s.v___13317 = undefined; + s.consoleColumns___14352 = undefined; + s.consoleLines___14365 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg1 == null); + r0 = pxsim_numops_toBoolDecr(globals.theScreen___3281); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = (s.arg1 == 10); + r0 = pxsim_numops_toBoolDecr(globals.consoleStrings___5040); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); case 2: // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); if (!r0) { step = 3; continue; } - r0 = pxsim_String_.toNumber(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_2 | 0); - { step = 36; continue; } + r0 = s.tmp_3; + { step = 4; continue; } case 3: + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_4 = r0; + r0 = pxsim_Boolean__bang(s.tmp_4); case 4: - s.m___13284 = (false); - s.r___13285 = (0); - s.i___13286 = (0); - case 5: - s.tmp_1 = r0 = s.i___13286; - r0 = pxsim_String_.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 33; continue; } - r0 = pxsim_String_.charCodeAt(s.arg0, s.i___13286); - s.c___13292 = (r0); - r0 = (s.c___13292 == 32); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = s.tmp_0; - { step = 7; continue; } - case 6: - r0 = (s.c___13292 == 10); - case 7: // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 8; continue; } - r0 = s.tmp_1; + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 5; continue; } { step = 9; continue; } - case 8: - r0 = (s.c___13292 == 13); - case 9: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (!r0) { step = 10; continue; } - r0 = s.tmp_2; - { step = 11; continue; } + case 5: + case 6: + r0 = pxsim.BitmapMethods.width(globals.theScreen___3281); + s.tmp_8 = r0; + r0 = (s.tmp_8 - 8); + s.tmp_7 = r0; + s.tmp_10 = if_charWidth_1_mk(s); + s.tmp_10.arg0 = globals.consoleFont___5049; + if (!s.tmp_10.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_10.arg0, "charWidth"); + } else { + s.tmp_10.fn = s.tmp_10.arg0.vtable.iface["charWidth"]; + if (s.tmp_10.fn == null) { s.retval = s.tmp_10.arg0.fields["charWidth"]; } + else if (!s.tmp_10.fn.isGetter) { s.retval = bind(s.tmp_10); } + else { s.callLocIdx = 188; s.pc = 10; return s.tmp_10; } + } case 10: - r0 = (s.c___13292 == 9); + r0 = s.retval; + s.tmp_9 = r0; + r0 = (s.tmp_7 / s.tmp_9); + s.tmp_6 = r0; + r0 = pxsim.Math_.floor(s.tmp_6); + s.consoleColumns___14352 = (r0); + r0 = pxsim.BitmapMethods.height(globals.theScreen___3281); + s.tmp_2 = r0; + s.tmp_5 = if_charHeight_1_mk(s); + s.tmp_5.arg0 = globals.consoleFont___5049; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "charHeight"); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["charHeight"]; + if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["charHeight"]; } + else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } + else { s.callLocIdx = 189; s.pc = 11; return s.tmp_5; } + } case 11: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 12; continue; } - { step = 32; continue; } - case 12: - case 13: - r0 = (s.r___13285 == 0); + r0 = s.retval; s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (r0) { step = 14; continue; } - r0 = s.tmp_4; - { step = 15; continue; } - case 14: - r0 = pxsim_numops_toBoolDecr(s.m___13284); - s.tmp_5 = r0; - r0 = pxsim_Boolean__bang(s.tmp_5); - case 15: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBool(s.tmp_6); - if (r0) { step = 16; continue; } - r0 = s.tmp_6; - { step = 17; continue; } - case 16: - r0 = (s.c___13292 == 45); - case 17: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 18; continue; } - s.m___13284 = (true); - { step = 32; continue; } - case 18: - case 19: - s.v___13317 = (-1); - r0 = (48 <= s.c___13292); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 20; continue; } - r0 = s.tmp_0; - { step = 21; continue; } - case 20: - r0 = (s.c___13292 <= 57); - case 21: - // jmp value (already in r0) + r0 = (s.tmp_4 + 2); + s.tmp_3 = r0; + r0 = (s.tmp_2 / s.tmp_3); s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 22; continue; } - r0 = (s.c___13292 - 48); - s.v___13317 = (r0); - { step = 27; continue; } - case 22: - r0 = (s.c___13292 | 32); - s.c___13292 = (r0); - r0 = (97 <= s.c___13292); + r0 = pxsim.Math_.floor(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 23; continue; } - r0 = s.tmp_0; - { step = 24; continue; } - case 23: - r0 = (s.c___13292 <= 122); - case 24: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 25; continue; } - r0 = (s.c___13292 - 97); - s.tmp_2 = r0; - r0 = (s.tmp_2 + 10); - s.v___13317 = (r0); - case 25: - case 26: - case 27: - r0 = (0 <= s.v___13317); + r0 = (s.tmp_0 - 1); + s.consoleLines___14365 = (r0); + r0 = pxsim_pxtcore_mkAction(1, scene_consoleOverlay_listener_inline__P14386); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 28; continue; } - r0 = s.tmp_0; - { step = 29; continue; } - case 28: - r0 = (s.v___13317 < s.arg1); - case 29: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 30; continue; } - r0 = (s.r___13285 * s.arg1); - s.r___13285 = (r0); - r0 = (s.r___13285 + s.v___13317); - s.r___13285 = (r0); - { step = 31; continue; } - case 30: - r0 = undefined; - { step = 36; continue; } - case 31: - case 32: - r0 = (s.i___13286 + 1); - s.i___13286 = (r0); - { step = 5; continue; } - case 33: - r0 = pxsim_numops_toBoolDecr(s.m___13284); - if (!r0) { step = 34; continue; } - r0 = (0 - s.r___13285); - { step = 35; continue; } - case 34: - r0 = s.r___13285; - case 35: - // jmp value (already in r0) + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.consoleColumns___14352); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = helpers_arrayFilter__P2139_mk(s); + s.tmp_3 = helpers_stringSplit__P2151_mk(s); + s.tmp_3.arg0 = s.arg1; + s.tmp_3.arg1 = "\n"; + s.tmp_3.arg2 = undefined; + s.callLocIdx = 190; s.pc = 14; return s.tmp_3; + case 14: + r0 = s.retval; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = forEach_inline__P14381; + s.callLocIdx = 191; s.pc = 13; return s.tmp_2; + case 13: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 193; s.pc = 12; return s.tmp_1; + case 12: + r0 = s.retval; + r0 = pxsim_Array__length(globals.consoleStrings___5040); + s.tmp_1 = r0; + r0 = (s.tmp_1 > s.consoleLines___14365); s.tmp_0 = r0; - r0 = s.tmp_0; - case 36: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.tmp_2 = helpers_arraySplice__P2129_mk(s); + s.tmp_2.arg0 = globals.consoleStrings___5040; + s.tmp_2.arg1 = 0; + r0 = pxsim_Array__length(globals.consoleStrings___5040); + s.tmp_3 = r0; + r0 = (s.tmp_3 - s.consoleLines___14365); + s.tmp_2.arg2 = r0; + s.callLocIdx = 194; s.pc = 15; return s.tmp_2; + case 15: + r0 = s.retval; + case 7: + case 8: + case 9: + r0 = undefined; return leave(s, r0) default: oops() } } } -JSON_parseIntRadix__P2806.info = {"start":21,"length":894,"line":1,"column":4,"endLine":35,"endColumn":5,"fileName":"pxt_modules/core/json.ts","functionName":"parseIntRadix","argumentNames":["s","base"]} +scene_consoleOverlay_listener__P5052.info = {"start":604,"length":786,"line":24,"column":4,"endLine":43,"endColumn":5,"fileName":"pxt_modules/display-shield/console.ts","functionName":"listener","argumentNames":["priority","text"]} -function JSON_parseIntRadix__P2806_mk(s) { +function scene_consoleOverlay_listener__P5052_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_parseIntRadix__P2806, depth: s.depth + 1, + parent: s, fn: scene_consoleOverlay_listener__P5052, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -28915,11 +31934,11 @@ function JSON_parseIntRadix__P2806_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, - m___13284: undefined, - r___13285: undefined, - i___13286: undefined, - c___13292: undefined, - v___13317: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + consoleColumns___14352: undefined, + consoleLines___14365: undefined, arg0: undefined, arg1: undefined, } } @@ -28927,8 +31946,7 @@ function JSON_parseIntRadix__P2806_mk(s) { - -function JSON_Parser_doNumber__P4921(s) { +function forEach_inline__P14381(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -28938,153 +31956,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.beg___13367 = undefined; - s.c___13371 = undefined; - s.ss___13399 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - r0 = s.arg0.fields["ptr"]; - s.beg___13367 = (r0); - case 1: - s.tmp_0 = JSON_Parser_nextChar__P4917_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 96; s.pc = 20; return s.tmp_0; - case 20: - r0 = s.retval; - s.c___13371 = (r0); - r0 = (48 <= s.c___13371); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } - case 2: - r0 = (s.c___13371 <= 57); - case 3: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = s.tmp_1; - { step = 5; continue; } - case 4: - r0 = (s.c___13371 == 43); - case 5: - // jmp value (already in r0) + r0 = pxsim_numops_toBoolDecr(s.arg0); s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (!r0) { step = 6; continue; } - r0 = s.tmp_2; - { step = 7; continue; } - case 6: - r0 = (s.c___13371 == 45); - case 7: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (!r0) { step = 8; continue; } - r0 = s.tmp_3; - { step = 9; continue; } - case 8: - r0 = (s.c___13371 == 46); - case 9: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (!r0) { step = 10; continue; } - r0 = s.tmp_4; - { step = 11; continue; } - case 10: - r0 = (s.c___13371 == 69); - case 11: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBool(s.tmp_5); - if (!r0) { step = 12; continue; } - r0 = s.tmp_5; - { step = 13; continue; } - case 12: - r0 = (s.c___13371 == 101); - case 13: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 14; continue; } - { step = 15; continue; } - case 14: - s.tmp_7 = r0 = s.arg0; - r0 = s.tmp_7.fields["ptr"]; - s.tmp_9 = r0; - r0 = (s.tmp_9 - 1); - s.tmp_8 = r0; - r0 = (s.tmp_7).fields["ptr"] = (s.tmp_8); - { step = 16; continue; } - case 15: - { step = 1; continue; } - case 16: - s.tmp_0 = helpers_stringSlice__P2148_mk(s); - r0 = s.arg0.fields["s"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.beg___13367; - r0 = s.arg0.fields["ptr"]; - s.tmp_0.arg2 = r0; - s.callLocIdx = 97; s.pc = 21; return s.tmp_0; - case 21: - r0 = s.retval; - s.ss___13399 = (r0); - r0 = pxsim_String_.length(s.ss___13399); + r0 = pxsim_Boolean__bang(s.tmp_2); s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); + r0 = pxsim_numops_toBoolDecr(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 17; continue; } - s.tmp_2 = JSON_Parser_error__P4915_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = "expecting number"; - s.callLocIdx = 98; s.pc = 22; return s.tmp_2; - case 22: - r0 = s.retval; - r0 = 0; - { step = 19; continue; } - case 17: - case 18: - r0 = pxsim_String_.toNumber(s.ss___13399); - case 19: + r0 = pxsim_Boolean__bang(s.tmp_0); return leave(s, r0) default: oops() } } } -JSON_Parser_doNumber__P4921.info = {"start":4169,"length":585,"line":151,"column":8,"endLine":168,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doNumber","argumentNames":["this"]} +forEach_inline__P14381.info = {"start":1017,"length":14,"line":33,"column":20,"endLine":33,"endColumn":34,"fileName":"pxt_modules/display-shield/console.ts","functionName":"inline","argumentNames":["line"]} -function JSON_Parser_doNumber__P4921_mk(s) { +function forEach_inline__P14381_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_doNumber__P4921, depth: s.depth + 1, + parent: s, fn: forEach_inline__P14381, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - beg___13367: undefined, - c___13371: undefined, - ss___13399: undefined, arg0: undefined, } } - -function JSON_Parser_doArray__P4919(s) { +function scene_consoleOverlay_listener_inline__P14386(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29094,120 +31996,60 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___13415 = undefined; - s.c___13421 = undefined; - s.v___13429 = undefined; + s.j___14388 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - r0 = pxsim_Array__mk(); - s.r___13415 = (r0); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + s.j___14388 = (0); case 1: - s.tmp_0 = JSON_Parser_skipWS__P4916_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 84; s.pc = 12; return s.tmp_0; - case 12: - r0 = s.retval; - s.c___13421 = (r0); - r0 = (s.c___13421 == 93); + s.tmp_1 = r0 = s.j___14388; + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 2; continue; } - s.tmp_1 = r0 = s.arg0; - r0 = s.tmp_1.fields["ptr"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); - r0 = s.r___13415; - { step = 11; continue; } - case 2: + s.tmp_3 = r0 = globals.consoleStrings___5040; + s.tmp_5 = helpers_stringSlice__P2148_mk(s); + s.tmp_5.arg0 = s.arg0; + s.tmp_5.arg1 = s.j___14388; + r0 = (s.j___14388 + s.caps[0]); + s.tmp_5.arg2 = r0; + s.callLocIdx = 192; s.pc = 3; return s.tmp_5; case 3: - s.tmp_0 = JSON_Parser_value__P4923_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 85; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - s.v___13429 = (r0); - r0 = s.arg0.fields["errorMsg"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = null; - { step = 11; continue; } - case 4: - case 5: - r0 = pxsim_Array__push(s.r___13415, s.v___13429); - s.tmp_0 = JSON_Parser_skipWS__P4916_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 86; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - s.c___13421 = (r0); - r0 = (s.c___13421 == 44); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_1 = r0 = s.arg0; - r0 = s.tmp_1.fields["ptr"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); - { step = 10; continue; } - case 6: - case 7: - r0 = (s.c___13421 == 93); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - { step = 10; continue; } - case 8: - case 9: - s.tmp_1 = JSON_Parser_error__P4915_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = "expecting comma"; - s.callLocIdx = 87; s.pc = 15; return s.tmp_1; - case 15: r0 = s.retval; - case 10: + s.tmp_4 = r0; + r0 = pxsim_Array__push(s.tmp_3, s.tmp_4); + r0 = (s.j___14388 + s.caps[0]); + s.j___14388 = (r0); { step = 1; continue; } + case 2: r0 = undefined; - case 11: return leave(s, r0) default: oops() } } } -JSON_Parser_doArray__P4919.info = {"start":2467,"length":646,"line":92,"column":8,"endLine":114,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doArray","argumentNames":["this"]} +scene_consoleOverlay_listener_inline__P14386.info = {"start":1054,"length":189,"line":34,"column":21,"endLine":38,"endColumn":13,"fileName":"pxt_modules/display-shield/console.ts","functionName":"inline","argumentNames":["line"]} -function JSON_Parser_doArray__P4919_mk(s) { +function scene_consoleOverlay_listener_inline__P14386_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_doArray__P4919, depth: s.depth + 1, + parent: s, fn: scene_consoleOverlay_listener_inline__P14386, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - r___13415: undefined, - c___13421: undefined, - v___13429: undefined, + tmp_4: undefined, + tmp_5: undefined, + j___14388: undefined, arg0: undefined, } } - -function JSON_Parser_doObject__P4920(s) { +function console_addListener__P2531(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29217,180 +32059,138 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___13450 = undefined; - s.c___13456 = undefined; - s.k___13468 = undefined; - s.v___13480 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, JSON_Parser__C4914_VT)) failedCast(r0, JSON_Parser__C4914_VT); - r0 = pxsim_pxtrt.mkMap(); - s.r___13450 = (r0); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); + r0 = pxsim_numops_toBoolDecr(globals.listeners___4865); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); - case 1: - s.tmp_0 = JSON_Parser_skipWS__P4916_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 88; s.pc = 16; return s.tmp_0; - case 16: - r0 = s.retval; - s.c___13456 = (r0); - r0 = (s.c___13456 == 125); + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = r0 = s.arg0; - r0 = s.tmp_1.fields["ptr"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); - r0 = s.r___13450; - { step = 15; continue; } + if (!r0) { step = 1; continue; } + r0 = pxsim_Array__mk(); + globals.listeners___4865 = (r0); + case 1: case 2: - case 3: - r0 = (s.c___13456 != 34); + r0 = pxsim_numops_toBoolDecr(s.arg0); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_1 = JSON_Parser_error__P4915_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = "expecting key"; - s.callLocIdx = 89; s.pc = 17; return s.tmp_1; - case 17: - r0 = s.retval; - r0 = s.r___13450; - { step = 15; continue; } + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = s.tmp_0; + { step = 4; continue; } + case 3: + r0 = pxsim_Array_.indexOf(globals.listeners___4865, s.arg0, undefined); + s.tmp_2 = r0; + r0 = (s.tmp_2 > -1); case 4: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 5; continue; } + { step = 7; continue; } case 5: - s.tmp_0 = JSON_Parser_doString__P4918_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 90; s.pc = 18; return s.tmp_0; - case 18: - r0 = s.retval; - s.k___13468 = (r0); - s.tmp_0 = JSON_Parser_skipWS__P4916_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 91; s.pc = 19; return s.tmp_0; - case 19: - r0 = s.retval; - s.c___13456 = (r0); - r0 = (s.c___13456 != 58); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_1 = JSON_Parser_error__P4915_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = "expecting colon"; - s.callLocIdx = 92; s.pc = 20; return s.tmp_1; - case 20: - r0 = s.retval; - r0 = s.r___13450; - { step = 15; continue; } case 6: + r0 = pxsim_Array__push(globals.listeners___4865, s.arg0); case 7: - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); - s.tmp_0 = JSON_Parser_value__P4923_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 93; s.pc = 21; return s.tmp_0; - case 21: - r0 = s.retval; - s.v___13480 = (r0); - r0 = s.arg0.fields["errorMsg"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - r0 = null; - { step = 15; continue; } - case 8: - case 9: - r0 = pxsim_pxtrt.mapSetGeneric(s.r___13450, s.k___13468, s.v___13480); - s.tmp_0 = JSON_Parser_skipWS__P4916_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 94; s.pc = 22; return s.tmp_0; - case 22: - r0 = s.retval; - s.c___13456 = (r0); - r0 = (s.c___13456 == 44); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 10; continue; } - s.tmp_1 = r0 = s.arg0; - r0 = s.tmp_1.fields["ptr"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["ptr"] = (s.tmp_2); - { step = 14; continue; } - case 10: - case 11: - r0 = (s.c___13456 == 125); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 12; continue; } - { step = 14; continue; } - case 12: - case 13: - s.tmp_1 = JSON_Parser_error__P4915_mk(s); - s.tmp_1.arg0 = s.arg0; - r0 = pxsim_String_.fromCharCode(s.c___13456); - s.tmp_3 = r0; - if ((s.tmp_3) && (s.tmp_3).vtable) { - setupResume(s, 24); - pxsim_String__stringConv(s.tmp_3); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_3) + ""; } - case 24: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_String__concat("expecting comma, got ", s.tmp_2); - s.tmp_1.arg1 = r0; - s.callLocIdx = 95; s.pc = 23; return s.tmp_1; - case 23: - r0 = s.retval; - case 14: - { step = 1; continue; } r0 = undefined; - case 15: return leave(s, r0) default: oops() } } } -JSON_Parser_doObject__P4920.info = {"start":3123,"length":1036,"line":116,"column":8,"endLine":149,"endColumn":9,"fileName":"pxt_modules/core/json.ts","functionName":"doObject","argumentNames":["this"]} +console_addListener__P2531.info = {"start":3264,"length":236,"line":114,"column":4,"endLine":118,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"addListener","argumentNames":["listener"]} -function JSON_Parser_doObject__P4920_mk(s) { +function console_addListener__P2531_mk(s) { checkStack(s.depth); return { - parent: s, fn: JSON_Parser_doObject__P4920, depth: s.depth + 1, + parent: s, fn: console_addListener__P2531, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - r___13450: undefined, - c___13456: undefined, - k___13468: undefined, - v___13480: undefined, arg0: undefined, } } +function user_interface_base_Sprite_height__P3449(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; -function control_simmessages_onReceived__P2817(s) { + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + r0 = s.arg0.fields["image"]; + s.tmp_0 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_0); + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_Sprite_height__P3449.info = {"start":605,"length":68,"line":19,"column":8,"endLine":21,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"height","argumentNames":["this"]} +user_interface_base_Sprite_height__P3449.isGetter = true; + +function user_interface_base_Sprite_height__P3449_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Sprite_height__P3449, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function user_interface_base_Sprite_width__P3448(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + r0 = s.arg0.fields["image"]; + s.tmp_0 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_0); + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_Sprite_width__P3448.info = {"start":530,"length":66,"line":16,"column":8,"endLine":18,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"width","argumentNames":["this"]} +user_interface_base_Sprite_width__P3448.isGetter = true; + +function user_interface_base_Sprite_width__P3448_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Sprite_width__P3448, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function user_interface_base_ButtonBase_constructor__P3623(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29403,54 +32203,71 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 5; continue; } + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 500; s.pc = 1; return s.tmp_1; case 1: + r0 = s.retval; + r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 503; s.pc = 2; return s.tmp_0; case 2: - r0 = pxsim_numops_toBoolDecr(globals.handlers___4936); - s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 3; continue; } - r0 = pxsim_pxtrt.mkMap(); - globals.handlers___4936 = (r0); + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg2; + s.callLocIdx = 506; s.pc = 3; return s.tmp_0; case 3: + r0 = s.retval; + r0 = (s.arg0).fields["style"] = (s.arg3); + s.tmp_0 = user_interface_base_Affine_parent__P3329_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg4; + s.callLocIdx = 508; s.pc = 4; return s.tmp_0; case 4: - r0 = pxsim_pxtrt.mapSetGeneric(globals.handlers___4936, s.arg0, s.arg1); - r0 = pxsim.control.onEvent(2999, 1, control_simmessages_consumeMessages__P4937, 0); - case 5: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -control_simmessages_onReceived__P2817.info = {"start":1063,"length":293,"line":32,"column":4,"endLine":39,"endColumn":5,"fileName":"pxt_modules/core/controlmessage.ts","functionName":"onReceived","argumentNames":["channel","handler"]} +user_interface_base_ButtonBase_constructor__P3623.info = {"start":2319,"length":228,"line":99,"column":4,"endLine":105,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"inline","argumentNames":["this","x","y","style","parent"]} -function control_simmessages_onReceived__P2817_mk(s) { +function user_interface_base_ButtonBase_constructor__P3623_mk(s) { checkStack(s.depth); return { - parent: s, fn: control_simmessages_onReceived__P2817, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_constructor__P3623, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, } } - -function control_simmessages_consumeMessages__P4937(s) { +function user_interface_base_Vec2_y__P3388(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29460,72 +32277,101 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.channel___13525 = undefined; - s.msg___13530 = undefined; - s.handler___13533 = undefined; - case 1: - r0 = pxsim_numops_toBoolDecr(true); - if (!r0) { step = 8; continue; } - r0 = pxsim_pxtcore.peekMessageChannel(); - s.channel___13525 = (r0); - r0 = pxsim_numops_toBoolDecr(s.channel___13525); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - { step = 8; continue; } - case 2: - case 3: - r0 = pxsim_pxtcore.readMessageData(); - s.msg___13530 = (r0); - s.tmp_0 = r0 = globals.handlers___4936; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 4; continue; } - r0 = s.tmp_0; - { step = 5; continue; } - case 4: - r0 = pxsim_pxtrt.mapGetGeneric(globals.handlers___4936, s.channel___13525); - case 5: - // jmp value (already in r0) - s.tmp_1 = r0; - s.handler___13533 = (s.tmp_1); - r0 = pxsim_numops_toBoolDecr(s.handler___13533); - if (!r0) { step = 6; continue; } - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.handler___13533; - s.tmp_0.arg0 = s.msg___13530; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 126; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - case 6: - case 7: - { step = 1; continue; } - case 8: + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Vec2__C3384_VT)) failedCast(r0, user_interface_base_Vec2__C3384_VT); + r0 = (s.arg0).fields["y_"] = (s.arg1); r0 = undefined; return leave(s, r0) default: oops() } } } -control_simmessages_consumeMessages__P4937.info = {"start":564,"length":414,"line":15,"column":4,"endLine":27,"endColumn":5,"fileName":"pxt_modules/core/controlmessage.ts","functionName":"consumeMessages","argumentNames":[]} +user_interface_base_Vec2_y__P3388.info = {"start":331,"length":51,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"y","argumentNames":["this","v"]} + +function user_interface_base_Vec2_y__P3388_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Vec2_y__P3388, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, +} } + + + + +function user_interface_base_Vec2_y__P3387(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Vec2__C3384_VT)) failedCast(r0, user_interface_base_Vec2__C3384_VT); + r0 = s.arg0.fields["y_"]; + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_Vec2_y__P3387.info = {"start":268,"length":54,"line":11,"column":8,"endLine":13,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"y","argumentNames":["this"]} +user_interface_base_Vec2_y__P3387.isGetter = true; + +function user_interface_base_Vec2_y__P3387_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Vec2_y__P3387, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function user_interface_base_Affine_localPos__P3326(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Affine__C3324_VT)) failedCast(r0, user_interface_base_Affine__C3324_VT); + r0 = s.arg0.fields["localPos_"]; + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_Affine_localPos__P3326.info = {"start":705,"length":73,"line":19,"column":8,"endLine":21,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"localPos","argumentNames":["this"]} +user_interface_base_Affine_localPos__P3326.isGetter = true; -function control_simmessages_consumeMessages__P4937_mk(s) { +function user_interface_base_Affine_localPos__P3326_mk(s) { checkStack(s.depth); return { - parent: s, fn: control_simmessages_consumeMessages__P4937, depth: s.depth + 1, + parent: s, fn: user_interface_base_Affine_localPos__P3326, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - channel___13525: undefined, - msg___13530: undefined, - handler___13533: undefined, + arg0: undefined, } } - -function shieldhelpers_ScreenState_constructor__P5140(s) { +function user_interface_base_Vec2_x__P3386(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29537,53 +32383,31 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, shieldhelpers_ScreenState__C5131_VT)) failedCast(r0, shieldhelpers_ScreenState__C5131_VT); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim.Math_.random(); - s.tmp_3 = r0; - if ((s.tmp_3) && (s.tmp_3).vtable) { - setupResume(s, 1); - pxsim_String__stringConv(s.tmp_3); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_3) + ""; } - case 1: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_2, s.tmp_4); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["runId"] = (s.tmp_1); - r0 = (s.arg0).fields["displayOn"] = (undefined); - r0 = (s.arg0).fields["gotSimMessage"] = (false); + if (!checkSubtype(r0, user_interface_base_Vec2__C3384_VT)) failedCast(r0, user_interface_base_Vec2__C3384_VT); + r0 = (s.arg0).fields["x_"] = (s.arg1); r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_ScreenState_constructor__P5140.info = {"start":1151,"length":148,"line":38,"column":8,"endLine":42,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"inline","argumentNames":["this"]} +user_interface_base_Vec2_x__P3386.info = {"start":208,"length":51,"line":8,"column":8,"endLine":10,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"x","argumentNames":["this","v"]} -function shieldhelpers_ScreenState_constructor__P5140_mk(s) { +function user_interface_base_Vec2_x__P3386_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_ScreenState_constructor__P5140, depth: s.depth + 1, + parent: s, fn: user_interface_base_Vec2_x__P3386, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, + arg1: undefined, } } - -function __screen_internal_createScreen__P3310(s) { +function user_interface_base_Vec2_x__P3385(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29593,50 +32417,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.img___13555 = undefined; - s.tmp_1 = shieldhelpers_displayWidth__P3318_mk(s); - s.callLocIdx = 242; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - s.tmp_0 = r0; - s.tmp_3 = shieldhelpers_displayHeight__P3317_mk(s); - s.callLocIdx = 243; s.pc = 2; return s.tmp_3; - case 2: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim.bitmaps.create(s.tmp_0, s.tmp_2); - s.img___13555 = (r0); - r0 = pxsim_pxtcore_mkAction(1, __screen_internal_createScreen_inline__P13561); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.img___13555); - s.tmp_1 = control___screen_setupUpdate__P3306_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 245; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - r0 = s.img___13555; - return leave(s, r0) + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Vec2__C3384_VT)) failedCast(r0, user_interface_base_Vec2__C3384_VT); + r0 = s.arg0.fields["x_"]; + return leaveAccessor(s, r0) default: oops() } } } -__screen_internal_createScreen__P3310.info = {"start":617,"length":383,"line":17,"column":4,"endLine":24,"endColumn":5,"fileName":"pxt_modules/display-shield/init.ts","functionName":"createScreen","argumentNames":[]} +user_interface_base_Vec2_x__P3385.info = {"start":146,"length":53,"line":5,"column":8,"endLine":7,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"x","argumentNames":["this"]} +user_interface_base_Vec2_x__P3385.isGetter = true; -function __screen_internal_createScreen__P3310_mk(s) { +function user_interface_base_Vec2_x__P3385_mk(s) { checkStack(s.depth); return { - parent: s, fn: __screen_internal_createScreen__P3310, depth: s.depth + 1, + parent: s, fn: user_interface_base_Vec2_x__P3385, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - img___13555: undefined, + arg0: undefined, } } - -function __screen_internal_createScreen_inline__P13561(s) { +function user_interface_base_ButtonBase_height__P3626(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29646,30 +32451,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = shieldhelpers_updateScreen__P3314_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 244; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + s.tmp_0 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 510; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = undefined; - return leave(s, r0) + r0 = r0.fields["height"]; + return leaveAccessor(s, r0) default: oops() } } } -__screen_internal_createScreen_inline__P13561.info = {"start":926,"length":37,"line":22,"column":37,"endLine":22,"endColumn":74,"fileName":"pxt_modules/display-shield/init.ts","functionName":"inline","argumentNames":[]} +user_interface_base_ButtonBase_height__P3626.info = {"start":2669,"length":59,"line":113,"column":4,"endLine":115,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"height","argumentNames":["this"]} +user_interface_base_ButtonBase_height__P3626.isGetter = true; -function __screen_internal_createScreen_inline__P13561_mk(s) { +function user_interface_base_ButtonBase_height__P3626_mk(s) { checkStack(s.depth); return { - parent: s, fn: __screen_internal_createScreen_inline__P13561, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_height__P3626, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + arg0: undefined, } } - -function shieldhelpers_updateScreen__P3314(s) { +function user_interface_base_ButtonBase_bounds__P3627(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29683,32 +32495,55 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore.updateScreen(s.arg0); - s.tmp_0 = shieldhelpers_simUpdateScreen__P5145_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 261; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + s.tmp_0 = user_interface_base_Bounds_GrowXY__P3354_mk(s); + s.tmp_1 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 511; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_2 = user_interface_base_borderLeft__P3615_mk(s); + r0 = s.arg0.fields["style"]; + s.tmp_2.arg0 = r0; + s.callLocIdx = 512; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.tmp_3 = user_interface_base_borderTop__P3616_mk(s); + r0 = s.arg0.fields["style"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 513; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + s.tmp_0.arg2 = r0; + s.callLocIdx = 514; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = undefined; - return leave(s, r0) + return leaveAccessor(s, r0) default: oops() } } } -shieldhelpers_updateScreen__P3314.info = {"start":3535,"length":120,"line":125,"column":4,"endLine":128,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"updateScreen","argumentNames":["img"]} +user_interface_base_ButtonBase_bounds__P3627.info = {"start":2734,"length":190,"line":117,"column":4,"endLine":124,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"bounds","argumentNames":["this"]} +user_interface_base_ButtonBase_bounds__P3627.isGetter = true; -function shieldhelpers_updateScreen__P3314_mk(s) { +function user_interface_base_ButtonBase_bounds__P3627_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_updateScreen__P3314, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_bounds__P3627, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function shieldhelpers_simUpdateScreen__P5145(s) { +function user_interface_base_borderTop__P3616(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29722,40 +32557,38 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = shieldhelpers_getScreenState__P5144_mk(s); - s.callLocIdx = 259; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals._screenState___5142); + r0 = s.arg0.fields["borders"]; + r0 = r0.fields["top"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_0 = shieldhelpers_ScreenState_showImage__P5139_mk(s); - s.tmp_0.arg0 = globals._screenState___5142; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 260; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; + r0 = 1; + { step = 2; continue; } case 1: + r0 = 0; case 2: - r0 = undefined; + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -shieldhelpers_simUpdateScreen__P5145.info = {"start":3383,"length":146,"line":119,"column":4,"endLine":123,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"simUpdateScreen","argumentNames":["img"]} +user_interface_base_borderTop__P3616.info = {"start":1478,"length":88,"line":68,"column":2,"endLine":70,"endColumn":3,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"borderTop","argumentNames":["style"]} -function shieldhelpers_simUpdateScreen__P5145_mk(s) { +function user_interface_base_borderTop__P3616_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_simUpdateScreen__P5145, depth: s.depth + 1, + parent: s, fn: user_interface_base_borderTop__P3616, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function shieldhelpers_ScreenState_showImage__P5139(s) { +function user_interface_base_borderLeft__P3615(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29765,67 +32598,42 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.msg___13579 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, shieldhelpers_ScreenState__C5131_VT)) failedCast(r0, shieldhelpers_ScreenState__C5131_VT); - r0 = pxsim_pxtrt.mkMap(); + r0 = s.arg0.fields["borders"]; + r0 = r0.fields["left"]; s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "show-image"); - r0 = s.arg0.fields["runId"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "runId", s.tmp_1); - s.tmp_3 = helpers_bufferToBase64__P2783_mk(s); - r0 = pxsim.BitmapMethods.__buffer(s.arg1); - s.tmp_3.arg0 = r0; - s.callLocIdx = 251; s.pc = 1; return s.tmp_3; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = 1; + { step = 2; continue; } case 1: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", s.tmp_2); - s.msg___13579 = (s.tmp_0); - s.tmp_0 = shieldhelpers_ScreenState_sendMessage__P5135_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_1 = JSON_stringify__P2807_mk(s); - s.tmp_1.arg0 = s.msg___13579; - s.tmp_1.arg1 = null; - s.tmp_1.arg2 = 0; - s.callLocIdx = 252; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 253; s.pc = 2; return s.tmp_0; + r0 = 0; case 2: - r0 = s.retval; - r0 = undefined; + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -shieldhelpers_ScreenState_showImage__P5139.info = {"start":2540,"length":319,"line":88,"column":8,"endLine":96,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"showImage","argumentNames":["this","img"]} +user_interface_base_borderLeft__P3615.info = {"start":1384,"length":90,"line":64,"column":2,"endLine":66,"endColumn":3,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"borderLeft","argumentNames":["style"]} -function shieldhelpers_ScreenState_showImage__P5139_mk(s) { +function user_interface_base_borderLeft__P3615_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_ScreenState_showImage__P5139, depth: s.depth + 1, + parent: s, fn: user_interface_base_borderLeft__P3615, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - msg___13579: undefined, arg0: undefined, - arg1: undefined, } } - -function helpers_bufferToBase64__P2783(s) { +function user_interface_base_Sprite_bounds__P3451(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -29835,258 +32643,75 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___13590 = undefined; - s.r___13593 = undefined; - s.i___13594 = undefined; - s.x0___13599 = undefined; - s.x1___13633 = undefined; - s.x2___13673 = undefined; + s.b___14513 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim.BufferMethods.length(s.arg0); - s.len___13590 = (r0); - r0 = pxsim_String_.mkEmpty(); - s.r___13593 = (r0); - s.i___13594 = (0); - case 1: - r0 = (s.i___13594 < s.len___13590); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = pxsim.BufferMethods.getByte(s.arg0, s.i___13594); - s.x0___13599 = (r0); - if ((s.r___13593) && (s.r___13593).vtable) { - setupResume(s, 7); - pxsim_String__stringConv(s.r___13593); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___13593) + ""; } - case 7: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); s.tmp_0 = r0; - s.tmp_3 = r0 = globals._b64___2782; - r0 = (s.x0___13599 >> 2); - s.tmp_4 = r0; - r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 8); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 8: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___13593 = (r0); - r0 = (s.i___13594 + 1); + r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = (s.tmp_1 >= s.len___13590); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - if ((s.r___13593) && (s.r___13593).vtable) { - setupResume(s, 9); - pxsim_String__stringConv(s.r___13593); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___13593) + ""; } - case 9: - r0 = s.retval; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", 0); + r0 = s.arg0.fields["image"]; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); s.tmp_2 = r0; - s.tmp_7 = r0 = globals._b64___2782; - r0 = (s.x0___13599 & 3); - s.tmp_9 = r0; - r0 = (s.tmp_9 << 4); - s.tmp_8 = r0; - r0 = pxsim_String_.charAt(s.tmp_7, s.tmp_8); - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 10); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 10: - r0 = s.retval; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_2); + r0 = s.arg0.fields["image"]; s.tmp_5 = r0; - r0 = pxsim_String__concat(s.tmp_5, "=="); + r0 = pxsim.BitmapMethods.height(s.tmp_5); s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 11); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 11: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_2, s.tmp_3); - s.r___13593 = (r0); - { step = 5; continue; } - case 2: - s.tmp_0 = r0 = s.arg0; - r0 = (s.i___13594 + 1); - s.tmp_1 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_0, s.tmp_1); - s.x1___13633 = (r0); - if ((s.r___13593) && (s.r___13593).vtable) { - setupResume(s, 12); - pxsim_String__stringConv(s.r___13593); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___13593) + ""; } - case 12: + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_4); + s.tmp_6 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_6.arg0 = s.tmp_0; + s.tmp_6.arg1 = s.tmp_1; + s.callLocIdx = 459; s.pc = 1; return s.tmp_6; + case 1: r0 = s.retval; + s.b___14513 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); s.tmp_0 = r0; - s.tmp_3 = r0 = globals._b64___2782; - r0 = (s.x0___13599 & 3); - s.tmp_6 = r0; - r0 = (s.tmp_6 << 4); - s.tmp_5 = r0; - r0 = (s.x1___13633 >> 4); - s.tmp_7 = r0; - r0 = (s.tmp_5 | s.tmp_7); + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.arg0.fields["image"]; s.tmp_4 = r0; - r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 13); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 13: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___13593 = (r0); - r0 = (s.i___13594 + 2); - s.tmp_1 = r0; - r0 = (s.tmp_1 >= s.len___13590); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - if ((s.r___13593) && (s.r___13593).vtable) { - setupResume(s, 14); - pxsim_String__stringConv(s.r___13593); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___13593) + ""; } - case 14: - r0 = s.retval; + r0 = pxsim.BitmapMethods.width(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 >> 1); s.tmp_2 = r0; - s.tmp_7 = r0 = globals._b64___2782; - r0 = (s.x1___13633 & 15); - s.tmp_9 = r0; - r0 = (s.tmp_9 << 2); - s.tmp_8 = r0; - r0 = pxsim_String_.charAt(s.tmp_7, s.tmp_8); + r0 = (0 - s.tmp_2); + s.tmp_1.arg1 = r0; + r0 = s.arg0.fields["image"]; + s.tmp_7 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_7); s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 15); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 15: - r0 = s.retval; + r0 = (s.tmp_6 >> 1); s.tmp_5 = r0; - r0 = pxsim_String__concat(s.tmp_5, "="); - s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 16); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 16: + r0 = (0 - s.tmp_5); + s.tmp_1.arg2 = r0; + s.callLocIdx = 462; s.pc = 2; return s.tmp_1; + case 2: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_2, s.tmp_3); - s.r___13593 = (r0); - { step = 4; continue; } + s.tmp_8 = user_interface_base_Bounds_translate__P3358_mk(s); + s.tmp_8.arg0 = s.b___14513; + s.tmp_8.arg1 = s.tmp_0; + s.callLocIdx = 463; s.pc = 3; return s.tmp_8; case 3: - s.tmp_0 = r0 = s.arg0; - r0 = (s.i___13594 + 2); - s.tmp_1 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_0, s.tmp_1); - s.x2___13673 = (r0); - if ((s.r___13593) && (s.r___13593).vtable) { - setupResume(s, 17); - pxsim_String__stringConv(s.r___13593); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___13593) + ""; } - case 17: - r0 = s.retval; - s.tmp_0 = r0; - s.tmp_3 = r0 = globals._b64___2782; - r0 = (s.x1___13633 & 15); - s.tmp_6 = r0; - r0 = (s.tmp_6 << 2); - s.tmp_5 = r0; - r0 = (s.x2___13673 >> 6); - s.tmp_7 = r0; - r0 = (s.tmp_5 | s.tmp_7); - s.tmp_4 = r0; - r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 18); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 18: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___13593 = (r0); - if ((s.r___13593) && (s.r___13593).vtable) { - setupResume(s, 19); - pxsim_String__stringConv(s.r___13593); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___13593) + ""; } - case 19: - r0 = s.retval; - s.tmp_0 = r0; - s.tmp_3 = r0 = globals._b64___2782; - r0 = (s.x2___13673 & 63); - s.tmp_4 = r0; - r0 = pxsim_String_.charAt(s.tmp_3, s.tmp_4); - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 20); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 20: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___13593 = (r0); - case 4: - case 5: - r0 = (s.i___13594 + 3); - s.i___13594 = (r0); - { step = 1; continue; } - case 6: - r0 = s.r___13593; - return leave(s, r0) + return leaveAccessor(s, r0) default: oops() } } } -helpers_bufferToBase64__P2783.info = {"start":5805,"length":708,"line":196,"column":4,"endLine":217,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"bufferToBase64","argumentNames":["buf"]} +user_interface_base_Sprite_bounds__P3451.info = {"start":766,"length":312,"line":26,"column":8,"endLine":36,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"bounds","argumentNames":["this"]} +user_interface_base_Sprite_bounds__P3451.isGetter = true; -function helpers_bufferToBase64__P2783_mk(s) { +function user_interface_base_Sprite_bounds__P3451_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_bufferToBase64__P2783, depth: s.depth + 1, + parent: s, fn: user_interface_base_Sprite_bounds__P3451, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -30097,21 +32722,14 @@ function helpers_bufferToBase64__P2783_mk(s) { tmp_6: undefined, tmp_7: undefined, tmp_8: undefined, - tmp_9: undefined, - len___13590: undefined, - r___13593: undefined, - i___13594: undefined, - x0___13599: undefined, - x1___13633: undefined, - x2___13673: undefined, + b___14513: undefined, arg0: undefined, } } - -function control___screen_setupUpdate__P3306(s) { +function user_interface_base_Bounds_translate__P3358(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30123,36 +32741,50 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - globals.__updated___5095 = (true); - globals.__update___5093 = (s.arg0); - s.tmp_0 = lambda_1_mk(s); - s.tmp_0.argL = s.arg0; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 236; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["left"]; + s.tmp_2 = r0; + r0 = s.arg1.fields["x_"]; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["left"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["top"]; + s.tmp_2 = r0; + r0 = s.arg1.fields["y_"]; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["top"] = (s.tmp_1); + r0 = s.arg0; return leave(s, r0) default: oops() } } } -control___screen_setupUpdate__P3306.info = {"start":280,"length":125,"line":15,"column":4,"endLine":19,"endColumn":5,"fileName":"pxt_modules/display-shield/frame.ts","functionName":"setupUpdate","argumentNames":["update"]} +user_interface_base_Bounds_translate__P3358.info = {"start":3003,"length":124,"line":106,"column":8,"endLine":110,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"translate","argumentNames":["this","p"]} -function control___screen_setupUpdate__P3306_mk(s) { +function user_interface_base_Bounds_translate__P3358_mk(s) { checkStack(s.depth); return { - parent: s, fn: control___screen_setupUpdate__P3306, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_translate__P3358, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function shieldhelpers_displayHeight__P3317(s) { +function user_interface_base_Bounds_GrowXY__P3354(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30162,31 +32794,48 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_pxtcore.displayHeight(); - globals.__height___5149 = (r0); - s.tmp_0 = shieldhelpers_simDisplayHeight__P5150_mk(s); - s.callLocIdx = 267; s.pc = 1; return s.tmp_0; + s.b___14547 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + s.tmp_0 = user_interface_base_Bounds_clone__P3350_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 311; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = globals.__height___5149; + s.b___14547 = (r0); + s.tmp_0 = user_interface_base_Bounds_growxy__P3356_mk(s); + s.tmp_0.arg0 = s.b___14547; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = s.arg2; + s.callLocIdx = 312; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = s.b___14547; return leave(s, r0) default: oops() } } } -shieldhelpers_displayHeight__P3317.info = {"start":4497,"length":149,"line":166,"column":4,"endLine":170,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"displayHeight","argumentNames":[]} +user_interface_base_Bounds_GrowXY__P3354.info = {"start":2152,"length":157,"line":75,"column":8,"endLine":79,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"GrowXY","argumentNames":["box","x","y"]} -function shieldhelpers_displayHeight__P3317_mk(s) { +function user_interface_base_Bounds_GrowXY__P3354_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_displayHeight__P3317, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_GrowXY__P3354, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + b___14547: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function shieldhelpers_simDisplayHeight__P5150(s) { +function user_interface_base_Bounds_growxy__P3356(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30196,36 +32845,66 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - globals.__height___5149 = (120); - s.tmp_0 = shieldhelpers_getScreenState__P5144_mk(s); - s.callLocIdx = 265; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals._screenState___5142); - if (!r0) { step = 1; continue; } - r0 = 120; - globals.__height___5149 = (r0); - case 1: - case 2: - r0 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["top"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 - s.arg1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["top"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["left"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 - s.arg2); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["left"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["width"]; + s.tmp_2 = r0; + r0 = (s.arg1 * 2); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["width"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["height"]; + s.tmp_2 = r0; + r0 = (s.arg2 * 2); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["height"] = (s.tmp_1); + r0 = s.arg0; return leave(s, r0) default: oops() } } } -shieldhelpers_simDisplayHeight__P5150.info = {"start":4324,"length":163,"line":159,"column":4,"endLine":164,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"simDisplayHeight","argumentNames":[]} +user_interface_base_Bounds_growxy__P3356.info = {"start":2532,"length":195,"line":89,"column":8,"endLine":95,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"growxy","argumentNames":["this","x","y"]} -function shieldhelpers_simDisplayHeight__P5150_mk(s) { +function user_interface_base_Bounds_growxy__P3356_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_simDisplayHeight__P5150, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_growxy__P3356, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function shieldhelpers_ScreenState_displayHeight__P5132(s) { +function user_interface_base_Bounds_clone__P3350(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30240,26 +32919,54 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, shieldhelpers_ScreenState__C5131_VT)) failedCast(r0, shieldhelpers_ScreenState__C5131_VT); - r0 = 120; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["left"]; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.tmp_2); + r0 = s.arg0.fields["top"]; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_3); + r0 = s.arg0.fields["width"]; + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_4); + r0 = s.arg0.fields["height"]; + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_5); + s.tmp_6 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_6.arg0 = s.tmp_0; + s.tmp_6.arg1 = s.tmp_1; + s.callLocIdx = 310; s.pc = 1; return s.tmp_6; + case 1: + r0 = s.retval; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -shieldhelpers_ScreenState_displayHeight__P5132.info = {"start":1309,"length":59,"line":44,"column":8,"endLine":46,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"displayHeight","argumentNames":["this"]} +user_interface_base_Bounds_clone__P3350.info = {"start":1392,"length":217,"line":46,"column":8,"endLine":53,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"clone","argumentNames":["this"]} -function shieldhelpers_ScreenState_displayHeight__P5132_mk(s) { +function user_interface_base_Bounds_clone__P3350_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_ScreenState_displayHeight__P5132, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_clone__P3350, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, arg0: undefined, } } - -function shieldhelpers_displayWidth__P3318(s) { +function user_interface_base_ButtonBase_width__P3625(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30269,31 +32976,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_pxtcore.displayWidth(); - globals.__width___5152 = (r0); - s.tmp_0 = shieldhelpers_simDisplayWidth__P5153_mk(s); - s.callLocIdx = 270; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + s.tmp_0 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 509; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = globals.__width___5152; - return leave(s, r0) + r0 = r0.fields["width"]; + return leaveAccessor(s, r0) default: oops() } } } -shieldhelpers_displayWidth__P3318.info = {"start":4863,"length":144,"line":182,"column":4,"endLine":186,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"displayWidth","argumentNames":[]} +user_interface_base_ButtonBase_width__P3625.info = {"start":2607,"length":57,"line":110,"column":4,"endLine":112,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"width","argumentNames":["this"]} +user_interface_base_ButtonBase_width__P3625.isGetter = true; -function shieldhelpers_displayWidth__P3318_mk(s) { +function user_interface_base_ButtonBase_width__P3625_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_displayWidth__P3318, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_width__P3625, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + arg0: undefined, } } - -function shieldhelpers_simDisplayWidth__P5153(s) { +function microcode_Editor_constructor__P4461(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30303,36 +33016,50 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - globals.__width___5152 = (160); - s.tmp_0 = shieldhelpers_getScreenState__P5144_mk(s); - s.callLocIdx = 268; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals._screenState___5142); - if (!r0) { step = 1; continue; } - r0 = 160; - globals.__width___5152 = (r0); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = (s.arg0).fields["backgroundCaptured_"] = (false); + r0 = (s.arg0).fields["dirty"] = (false); + r0 = (s.arg0).fields["programChanged"] = (false); + r0 = (s.arg0).fields["queuedCursorMove"] = (undefined); + s.tmp_0 = user_interface_base_Scene_constructor__P3663_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = "editor"; + s.callLocIdx = 1407; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_0 = user_interface_base_Scene_backgroundColor__P3662_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = 6; + s.callLocIdx = 1408; s.pc = 2; return s.tmp_0; case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_simDisplayWidth__P5153.info = {"start":4698,"length":159,"line":175,"column":4,"endLine":180,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"simDisplayWidth","argumentNames":[]} +microcode_Editor_constructor__P4461.info = {"start":1745,"length":112,"line":45,"column":8,"endLine":48,"endColumn":9,"fileName":"editor.ts","functionName":"inline","argumentNames":["this","app"]} -function shieldhelpers_simDisplayWidth__P5153_mk(s) { +function microcode_Editor_constructor__P4461_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_simDisplayWidth__P5153, depth: s.depth + 1, + parent: s, fn: microcode_Editor_constructor__P4461, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + arg0: undefined, + arg1: undefined, } } - -function shieldhelpers_ScreenState_displayWidth__P5133(s) { +function microcode_Editor_draw__P4480(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30347,26 +33074,71 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, shieldhelpers_ScreenState__C5131_VT)) failedCast(r0, shieldhelpers_ScreenState__C5131_VT); - r0 = 160; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = s.arg0.fields["dirty"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 1542; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + s.tmp_1 = r0; + r0 = s.arg0.fields["color_"]; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.fill(s.tmp_1, s.tmp_3); + s.tmp_0 = microcode_Editor_drawBackground__P5963_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1544; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.tmp_0 = microcode_Editor_drawEditor__P5962_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1545; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.tmp_0 = microcode_Editor_drawNav__P5964_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1546; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = user_interface_base_Picker_draw__P3733_mk(s); + r0 = s.arg0.fields["picker"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1547; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + s.tmp_0 = user_interface_base_Cursor_draw__P3716_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1548; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + r0 = (s.arg0).fields["dirty"] = (false); + case 1: + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_ScreenState_displayWidth__P5133.info = {"start":1378,"length":58,"line":48,"column":8,"endLine":50,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"displayWidth","argumentNames":["this"]} +microcode_Editor_draw__P4480.info = {"start":15586,"length":326,"line":467,"column":8,"endLine":477,"endColumn":9,"fileName":"editor.ts","functionName":"draw","argumentNames":["this"]} -function shieldhelpers_ScreenState_displayWidth__P5133_mk(s) { +function microcode_Editor_draw__P4480_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_ScreenState_displayWidth__P5133, depth: s.depth + 1, + parent: s, fn: microcode_Editor_draw__P4480, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function shieldhelpers_setPalette__P3315(s) { +function user_interface_base_Cursor_draw__P3716(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30376,36 +33148,243 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.dist___14623 = undefined; + s.text___14640 = undefined; + s.pos___14646 = undefined; + s.n___14653 = undefined; + s.w___14656 = undefined; + s.h___14661 = undefined; + s.x___14664 = undefined; + s.y___14680 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore.setPalette(s.arg0); - s.tmp_0 = shieldhelpers_simSetPalette__P5146_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 264; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + r0 = s.arg0.fields["visible"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 9; continue; } case 1: + case 2: + s.dist___14623 = (1); + case 3: + r0 = s.arg0.fields["borderThickness"]; + s.tmp_1 = r0; + r0 = (s.dist___14623 <= s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_2 = user_interface_base_Screen_outlineBoundsXfrm__P3438_mk(s); + r0 = s.arg0.fields["xfrm"]; + s.tmp_2.arg0 = r0; + r0 = s.arg0.fields["size"]; + s.tmp_2.arg1 = r0; + s.tmp_2.arg2 = s.dist___14623; + r0 = s.arg0.fields["cursorOutlineColour"]; + s.tmp_2.arg3 = r0; + s.callLocIdx = 645; s.pc = 10; return s.tmp_2; + case 10: + r0 = s.retval; + r0 = (s.dist___14623 + 1); + s.dist___14623 = (r0); + { step = 3; continue; } + case 4: + s.tmp_0 = accessibility_ariaToTooltip__P3492_mk(s); + r0 = s.arg0.fields["ariaId"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 646; s.pc = 11; return s.tmp_0; + case 11: + r0 = s.retval; + s.text___14640 = (r0); + r0 = pxsim_numops_toBoolDecr(s.text___14640); + if (!r0) { step = 7; continue; } + r0 = s.arg0.fields["ariaPos"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = s.tmp_0; + { step = 6; continue; } + case 5: + r0 = s.arg0.fields["xfrm"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + case 6: + // jmp value (already in r0) + s.tmp_2 = r0; + s.pos___14646 = (s.tmp_2); + r0 = pxsim_String_.length(s.text___14640); + s.n___14653 = (r0); + s.tmp_1 = if_charWidth_1_mk(s); + s.tmp_1.arg0 = globals.font___3460; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "charWidth"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["charWidth"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["charWidth"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 648; s.pc = 12; return s.tmp_1; } + } + case 12: + r0 = s.retval; + s.tmp_0 = r0; + r0 = (s.tmp_0 * s.n___14653); + s.w___14656 = (r0); + s.tmp_0 = if_charHeight_1_mk(s); + s.tmp_0.arg0 = globals.font___3460; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charHeight"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charHeight"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charHeight"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 649; s.pc = 13; return s.tmp_0; } + } + case 13: + r0 = s.retval; + s.h___14661 = (r0); + s.tmp_0 = Math_max__P2159_mk(s); + r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3416 + 1); + s.tmp_0.arg0 = r0; + s.tmp_1 = Math_min__P2160_mk(s); + r0 = (globals.user_interface_base_Screen_RIGHT_EDGE___3417 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_2 - s.w___14656); + s.tmp_1.arg0 = r0; + r0 = s.pos___14646.fields["x_"]; + s.tmp_3 = r0; + r0 = (s.w___14656 >> 1); + s.tmp_4 = r0; + r0 = (s.tmp_3 - s.tmp_4); + s.tmp_1.arg1 = r0; + s.callLocIdx = 651; s.pc = 15; return s.tmp_1; + case 15: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 652; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; + s.x___14664 = (r0); + s.tmp_0 = Math_min__P2160_mk(s); + r0 = s.pos___14646.fields["y_"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["size"]; + r0 = r0.fields["width"]; + s.tmp_5 = r0; + r0 = (s.tmp_5 >> 1); + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_2 = r0; + s.tmp_8 = if_charHeight_1_mk(s); + s.tmp_8.arg0 = globals.font___3460; + if (!s.tmp_8.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "charHeight"); + } else { + s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["charHeight"]; + if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["charHeight"]; } + else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } + else { s.callLocIdx = 654; s.pc = 17; return s.tmp_8; } + } + case 17: + r0 = s.retval; + s.tmp_7 = r0; + r0 = (s.tmp_7 >> 1); + s.tmp_6 = r0; + r0 = (s.tmp_2 + s.tmp_6); + s.tmp_1 = r0; + r0 = (s.tmp_1 + 1); + s.tmp_0.arg0 = r0; + r0 = (globals.user_interface_base_Screen_BOTTOM_EDGE___3419 - 1); + s.tmp_9 = r0; + s.tmp_11 = if_charHeight_1_mk(s); + s.tmp_11.arg0 = globals.font___3460; + if (!s.tmp_11.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_11.arg0, "charHeight"); + } else { + s.tmp_11.fn = s.tmp_11.arg0.vtable.iface["charHeight"]; + if (s.tmp_11.fn == null) { s.retval = s.tmp_11.arg0.fields["charHeight"]; } + else if (!s.tmp_11.fn.isGetter) { s.retval = bind(s.tmp_11); } + else { s.callLocIdx = 655; s.pc = 18; return s.tmp_11; } + } + case 18: + r0 = s.retval; + s.tmp_10 = r0; + r0 = (s.tmp_9 - s.tmp_10); + s.tmp_0.arg1 = r0; + s.callLocIdx = 656; s.pc = 16; return s.tmp_0; + case 16: + r0 = s.retval; + s.y___14680 = (r0); + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + r0 = (s.x___14664 - 1); + s.tmp_0.arg0 = r0; + r0 = (s.y___14680 - 1); + s.tmp_0.arg1 = r0; + r0 = (s.w___14656 + 1); + s.tmp_0.arg2 = r0; + r0 = (s.h___14661 + 2); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = 15; + s.callLocIdx = 657; s.pc = 19; return s.tmp_0; + case 19: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_print__P3442_mk(s); + s.tmp_0.arg0 = s.text___14640; + s.tmp_0.arg1 = s.x___14664; + s.tmp_0.arg2 = s.y___14680; + s.tmp_0.arg3 = 1; + s.tmp_0.arg4 = globals.font___3460; + s.tmp_0.arg5 = undefined; + s.callLocIdx = 658; s.pc = 20; return s.tmp_0; + case 20: r0 = s.retval; + case 7: + case 8: + case 9: r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_setPalette__P3315.info = {"start":3825,"length":108,"line":137,"column":4,"endLine":140,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"setPalette","argumentNames":["b"]} +user_interface_base_Cursor_draw__P3716.info = {"start":5394,"length":1089,"line":192,"column":4,"endLine":223,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"draw","argumentNames":["this"]} -function shieldhelpers_setPalette__P3315_mk(s) { +function user_interface_base_Cursor_draw__P3716_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_setPalette__P3315, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_draw__P3716, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + dist___14623: undefined, + text___14640: undefined, + pos___14646: undefined, + n___14653: undefined, + w___14656: undefined, + h___14661: undefined, + x___14664: undefined, + y___14680: undefined, arg0: undefined, } } - -function shieldhelpers_simSetPalette__P5146(s) { +function user_interface_base_Screen_print__P3442(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30417,42 +33396,55 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); + s.arg5 = (s.lambdaArgs[5]); s.lambdaArgs = null; } - s.tmp_0 = shieldhelpers_getScreenState__P5144_mk(s); - s.callLocIdx = 262; s.pc = 3; return s.tmp_0; - case 3: + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + s.tmp_1 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 453; s.pc = 2; return s.tmp_1; + case 2: r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals._screenState___5142); - if (!r0) { step = 1; continue; } - s.tmp_0 = shieldhelpers_ScreenState_setPalette__P5138_mk(s); - s.tmp_0.arg0 = globals._screenState___5142; + s.tmp_0.arg0 = r0; s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 263; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; + r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_WIDTH___3414); + s.tmp_0.arg2 = r0; + r0 = (s.arg2 + globals.user_interface_base_Screen_HALF_HEIGHT___3415); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = s.arg3; + s.tmp_0.arg5 = s.arg4; + s.tmp_0.arg6 = s.arg5; + s.callLocIdx = 456; s.pc = 1; return s.tmp_0; case 1: - case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -shieldhelpers_simSetPalette__P5146.info = {"start":3686,"length":133,"line":131,"column":4,"endLine":135,"endColumn":5,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"simSetPalette","argumentNames":["b"]} +user_interface_base_Screen_print__P3442.info = {"start":8455,"length":318,"line":344,"column":4,"endLine":360,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"print","argumentNames":["text","x","y","color","font","offsets"]} -function shieldhelpers_simSetPalette__P5146_mk(s) { +function user_interface_base_Screen_print__P3442_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_simSetPalette__P5146, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_print__P3442, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, + arg5: undefined, } } - -function shieldhelpers_ScreenState_setPalette__P5138(s) { +function user_interface_base_Screen_y__P3422(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30462,66 +33454,28 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.msg___13750 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, shieldhelpers_ScreenState__C5131_VT)) failedCast(r0, shieldhelpers_ScreenState__C5131_VT); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "set-palette"); - r0 = s.arg0.fields["runId"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "runId", s.tmp_1); - s.tmp_3 = helpers_bufferToBase64__P2783_mk(s); - s.tmp_3.arg0 = s.arg1; - s.callLocIdx = 248; s.pc = 1; return s.tmp_3; - case 1: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "data", s.tmp_2); - s.msg___13750 = (s.tmp_0); - s.tmp_0 = shieldhelpers_ScreenState_sendMessage__P5135_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_1 = JSON_stringify__P2807_mk(s); - s.tmp_1.arg0 = s.msg___13750; - s.tmp_1.arg1 = null; - s.tmp_1.arg2 = 0; - s.callLocIdx = 249; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 250; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_HEIGHT___3415); return leave(s, r0) default: oops() } } } -shieldhelpers_ScreenState_setPalette__P5138.info = {"start":2217,"length":313,"line":78,"column":8,"endLine":86,"endColumn":9,"fileName":"pxt_modules/display-shield/shieldhelpers.ts","functionName":"setPalette","argumentNames":["this","buf"]} +user_interface_base_Screen_y__P3422.info = {"start":1519,"length":70,"line":45,"column":4,"endLine":47,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"y","argumentNames":["v"]} -function shieldhelpers_ScreenState_setPalette__P5138_mk(s) { +function user_interface_base_Screen_y__P3422_mk(s) { checkStack(s.depth); return { - parent: s, fn: shieldhelpers_ScreenState_setPalette__P5138, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_y__P3422, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - msg___13750: undefined, arg0: undefined, - arg1: undefined, } } - -function control___screen_update__P3305(s) { +function user_interface_base_Screen_x__P3421(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30531,36 +33485,28 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_numops_toBoolDecr(globals.__update___5093); - if (!r0) { step = 1; continue; } - s.tmp_0 = lambda_1_mk(s); - s.tmp_0.argL = globals.__update___5093; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 235; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - case 1: - case 2: - globals.__updated___5095 = (true); - r0 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_WIDTH___3414); return leave(s, r0) default: oops() } } } -control___screen_update__P3305.info = {"start":172,"length":102,"line":9,"column":4,"endLine":13,"endColumn":5,"fileName":"pxt_modules/display-shield/frame.ts","functionName":"update","argumentNames":[]} +user_interface_base_Screen_x__P3421.info = {"start":1445,"length":69,"line":42,"column":4,"endLine":44,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"x","argumentNames":["v"]} -function control___screen_update__P3305_mk(s) { +function user_interface_base_Screen_x__P3421_mk(s) { checkStack(s.depth); return { - parent: s, fn: control___screen_update__P3305, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_x__P3421, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, + arg0: undefined, } } - -function pause__P2371(s) { +function user_interface_base_Screen_fillRect__P3434(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30572,46 +33518,52 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - s.tmp_1 = isNaN__P2122_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 34; s.pc = 3; return s.tmp_1; - case 3: + s.tmp_0 = helpers_imageFillRect__P3109_mk(s); + s.tmp_1 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 387; s.pc = 2; return s.tmp_1; + case 2: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.arg0 = (20); + s.tmp_0.arg0 = r0; + r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_WIDTH___3414); + s.tmp_0.arg1 = r0; + r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_HEIGHT___3415); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = s.arg2; + s.tmp_0.arg4 = s.arg3; + s.tmp_0.arg5 = s.arg4; + s.callLocIdx = 390; s.pc = 1; return s.tmp_0; case 1: - case 2: - setupResume(s, 4); - pxsim.basic.pause(s.arg0); - checkResumeConsumed(); - return; - case 4: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -pause__P2371.info = {"start":737,"length":84,"line":23,"column":0,"endLine":26,"endColumn":1,"fileName":"pxt_modules/core/basic.ts","functionName":"pause","argumentNames":["ms"]} +user_interface_base_Screen_fillRect__P3434.info = {"start":4047,"length":202,"line":158,"column":4,"endLine":166,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"fillRect","argumentNames":["x","y","width","height","c"]} -function pause__P2371_mk(s) { +function user_interface_base_Screen_fillRect__P3434_mk(s) { checkStack(s.depth); return { - parent: s, fn: pause__P2371, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_fillRect__P3434, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, } } - -function control_runInParallel__P2441(s) { +function accessibility_ariaToTooltip__P3492(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30625,26 +33577,39 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim.control.inBackground(s.arg0); - r0 = undefined; + s.tmp_0 = helpers_stringReplaceAll__P2146_mk(s); + s.tmp_1 = lambda_2_mk(s); + s.tmp_1.argL = globals.resolveTooltip___3462; + s.tmp_1.arg0 = s.arg0; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 481; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = "_"; + s.tmp_0.arg2 = " "; + s.callLocIdx = 482; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; return leave(s, r0) default: oops() } } } -control_runInParallel__P2441.info = {"start":195,"length":85,"line":10,"column":4,"endLine":12,"endColumn":5,"fileName":"pxt_modules/core/control.ts","functionName":"runInParallel","argumentNames":["a"]} +accessibility_ariaToTooltip__P3492.info = {"start":1215,"length":132,"line":46,"column":4,"endLine":48,"endColumn":5,"fileName":"pxt_modules/user-interface-base/accessibility.ts","functionName":"ariaToTooltip","argumentNames":["ariaId"]} -function control_runInParallel__P2441_mk(s) { +function accessibility_ariaToTooltip__P3492_mk(s) { checkStack(s.depth); return { - parent: s, fn: control_runInParallel__P2441, depth: s.depth + 1, + parent: s, fn: accessibility_ariaToTooltip__P3492, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function scene_consoleOverlay_listener__P5063(s) { +function helpers_stringReplaceAll__P2146(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30654,139 +33619,204 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.consoleColumns___13783 = undefined; - s.consoleLines___13796 = undefined; + s.split___14771 = undefined; + s.empty___14777 = undefined; + s.output___14781 = undefined; + s.i___14796 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(globals.theScreen___3308); + if ((s.arg1) && (s.arg1).vtable) { + setupResume(s, 11); + pxsim_String__stringConv(s.arg1); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg1) + ""; } + case 11: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_String_.mkEmpty(); s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.arg1 = (r0); + s.tmp_0 = helpers_stringSplit__P2151_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = undefined; + s.callLocIdx = 11; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.split___14771 = (r0); + r0 = pxsim_numops_toBoolDecr(s.arg1); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = pxsim_Boolean__bang(s.tmp_0); + s.empty___14777 = (r0); + r0 = pxsim_numops_toBoolDecr(s.empty___14777); if (!r0) { step = 1; continue; } - r0 = s.tmp_0; + s.tmp_0 = applyReplace__P14784_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.arg2; + s.callLocIdx = 13; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; { step = 2; continue; } case 1: - r0 = pxsim_numops_toBoolDecr(globals.consoleStrings___5051); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); + r0 = pxsim_String_.mkEmpty(); case 2: // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); + s.tmp_1 = r0; + s.output___14781 = (s.tmp_1); + r0 = pxsim_Array__length(s.split___14771); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - r0 = s.tmp_3; - { step = 4; continue; } + if ((s.output___14781) && (s.output___14781).vtable) { + setupResume(s, 14); + pxsim_String__stringConv(s.output___14781); + checkResumeConsumed(); + return; + } else { s.retval = (s.output___14781) + ""; } + case 14: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.split___14771, 0); + s.tmp_3 = r0; + if ((s.tmp_3) && (s.tmp_3).vtable) { + setupResume(s, 15); + pxsim_String__stringConv(s.tmp_3); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_3) + ""; } + case 15: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_String__concat(s.tmp_1, s.tmp_2); + s.output___14781 = (r0); case 3: - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_4 = r0; - r0 = pxsim_Boolean__bang(s.tmp_4); case 4: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 5; continue; } - { step = 9; continue; } + s.i___14796 = (1); case 5: - case 6: - r0 = pxsim.BitmapMethods.width(globals.theScreen___3308); - s.tmp_8 = r0; - r0 = (s.tmp_8 - 8); + s.tmp_1 = r0 = s.i___14796; + r0 = pxsim_Array__length(s.split___14771); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + if ((s.output___14781) && (s.output___14781).vtable) { + setupResume(s, 16); + pxsim_String__stringConv(s.output___14781); + checkResumeConsumed(); + return; + } else { s.retval = (s.output___14781) + ""; } + case 16: + r0 = s.retval; + s.tmp_3 = r0; + s.tmp_8 = applyReplace__P14784_mk(s); + s.tmp_8.arg0 = s.arg1; + s.tmp_8.arg1 = s.arg2; + s.callLocIdx = 14; s.pc = 17; return s.tmp_8; + case 17: + r0 = s.retval; s.tmp_7 = r0; - s.tmp_10 = if_charWidth_1_mk(s); - s.tmp_10.arg0 = globals.consoleFont___5060; - if (!s.tmp_10.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_10.arg0, "charWidth"); - } else { - s.tmp_10.fn = s.tmp_10.arg0.vtable.iface["charWidth"]; - if (s.tmp_10.fn == null) { s.retval = s.tmp_10.arg0.fields["charWidth"]; } - else if (!s.tmp_10.fn.isGetter) { s.retval = bind(s.tmp_10); } - else { s.callLocIdx = 195; s.pc = 10; return s.tmp_10; } - } - case 10: + if ((s.tmp_7) && (s.tmp_7).vtable) { + setupResume(s, 18); + pxsim_String__stringConv(s.tmp_7); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_7) + ""; } + case 18: r0 = s.retval; - s.tmp_9 = r0; - r0 = (s.tmp_7 / s.tmp_9); s.tmp_6 = r0; - r0 = pxsim.Math_.floor(s.tmp_6); - s.consoleColumns___13783 = (r0); - r0 = pxsim.BitmapMethods.height(globals.theScreen___3308); - s.tmp_2 = r0; - s.tmp_5 = if_charHeight_1_mk(s); - s.tmp_5.arg0 = globals.consoleFont___5060; - if (!s.tmp_5.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "charHeight"); - } else { - s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["charHeight"]; - if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["charHeight"]; } - else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } - else { s.callLocIdx = 196; s.pc = 11; return s.tmp_5; } - } - case 11: + r0 = pxsim_Array__getAt(s.split___14771, s.i___14796); + s.tmp_10 = r0; + if ((s.tmp_10) && (s.tmp_10).vtable) { + setupResume(s, 19); + pxsim_String__stringConv(s.tmp_10); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_10) + ""; } + case 19: + r0 = s.retval; + s.tmp_9 = r0; + r0 = pxsim_String__concat(s.tmp_6, s.tmp_9); + s.tmp_5 = r0; + if ((s.tmp_5) && (s.tmp_5).vtable) { + setupResume(s, 20); + pxsim_String__stringConv(s.tmp_5); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_5) + ""; } + case 20: r0 = s.retval; s.tmp_4 = r0; - r0 = (s.tmp_4 + 2); + r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); + s.output___14781 = (r0); + r0 = (s.i___14796 + 1); + s.i___14796 = (r0); + { step = 5; continue; } + case 6: + r0 = pxsim_numops_toBoolDecr(s.arg0); s.tmp_3 = r0; - r0 = (s.tmp_2 / s.tmp_3); + r0 = pxsim_Boolean__bang(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; - r0 = pxsim.Math_.floor(s.tmp_1); - s.tmp_0 = r0; - r0 = (s.tmp_0 - 1); - s.consoleLines___13796 = (r0); - r0 = pxsim_pxtcore_mkAction(1, scene_consoleOverlay_listener_inline__P13817); + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.consoleColumns___13783); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = helpers_arrayFilter__P2139_mk(s); - s.tmp_3 = helpers_stringSplit__P2151_mk(s); - s.tmp_3.arg0 = s.arg1; - s.tmp_3.arg1 = "\n"; - s.tmp_3.arg2 = undefined; - s.callLocIdx = 197; s.pc = 14; return s.tmp_3; - case 14: - r0 = s.retval; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = forEach_inline__P13812; - s.callLocIdx = 198; s.pc = 13; return s.tmp_2; - case 13: + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 7; continue; } + r0 = s.tmp_0; + { step = 8; continue; } + case 7: + r0 = s.empty___14777; + case 8: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 9; continue; } + if ((s.output___14781) && (s.output___14781).vtable) { + setupResume(s, 21); + pxsim_String__stringConv(s.output___14781); + checkResumeConsumed(); + return; + } else { s.retval = (s.output___14781) + ""; } + case 21: r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 200; s.pc = 12; return s.tmp_1; - case 12: + s.tmp_5 = r0; + s.tmp_8 = applyReplace__P14784_mk(s); + s.tmp_8.arg0 = s.arg1; + s.tmp_8.arg1 = s.arg2; + s.callLocIdx = 16; s.pc = 22; return s.tmp_8; + case 22: r0 = s.retval; - r0 = pxsim_Array__length(globals.consoleStrings___5051); - s.tmp_1 = r0; - r0 = (s.tmp_1 > s.consoleLines___13796); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.tmp_2 = helpers_arraySplice__P2129_mk(s); - s.tmp_2.arg0 = globals.consoleStrings___5051; - s.tmp_2.arg1 = 0; - r0 = pxsim_Array__length(globals.consoleStrings___5051); - s.tmp_3 = r0; - r0 = (s.tmp_3 - s.consoleLines___13796); - s.tmp_2.arg2 = r0; - s.callLocIdx = 201; s.pc = 15; return s.tmp_2; - case 15: + s.tmp_7 = r0; + if ((s.tmp_7) && (s.tmp_7).vtable) { + setupResume(s, 23); + pxsim_String__stringConv(s.tmp_7); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_7) + ""; } + case 23: r0 = s.retval; - case 7: - case 8: + s.tmp_6 = r0; + r0 = pxsim_String__concat(s.tmp_5, s.tmp_6); + s.output___14781 = (r0); case 9: - r0 = undefined; + case 10: + r0 = s.output___14781; return leave(s, r0) default: oops() } } } -scene_consoleOverlay_listener__P5063.info = {"start":604,"length":786,"line":24,"column":4,"endLine":43,"endColumn":5,"fileName":"pxt_modules/display-shield/console.ts","functionName":"listener","argumentNames":["priority","text"]} +helpers_stringReplaceAll__P2146.info = {"start":10239,"length":919,"line":346,"column":4,"endLine":374,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringReplaceAll","argumentNames":["s","toReplace","replacer"]} -function scene_consoleOverlay_listener__P5063_mk(s) { +function helpers_stringReplaceAll__P2146_mk(s) { checkStack(s.depth); return { - parent: s, fn: scene_consoleOverlay_listener__P5063, depth: s.depth + 1, + parent: s, fn: helpers_stringReplaceAll__P2146, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -30799,17 +33829,19 @@ function scene_consoleOverlay_listener__P5063_mk(s) { tmp_8: undefined, tmp_9: undefined, tmp_10: undefined, - consoleColumns___13783: undefined, - consoleLines___13796: undefined, + split___14771: undefined, + empty___14777: undefined, + output___14781: undefined, + i___14796: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function forEach_inline__P13812(s) { +function applyReplace__P14784(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30821,36 +33853,64 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); + r0 = pxsim_pxtcore.typeOf(s.arg1); s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); + r0 = (s.tmp_1 == "string"); s.tmp_0 = r0; - r0 = pxsim_Boolean__bang(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 3; continue; } + r0 = s.arg1; + { step = 5; continue; } + { step = 4; continue; } + case 3: + s.tmp_4 = lambda_2_mk(s); + s.tmp_4.argL = s.arg1; + s.tmp_4.arg0 = s.arg0; + setupLambda(s.tmp_4, s.tmp_4.argL); + s.callLocIdx = 17; s.pc = 6; return s.tmp_4; + case 6: + r0 = s.retval; + { step = 5; continue; } + case 4: + r0 = undefined; + case 5: return leave(s, r0) default: oops() } } } -forEach_inline__P13812.info = {"start":1017,"length":14,"line":33,"column":20,"endLine":33,"endColumn":34,"fileName":"pxt_modules/display-shield/console.ts","functionName":"inline","argumentNames":["line"]} +applyReplace__P14784.info = {"start":10880,"length":272,"line":367,"column":8,"endLine":373,"endColumn":9,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"applyReplace","argumentNames":["r","replacer"]} -function forEach_inline__P13812_mk(s) { +function applyReplace__P14784_mk(s) { checkStack(s.depth); return { - parent: s, fn: forEach_inline__P13812, depth: s.depth + 1, + parent: s, fn: applyReplace__P14784, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, } } - -function scene_consoleOverlay_listener_inline__P13817(s) { +function helpers_stringEmpty__P2154(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30860,61 +33920,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.j___13819 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.j___13819 = (0); - case 1: - s.tmp_1 = r0 = s.j___13819; - r0 = pxsim_String_.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = pxsim_numops_toBoolDecr(s.arg0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_3 = r0 = globals.consoleStrings___5051; - s.tmp_5 = helpers_stringSlice__P2148_mk(s); - s.tmp_5.arg0 = s.arg0; - s.tmp_5.arg1 = s.j___13819; - r0 = (s.j___13819 + s.caps[0]); - s.tmp_5.arg2 = r0; - s.callLocIdx = 199; s.pc = 3; return s.tmp_5; - case 3: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_Array__push(s.tmp_3, s.tmp_4); - r0 = (s.j___13819 + s.caps[0]); - s.j___13819 = (r0); - { step = 1; continue; } - case 2: - r0 = undefined; + r0 = pxsim_Boolean__bang(s.tmp_0); return leave(s, r0) default: oops() } } } -scene_consoleOverlay_listener_inline__P13817.info = {"start":1054,"length":189,"line":34,"column":21,"endLine":38,"endColumn":13,"fileName":"pxt_modules/display-shield/console.ts","functionName":"inline","argumentNames":["line"]} +helpers_stringEmpty__P2154.info = {"start":15544,"length":74,"line":522,"column":4,"endLine":524,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringEmpty","argumentNames":["S"]} -function scene_consoleOverlay_listener_inline__P13817_mk(s) { +function helpers_stringEmpty__P2154_mk(s) { checkStack(s.depth); return { - parent: s, fn: scene_consoleOverlay_listener_inline__P13817, depth: s.depth + 1, + parent: s, fn: helpers_stringEmpty__P2154, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - j___13819: undefined, arg0: undefined, } } - -function console_addListener__P2531(s) { +function user_interface_base_Screen_outlineBoundsXfrm__P3438(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -30924,198 +33954,195 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.w___14856 = undefined; + s.left___14859 = undefined; + s.top___14865 = undefined; + s.right___14871 = undefined; + s.bottom___14877 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(globals.listeners___4853); + r0 = pxsim_numops_toBoolDecr(s.arg3); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_Array__mk(); - globals.listeners___4853 = (r0); + { step = 5; continue; } case 1: case 2: - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = s.tmp_0; - { step = 4; continue; } - case 3: - r0 = pxsim_Array_.indexOf(globals.listeners___4853, s.arg0, undefined); - s.tmp_2 = r0; - r0 = (s.tmp_2 > -1); - case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 5; continue; } - { step = 7; continue; } - case 5: + s.tmp_2 = user_interface_base_Affine_worldPos__P3325_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 396; s.pc = 6; return s.tmp_2; case 6: - r0 = pxsim_Array__push(globals.listeners___4853, s.arg0); - case 7: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -console_addListener__P2531.info = {"start":3264,"length":236,"line":114,"column":4,"endLine":118,"endColumn":5,"fileName":"pxt_modules/core/console.ts","functionName":"addListener","argumentNames":["listener"]} - -function console_addListener__P2531_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: console_addListener__P2531, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, -} } - - - - - -function settings_initScopes__P5020(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.rn___13870 = undefined; - s.tmp_1 = settings_runNumber__P3091_mk(s); - s.callLocIdx = 177; s.pc = 1; return s.tmp_1; - case 1: r0 = s.retval; + s.w___14856 = (r0); + r0 = s.arg1.fields["left"]; s.tmp_0 = r0; - r0 = (s.tmp_0 + 1); - s.rn___13870 = (r0); - s.tmp_0 = settings_writeNumber__P3096_mk(s); - s.tmp_0.arg0 = globals.RUN_KEY___5008; - s.tmp_0.arg1 = s.rn___13870; - s.callLocIdx = 178; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - r0 = pxsim.control.deviceSerialNumber(); + r0 = s.w___14856.fields["x_"]; s.tmp_1 = r0; - r0 = (s.tmp_1 & 2147483647); + r0 = (s.tmp_0 + s.tmp_1); + s.left___14859 = (r0); + r0 = s.arg1.fields["top"]; s.tmp_0 = r0; - r0 = pxsim_pxtcore.seedAddRandom(s.tmp_0); - r0 = pxsim_pxtcore.seedAddRandom(s.rn___13870); - s.tmp_0 = settings_setScope__P5019_mk(s); - r0 = pxsim_pxtcore.programName(); - s.tmp_0.arg0 = r0; - s.callLocIdx = 179; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -settings_initScopes__P5020.info = {"start":1104,"length":230,"line":41,"column":4,"endLine":49,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"initScopes","argumentNames":[]} - -function settings_initScopes__P5020_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: settings_initScopes__P5020, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - rn___13870: undefined, -} } - - - - - -function settings_setScope__P5019(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.currScope___13899 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_numops_toBoolDecr(s.arg0); + r0 = s.w___14856.fields["y_"]; s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (s.tmp_0 + s.tmp_1); + s.top___14865 = (r0); + r0 = s.arg1.fields["left"]; + s.tmp_2 = r0; + r0 = s.arg1.fields["width"]; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 - 1); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = pxsim_String_.length(s.arg0); + r0 = s.w___14856.fields["x_"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.right___14871 = (r0); + r0 = s.arg1.fields["top"]; s.tmp_2 = r0; - r0 = (s.tmp_2 > 100); - case 2: - // jmp value (already in r0) + r0 = s.arg1.fields["height"]; s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 3; continue; } - r0 = pxsim_pxtrt.panic(922); - case 3: - case 4: - s.tmp_0 = settings_readString__P3099_mk(s); - s.tmp_0.arg0 = globals.SCOPE_KEY___5009; - s.callLocIdx = 175; s.pc = 7; return s.tmp_0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 - 1); + s.tmp_0 = r0; + r0 = s.w___14856.fields["y_"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.bottom___14877 = (r0); + s.tmp_0 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.left___14859 - s.arg2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.top___14865; + r0 = (s.left___14859 - s.arg2); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = s.bottom___14877; + s.tmp_0.arg4 = s.arg3; + s.callLocIdx = 403; s.pc = 7; return s.tmp_0; case 7: r0 = s.retval; - s.currScope___13899 = (r0); - r0 = (s.currScope___13899 != s.arg0); + s.tmp_0 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.right___14871 + s.arg2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.top___14865; + r0 = (s.right___14871 + s.arg2); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = s.bottom___14877; + s.tmp_0.arg4 = s.arg3; + s.callLocIdx = 404; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_drawLine__P3429_mk(s); + s.tmp_0.arg0 = s.left___14859; + r0 = (s.top___14865 - s.arg2); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.right___14871; + r0 = (s.top___14865 - s.arg2); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = s.arg3; + s.callLocIdx = 405; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_drawLine__P3429_mk(s); + s.tmp_0.arg0 = s.left___14859; + r0 = (s.bottom___14877 + s.arg2); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.right___14871; + r0 = (s.bottom___14877 + s.arg2); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = s.arg3; + s.callLocIdx = 406; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + r0 = (s.arg2 > 1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = pxsim.settings._userClean(); - s.tmp_0 = settings_writeString__P3094_mk(s); - s.tmp_0.arg0 = globals.SCOPE_KEY___5009; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 176; s.pc = 8; return s.tmp_0; - case 8: + if (!r0) { step = 3; continue; } + s.tmp_1 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.left___14859 - s.arg2); + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.top___14865; + s.tmp_1.arg2 = s.left___14859; + r0 = (s.top___14865 - s.arg2); + s.tmp_1.arg3 = r0; + s.tmp_1.arg4 = s.arg3; + s.callLocIdx = 407; s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.right___14871 + s.arg2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.top___14865; + s.tmp_0.arg2 = s.right___14871; + r0 = (s.top___14865 - s.arg2); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = s.arg3; + s.callLocIdx = 408; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.left___14859 - s.arg2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.bottom___14877; + s.tmp_0.arg2 = s.left___14859; + r0 = (s.bottom___14877 + s.arg2); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = s.arg3; + s.callLocIdx = 409; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.right___14871 + s.arg2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.bottom___14877; + s.tmp_0.arg2 = s.right___14871; + r0 = (s.bottom___14877 + s.arg2); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = s.arg3; + s.callLocIdx = 410; s.pc = 14; return s.tmp_0; + case 14: r0 = s.retval; + case 3: + case 4: case 5: - case 6: r0 = undefined; return leave(s, r0) default: oops() } } } -settings_setScope__P5019.info = {"start":826,"length":272,"line":31,"column":4,"endLine":39,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"setScope","argumentNames":["scope"]} +user_interface_base_Screen_outlineBoundsXfrm__P3438.info = {"start":5015,"length":1059,"line":203,"column":4,"endLine":237,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"outlineBoundsXfrm","argumentNames":["xfrm","bounds","dist","c"]} -function settings_setScope__P5019_mk(s) { +function user_interface_base_Screen_outlineBoundsXfrm__P3438_mk(s) { checkStack(s.depth); return { - parent: s, fn: settings_setScope__P5019, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_outlineBoundsXfrm__P3438, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - currScope___13899: undefined, + tmp_4: undefined, + w___14856: undefined, + left___14859: undefined, + top___14865: undefined, + right___14871: undefined, + bottom___14877: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function settings_writeString__P3094(s) { +function user_interface_base_Screen_drawLine__P3429(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31128,36 +34155,53 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - s.tmp_0 = settings_writeBuffer__P3093_mk(s); - s.tmp_0.arg0 = s.arg0; - r0 = pxsim.control.createBufferFromUTF8(s.arg1); + s.tmp_0 = helpers_imageDrawLine__P3111_mk(s); + s.tmp_1 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 381; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg0 = r0; + r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_WIDTH___3414); s.tmp_0.arg1 = r0; - s.callLocIdx = 181; s.pc = 1; return s.tmp_0; + r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_HEIGHT___3415); + s.tmp_0.arg2 = r0; + r0 = (s.arg2 + globals.user_interface_base_Screen_HALF_WIDTH___3414); + s.tmp_0.arg3 = r0; + r0 = (s.arg3 + globals.user_interface_base_Screen_HALF_HEIGHT___3415); + s.tmp_0.arg4 = r0; + s.tmp_0.arg5 = s.arg4; + s.callLocIdx = 386; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -settings_writeString__P3094.info = {"start":1895,"length":125,"line":75,"column":4,"endLine":77,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"writeString","argumentNames":["key","value"]} +user_interface_base_Screen_drawLine__P3429.info = {"start":2549,"length":260,"line":86,"column":4,"endLine":100,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"drawLine","argumentNames":["x0","y0","x1","y1","c"]} -function settings_writeString__P3094_mk(s) { +function user_interface_base_Screen_drawLine__P3429_mk(s) { checkStack(s.depth); return { - parent: s, fn: settings_writeString__P3094, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_drawLine__P3429, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, } } - -function settings_writeBuffer__P3093(s) { +function user_interface_base_Bounds_bottom__P3343(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31169,38 +34213,38 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim.settings._set(s.arg0, s.arg1); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + r0 = s.arg0.fields["top"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_2 = r0; + r0 = (s.tmp_1 + s.tmp_2); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim.settings._userClean(); - r0 = pxsim_pxtrt.panic(920); - case 1: - case 2: - r0 = undefined; - return leave(s, r0) + r0 = (s.tmp_0 - 1); + return leaveAccessor(s, r0) default: oops() } } } -settings_writeBuffer__P3093.info = {"start":1538,"length":290,"line":63,"column":4,"endLine":70,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"writeBuffer","argumentNames":["key","value"]} +user_interface_base_Bounds_bottom__P3343.info = {"start":470,"length":77,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"bottom","argumentNames":["this"]} +user_interface_base_Bounds_bottom__P3343.isGetter = true; -function settings_writeBuffer__P3093_mk(s) { +function user_interface_base_Bounds_bottom__P3343_mk(s) { checkStack(s.depth); return { - parent: s, fn: settings_writeBuffer__P3093, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_bottom__P3343, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function settings_readString__P3099(s) { +function user_interface_base_Bounds_right__P3341(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31210,49 +34254,40 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.buf___13930 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim.settings._get(s.arg0); - s.buf___13930 = (r0); - r0 = pxsim_numops_toBoolDecr(s.buf___13930); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + r0 = s.arg0.fields["left"]; s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = s.arg0.fields["width"]; + s.tmp_2 = r0; + r0 = (s.tmp_1 + s.tmp_2); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = undefined; - { step = 3; continue; } - { step = 2; continue; } - case 1: - r0 = pxsim.BufferMethods.toString(s.buf___13930); - { step = 3; continue; } - case 2: - r0 = undefined; - case 3: - return leave(s, r0) + r0 = (s.tmp_0 - 1); + return leaveAccessor(s, r0) default: oops() } } } -settings_readString__P3099.info = {"start":2827,"length":177,"line":110,"column":4,"endLine":116,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"readString","argumentNames":["key"]} +user_interface_base_Bounds_right__P3341.info = {"start":234,"length":76,"line":7,"column":8,"endLine":9,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"right","argumentNames":["this"]} +user_interface_base_Bounds_right__P3341.isGetter = true; -function settings_readString__P3099_mk(s) { +function user_interface_base_Bounds_right__P3341_mk(s) { checkStack(s.depth); return { - parent: s, fn: settings_readString__P3099, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_right__P3341, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - buf___13930: undefined, + tmp_2: undefined, arg0: undefined, } } - -function settings_writeNumber__P3096(s) { +function user_interface_base_Affine_worldPos__P3325(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31264,46 +34299,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__mk(); - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.arg1); - s.tmp_1 = settings_writeBuffer__P3093_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_2 = msgpack_packNumberArray__P2773_mk(s); - s.tmp_2.arg0 = s.tmp_0; - s.callLocIdx = 182; s.pc = 2; return s.tmp_2; - case 2: - r0 = s.retval; - s.tmp_1.arg1 = r0; - s.callLocIdx = 183; s.pc = 1; return s.tmp_1; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Affine__C3324_VT)) failedCast(r0, user_interface_base_Affine__C3324_VT); + s.tmp_0 = user_interface_base_Affine_computeWorldPos__P5151_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 295; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = undefined; - return leave(s, r0) + return leaveAccessor(s, r0) default: oops() } } } -settings_writeNumber__P3096.info = {"start":2265,"length":122,"line":89,"column":4,"endLine":91,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"writeNumber","argumentNames":["key","value"]} +user_interface_base_Affine_worldPos__P3325.info = {"start":563,"length":75,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"worldPos","argumentNames":["this"]} +user_interface_base_Affine_worldPos__P3325.isGetter = true; -function settings_writeNumber__P3096_mk(s) { +function user_interface_base_Affine_worldPos__P3325_mk(s) { checkStack(s.depth); return { - parent: s, fn: settings_writeNumber__P3096, depth: s.depth + 1, + parent: s, fn: user_interface_base_Affine_worldPos__P3325, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function msgpack_packNumberArray__P2773(s) { +function user_interface_base_Affine_computeWorldPos__P5151(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31313,108 +34336,70 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.off___13948 = undefined; - s.n___13950 = undefined; - s.unnamed38___U2 = undefined; - s.unnamed39___U3 = undefined; - s.buf___13960 = undefined; - s.n___13966 = undefined; - s.unnamed40___U6 = undefined; - s.unnamed41___U7 = undefined; + s.pos___14998 = undefined; + s.parent___15005 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.off___13948 = (0); - s.n___13950 = (undefined); - s.unnamed38___U2 = (s.arg0); - s.unnamed39___U3 = (0); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Affine__C3324_VT)) failedCast(r0, user_interface_base_Affine__C3324_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = 0; + s.tmp_1.arg2 = 0; + s.callLocIdx = 301; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.pos___14998 = (s.tmp_0); + s.tmp_0 = user_interface_base_Vec2_copyFrom__P3391_mk(s); + s.tmp_0.arg0 = s.pos___14998; + r0 = s.arg0.fields["localPos_"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 302; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + r0 = s.arg0.fields["parent_"]; + s.parent___15005 = (r0); case 1: - s.tmp_0 = r0 = s.unnamed39___U3; - r0 = pxsim_Array__length(s.unnamed38___U2); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); + r0 = pxsim_numops_toBoolDecr(s.parent___15005); if (!r0) { step = 2; continue; } - r0 = pxsim_Array__getAt(s.unnamed38___U2, s.unnamed39___U3); - s.n___13950 = (r0); - s.tmp_2 = r0 = s.off___13948; - s.tmp_4 = msgpack_packNumberCore__P4908_mk(s); - s.tmp_4.arg0 = null; - s.tmp_4.arg1 = s.off___13948; - s.tmp_4.arg2 = s.n___13950; - s.callLocIdx = 73; s.pc = 5; return s.tmp_4; + s.tmp_0 = user_interface_base_Vec2_TranslateToRef__P3398_mk(s); + s.tmp_0.arg0 = s.pos___14998; + r0 = s.parent___15005.fields["localPos_"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.pos___14998; + s.callLocIdx = 304; s.pc = 5; return s.tmp_0; case 5: r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.off___13948 = (r0); - r0 = (s.unnamed39___U3 + 1); - s.unnamed39___U3 = (r0); + r0 = s.parent___15005.fields["parent_"]; + s.parent___15005 = (r0); { step = 1; continue; } case 2: - s.unnamed38___U2 = (undefined); - r0 = pxsim.control.createBuffer(s.off___13948); - s.buf___13960 = (r0); - s.off___13948 = (0); - s.n___13966 = (undefined); - s.unnamed40___U6 = (s.arg0); - s.unnamed41___U7 = (0); - case 3: - s.tmp_0 = r0 = s.unnamed41___U7; - r0 = pxsim_Array__length(s.unnamed40___U6); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.unnamed40___U6, s.unnamed41___U7); - s.n___13966 = (r0); - s.tmp_2 = r0 = s.off___13948; - s.tmp_4 = msgpack_packNumberCore__P4908_mk(s); - s.tmp_4.arg0 = s.buf___13960; - s.tmp_4.arg1 = s.off___13948; - s.tmp_4.arg2 = s.n___13966; - s.callLocIdx = 74; s.pc = 6; return s.tmp_4; - case 6: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.off___13948 = (r0); - r0 = (s.unnamed41___U7 + 1); - s.unnamed41___U7 = (r0); - { step = 3; continue; } - case 4: - s.unnamed40___U6 = (undefined); - r0 = s.buf___13960; + r0 = s.pos___14998; return leave(s, r0) default: oops() } } } -msgpack_packNumberArray__P2773.info = {"start":3427,"length":330,"line":117,"column":4,"endLine":128,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"packNumberArray","argumentNames":["nums"]} +user_interface_base_Affine_computeWorldPos__P5151.info = {"start":1663,"length":325,"line":58,"column":8,"endLine":67,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"computeWorldPos","argumentNames":["this"]} -function msgpack_packNumberArray__P2773_mk(s) { +function user_interface_base_Affine_computeWorldPos__P5151_mk(s) { checkStack(s.depth); return { - parent: s, fn: msgpack_packNumberArray__P2773, depth: s.depth + 1, + parent: s, fn: user_interface_base_Affine_computeWorldPos__P5151, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - off___13948: undefined, - n___13950: undefined, - unnamed38___U2: undefined, - unnamed39___U3: undefined, - buf___13960: undefined, - n___13966: undefined, - unnamed40___U6: undefined, - unnamed41___U7: undefined, + pos___14998: undefined, + parent___15005: undefined, arg0: undefined, } } - -function msgpack_packNumberCore__P4908(s) { +function user_interface_base_Vec2_TranslateToRef__P3398(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31424,144 +34409,48 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tag___13980 = undefined; - s.fmt___14023 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tag___13980 = (203); - s.tmp_1 = r0 = s.arg2; - r0 = (s.arg2 << 0); + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_0.arg0 = s.arg2; + r0 = s.arg0.fields["x_"]; + s.tmp_1 = r0; + r0 = s.arg1.fields["x_"]; s.tmp_2 = r0; - r0 = (s.tmp_1 == s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = (s.tmp_1 + s.tmp_2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 358; s.pc = 1; return s.tmp_0; case 1: - s.tmp_3 = r0 = s.arg2; - r0 = (s.arg2 >>> 0); - s.tmp_4 = r0; - r0 = (s.tmp_3 == s.tmp_4); - case 2: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 19; continue; } - r0 = (-31 <= s.arg2); - s.tmp_6 = r0; - r0 = pxsim_numops_toBool(s.tmp_6); - if (r0) { step = 3; continue; } - r0 = s.tmp_6; - { step = 4; continue; } - case 3: - r0 = (s.arg2 <= 127); - case 4: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 7; continue; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - if (!r0) { step = 5; continue; } - r0 = pxsim.BufferMethods.setByte(s.arg0, s.arg1, s.arg2); - case 5: - case 6: - r0 = 1; - { step = 23; continue; } - { step = 18; continue; } - case 7: - r0 = (0 <= s.arg2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 12; continue; } - r0 = (s.arg2 <= 255); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 8; continue; } - s.tag___13980 = (204); - { step = 11; continue; } - case 8: - r0 = (s.arg2 <= 65535); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - s.tag___13980 = (205); - { step = 10; continue; } - case 9: - s.tag___13980 = (206); - case 10: - case 11: - { step = 17; continue; } - case 12: - r0 = (-127 <= s.arg2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - s.tag___13980 = (208); - { step = 16; continue; } - case 13: - r0 = (-32767 <= s.arg2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - s.tag___13980 = (209); - { step = 15; continue; } - case 14: - s.tag___13980 = (210); - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - s.tmp_0 = msgpack_tagFormat__P4907_mk(s); - s.tmp_0.arg0 = s.tag___13980; - s.callLocIdx = 69; s.pc = 24; return s.tmp_0; - case 24: r0 = s.retval; - s.fmt___14023 = (r0); - r0 = pxsim_numops_toBoolDecr(s.arg0); - if (!r0) { step = 21; continue; } - r0 = pxsim.BufferMethods.setByte(s.arg0, s.arg1, s.tag___13980); - s.tmp_0 = r0 = s.arg0; - s.tmp_1 = r0 = s.fmt___14023; - r0 = (s.arg1 + 1); + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + s.tmp_0.arg0 = s.arg2; + r0 = s.arg0.fields["y_"]; + s.tmp_1 = r0; + r0 = s.arg1.fields["y_"]; s.tmp_2 = r0; - r0 = pxsim.BufferMethods.setNumber(s.tmp_0, s.tmp_1, s.tmp_2, s.arg2); - case 21: - case 22: - s.tmp_1 = pins_sizeOf__P2764_mk(s); - s.tmp_1.arg0 = s.fmt___14023; - s.callLocIdx = 70; s.pc = 25; return s.tmp_1; - case 25: + r0 = (s.tmp_1 + s.tmp_2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 361; s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; - s.tmp_0 = r0; - r0 = (s.tmp_0 + 1); - case 23: + r0 = s.arg2; return leave(s, r0) default: oops() } } } -msgpack_packNumberCore__P4908.info = {"start":1632,"length":951,"line":56,"column":4,"endLine":86,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"packNumberCore","argumentNames":["buf","offset","num"]} +user_interface_base_Vec2_TranslateToRef__P3398.info = {"start":1439,"length":158,"line":63,"column":8,"endLine":67,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"TranslateToRef","argumentNames":["v","p","ref"]} -function msgpack_packNumberCore__P4908_mk(s) { +function user_interface_base_Vec2_TranslateToRef__P3398_mk(s) { checkStack(s.depth); return { - parent: s, fn: msgpack_packNumberCore__P4908, depth: s.depth + 1, + parent: s, fn: user_interface_base_Vec2_TranslateToRef__P3398, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tag___13980: undefined, - fmt___14023: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -31570,8 +34459,7 @@ function msgpack_packNumberCore__P4908_mk(s) { - -function pins_sizeOf__P2764(s) { +function user_interface_base_Vec2_copyFrom__P3391(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31583,32 +34471,45 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = Buffer_sizeOfNumberFormat__P2804_mk(s); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Vec2__C3384_VT)) failedCast(r0, user_interface_base_Vec2__C3384_VT); + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 68; s.pc = 1; return s.tmp_0; + r0 = s.arg1.fields["x_"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 353; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = s.arg1.fields["y_"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 355; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = s.arg0; return leave(s, r0) default: oops() } } } -pins_sizeOf__P2764.info = {"start":42,"length":101,"line":2,"column":4,"endLine":4,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"sizeOf","argumentNames":["format"]} +user_interface_base_Vec2_copyFrom__P3391.info = {"start":541,"length":116,"line":25,"column":8,"endLine":29,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"copyFrom","argumentNames":["this","v"]} -function pins_sizeOf__P2764_mk(s) { +function user_interface_base_Vec2_copyFrom__P3391_mk(s) { checkStack(s.depth); return { - parent: s, fn: pins_sizeOf__P2764, depth: s.depth + 1, + parent: s, fn: user_interface_base_Vec2_copyFrom__P3391, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function Buffer_sizeOfNumberFormat__P2804(s) { +function user_interface_base_Picker_draw__P3733(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31618,91 +34519,136 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.w___15061 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(6, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(7, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(8, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(9, s.tmp_0); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); - if (r0) { step = 9; continue; } - r0 = pxsim_pxtcore.switch_eq(10, s.tmp_0); - if (r0) { step = 10; continue; } - r0 = pxsim_pxtcore.switch_eq(12, s.tmp_0); - if (r0) { step = 11; continue; } - r0 = pxsim_pxtcore.switch_eq(11, s.tmp_0); - if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq(15, s.tmp_0); - if (r0) { step = 13; continue; } - r0 = pxsim_pxtcore.switch_eq(13, s.tmp_0); - if (r0) { step = 14; continue; } - r0 = pxsim_pxtcore.switch_eq(16, s.tmp_0); - if (r0) { step = 15; continue; } - r0 = pxsim_pxtcore.switch_eq(14, s.tmp_0); - if (r0) { step = 16; continue; } - r0 = s.tmp_0; - { step = 17; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); + r0 = s.arg0.fields["visible"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 9; continue; } case 1: case 2: + s.tmp_3 = user_interface_base_Screen_fillBoundsXfrm__P3436_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_3.arg0 = r0; + r0 = s.arg0.fields["panel"]; + s.tmp_3.arg1 = r0; + s.tmp_3.arg2 = 12; + s.callLocIdx = 727; s.pc = 10; return s.tmp_3; + case 10: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_outlineBoundsXfrm__P3438_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["panel"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = 1; + s.tmp_0.arg3 = 15; + s.callLocIdx = 729; s.pc = 11; return s.tmp_0; + case 11: + r0 = s.retval; + r0 = s.arg0.fields["title"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 731; s.pc = 12; return s.tmp_1; + case 12: + r0 = s.retval; + s.w___15061 = (r0); + s.tmp_0 = user_interface_base_Screen_print__P3442_mk(s); + r0 = s.arg0.fields["title"]; + s.tmp_0.arg0 = r0; + r0 = s.w___15061.fields["x_"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["panel"]; + r0 = r0.fields["left"]; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 + 2); + s.tmp_0.arg1 = r0; + r0 = s.w___15061.fields["y_"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["panel"]; + r0 = r0.fields["top"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 + s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_4 + 4); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = 1; + s.tmp_0.arg4 = globals.font___3460; + s.tmp_0.arg5 = undefined; + s.callLocIdx = 734; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; case 3: case 4: - r0 = 1; - { step = 18; continue; } + r0 = s.arg0.fields["group"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_1 = user_interface_base_PickerGroup_draw__P5268_mk(s); + r0 = s.arg0.fields["group"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 735; s.pc = 14; return s.tmp_1; + case 14: + r0 = s.retval; case 5: case 6: + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.tmp_1 = user_interface_base_Button__C3638_v0_1_mk(s); + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_1.arg0 = r0; + if (!checkSubtype(s.tmp_1.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_1.arg0, user_interface_base_Button__C3638_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.draw; + s.pc = 15; return s.tmp_1; + case 15: + r0 = s.retval; case 7: case 8: - r0 = 2; - { step = 18; continue; } case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - r0 = 4; - { step = 18; continue; } - case 15: - case 16: - r0 = 8; - { step = 18; continue; } - case 17: - r0 = 0; - case 18: + r0 = undefined; return leave(s, r0) default: oops() } } } -Buffer_sizeOfNumberFormat__P2804.info = {"start":14912,"length":856,"line":508,"column":4,"endLine":532,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"sizeOfNumberFormat","argumentNames":["format"]} +user_interface_base_Picker_draw__P3733.info = {"start":7091,"length":594,"line":217,"column":8,"endLine":233,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"draw","argumentNames":["this"]} -function Buffer_sizeOfNumberFormat__P2804_mk(s) { +function user_interface_base_Picker_draw__P3733_mk(s) { checkStack(s.depth); return { - parent: s, fn: Buffer_sizeOfNumberFormat__P2804, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_draw__P3733, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + w___15061: undefined, arg0: undefined, } } - -function msgpack_tagFormat__P4907(s) { +function user_interface_base_Button_draw__P3657(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31712,72 +34658,95 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.boundaryColour___15101 = undefined; + s.dist___15111 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_pxtcore.switch_eq(203, s.tmp_0); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + s.tmp_0 = user_interface_base_ButtonBase_draw__P3637_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 570; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + r0 = s.arg0.fields["dynamicBoundaryColorsOn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + r0 = s.arg0.fields["selected"]; + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(204, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(205, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(206, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(208, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(209, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(210, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = s.tmp_0; - { step = 8; continue; } + r0 = s.tmp_1; + { step = 2; continue; } case 1: - r0 = 16; - { step = 9; continue; } + r0 = s.arg0.fields["pressable"]; case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } r0 = 7; - { step = 9; continue; } + { step = 4; continue; } case 3: - r0 = 9; - { step = 9; continue; } + r0 = s.arg0.fields["boundaryColor"]; case 4: - r0 = 12; - { step = 9; continue; } + // jmp value (already in r0) + s.tmp_3 = r0; + s.boundaryColour___15101 = (s.tmp_3); + s.dist___15111 = (1); case 5: - r0 = 6; - { step = 9; continue; } + r0 = (s.dist___15111 <= 3); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_1 = user_interface_base_Screen_outlineBoundsXfrm__P3438_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.tmp_2 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_2.arg0 = r0; + s.callLocIdx = 572; s.pc = 11; return s.tmp_2; + case 11: + r0 = s.retval; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.dist___15111; + s.tmp_1.arg3 = s.boundaryColour___15101; + s.callLocIdx = 573; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + r0 = (s.dist___15111 + 1); + s.dist___15111 = (r0); + { step = 5; continue; } case 6: - r0 = 8; - { step = 9; continue; } case 7: - r0 = 10; - { step = 9; continue; } case 8: - r0 = null; - { step = 9; continue; } r0 = undefined; - case 9: return leave(s, r0) default: oops() } } } -msgpack_tagFormat__P4907.info = {"start":1145,"length":481,"line":42,"column":4,"endLine":54,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"tagFormat","argumentNames":["tag"]} +user_interface_base_Button_draw__P3657.info = {"start":9523,"length":749,"line":375,"column":4,"endLine":393,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"draw","argumentNames":["this"]} -function msgpack_tagFormat__P4907_mk(s) { +function user_interface_base_Button_draw__P3657_mk(s) { checkStack(s.depth); return { - parent: s, fn: msgpack_tagFormat__P4907, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_draw__P3657, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + boundaryColour___15101: undefined, + dist___15111: undefined, arg0: undefined, } } - -function settings_runNumber__P3091(s) { +function user_interface_base_ButtonBase_draw__P3637(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31787,42 +34756,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_1 = settings_readNumber__P3101_mk(s); - s.tmp_1.arg0 = globals.RUN_KEY___5008; - s.callLocIdx = 174; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + s.tmp_0 = user_interface_base_ButtonBase_drawStyle__P5244_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 521; s.pc = 1; return s.tmp_0; case 1: - r0 = 0; + r0 = s.retval; + s.tmp_0 = user_interface_base_ButtonBase_drawIcon__P5243_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 522; s.pc = 2; return s.tmp_0; case 2: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = s.tmp_2; + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -settings_runNumber__P3091.info = {"start":745,"length":75,"line":27,"column":4,"endLine":29,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"runNumber","argumentNames":[]} +user_interface_base_ButtonBase_draw__P3637.info = {"start":3731,"length":59,"line":168,"column":4,"endLine":171,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"draw","argumentNames":["this"]} -function settings_runNumber__P3091_mk(s) { +function user_interface_base_ButtonBase_draw__P3637_mk(s) { checkStack(s.depth); return { - parent: s, fn: settings_runNumber__P3091, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_draw__P3637, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, + arg0: undefined, } } - -function settings_readNumber__P3101(s) { +function user_interface_base_ButtonBase_drawIcon__P5243(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31832,77 +34800,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.buf___14082 = undefined; - s.nums___14089 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim.settings._get(s.arg0); - s.buf___14082 = (r0); - r0 = pxsim_numops_toBoolDecr(s.buf___14082); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = undefined; - { step = 7; continue; } - { step = 6; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + s.tmp_0 = user_interface_base_Sprite_draw__P3458_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 523; s.pc = 1; return s.tmp_0; case 1: - s.tmp_2 = msgpack_unpackNumberArray__P2772_mk(s); - s.tmp_2.arg0 = s.buf___14082; - s.tmp_2.arg1 = 0; - s.callLocIdx = 186; s.pc = 8; return s.tmp_2; - case 8: r0 = s.retval; - s.nums___14089 = (r0); - s.tmp_0 = r0 = s.nums___14089; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } - case 2: - r0 = pxsim_Array__length(s.nums___14089); - s.tmp_1 = r0; - r0 = (s.tmp_1 >= 1); - case 3: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.nums___14089, 0); - { step = 7; continue; } - case 4: - case 5: r0 = undefined; - { step = 7; continue; } - case 6: - r0 = undefined; - case 7: return leave(s, r0) default: oops() } } } -settings_readNumber__P3101.info = {"start":3283,"length":313,"line":131,"column":4,"endLine":141,"endColumn":5,"fileName":"pxt_modules/settings/settings.ts","functionName":"readNumber","argumentNames":["key"]} +user_interface_base_ButtonBase_drawIcon__P5243.info = {"start":3796,"length":49,"line":173,"column":4,"endLine":175,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"drawIcon","argumentNames":["this"]} -function settings_readNumber__P3101_mk(s) { +function user_interface_base_ButtonBase_drawIcon__P5243_mk(s) { checkStack(s.depth); return { - parent: s, fn: settings_readNumber__P3101, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_drawIcon__P5243, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - buf___14082: undefined, - nums___14089: undefined, arg0: undefined, } } - -function msgpack_unpackNumberArray__P2772(s) { +function user_interface_base_Sprite_draw__P3458(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -31912,120 +34840,70 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.res___14102 = undefined; - s.fmt___14109 = undefined; - s.v___14118 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__mk(); - s.res___14102 = (r0); - case 1: - s.tmp_1 = r0 = s.arg1; - r0 = pxsim.BufferMethods.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 10; continue; } - s.tmp_3 = r0 = s.arg1; - r0 = (s.tmp_3 + 1); - s.arg1 = (r0); - s.tmp_4 = msgpack_tagFormat__P4907_mk(s); - r0 = pxsim.BufferMethods.getByte(s.arg0, s.tmp_3); - s.tmp_4.arg0 = r0; - s.callLocIdx = 71; s.pc = 12; return s.tmp_4; - case 12: - r0 = s.retval; - s.fmt___14109 = (r0); - r0 = (s.fmt___14109 === null); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + r0 = s.arg0.fields["invisible"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_1 = r0 = s.arg0; - r0 = (s.arg1 - 1); - s.tmp_2 = r0; - r0 = pxsim.BufferMethods.getNumber(s.tmp_1, 6, s.tmp_2); - s.v___14118 = (r0); - r0 = (-31 <= s.v___14118); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } - r0 = s.tmp_0; + if (!r0) { step = 1; continue; } { step = 3; continue; } + case 1: case 2: - r0 = (s.v___14118 <= 127); - case 3: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__push(s.res___14102, s.v___14118); - { step = 5; continue; } + s.tmp_1 = user_interface_base_Screen_drawTransparentImageXfrm__P3428_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["image"]; + s.tmp_1.arg1 = r0; + r0 = s.arg0.fields["image"]; + s.tmp_4 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 >> 1); + s.tmp_2 = r0; + r0 = (0 - s.tmp_2); + s.tmp_1.arg2 = r0; + r0 = s.arg0.fields["image"]; + s.tmp_7 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_7); + s.tmp_6 = r0; + r0 = (s.tmp_6 >> 1); + s.tmp_5 = r0; + r0 = (0 - s.tmp_5); + s.tmp_1.arg3 = r0; + s.callLocIdx = 478; s.pc = 4; return s.tmp_1; case 4: - r0 = null; - { step = 11; continue; } - case 5: - { step = 7; continue; } - case 6: - s.tmp_0 = r0 = s.res___14102; - r0 = pxsim.BufferMethods.getNumber(s.arg0, s.fmt___14109, s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); - s.tmp_0 = r0 = s.arg1; - s.tmp_2 = pins_sizeOf__P2764_mk(s); - s.tmp_2.arg0 = s.fmt___14109; - s.callLocIdx = 72; s.pc = 13; return s.tmp_2; - case 13: r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.arg1 = (r0); - case 7: - case 8: - r0 = pxsim.BufferMethods.getByte(s.arg0, s.arg1); - s.tmp_1 = r0; - r0 = (s.tmp_1 === 193); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = (s.arg1 + 1); - s.arg1 = (r0); - { step = 8; continue; } - case 9: - { step = 1; continue; } - case 10: - r0 = s.res___14102; - case 11: + case 3: + r0 = undefined; return leave(s, r0) default: oops() } } } -msgpack_unpackNumberArray__P2772.info = {"start":2650,"length":669,"line":91,"column":4,"endLine":111,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"unpackNumberArray","argumentNames":["buf","offset"]} +user_interface_base_Sprite_draw__P3458.info = {"start":1842,"length":287,"line":65,"column":8,"endLine":75,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"draw","argumentNames":["this"]} -function msgpack_unpackNumberArray__P2772_mk(s) { +function user_interface_base_Sprite_draw__P3458_mk(s) { checkStack(s.depth); return { - parent: s, fn: msgpack_unpackNumberArray__P2772, depth: s.depth + 1, + parent: s, fn: user_interface_base_Sprite_draw__P3458, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - res___14102: undefined, - fmt___14109: undefined, - v___14118: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_IconFieldEditor_fromBuffer__P4429(s) { +function user_interface_base_Screen_drawTransparentImageXfrm__P3428(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32035,67 +34913,51 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.buf___14161 = undefined; - s.img___14166 = undefined; - s.index___14169 = undefined; - s.byte___14173 = undefined; - s.bit___14176 = undefined; - s.col___14179 = undefined; - s.row___14182 = undefined; + s.w___15154 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconFieldEditor__C4423_VT)) failedCast(r0, microcode_IconFieldEditor__C4423_VT); - s.tmp_0 = microcode_BufferReader_readBuffer__P4491_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = 4; - s.callLocIdx = 1549; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.buf___14161 = (r0); - r0 = pxsim.bitmaps.create(5, 5); - s.img___14166 = (r0); - s.index___14169 = (0); + s.tmp_0 = user_interface_base_Affine_worldPos__P3325_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 375; s.pc = 1; return s.tmp_0; case 1: - r0 = (s.index___14169 < 25); + r0 = s.retval; + s.w___15154 = (r0); + s.tmp_1 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 376; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = (s.index___14169 >> 3); - s.byte___14173 = (r0); - r0 = (s.index___14169 & 7); - s.bit___14176 = (r0); - r0 = (s.index___14169 % 5); - s.col___14179 = (r0); - r0 = pxsim.Math_.idiv(s.index___14169, 5); - s.row___14182 = (r0); - s.tmp_0 = r0 = s.img___14166; - s.tmp_1 = r0 = s.col___14179; - s.tmp_2 = r0 = s.row___14182; - r0 = pxsim.BufferMethods.getByte(s.buf___14161, s.byte___14173); - s.tmp_5 = r0; - r0 = (s.tmp_5 >> s.bit___14176); + s.tmp_2 = r0 = s.arg1; + s.tmp_5 = r0 = s.arg2; + r0 = s.w___15154.fields["x_"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 + s.tmp_6); s.tmp_4 = r0; - r0 = (s.tmp_4 & 1); + r0 = (s.tmp_4 + globals.user_interface_base_Screen_HALF_WIDTH___3414); s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, s.tmp_2, s.tmp_3); - r0 = (s.index___14169 + 1); - s.index___14169 = (r0); - { step = 1; continue; } - case 2: - r0 = s.img___14166; + s.tmp_9 = r0 = s.arg3; + r0 = s.w___15154.fields["y_"]; + s.tmp_10 = r0; + r0 = (s.tmp_9 + s.tmp_10); + s.tmp_8 = r0; + r0 = (s.tmp_8 + globals.user_interface_base_Screen_HALF_HEIGHT___3415); + s.tmp_7 = r0; + r0 = pxsim.BitmapMethods.drawTransparentBitmap(s.tmp_0, s.tmp_2, s.tmp_3, s.tmp_7); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_IconFieldEditor_fromBuffer__P4429.info = {"start":4397,"length":437,"line":155,"column":8,"endLine":166,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"fromBuffer","argumentNames":["this","br"]} +user_interface_base_Screen_drawTransparentImageXfrm__P3428.info = {"start":2270,"length":273,"line":72,"column":4,"endLine":84,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"drawTransparentImageXfrm","argumentNames":["xfrm","from","x","y"]} -function microcode_IconFieldEditor_fromBuffer__P4429_mk(s) { +function user_interface_base_Screen_drawTransparentImageXfrm__P3428_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconFieldEditor_fromBuffer__P4429, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_drawTransparentImageXfrm__P3428, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -32103,22 +34965,22 @@ function microcode_IconFieldEditor_fromBuffer__P4429_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - buf___14161: undefined, - img___14166: undefined, - index___14169: undefined, - byte___14173: undefined, - bit___14176: undefined, - col___14179: undefined, - row___14182: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + w___15154: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function microcode_IconFieldEditor_clone__P4425(s) { +function user_interface_base_ButtonBase_drawStyle__P5244(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32130,31 +34992,171 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconFieldEditor__C4423_VT)) failedCast(r0, microcode_IconFieldEditor__C4423_VT); - r0 = pxsim.BitmapMethods.clone(s.arg1); + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + r0 = s.arg0.fields["style"]; + r0 = r0.fields["fill"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = user_interface_base_Screen_fillBoundsXfrm__P3436_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.tmp_2 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_2.arg0 = r0; + s.callLocIdx = 525; s.pc = 8; return s.tmp_2; + case 8: + r0 = s.retval; + s.tmp_1.arg1 = r0; + r0 = s.arg0.fields["style"]; + r0 = r0.fields["fill"]; + s.tmp_1.arg2 = r0; + s.callLocIdx = 526; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + case 1: + case 2: + r0 = s.arg0.fields["style"]; + r0 = r0.fields["borders"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = user_interface_base_Screen_outlineBoundsXfrm4__P3439_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.tmp_2 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_2.arg0 = r0; + s.callLocIdx = 528; s.pc = 10; return s.tmp_2; + case 10: + r0 = s.retval; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = 1; + r0 = s.arg0.fields["style"]; + r0 = r0.fields["borders"]; + s.tmp_1.arg3 = r0; + s.callLocIdx = 529; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + case 3: + case 4: + r0 = s.arg0.fields["style"]; + r0 = r0.fields["shadow"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_1 = user_interface_base_Screen_setPixelXfrm__P3441_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.tmp_3 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 531; s.pc = 12; return s.tmp_3; + case 12: + r0 = s.retval; + r0 = r0.fields["left"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1.arg1 = r0; + s.tmp_5 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_5.arg0 = r0; + s.callLocIdx = 532; s.pc = 13; return s.tmp_5; + case 13: + r0 = s.retval; + s.tmp_4 = r0; + r0 = s.tmp_4.fields["top"]; + s.tmp_7 = r0; + r0 = s.tmp_4.fields["height"]; + s.tmp_8 = r0; + r0 = (s.tmp_7 + s.tmp_8); + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_1.arg2 = r0; + r0 = s.arg0.fields["style"]; + r0 = r0.fields["borders"]; + r0 = r0.fields["bottom"]; + s.tmp_1.arg3 = r0; + s.callLocIdx = 534; s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_setPixelXfrm__P3441_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.tmp_3 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 536; s.pc = 15; return s.tmp_3; + case 15: + r0 = s.retval; + s.tmp_2 = r0; + r0 = s.tmp_2.fields["left"]; + s.tmp_5 = r0; + r0 = s.tmp_2.fields["width"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 + s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_4 - 1); + s.tmp_1 = r0; + r0 = (s.tmp_1 + 1); + s.tmp_0.arg1 = r0; + s.tmp_8 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_8.arg0 = r0; + s.callLocIdx = 538; s.pc = 16; return s.tmp_8; + case 16: + r0 = s.retval; + s.tmp_7 = r0; + r0 = s.tmp_7.fields["top"]; + s.tmp_10 = r0; + r0 = s.tmp_7.fields["height"]; + s.tmp_11 = r0; + r0 = (s.tmp_10 + s.tmp_11); + s.tmp_9 = r0; + r0 = (s.tmp_9 - 1); + s.tmp_0.arg2 = r0; + r0 = s.arg0.fields["style"]; + r0 = r0.fields["borders"]; + r0 = r0.fields["bottom"]; + s.tmp_0.arg3 = r0; + s.callLocIdx = 540; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; + case 5: + case 6: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_IconFieldEditor_clone__P4425.info = {"start":3633,"length":61,"line":130,"column":8,"endLine":132,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"clone","argumentNames":["this","img"]} +user_interface_base_ButtonBase_drawStyle__P5244.info = {"start":3851,"length":712,"line":177,"column":4,"endLine":205,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"drawStyle","argumentNames":["this"]} -function microcode_IconFieldEditor_clone__P4425_mk(s) { +function user_interface_base_ButtonBase_drawStyle__P5244_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconFieldEditor_clone__P4425, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_drawStyle__P5244, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_IconFieldEditor_init__P4424(s) { +function user_interface_base_Screen_setPixelXfrm__P3441(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32164,32 +35166,62 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.w___15232 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconFieldEditor__C4423_VT)) failedCast(r0, microcode_IconFieldEditor__C4423_VT); - r0 = pxsim.bitmaps.ofBuffer(_hex14208); + s.tmp_0 = user_interface_base_Affine_worldPos__P3325_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 449; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + s.w___15232 = (r0); + s.tmp_0 = user_interface_base_Screen_setPixel__P3440_mk(s); + s.tmp_1 = r0 = s.arg1; + r0 = s.w___15232.fields["x_"]; + s.tmp_2 = r0; + r0 = (s.tmp_1 + s.tmp_2); + s.tmp_0.arg0 = r0; + s.tmp_3 = r0 = s.arg2; + r0 = s.w___15232.fields["y_"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.arg3; + s.callLocIdx = 452; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_IconFieldEditor_init__P4424.info = {"start":3481,"length":143,"line":121,"column":8,"endLine":129,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"init","argumentNames":["this"]} +user_interface_base_Screen_setPixelXfrm__P3441.info = {"start":8265,"length":184,"line":334,"column":4,"endLine":342,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"setPixelXfrm","argumentNames":["xfrm","x","y","c"]} -function microcode_IconFieldEditor_init__P4424_mk(s) { +function user_interface_base_Screen_setPixelXfrm__P3441_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconFieldEditor_init__P4424, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_setPixelXfrm__P3441, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + w___15232: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } -const _hex14208 = pxsim.BufferMethods.createBufferFromHex("87040500050000000010000010000100000001001000010000100000") - -function microcode_MelodyFieldEditor_fromBuffer__P4448(s) { +function user_interface_base_Screen_setPixel__P3440(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32199,125 +35231,50 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.buf___14211 = undefined; - s.tempo___14216 = undefined; - s.notes___14219 = undefined; - s.i___14220 = undefined; - s.byte___14225 = undefined; - s.bit___14228 = undefined; - s.note___14233 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4442_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4442_VT); - s.tmp_0 = microcode_BufferReader_readBuffer__P4491_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = 3; - s.callLocIdx = 1562; s.pc = 5; return s.tmp_0; - case 5: + r0 = pxsim_numops_toBoolDecr(s.arg2); + if (!r0) { step = 1; continue; } + s.tmp_1 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 446; s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; - s.buf___14211 = (r0); - r0 = pxsim.BufferMethods.getByte(s.buf___14211, 0); - s.tempo___14216 = (r0); - r0 = pxsim_String_.mkEmpty(); - s.notes___14219 = (r0); - s.i___14220 = (0); - case 1: - r0 = (s.i___14220 < 4); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = (s.i___14220 >> 1); - s.byte___14225 = (r0); - r0 = (s.i___14220 & 1); - s.tmp_0 = r0; - r0 = (s.tmp_0 << 2); - s.bit___14228 = (r0); - s.tmp_2 = r0 = s.buf___14211; - r0 = (s.byte___14225 + 1); - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_2, s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 >> s.bit___14228); - s.tmp_0 = r0; - r0 = (s.tmp_0 & 15); - s.note___14233 = (r0); - r0 = (s.note___14233 == 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = "."; - { step = 3; continue; } - case 2: - r0 = (s.note___14233 - 1); - s.tmp_1 = r0; - r0 = pxsim_numops.toString(s.tmp_1); - case 3: - // jmp value (already in r0) + r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_WIDTH___3414); s.tmp_2 = r0; - if ((s.notes___14219) && (s.notes___14219).vtable) { - setupResume(s, 6); - pxsim_String__stringConv(s.notes___14219); - checkResumeConsumed(); - return; - } else { s.retval = (s.notes___14219) + ""; } - case 6: - r0 = s.retval; + r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_HEIGHT___3415); s.tmp_3 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 7); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 7: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); - s.notes___14219 = (r0); - r0 = (s.i___14220 + 1); - s.i___14220 = (r0); - { step = 1; continue; } - case 4: - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "tempo", s.tempo___14216); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "notes", s.notes___14219); - r0 = s.tmp_0; + r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_2, s.tmp_3, s.arg2); + case 1: + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MelodyFieldEditor_fromBuffer__P4448.info = {"start":7122,"length":491,"line":241,"column":8,"endLine":253,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"fromBuffer","argumentNames":["this","br"]} +user_interface_base_Screen_setPixel__P3440.info = {"start":8114,"length":145,"line":328,"column":4,"endLine":332,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"setPixel","argumentNames":["x","y","c"]} -function microcode_MelodyFieldEditor_fromBuffer__P4448_mk(s) { +function user_interface_base_Screen_setPixel__P3440_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyFieldEditor_fromBuffer__P4448, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_setPixel__P3440, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - buf___14211: undefined, - tempo___14216: undefined, - notes___14219: undefined, - i___14220: undefined, - byte___14225: undefined, - bit___14228: undefined, - note___14233: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function microcode_MelodyFieldEditor_clone__P4444(s) { +function user_interface_base_Screen_outlineBoundsXfrm4__P3439(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32327,60 +35284,491 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.w___15280 = undefined; + s.left___15283 = undefined; + s.top___15289 = undefined; + s.right___15295 = undefined; + s.bottom___15301 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4442_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4442_VT); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - s.tmp_2 = helpers_stringSlice__P2148_mk(s); - s.tmp_3 = if_notes_1_mk(s); - s.tmp_3.arg0 = s.arg1; + s.tmp_3 = if_top_1_mk(s); + s.tmp_3.arg0 = s.arg3; if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "notes"); + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "top"); } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["notes"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["notes"]; } + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["top"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["top"]; } else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1553; s.pc = 2; return s.tmp_3; } + else { s.callLocIdx = 411; s.pc = 28; return s.tmp_3; } + } + case 28: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_6 = if_left_1_mk(s); + s.tmp_6.arg0 = s.arg3; + if (!s.tmp_6.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "left"); + } else { + s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["left"]; + if (s.tmp_6.fn == null) { s.retval = s.tmp_6.arg0.fields["left"]; } + else if (!s.tmp_6.fn.isGetter) { s.retval = bind(s.tmp_6); } + else { s.callLocIdx = 412; s.pc = 29; return s.tmp_6; } } + case 29: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + s.tmp_4 = r0; + r0 = pxsim_Boolean__bang(s.tmp_4); case 2: + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = pxsim_numops_toBool(s.tmp_7); + if (r0) { step = 3; continue; } + r0 = s.tmp_7; + { step = 4; continue; } + case 3: + s.tmp_10 = if_right_1_mk(s); + s.tmp_10.arg0 = s.arg3; + if (!s.tmp_10.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_10.arg0, "right"); + } else { + s.tmp_10.fn = s.tmp_10.arg0.vtable.iface["right"]; + if (s.tmp_10.fn == null) { s.retval = s.tmp_10.arg0.fields["right"]; } + else if (!s.tmp_10.fn.isGetter) { s.retval = bind(s.tmp_10); } + else { s.callLocIdx = 413; s.pc = 30; return s.tmp_10; } + } + case 30: + r0 = s.retval; + s.tmp_9 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_9); + s.tmp_8 = r0; + r0 = pxsim_Boolean__bang(s.tmp_8); + case 4: + // jmp value (already in r0) + s.tmp_11 = r0; + r0 = pxsim_numops_toBool(s.tmp_11); + if (r0) { step = 5; continue; } + r0 = s.tmp_11; + { step = 6; continue; } + case 5: + s.tmp_14 = if_bottom_1_mk(s); + s.tmp_14.arg0 = s.arg3; + if (!s.tmp_14.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_14.arg0, "bottom"); + } else { + s.tmp_14.fn = s.tmp_14.arg0.vtable.iface["bottom"]; + if (s.tmp_14.fn == null) { s.retval = s.tmp_14.arg0.fields["bottom"]; } + else if (!s.tmp_14.fn.isGetter) { s.retval = bind(s.tmp_14); } + else { s.callLocIdx = 414; s.pc = 31; return s.tmp_14; } + } + case 31: + r0 = s.retval; + s.tmp_13 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_13); + s.tmp_12 = r0; + r0 = pxsim_Boolean__bang(s.tmp_12); + case 6: + // jmp value (already in r0) + s.tmp_15 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_15); + if (!r0) { step = 7; continue; } + { step = 27; continue; } + case 7: + case 8: + s.tmp_16 = user_interface_base_Affine_worldPos__P3325_mk(s); + s.tmp_16.arg0 = s.arg0; + s.callLocIdx = 415; s.pc = 32; return s.tmp_16; + case 32: + r0 = s.retval; + s.w___15280 = (r0); + r0 = s.arg1.fields["left"]; + s.tmp_0 = r0; + r0 = s.w___15280.fields["x_"]; + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); + s.left___15283 = (r0); + r0 = s.arg1.fields["top"]; + s.tmp_0 = r0; + r0 = s.w___15280.fields["y_"]; + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); + s.top___15289 = (r0); + r0 = s.arg1.fields["left"]; + s.tmp_2 = r0; + r0 = s.arg1.fields["width"]; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 - 1); + s.tmp_0 = r0; + r0 = s.w___15280.fields["x_"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.right___15295 = (r0); + r0 = s.arg1.fields["top"]; + s.tmp_2 = r0; + r0 = s.arg1.fields["height"]; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 - 1); + s.tmp_0 = r0; + r0 = s.w___15280.fields["y_"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.bottom___15301 = (r0); + s.tmp_1 = if_left_1_mk(s); + s.tmp_1.arg0 = s.arg3; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "left"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["left"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["left"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 422; s.pc = 33; return s.tmp_1; } + } + case 33: r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + s.tmp_2 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.left___15283 - s.arg2); s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = 0; - s.tmp_2.arg2 = undefined; - s.callLocIdx = 1554; s.pc = 1; return s.tmp_2; - case 1: + s.tmp_2.arg1 = s.top___15289; + r0 = (s.left___15283 - s.arg2); + s.tmp_2.arg2 = r0; + s.tmp_2.arg3 = s.bottom___15301; + s.tmp_3 = if_left_1_mk(s); + s.tmp_3.arg0 = s.arg3; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "left"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["left"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["left"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 423; s.pc = 35; return s.tmp_3; } + } + case 35: + r0 = s.retval; + s.tmp_2.arg4 = r0; + s.callLocIdx = 424; s.pc = 34; return s.tmp_2; + case 34: + r0 = s.retval; + case 9: + case 10: + s.tmp_1 = if_right_1_mk(s); + s.tmp_1.arg0 = s.arg3; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "right"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["right"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["right"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 425; s.pc = 36; return s.tmp_1; } + } + case 36: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + s.tmp_2 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.right___15295 + s.arg2); + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.top___15289; + r0 = (s.right___15295 + s.arg2); + s.tmp_2.arg2 = r0; + s.tmp_2.arg3 = s.bottom___15301; + s.tmp_3 = if_right_1_mk(s); + s.tmp_3.arg0 = s.arg3; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "right"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["right"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["right"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 426; s.pc = 38; return s.tmp_3; } + } + case 38: + r0 = s.retval; + s.tmp_2.arg4 = r0; + s.callLocIdx = 427; s.pc = 37; return s.tmp_2; + case 37: + r0 = s.retval; + case 11: + case 12: + s.tmp_1 = if_top_1_mk(s); + s.tmp_1.arg0 = s.arg3; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "top"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["top"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["top"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 428; s.pc = 39; return s.tmp_1; } + } + case 39: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + s.tmp_2 = user_interface_base_Screen_drawLine__P3429_mk(s); + s.tmp_2.arg0 = s.left___15283; + r0 = (s.top___15289 - s.arg2); + s.tmp_2.arg1 = r0; + s.tmp_2.arg2 = s.right___15295; + r0 = (s.top___15289 - s.arg2); + s.tmp_2.arg3 = r0; + s.tmp_3 = if_top_1_mk(s); + s.tmp_3.arg0 = s.arg3; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "top"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["top"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["top"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 429; s.pc = 41; return s.tmp_3; } + } + case 41: + r0 = s.retval; + s.tmp_2.arg4 = r0; + s.callLocIdx = 430; s.pc = 40; return s.tmp_2; + case 40: + r0 = s.retval; + case 13: + case 14: + s.tmp_1 = if_bottom_1_mk(s); + s.tmp_1.arg0 = s.arg3; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "bottom"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["bottom"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["bottom"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 431; s.pc = 42; return s.tmp_1; } + } + case 42: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + s.tmp_2 = user_interface_base_Screen_drawLine__P3429_mk(s); + s.tmp_2.arg0 = s.left___15283; + r0 = (s.bottom___15301 + s.arg2); + s.tmp_2.arg1 = r0; + s.tmp_2.arg2 = s.right___15295; + r0 = (s.bottom___15301 + s.arg2); + s.tmp_2.arg3 = r0; + s.tmp_3 = if_bottom_1_mk(s); + s.tmp_3.arg0 = s.arg3; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "bottom"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["bottom"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["bottom"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 432; s.pc = 44; return s.tmp_3; } + } + case 44: + r0 = s.retval; + s.tmp_2.arg4 = r0; + s.callLocIdx = 433; s.pc = 43; return s.tmp_2; + case 43: + r0 = s.retval; + case 15: + case 16: + r0 = (s.arg2 > 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 25; continue; } + s.tmp_2 = if_left_1_mk(s); + s.tmp_2.arg0 = s.arg3; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "left"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["left"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["left"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 434; s.pc = 45; return s.tmp_2; } + } + case 45: r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "notes", s.tmp_1); - s.tmp_5 = if_tempo_1_mk(s); - s.tmp_5.arg0 = s.arg1; - if (!s.tmp_5.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "tempo"); + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 17; continue; } + s.tmp_3 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.left___15283 - s.arg2); + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.top___15289; + s.tmp_3.arg2 = s.left___15283; + r0 = (s.top___15289 - s.arg2); + s.tmp_3.arg3 = r0; + s.tmp_4 = if_left_1_mk(s); + s.tmp_4.arg0 = s.arg3; + if (!s.tmp_4.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "left"); } else { - s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["tempo"]; - if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["tempo"]; } - else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } - else { s.callLocIdx = 1555; s.pc = 3; return s.tmp_5; } + s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["left"]; + if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["left"]; } + else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } + else { s.callLocIdx = 435; s.pc = 47; return s.tmp_4; } } - case 3: + case 47: r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "tempo", s.tmp_4); - r0 = s.tmp_0; + s.tmp_3.arg4 = r0; + s.callLocIdx = 436; s.pc = 46; return s.tmp_3; + case 46: + r0 = s.retval; + case 17: + case 18: + s.tmp_1 = if_right_1_mk(s); + s.tmp_1.arg0 = s.arg3; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "right"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["right"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["right"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 437; s.pc = 48; return s.tmp_1; } + } + case 48: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 19; continue; } + s.tmp_2 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.right___15295 + s.arg2); + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.top___15289; + s.tmp_2.arg2 = s.right___15295; + r0 = (s.top___15289 - s.arg2); + s.tmp_2.arg3 = r0; + s.tmp_3 = if_right_1_mk(s); + s.tmp_3.arg0 = s.arg3; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "right"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["right"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["right"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 438; s.pc = 50; return s.tmp_3; } + } + case 50: + r0 = s.retval; + s.tmp_2.arg4 = r0; + s.callLocIdx = 439; s.pc = 49; return s.tmp_2; + case 49: + r0 = s.retval; + case 19: + case 20: + s.tmp_1 = if_left_1_mk(s); + s.tmp_1.arg0 = s.arg3; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "left"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["left"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["left"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 440; s.pc = 51; return s.tmp_1; } + } + case 51: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 21; continue; } + s.tmp_2 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.left___15283 - s.arg2); + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.bottom___15301; + s.tmp_2.arg2 = s.left___15283; + r0 = (s.bottom___15301 + s.arg2); + s.tmp_2.arg3 = r0; + s.tmp_3 = if_left_1_mk(s); + s.tmp_3.arg0 = s.arg3; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "left"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["left"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["left"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 441; s.pc = 53; return s.tmp_3; } + } + case 53: + r0 = s.retval; + s.tmp_2.arg4 = r0; + s.callLocIdx = 442; s.pc = 52; return s.tmp_2; + case 52: + r0 = s.retval; + case 21: + case 22: + s.tmp_1 = if_right_1_mk(s); + s.tmp_1.arg0 = s.arg3; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "right"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["right"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["right"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 443; s.pc = 54; return s.tmp_1; } + } + case 54: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 23; continue; } + s.tmp_2 = user_interface_base_Screen_drawLine__P3429_mk(s); + r0 = (s.right___15295 + s.arg2); + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.bottom___15301; + s.tmp_2.arg2 = s.right___15295; + r0 = (s.bottom___15301 + s.arg2); + s.tmp_2.arg3 = r0; + s.tmp_3 = if_right_1_mk(s); + s.tmp_3.arg0 = s.arg3; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "right"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["right"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["right"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 444; s.pc = 56; return s.tmp_3; } + } + case 56: + r0 = s.retval; + s.tmp_2.arg4 = r0; + s.callLocIdx = 445; s.pc = 55; return s.tmp_2; + case 55: + r0 = s.retval; + case 23: + case 24: + case 25: + case 26: + case 27: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MelodyFieldEditor_clone__P4444.info = {"start":5958,"length":106,"line":208,"column":8,"endLine":210,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"clone","argumentNames":["this","melody"]} +user_interface_base_Screen_outlineBoundsXfrm4__P3439.info = {"start":6136,"length":1972,"line":240,"column":4,"endLine":326,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"outlineBoundsXfrm4","argumentNames":["xfrm","bounds","dist","colors"]} -function microcode_MelodyFieldEditor_clone__P4444_mk(s) { +function user_interface_base_Screen_outlineBoundsXfrm4__P3439_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyFieldEditor_clone__P4444, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_outlineBoundsXfrm4__P3439, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -32388,15 +35776,32 @@ function microcode_MelodyFieldEditor_clone__P4444_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + w___15280: undefined, + left___15283: undefined, + top___15289: undefined, + right___15295: undefined, + bottom___15301: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function microcode_MelodyFieldEditor_init__P4443(s) { +function user_interface_base_PickerGroup_draw__P5268(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32411,21 +35816,23 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4442_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4442_VT); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "notes", "0240"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "tempo", 120); - r0 = s.tmp_0; + if (!checkSubtype(r0, user_interface_base_PickerGroup__C5261_VT)) failedCast(r0, user_interface_base_PickerGroup__C5261_VT); + s.tmp_0 = user_interface_base_PickerGroup_layoutDraw__P5267_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = true; + s.callLocIdx = 697; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MelodyFieldEditor_init__P4443.info = {"start":5882,"length":67,"line":205,"column":8,"endLine":207,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"init","argumentNames":["this"]} +user_interface_base_PickerGroup_draw__P5268.info = {"start":3635,"length":59,"line":105,"column":8,"endLine":107,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"draw","argumentNames":["this"]} -function microcode_MelodyFieldEditor_init__P4443_mk(s) { +function user_interface_base_PickerGroup_draw__P5268_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyFieldEditor_init__P4443, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerGroup_draw__P5268, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -32434,8 +35841,7 @@ function microcode_MelodyFieldEditor_init__P4443_mk(s) { - -function microcode_DecimalFieldEditor_fromBuffer__P4416(s) { +function user_interface_base_PickerGroup_layoutDraw__P5267(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32445,36 +35851,46 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.str___14270 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalFieldEditor__C4410_VT)) failedCast(r0, microcode_DecimalFieldEditor__C4410_VT); - s.tmp_0 = microcode_BufferReader_readString__P4492_mk(s); - s.tmp_0.arg0 = s.arg1; - s.callLocIdx = 1543; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, user_interface_base_PickerGroup__C5261_VT)) failedCast(r0, user_interface_base_PickerGroup__C5261_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = undefined; + s.callLocIdx = 688; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - s.str___14270 = (r0); - r0 = pxsim_pxtrt.mkMap(); + r0 = (s.arg0).fields["bounds"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkAction(2, user_interface_base_PickerGroup_layoutDraw_inline__P15427); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "num", s.str___14270); - r0 = s.tmp_0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["defs"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 696; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_DecimalFieldEditor_fromBuffer__P4416.info = {"start":2536,"length":129,"line":89,"column":8,"endLine":92,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"fromBuffer","argumentNames":["this","buf"]} +user_interface_base_PickerGroup_layoutDraw__P5267.info = {"start":3189,"length":437,"line":95,"column":8,"endLine":104,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"layoutDraw","argumentNames":["this","draw"]} -function microcode_DecimalFieldEditor_fromBuffer__P4416_mk(s) { +function user_interface_base_PickerGroup_layoutDraw__P5267_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalFieldEditor_fromBuffer__P4416, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerGroup_layoutDraw__P5267, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - str___14270: undefined, + tmp_1: undefined, arg0: undefined, arg1: undefined, } } @@ -32482,8 +35898,7 @@ function microcode_DecimalFieldEditor_fromBuffer__P4416_mk(s) { - -function microcode_BufferReader_readString__P4492(s) { +function user_interface_base_PickerGroup_layoutDraw_inline__P15427(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32493,102 +35908,90 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.start___14276 = undefined; - s.str___14279 = undefined; + s.btn___15430 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferReader__C4485_VT)) failedCast(r0, microcode_BufferReader__C4485_VT); - r0 = s.arg0.fields["ptr"]; - s.start___14276 = (r0); - r0 = pxsim_String_.mkEmpty(); - s.str___14279 = (r0); - case 1: - r0 = s.arg0.fields["buf"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_2, s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 != 0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonBase__C3621_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_4 = r0 = s.arg0; - r0 = s.tmp_4.fields["ptr"]; - s.tmp_6 = r0; - r0 = (s.tmp_6 + 1); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["ptr"] = (s.tmp_5); - if ((s.str___14279) && (s.str___14279).vtable) { - setupResume(s, 3); - pxsim_String__stringConv(s.str___14279); - checkResumeConsumed(); - return; - } else { s.retval = (s.str___14279) + ""; } + s.tmp_1 = user_interface_base_ButtonBase_constructor__P3623_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = 0; + s.tmp_1.arg2 = 0; + r0 = s.caps[0].fields["picker"]; + r0 = r0.fields["style"]; + s.tmp_1.arg3 = r0; + r0 = s.caps[0].fields["xfrm"]; + s.tmp_1.arg4 = r0; + s.callLocIdx = 689; s.pc = 3; return s.tmp_1; case 3: r0 = s.retval; - s.tmp_7 = r0; - r0 = s.arg0.fields["buf"]; - s.tmp_11 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_11, s.tmp_6); - s.tmp_10 = r0; - r0 = pxsim_String_.fromCharCode(s.tmp_10); - s.tmp_9 = r0; - if ((s.tmp_9) && (s.tmp_9).vtable) { - setupResume(s, 4); - pxsim_String__stringConv(s.tmp_9); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_9) + ""; } + s.btn___15430 = (s.tmp_0); + s.tmp_0 = user_interface_base_PickerGroup_setButtonCoords__P5266_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = s.btn___15430; + s.callLocIdx = 690; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; - s.tmp_8 = r0; - r0 = pxsim_String__concat(s.tmp_7, s.tmp_8); - s.str___14279 = (r0); - { step = 1; continue; } + s.tmp_0 = user_interface_base_Bounds_add__P3361_mk(s); + r0 = s.caps[0].fields["bounds"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = user_interface_base_Bounds_Translate__P3357_mk(s); + s.tmp_2 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_2.arg0 = s.btn___15430; + s.callLocIdx = 691; s.pc = 7; return s.tmp_2; + case 7: + r0 = s.retval; + s.tmp_1.arg0 = r0; + r0 = s.btn___15430.fields["xfrm_"]; + s.tmp_3 = r0; + r0 = s.tmp_3.fields["localPos_"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 694; s.pc = 6; return s.tmp_1; + case 6: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 695; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(s.caps[1]); + if (!r0) { step = 1; continue; } + s.tmp_0 = user_interface_base_ButtonBase__C3621_v0_1_mk(s); + s.tmp_0.arg0 = s.btn___15430; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_ButtonBase__C3621_VT)) failedCast(s.tmp_0.arg0, user_interface_base_ButtonBase__C3621_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + case 1: case 2: - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); - r0 = s.str___14279; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_BufferReader_readString__P4492.info = {"start":1968,"length":262,"line":74,"column":8,"endLine":82,"endColumn":9,"fileName":"utils.ts","functionName":"readString","argumentNames":["this"]} +user_interface_base_PickerGroup_layoutDraw_inline__P15427.info = {"start":3342,"length":273,"line":98,"column":30,"endLine":103,"endColumn":13,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":["def","idx"]} -function microcode_BufferReader_readString__P4492_mk(s) { +function user_interface_base_PickerGroup_layoutDraw_inline__P15427_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_BufferReader_readString__P4492, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerGroup_layoutDraw_inline__P15427, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - start___14276: undefined, - str___14279: undefined, + btn___15430: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_DecimalFieldEditor_clone__P4412(s) { +function user_interface_base_Bounds_Translate__P3357(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32603,46 +36006,58 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalFieldEditor__C4410_VT)) failedCast(r0, microcode_DecimalFieldEditor__C4410_VT); - r0 = pxsim_pxtrt.mkMap(); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); s.tmp_0 = r0; - s.tmp_2 = helpers_stringSlice__P2148_mk(s); - s.tmp_3 = if_num_1_mk(s); - s.tmp_3.arg0 = s.arg1; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "num"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["num"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["num"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1537; s.pc = 2; return s.tmp_3; } - } - case 2: - r0 = s.retval; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = 0; - s.tmp_2.arg2 = undefined; - s.callLocIdx = 1538; s.pc = 1; return s.tmp_2; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["left"]; + s.tmp_3 = r0; + r0 = s.arg1.fields["x_"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.tmp_2); + r0 = s.arg0.fields["top"]; + s.tmp_6 = r0; + r0 = s.arg1.fields["y_"]; + s.tmp_7 = r0; + r0 = (s.tmp_6 + s.tmp_7); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_5); + r0 = s.arg0.fields["width"]; + s.tmp_8 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_8); + r0 = s.arg0.fields["height"]; + s.tmp_9 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_9); + s.tmp_10 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_10.arg0 = s.tmp_0; + s.tmp_10.arg1 = s.tmp_1; + s.callLocIdx = 315; s.pc = 1; return s.tmp_10; case 1: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "num", s.tmp_1); r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_DecimalFieldEditor_clone__P4412.info = {"start":1745,"length":80,"line":64,"column":8,"endLine":66,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"clone","argumentNames":["this","bn"]} +user_interface_base_Bounds_Translate__P3357.info = {"start":2737,"length":256,"line":97,"column":8,"endLine":104,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"Translate","argumentNames":["box","p"]} -function microcode_DecimalFieldEditor_clone__P4412_mk(s) { +function user_interface_base_Bounds_Translate__P3357_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalFieldEditor_clone__P4412, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_Translate__P3357, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, arg0: undefined, arg1: undefined, } } @@ -32650,8 +36065,7 @@ function microcode_DecimalFieldEditor_clone__P4412_mk(s) { - -function microcode_DecimalFieldEditor_init__P4411(s) { +function user_interface_base_Bounds_add__P3361(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32663,33 +36077,112 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalFieldEditor__C4410_VT)) failedCast(r0, microcode_DecimalFieldEditor__C4410_VT); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "num", "1.0"); - r0 = s.tmp_0; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = Math_min__P2160_mk(s); + r0 = s.arg0.fields["left"]; + s.tmp_2.arg0 = r0; + r0 = s.arg1.fields["left"]; + s.tmp_2.arg1 = r0; + s.callLocIdx = 318; s.pc = 1; return s.tmp_2; + case 1: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["left"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = Math_min__P2160_mk(s); + r0 = s.arg0.fields["top"]; + s.tmp_2.arg0 = r0; + r0 = s.arg1.fields["top"]; + s.tmp_2.arg1 = r0; + s.callLocIdx = 319; s.pc = 2; return s.tmp_2; + case 2: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["top"] = (s.tmp_1); + s.tmp_0 = user_interface_base_Bounds_right__P3342_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = Math_max__P2159_mk(s); + r0 = s.arg0.fields["left"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["width"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1.arg0 = r0; + r0 = s.arg1.fields["left"]; + s.tmp_6 = r0; + r0 = s.arg1.fields["width"]; + s.tmp_7 = r0; + r0 = (s.tmp_6 + s.tmp_7); + s.tmp_5 = r0; + r0 = (s.tmp_5 - 1); + s.tmp_1.arg1 = r0; + s.callLocIdx = 322; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 323; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = user_interface_base_Bounds_bottom__P3344_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = Math_max__P2159_mk(s); + r0 = s.arg0.fields["top"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1.arg0 = r0; + r0 = s.arg1.fields["top"]; + s.tmp_6 = r0; + r0 = s.arg1.fields["height"]; + s.tmp_7 = r0; + r0 = (s.tmp_6 + s.tmp_7); + s.tmp_5 = r0; + r0 = (s.tmp_5 - 1); + s.tmp_1.arg1 = r0; + s.callLocIdx = 326; s.pc = 6; return s.tmp_1; + case 6: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 327; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = s.arg0; return leave(s, r0) default: oops() } } } -microcode_DecimalFieldEditor_init__P4411.info = {"start":1684,"length":52,"line":61,"column":8,"endLine":63,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"init","argumentNames":["this"]} +user_interface_base_Bounds_add__P3361.info = {"start":4152,"length":297,"line":149,"column":8,"endLine":155,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"add","argumentNames":["this","other"]} -function microcode_DecimalFieldEditor_init__P4411_mk(s) { +function user_interface_base_Bounds_add__P3361_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalFieldEditor_init__P4411, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_add__P3361, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_IconEditor_getNewInstance__P4435(s) { +function user_interface_base_Bounds_bottom__P3344(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32705,36 +36198,25 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconEditor__C4430_VT)) failedCast(r0, microcode_IconEditor__C4430_VT); - r0 = pxsim_pxtcore_mkClassInstance(microcode_IconEditor__C4430_VT); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - r0 = s.arg1; - { step = 2; continue; } - case 1: - r0 = s.arg0.fields["field"]; - s.tmp_1 = r0; - r0 = pxsim.BitmapMethods.clone(s.tmp_1); - case 2: - // jmp value (already in r0) + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["top"]; + s.tmp_3 = r0; + r0 = (s.arg1 - s.tmp_3); s.tmp_2 = r0; - s.tmp_3 = microcode_IconEditor_constructor__P4432_mk(s); - s.tmp_3.arg0 = s.tmp_0; - s.tmp_3.arg1 = s.tmp_2; - s.callLocIdx = 1552; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; - r0 = s.tmp_0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["height"] = (s.tmp_1); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_IconEditor_getNewInstance__P4435.info = {"start":5468,"length":115,"line":189,"column":8,"endLine":191,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNewInstance","argumentNames":["this","field"]} +user_interface_base_Bounds_bottom__P3344.info = {"start":556,"length":87,"line":17,"column":8,"endLine":19,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"bottom","argumentNames":["this","val"]} -function microcode_IconEditor_getNewInstance__P4435_mk(s) { +function user_interface_base_Bounds_bottom__P3344_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconEditor_getNewInstance__P4435, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_bottom__P3344, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -32747,8 +36229,7 @@ function microcode_IconEditor_getNewInstance__P4435_mk(s) { - -function microcode_IconEditor_getField__P4433(s) { +function user_interface_base_Bounds_right__P3342(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32760,29 +36241,42 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconEditor__C4430_VT)) failedCast(r0, microcode_IconEditor__C4430_VT); - r0 = s.arg0.fields["field"]; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["left"]; + s.tmp_3 = r0; + r0 = (s.arg1 - s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["width"] = (s.tmp_1); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_IconEditor_getField__P4433.info = {"start":5200,"length":52,"line":179,"column":8,"endLine":181,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getField","argumentNames":["this"]} +user_interface_base_Bounds_right__P3342.info = {"start":319,"length":87,"line":10,"column":8,"endLine":12,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"right","argumentNames":["this","val"]} -function microcode_IconEditor_getField__P4433_mk(s) { +function user_interface_base_Bounds_right__P3342_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconEditor_getField__P4433, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_right__P3342, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_MelodyEditor_getNewInstance__P4454(s) { +function user_interface_base_PickerGroup_setButtonCoords__P5266(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32792,63 +36286,126 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.row___15530 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyEditor__C4449_VT)) failedCast(r0, microcode_MelodyEditor__C4449_VT); - r0 = pxsim_pxtcore_mkClassInstance(microcode_MelodyEditor__C4449_VT); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - r0 = s.arg1; - { step = 2; continue; } - case 1: - s.tmp_1 = microcode_FieldEditor__C5806_v1_2_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["field"]; - s.tmp_1.arg1 = r0; - if (!checkSubtype(s.tmp_1.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_1.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.clone; - s.pc = 3; return s.tmp_1; + if (!checkSubtype(r0, user_interface_base_PickerGroup__C5261_VT)) failedCast(r0, user_interface_base_PickerGroup__C5261_VT); + s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3629_mk(s); + s.tmp_0.arg0 = s.arg2; + s.tmp_1 = lambda_3_mk(s); + s.tmp_1.argL = globals.getIcon___3461; + s.tmp_2 = if_icon_1_mk(s); + r0 = s.arg0.fields["defs"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, s.arg1); + s.tmp_2.arg0 = r0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "icon"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["icon"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["icon"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 679; s.pc = 3; return s.tmp_2; } + } case 3: r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = false; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 680; s.pc = 2; return s.tmp_1; case 2: - // jmp value (already in r0) + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 681; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_0 = r0; + r0 = pxsim.Math_.idiv(s.arg1, s.tmp_0); + s.row___15530 = (r0); + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + r0 = s.arg2.fields["xfrm_"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["cell"]; + r0 = r0.fields["width"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_7 = r0; + r0 = (s.arg1 % s.tmp_7); + s.tmp_6 = r0; + r0 = s.arg0.fields["cell"]; + r0 = r0.fields["width"]; + s.tmp_8 = r0; + r0 = (s.tmp_6 * s.tmp_8); + s.tmp_5 = r0; + r0 = (s.tmp_3 + s.tmp_5); s.tmp_2 = r0; - s.tmp_3 = microcode_MelodyEditor_constructor__P4451_mk(s); - s.tmp_3.arg0 = s.tmp_0; - s.tmp_3.arg1 = s.tmp_2; - s.callLocIdx = 1565; s.pc = 4; return s.tmp_3; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_10 = r0; + r0 = (s.arg1 % s.tmp_10); + s.tmp_9 = r0; + r0 = (s.tmp_2 + s.tmp_9); + s.tmp_0.arg1 = r0; + s.callLocIdx = 684; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; - r0 = s.tmp_0; + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + r0 = s.arg2.fields["xfrm_"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["cell"]; + r0 = r0.fields["height"]; + s.tmp_2 = r0; + r0 = (s.row___15530 * s.tmp_2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 687; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MelodyEditor_getNewInstance__P4454.info = {"start":8294,"length":163,"line":277,"column":8,"endLine":281,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNewInstance","argumentNames":["this","field"]} +user_interface_base_PickerGroup_setButtonCoords__P5266.info = {"start":2756,"length":423,"line":85,"column":8,"endLine":93,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"setButtonCoords","argumentNames":["this","idx","btn"]} -function microcode_MelodyEditor_getNewInstance__P4454_mk(s) { +function user_interface_base_PickerGroup_setButtonCoords__P5266_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyEditor_getNewInstance__P4454, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerGroup_setButtonCoords__P5266, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + row___15530: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function microcode_MelodyEditor_getField__P4452(s) { +function user_interface_base_Picker_xfrm__P3727(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32863,17 +36420,18 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyEditor__C4449_VT)) failedCast(r0, microcode_MelodyEditor__C4449_VT); - r0 = s.arg0.fields["field"]; - return leave(s, r0) + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); + r0 = s.arg0.fields["xfrm_"]; + return leaveAccessor(s, r0) default: oops() } } } -microcode_MelodyEditor_getField__P4452.info = {"start":8024,"length":52,"line":267,"column":8,"endLine":269,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getField","argumentNames":["this"]} +user_interface_base_Picker_xfrm__P3727.info = {"start":4282,"length":59,"line":128,"column":8,"endLine":130,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"xfrm","argumentNames":["this"]} +user_interface_base_Picker_xfrm__P3727.isGetter = true; -function microcode_MelodyEditor_getField__P4452_mk(s) { +function user_interface_base_Picker_xfrm__P3727_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyEditor_getField__P4452, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_xfrm__P3727, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, } } @@ -32881,8 +36439,7 @@ function microcode_MelodyEditor_getField__P4452_mk(s) { - -function microcode_DecimalEditor_getNewInstance__P4422(s) { +function user_interface_base_Screen_fillBoundsXfrm__P3436(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32895,50 +36452,44 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalEditor__C4417_VT)) failedCast(r0, microcode_DecimalEditor__C4417_VT); - r0 = pxsim_pxtcore_mkClassInstance(microcode_DecimalEditor__C4417_VT); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - r0 = s.arg1; - { step = 2; continue; } + s.tmp_0 = user_interface_base_Screen_fillRectXfrm__P3435_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = s.arg1.fields["left"]; + s.tmp_0.arg1 = r0; + r0 = s.arg1.fields["top"]; + s.tmp_0.arg2 = r0; + r0 = s.arg1.fields["width"]; + s.tmp_0.arg3 = r0; + r0 = s.arg1.fields["height"]; + s.tmp_0.arg4 = r0; + s.tmp_0.arg5 = s.arg2; + s.callLocIdx = 395; s.pc = 1; return s.tmp_0; case 1: - r0 = s.arg0.fields["field"]; - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - s.tmp_2 = microcode_DecimalEditor_constructor__P4419_mk(s); - s.tmp_2.arg0 = s.tmp_0; - s.tmp_2.arg1 = s.tmp_1; - s.callLocIdx = 1546; s.pc = 3; return s.tmp_2; - case 3: r0 = s.retval; - r0 = s.tmp_0; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_DecimalEditor_getNewInstance__P4422.info = {"start":3300,"length":110,"line":115,"column":8,"endLine":117,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNewInstance","argumentNames":["this","field"]} +user_interface_base_Screen_fillBoundsXfrm__P3436.info = {"start":4503,"length":222,"line":180,"column":4,"endLine":189,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"fillBoundsXfrm","argumentNames":["xfrm","bounds","c"]} -function microcode_DecimalEditor_getNewInstance__P4422_mk(s) { +function user_interface_base_Screen_fillBoundsXfrm__P3436_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalEditor_getNewInstance__P4422, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_fillBoundsXfrm__P3436, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function microcode_MicrobitHost_execute__P4596(s) { +function user_interface_base_Screen_fillRectXfrm__P3435(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -32948,110 +36499,134 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.w___15598 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); + s.arg5 = (s.lambdaArgs[5]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MicrobitHost__C4592_VT)) failedCast(r0, microcode_MicrobitHost__C4592_VT); - s.tmp_0 = r0 = s.arg1; - r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(51, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(46, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(45, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = s.tmp_0; - { step = 7; continue; } + s.tmp_0 = user_interface_base_Affine_worldPos__P3325_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 391; s.pc = 1; return s.tmp_0; case 1: - s.tmp_1 = microcode_MicrobitHost_showIcon__P5869_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.arg2; - s.callLocIdx = 1681; s.pc = 9; return s.tmp_1; - case 9: r0 = s.retval; - { step = 8; continue; } + s.w___15598 = (r0); + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + s.tmp_1 = r0 = s.arg1; + r0 = s.w___15598.fields["x_"]; + s.tmp_2 = r0; + r0 = (s.tmp_1 + s.tmp_2); + s.tmp_0.arg0 = r0; + s.tmp_3 = r0 = s.arg2; + r0 = s.w___15598.fields["y_"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.arg3; + s.tmp_0.arg3 = s.arg4; + s.tmp_0.arg4 = s.arg5; + s.callLocIdx = 394; s.pc = 2; return s.tmp_0; case 2: - s.tmp_0 = basic_showNumber__P2370_mk(s); - s.tmp_0.arg0 = s.arg2; - s.tmp_0.arg1 = 150; - s.callLocIdx = 1682; s.pc = 10; return s.tmp_0; - case 10: - r0 = s.retval; - { step = 8; continue; } - case 3: - r0 = pxsim.radio.setGroup(s.arg2); - { step = 8; continue; } - case 4: - s.tmp_0 = radio_sendNumber__P3062_mk(s); - s.tmp_0.arg0 = s.arg2; - s.callLocIdx = 1683; s.pc = 11; return s.tmp_0; - case 11: r0 = s.retval; - { step = 8; continue; } - case 5: - s.tmp_0 = music_play__P2964_mk(s); - s.tmp_2 = microcode_MicrobitHost_getSound__P5870_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = s.arg2; - s.callLocIdx = 1684; s.pc = 13; return s.tmp_2; - case 13: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_Screen_fillRectXfrm__P3435.info = {"start":4255,"length":242,"line":168,"column":4,"endLine":178,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"fillRectXfrm","argumentNames":["xfrm","x","y","width","height","c"]} + +function user_interface_base_Screen_fillRectXfrm__P3435_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Screen_fillRectXfrm__P3435, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + w___15598: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, + arg5: undefined, +} } + + + + +function microcode_Editor_drawNav__P5964(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = user_interface_base_Button__C3638_v0_1_mk(s); + r0 = s.arg0.fields["diskBtn"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3638_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - s.tmp_1 = r0; - r0 = s.tmp_1; + s.tmp_0 = user_interface_base_Button__C3638_v0_1_mk(s); + r0 = s.arg0.fields["runBtn"]; s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 0; - s.callLocIdx = 1686; s.pc = 12; return s.tmp_0; - case 12: + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3638_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; - { step = 8; continue; } - case 6: - s.tmp_0 = music_play__P2964_mk(s); - s.tmp_1 = music_stringPlayable__P2966_mk(s); - s.tmp_1.arg0 = s.arg2; - s.tmp_1.arg1 = 120; - s.callLocIdx = 1687; s.pc = 15; return s.tmp_1; - case 15: + s.tmp_0 = user_interface_base_Button__C3638_v0_1_mk(s); + r0 = s.arg0.fields["stopBtn"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3638_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; + s.tmp_0 = user_interface_base_Button__C3638_v0_1_mk(s); + r0 = s.arg0.fields["pageBtn"]; s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 0; - s.callLocIdx = 1688; s.pc = 14; return s.tmp_0; - case 14: + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3638_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; - case 7: - case 8: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_execute__P4596.info = {"start":4888,"length":1079,"line":136,"column":8,"endLine":163,"endColumn":9,"fileName":"host.ts","functionName":"execute","argumentNames":["this","action","param"]} +microcode_Editor_drawNav__P5964.info = {"start":16468,"length":196,"line":497,"column":8,"endLine":503,"endColumn":9,"fileName":"editor.ts","functionName":"drawNav","argumentNames":["this"]} -function microcode_MicrobitHost_execute__P4596_mk(s) { +function microcode_Editor_drawNav__P5964_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_execute__P4596, depth: s.depth + 1, + parent: s, fn: microcode_Editor_drawNav__P5964, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function music_stringPlayable__P2966(s) { +function microcode_Editor_drawEditor__P5962(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33063,46 +36638,42 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(music_StringArrayPlayable__C2958_VT); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = s.arg0.fields["pageEditor"]; s.tmp_0 = r0; - s.tmp_1 = music_StringArrayPlayable_constructor__P2959_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_2 = music_getMelodyNotes__P2700_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 148; s.pc = 2; return s.tmp_2; - case 2: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_PageEditor_draw__P4494_mk(s); + r0 = s.arg0.fields["pageEditor"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1549; s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.arg1; - s.callLocIdx = 149; s.pc = 1; return s.tmp_1; case 1: - r0 = s.retval; - r0 = s.tmp_0; + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -music_stringPlayable__P2966.info = {"start":3795,"length":152,"line":121,"column":4,"endLine":123,"endColumn":5,"fileName":"pxt_modules/core/playable.ts","functionName":"stringPlayable","argumentNames":["melody","bpm"]} +microcode_Editor_drawEditor__P5962.info = {"start":15922,"length":128,"line":479,"column":8,"endLine":482,"endColumn":9,"fileName":"editor.ts","functionName":"drawEditor","argumentNames":["this"]} -function music_stringPlayable__P2966_mk(s) { +function microcode_Editor_drawEditor__P5962_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_stringPlayable__P2966, depth: s.depth + 1, + parent: s, fn: microcode_Editor_drawEditor__P5962, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function music_getMelodyNotes__P2700(s) { +function microcode_PageEditor_draw__P4494(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33112,154 +36683,38 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.notes___14384 = undefined; - s.newOctave___14394 = undefined; - s.i___14395 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = helpers_arrayFilter__P2139_mk(s); - s.tmp_1 = helpers_stringSplit__P2151_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = " "; - s.tmp_1.arg2 = undefined; - s.callLocIdx = 59; s.pc = 14; return s.tmp_1; - case 14: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleEditors"]; s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = notes_inline__P14389; - s.callLocIdx = 60; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - s.notes___14384 = (r0); - s.newOctave___14394 = (false); - s.i___14395 = (0); + s.tmp_0.arg1 = microcode_PageEditor_draw_inline__P15647; + s.callLocIdx = 1600; s.pc = 1; return s.tmp_0; case 1: - s.tmp_1 = r0 = s.i___14395; - r0 = pxsim_Array__length(s.notes___14384); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - r0 = pxsim_Array__getAt(s.notes___14384, s.i___14395); - s.tmp_4 = r0; - r0 = (s.tmp_4 === "-"); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 2; continue; } - r0 = pxsim_Array_.setAt(s.notes___14384, s.i___14395, "R"); - { step = 7; continue; } - case 2: - r0 = pxsim_Array__getAt(s.notes___14384, s.i___14395); - s.tmp_1 = r0; - r0 = (s.tmp_1 === "C5"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.newOctave___14394 = (true); - { step = 6; continue; } - case 3: - r0 = pxsim_numops_toBoolDecr(s.newOctave___14394); - if (!r0) { step = 4; continue; } - s.tmp_0 = r0 = s.notes___14384; - s.tmp_1 = r0 = s.i___14395; - r0 = pxsim_Array__getAt(s.tmp_0, s.i___14395); - s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 15); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 15: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_3, "4"); - s.tmp_2 = r0; - r0 = pxsim_Array_.setAt(s.tmp_0, s.tmp_1, s.tmp_2); - s.newOctave___14394 = (false); - case 4: - case 5: - case 6: - case 7: - r0 = (s.i___14395 + 1); - s.i___14395 = (r0); - { step = 1; continue; } - case 8: - s.tmp_2 = r0 = s.notes___14384; - r0 = pxsim_Array__length(s.notes___14384); - s.tmp_4 = r0; - r0 = (s.tmp_4 - 1); - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 === "C5"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 9; continue; } - r0 = s.tmp_0; - { step = 10; continue; } - case 9: - r0 = pxsim_Array__getAt(s.notes___14384, 0); - s.tmp_5 = r0; - r0 = (s.tmp_5 != "C5"); - case 10: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 11; continue; } - s.tmp_7 = r0 = s.notes___14384; - r0 = pxsim_Array__getAt(s.tmp_7, 0); - s.tmp_10 = r0; - if ((s.tmp_10) && (s.tmp_10).vtable) { - setupResume(s, 16); - pxsim_String__stringConv(s.tmp_10); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_10) + ""; } - case 16: r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_String__concat(s.tmp_9, "4"); - s.tmp_8 = r0; - r0 = pxsim_Array_.setAt(s.tmp_7, 0, s.tmp_8); - case 11: - case 12: - r0 = s.notes___14384; + r0 = undefined; return leave(s, r0) default: oops() } } } -music_getMelodyNotes__P2700.info = {"start":15594,"length":905,"line":447,"column":4,"endLine":471,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"getMelodyNotes","argumentNames":["melody"]} +microcode_PageEditor_draw__P4494.info = {"start":21172,"length":116,"line":644,"column":8,"endLine":647,"endColumn":9,"fileName":"editor.ts","functionName":"draw","argumentNames":["this"]} -function music_getMelodyNotes__P2700_mk(s) { +function microcode_PageEditor_draw__P4494_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_getMelodyNotes__P2700, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_draw__P4494, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - notes___14384: undefined, - newOctave___14394: undefined, - i___14395: undefined, arg0: undefined, } } - -function notes_inline__P14389(s) { +function microcode_PageEditor_draw_inline__P15647(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33273,34 +36728,30 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_Boolean__bang(s.tmp_0); + s.tmp_0 = microcode_RuleEditor_draw__P4512_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1599; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -notes_inline__P14389.info = {"start":15698,"length":8,"line":448,"column":55,"endLine":448,"endColumn":63,"fileName":"pxt_modules/core/music.ts","functionName":"inline","argumentNames":["n"]} +microcode_PageEditor_draw_inline__P15647.info = {"start":21258,"length":19,"line":646,"column":37,"endLine":646,"endColumn":56,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} -function notes_inline__P14389_mk(s) { +function microcode_PageEditor_draw_inline__P15647_mk(s) { checkStack(s.depth); return { - parent: s, fn: notes_inline__P14389, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_draw_inline__P15647, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, } } - -function music_StringArrayPlayable_constructor__P2959(s) { +function microcode_RuleEditor_draw__P4512(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33312,36 +36763,103 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, music_StringArrayPlayable__C2958_VT)) failedCast(r0, music_StringArrayPlayable__C2958_VT); - r0 = (s.arg0).fields["notes"] = (s.arg1); - r0 = (s.arg0).fields["tempo"] = (s.arg2); - r0 = undefined; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + s.tmp_1 = microcode_RuleEditor_isOffScreen__P4511_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1765; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 7; continue; } + case 1: + case 2: + s.tmp_2 = microcode_RuleEditor_drawBackground__P5985_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1766; s.pc = 9; return s.tmp_2; + case 9: + r0 = s.retval; + s.tmp_0 = user_interface_base_Button__C3638_v0_1_mk(s); + r0 = s.arg0.fields["handleBtn"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3638_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + r0 = s.arg0.fields["whenInsertBtn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = user_interface_base_Button__C3638_v0_1_mk(s); + r0 = s.arg0.fields["whenInsertBtn"]; + s.tmp_1.arg0 = r0; + if (!checkSubtype(s.tmp_1.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_1.arg0, user_interface_base_Button__C3638_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.draw; + s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + case 3: + case 4: + s.tmp_0 = user_interface_base_Sprite_draw__P3458_mk(s); + r0 = s.arg0.fields["arrow"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1767; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + r0 = s.arg0.fields["doInsertBtn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_1 = user_interface_base_Button__C3638_v0_1_mk(s); + r0 = s.arg0.fields["doInsertBtn"]; + s.tmp_1.arg0 = r0; + if (!checkSubtype(s.tmp_1.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_1.arg0, user_interface_base_Button__C3638_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.draw; + s.pc = 13; return s.tmp_1; + case 13: + r0 = s.retval; + case 5: + case 6: + r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_draw_inline__P15675); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = microcode_repNames__P5970_mk(s); + s.callLocIdx = 1768; s.pc = 15; return s.tmp_2; + case 15: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1770; s.pc = 14; return s.tmp_1; + case 14: + r0 = s.retval; + case 7: r0 = undefined; return leave(s, r0) default: oops() } } } -music_StringArrayPlayable_constructor__P2959.info = {"start":841,"length":92,"line":39,"column":8,"endLine":41,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"inline","argumentNames":["this","notes","tempo"]} +microcode_RuleEditor_draw__P4512.info = {"start":17455,"length":607,"line":489,"column":8,"endLine":505,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"draw","argumentNames":["this"]} -function music_StringArrayPlayable_constructor__P2959_mk(s) { +function microcode_RuleEditor_draw__P4512_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_StringArrayPlayable_constructor__P2959, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_draw__P4512, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function music_Playable_constructor__P2955(s) { +function microcode_RuleEditor_draw_inline__P15675(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33351,31 +36869,79 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.buttons___15677 = undefined; + s.i___15682 = undefined; + s.btn___15688 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, music_Playable__C2953_VT)) failedCast(r0, music_Playable__C2953_VT); + r0 = s.caps[0].fields["ruleButtons"]; + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg0); + s.buttons___15677 = (r0); + s.i___15682 = (0); + case 1: + s.tmp_1 = r0 = s.i___15682; + r0 = pxsim_Array__length(s.buttons___15677); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = pxsim_Array__getAt(s.buttons___15677, s.i___15682); + s.btn___15688 = (r0); + s.tmp_3 = user_interface_base_ButtonBase_isOffScreenX__P3636_mk(s); + s.tmp_3.arg0 = s.btn___15688; + s.callLocIdx = 1769; s.pc = 5; return s.tmp_3; + case 5: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_4 = user_interface_base_Button__C3638_v0_1_mk(s); + s.tmp_4.arg0 = s.btn___15688; + if (!checkSubtype(s.tmp_4.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_4.arg0, user_interface_base_Button__C3638_VT); + s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.draw; + s.pc = 6; return s.tmp_4; + case 6: + r0 = s.retval; + case 2: + case 3: + r0 = (s.i___15682 + 1); + s.i___15682 = (r0); + { step = 1; continue; } + case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -music_Playable_constructor__P2955.info = {"start":324,"length":26,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"inline","argumentNames":["this"]} +microcode_RuleEditor_draw_inline__P15675.info = {"start":17797,"length":254,"line":498,"column":31,"endLine":504,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["name"]} -function music_Playable_constructor__P2955_mk(s) { +function microcode_RuleEditor_draw_inline__P15675_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_Playable_constructor__P2955, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_draw_inline__P15675, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + buttons___15677: undefined, + i___15682: undefined, + btn___15688: undefined, arg0: undefined, } } - -function microcode_MicrobitHost_getSound__P5870(s) { +function user_interface_base_ButtonBase_isOffScreenX__P3636(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33387,87 +36953,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MicrobitHost__C4592_VT)) failedCast(r0, microcode_MicrobitHost__C4592_VT); - s.tmp_0 = r0 = s.arg1; - r0 = pxsim_pxtcore.switch_eq(163, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(164, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(165, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(166, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(167, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(168, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(169, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(170, s.tmp_0); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(171, s.tmp_0); - if (r0) { step = 9; continue; } - r0 = pxsim_pxtcore.switch_eq(172, s.tmp_0); - if (r0) { step = 10; continue; } - r0 = s.tmp_0; - { step = 11; continue; } + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + s.tmp_0 = user_interface_base_Sprite_isOffScreenX__P3457_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 520; s.pc = 1; return s.tmp_0; case 1: - r0 = globals.giggle___2874; - { step = 12; continue; } - case 2: - r0 = globals.happy___2875; - { step = 12; continue; } - case 3: - r0 = globals.hello___2876; - { step = 12; continue; } - case 4: - r0 = globals.mysterious___2877; - { step = 12; continue; } - case 5: - r0 = globals.sad___2878; - { step = 12; continue; } - case 6: - r0 = globals.slide___2879; - { step = 12; continue; } - case 7: - r0 = globals.soaring___2880; - { step = 12; continue; } - case 8: - r0 = globals.spring___2881; - { step = 12; continue; } - case 9: - r0 = globals.twinkle___2882; - { step = 12; continue; } - case 10: - r0 = globals.yawn___2883; - { step = 12; continue; } - case 11: - r0 = globals.giggle___2874; - case 12: + r0 = s.retval; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_getSound__P5870.info = {"start":6403,"length":1141,"line":177,"column":8,"endLine":201,"endColumn":9,"fileName":"host.ts","functionName":"getSound","argumentNames":["this","sound"]} +user_interface_base_ButtonBase_isOffScreenX__P3636.info = {"start":3656,"length":69,"line":164,"column":4,"endLine":166,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"isOffScreenX","argumentNames":["this"]} -function microcode_MicrobitHost_getSound__P5870_mk(s) { +function user_interface_base_ButtonBase_isOffScreenX__P3636_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_getSound__P5870, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_isOffScreenX__P3636, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function SoundExpression_constructor__P2850(s) { +function user_interface_base_Sprite_isOffScreenX__P3457(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33477,35 +36990,82 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.p___15706 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, SoundExpression__C2849_VT)) failedCast(r0, SoundExpression__C2849_VT); - r0 = (s.arg0).fields["notes"] = (s.arg1); - r0 = undefined; - r0 = undefined; + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + s.tmp_0 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 472; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.p___15706 = (r0); + r0 = s.p___15706.fields["x_"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["image"]; + s.tmp_5 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 < globals.user_interface_base_Screen_LEFT_EDGE___3416); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = s.p___15706.fields["x_"]; + s.tmp_7 = r0; + r0 = s.arg0.fields["image"]; + s.tmp_10 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_10); + s.tmp_9 = r0; + r0 = (s.tmp_9 >> 1); + s.tmp_8 = r0; + r0 = (s.tmp_7 - s.tmp_8); + s.tmp_6 = r0; + r0 = (s.tmp_6 > globals.user_interface_base_Screen_RIGHT_EDGE___3417); + case 2: + // jmp value (already in r0) + s.tmp_11 = r0; + r0 = s.tmp_11; return leave(s, r0) default: oops() } } } -SoundExpression_constructor__P2850.info = {"start":153,"length":58,"line":7,"column":4,"endLine":9,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"inline","argumentNames":["this","notes"]} +user_interface_base_Sprite_isOffScreenX__P3457.info = {"start":1593,"length":240,"line":58,"column":8,"endLine":64,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"isOffScreenX","argumentNames":["this"]} -function SoundExpression_constructor__P2850_mk(s) { +function user_interface_base_Sprite_isOffScreenX__P3457_mk(s) { checkStack(s.depth); return { - parent: s, fn: SoundExpression_constructor__P2850, depth: s.depth + 1, + parent: s, fn: user_interface_base_Sprite_isOffScreenX__P3457, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + p___15706: undefined, arg0: undefined, - arg1: undefined, } } - -function music_builtinPlayableSoundEffect__P2947(s) { +function microcode_repNames__P5970(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33515,29 +37075,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, "sensors"); + r0 = pxsim_Array__push(s.tmp_0, "filters"); + r0 = pxsim_Array__push(s.tmp_0, "actuators"); + r0 = pxsim_Array__push(s.tmp_0, "modifiers"); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -music_builtinPlayableSoundEffect__P2947.info = {"start":16665,"length":116,"line":510,"column":4,"endLine":512,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"builtinPlayableSoundEffect","argumentNames":["soundExpression"]} +microcode_repNames__P5970.info = {"start":712,"length":91,"line":16,"column":4,"endLine":18,"endColumn":5,"fileName":"ruleeditor.ts","functionName":"repNames","argumentNames":[]} -function music_builtinPlayableSoundEffect__P2947_mk(s) { +function microcode_repNames__P5970_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_builtinPlayableSoundEffect__P2947, depth: s.depth + 1, + parent: s, fn: microcode_repNames__P5970, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, + tmp_0: undefined, } } - -function music_play__P2964(s) { +function microcode_RuleEditor_drawBackground__P5985(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33549,38 +37110,57 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = music_Playable__C2953_v0_2_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - if (!checkSubtype(s.tmp_0.arg0, music_Playable__C2953_VT)) failedCast(s.tmp_0.arg0, music_Playable__C2953_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods._play; - s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + s.tmp_0 = user_interface_base_Screen_fillBoundsXfrm__P3436_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["bounds"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = 11; + s.callLocIdx = 1772; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_fillBoundsXfrm__P3436_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["whenBounds"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = 13; + s.callLocIdx = 1774; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_outlineBoundsXfrm__P3438_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["bounds"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = 1; + s.tmp_0.arg3 = 12; + s.callLocIdx = 1776; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -music_play__P2964.info = {"start":2593,"length":110,"line":90,"column":4,"endLine":92,"endColumn":5,"fileName":"pxt_modules/core/playable.ts","functionName":"play","argumentNames":["toPlay","playbackMode"]} +microcode_RuleEditor_drawBackground__P5985.info = {"start":18072,"length":272,"line":507,"column":8,"endLine":512,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"drawBackground","argumentNames":["this"]} -function music_play__P2964_mk(s) { +function microcode_RuleEditor_drawBackground__P5985_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_play__P2964, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_drawBackground__P5985, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function music_Playable__play__P2956(s) { +function microcode_RuleEditor_xfrm__P4505(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33592,31 +37172,29 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, music_Playable__C2953_VT)) failedCast(r0, music_Playable__C2953_VT); - r0 = undefined; - return leave(s, r0) + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = s.arg0.fields["xfrm_"]; + return leaveAccessor(s, r0) default: oops() } } } -music_Playable__play__P2956.info = {"start":360,"length":69,"line":18,"column":8,"endLine":20,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"_play","argumentNames":["this","playbackMode"]} +microcode_RuleEditor_xfrm__P4505.info = {"start":1179,"length":59,"line":32,"column":8,"endLine":34,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"xfrm","argumentNames":["this"]} +microcode_RuleEditor_xfrm__P4505.isGetter = true; -function music_Playable__play__P2956_mk(s) { +function microcode_RuleEditor_xfrm__P4505_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_Playable__play__P2956, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_xfrm__P4505, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, - arg1: undefined, } } - -function radio_sendNumber__P3062(s) { +function microcode_RuleEditor_isOffScreen__P4511(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33626,68 +37204,81 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.packet___14496 = undefined; + s.y___15747 = undefined; + s.b___15751 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_1 = r0 = s.arg0; - r0 = (s.arg0 | 0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + s.tmp_1 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1762; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.tmp_0 = r0; + r0 = s.tmp_0.fields["y_"]; + s.y___15747 = (r0); + r0 = s.arg0.fields["bounds"]; + s.b___15751 = (r0); + r0 = s.b___15751.fields["top"]; s.tmp_2 = r0; - r0 = (s.tmp_1 === s.tmp_2); + r0 = (s.y___15747 + s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 > globals.user_interface_base_Screen_BOTTOM_EDGE___3419); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_3 = radio_RadioPacket_mkPacket__P3047_mk(s); - s.tmp_3.arg0 = 0; - s.callLocIdx = 168; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; - s.packet___14496 = (r0); + r0 = s.tmp_0; { step = 2; continue; } case 1: - s.tmp_0 = radio_RadioPacket_mkPacket__P3047_mk(s); - s.tmp_0.arg0 = 4; - s.callLocIdx = 169; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - s.packet___14496 = (r0); + s.tmp_4 = r0 = s.y___15747; + r0 = s.b___15751.fields["top"]; + s.tmp_7 = r0; + r0 = s.b___15751.fields["height"]; + s.tmp_8 = r0; + r0 = (s.tmp_7 + s.tmp_8); + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = (s.tmp_4 + s.tmp_5); + s.tmp_3 = r0; + r0 = (s.tmp_3 < globals.user_interface_base_Screen_TOP_EDGE___3418); case 2: - s.tmp_0 = radio_RadioPacket_numberPayload__P3057_mk(s); - s.tmp_0.arg0 = s.packet___14496; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 170; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.tmp_0 = radio_sendPacket__P5003_mk(s); - s.tmp_0.arg0 = s.packet___14496; - s.callLocIdx = 171; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - r0 = undefined; + // jmp value (already in r0) + s.tmp_9 = r0; + r0 = s.tmp_9; return leave(s, r0) default: oops() } } } -radio_sendNumber__P3062.info = {"start":9978,"length":348,"line":283,"column":4,"endLine":295,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"sendNumber","argumentNames":["value"]} +microcode_RuleEditor_isOffScreen__P4511.info = {"start":17218,"length":227,"line":481,"column":8,"endLine":487,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"isOffScreen","argumentNames":["this"]} -function radio_sendNumber__P3062_mk(s) { +function microcode_RuleEditor_isOffScreen__P4511_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_sendNumber__P3062, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_isOffScreen__P4511, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - packet___14496: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + y___15747: undefined, + b___15751: undefined, arg0: undefined, } } - -function radio_sendPacket__P5003(s) { +function microcode_Editor_drawBackground__P5963(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33697,61 +37288,61 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.x___15771 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = radio_RadioPacket_time__P3051_mk(s); - s.tmp_0.arg0 = s.arg0; - r0 = pxsim.control.millis(); - s.tmp_0.arg1 = r0; - s.callLocIdx = 172; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals.transmittingSerial___4993); - if (!r0) { step = 1; continue; } - r0 = pxsim.control.deviceSerialNumber(); - { step = 2; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = r0 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + r0 = s.arg0.fields["currPage"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 << 4); + s.tmp_1 = r0; + r0 = (s.tmp_0 - s.tmp_1); + s.x___15771 = (r0); case 1: - r0 = 0; - case 2: - // jmp value (already in r0) - s.tmp_0 = r0; - s.tmp_1 = radio_RadioPacket_serial__P3053_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 173; s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - r0 = s.arg0.fields["data"]; + r0 = (s.x___15771 < globals.user_interface_base_Screen_RIGHT_EDGE___3417); s.tmp_0 = r0; - setupResume(s, 5); - pxsim.radio.sendRawPacket(s.tmp_0); - checkResumeConsumed(); - return; - case 5: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = user_interface_base_Screen_drawTransparentImage__P3427_mk(s); + s.tmp_1.arg0 = globals.editorBackground___4049; + s.tmp_1.arg1 = s.x___15771; + s.tmp_1.arg2 = globals.user_interface_base_Screen_TOP_EDGE___3418; + s.callLocIdx = 1550; s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; + s.tmp_0 = r0 = s.x___15771; + r0 = pxsim.BitmapMethods.width(globals.editorBackground___4049); + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); + s.x___15771 = (r0); + { step = 1; continue; } + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -radio_sendPacket__P5003.info = {"start":12617,"length":209,"line":363,"column":4,"endLine":367,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"sendPacket","argumentNames":["packet"]} +microcode_Editor_drawBackground__P5963.info = {"start":16060,"length":398,"line":484,"column":8,"endLine":495,"endColumn":9,"fileName":"editor.ts","functionName":"drawBackground","argumentNames":["this"]} -function radio_sendPacket__P5003_mk(s) { +function microcode_Editor_drawBackground__P5963_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_sendPacket__P5003, depth: s.depth + 1, + parent: s, fn: microcode_Editor_drawBackground__P5963, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + x___15771: undefined, arg0: undefined, } } - -function radio_RadioPacket_serial__P3053(s) { +function user_interface_base_Screen_drawTransparentImage__P3427(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33764,34 +37355,45 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = s.arg0.fields["data"]; + s.tmp_1 = user_interface_base_Screen_image__P3424_mk(s); + s.callLocIdx = 372; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim.BufferMethods.setNumber(s.tmp_0, 5, 5, s.arg1); + s.tmp_2 = r0 = s.arg0; + r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_WIDTH___3414); + s.tmp_3 = r0; + r0 = (s.arg2 + globals.user_interface_base_Screen_HALF_HEIGHT___3415); + s.tmp_4 = r0; + r0 = pxsim.BitmapMethods.drawTransparentBitmap(s.tmp_0, s.tmp_2, s.tmp_3, s.tmp_4); r0 = undefined; return leave(s, r0) default: oops() } } } -radio_RadioPacket_serial__P3053.info = {"start":7156,"length":98,"line":208,"column":8,"endLine":210,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"serial","argumentNames":["this","val"]} +user_interface_base_Screen_drawTransparentImage__P3427.info = {"start":2113,"length":151,"line":68,"column":4,"endLine":70,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"drawTransparentImage","argumentNames":["from","x","y"]} -function radio_RadioPacket_serial__P3053_mk(s) { +function user_interface_base_Screen_drawTransparentImage__P3427_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_serial__P3053, depth: s.depth + 1, + parent: s, fn: user_interface_base_Screen_drawTransparentImage__P3427, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function radio_RadioPacket_serial__P3052(s) { +function microcode_Editor_update__P4479(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33806,30 +37408,58 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = s.arg0.fields["data"]; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = s.arg0.fields["pageEditor"]; s.tmp_0 = r0; - r0 = pxsim.BufferMethods.getNumber(s.tmp_0, 5, 5); - return leaveAccessor(s, r0) + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_PageEditor_update__P4493_mk(s); + r0 = s.arg0.fields["pageEditor"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1539; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + case 1: + case 2: + r0 = s.arg0.fields["_changed"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = (s.arg0).fields["_changed"] = (false); + r0 = (s.arg0).fields["dirty"] = (true); + s.tmp_0 = microcode_Editor_rebuildNavigator__P5961_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1540; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + case 3: + case 4: + s.tmp_0 = user_interface_base_Cursor_update__P3715_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1541; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -radio_RadioPacket_serial__P3052.info = {"start":7057,"length":89,"line":204,"column":8,"endLine":206,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"serial","argumentNames":["this"]} -radio_RadioPacket_serial__P3052.isGetter = true; +microcode_Editor_update__P4479.info = {"start":15274,"length":302,"line":455,"column":8,"endLine":465,"endColumn":9,"fileName":"editor.ts","functionName":"update","argumentNames":["this"]} -function radio_RadioPacket_serial__P3052_mk(s) { +function microcode_Editor_update__P4479_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_serial__P3052, depth: s.depth + 1, + parent: s, fn: microcode_Editor_update__P4479, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function radio_RadioPacket_time__P3051(s) { +function user_interface_base_Cursor_update__P3715(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33841,35 +37471,40 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = s.arg0.fields["data"]; - s.tmp_0 = r0; - r0 = pxsim.BufferMethods.setNumber(s.tmp_0, 5, 1, s.arg1); + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + s.tmp_0 = user_interface_base_Vec2_copyFrom__P3391_mk(s); + r0 = s.arg0.fields["xfrm"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["moveDest"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 644; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -radio_RadioPacket_time__P3051.info = {"start":6951,"length":96,"line":200,"column":8,"endLine":202,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"time","argumentNames":["this","val"]} +user_interface_base_Cursor_update__P3715.info = {"start":5323,"length":65,"line":188,"column":4,"endLine":190,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"update","argumentNames":["this"]} -function radio_RadioPacket_time__P3051_mk(s) { +function user_interface_base_Cursor_update__P3715_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_time__P3051, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_update__P3715, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, - arg1: undefined, } } - -function radio_RadioPacket_time__P3050(s) { +function microcode_Editor_rebuildNavigator__P5961(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33879,35 +37514,185 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.col___15830 = undefined; + s.row___15831 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = s.arg0.fields["data"]; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["visible"]; s.tmp_0 = r0; - r0 = pxsim.BufferMethods.getNumber(s.tmp_0, 5, 1); - return leaveAccessor(s, r0) + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 9; continue; } + case 1: + case 2: + s.col___15830 = (0); + s.row___15831 = (0); + r0 = s.arg0.fields["navigator"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = user_interface_base_RowNavigator__C3753_v2_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_1.arg0 = r0; + if (!checkSubtype(s.tmp_1.arg0, user_interface_base_RowNavigator__C3753_VT)) failedCast(s.tmp_1.arg0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.getCol; + s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + s.col___15830 = (r0); + s.tmp_0 = user_interface_base_RowNavigator__C3753_v1_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_RowNavigator__C3753_VT)) failedCast(s.tmp_0.arg0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getRow; + s.pc = 11; return s.tmp_0; + case 11: + r0 = s.retval; + s.row___15831 = (r0); + s.tmp_0 = microcode_RuleRowNavigator__C4720_v0_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, microcode_RuleRowNavigator__C4720_VT)) failedCast(s.tmp_0.arg0, microcode_RuleRowNavigator__C4720_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.clear; + s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + { step = 4; continue; } + case 3: + r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleRowNavigator__C4720_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_RuleRowNavigator_constructor__P4721_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1533; s.pc = 13; return s.tmp_1; + case 13: + r0 = s.retval; + r0 = (s.arg0).fields["navigator"] = (s.tmp_0); + case 4: + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; + r0 = s.arg0.fields["diskBtn"]; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + r0 = s.arg0.fields["runBtn"]; + s.tmp_2 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_2); + r0 = s.arg0.fields["stopBtn"]; + s.tmp_3 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_3); + r0 = s.arg0.fields["pageBtn"]; + s.tmp_4 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_4); + r0 = pxsim_Array__mk(); + s.tmp_5 = r0; + r0 = pxsim_Array__push(s.tmp_5, s.tmp_0); + s.tmp_6 = user_interface_base_RowNavigator__C3753_v3_2_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_6.arg0 = r0; + s.tmp_6.arg1 = s.tmp_5; + if (!checkSubtype(s.tmp_6.arg0, user_interface_base_RowNavigator__C3753_VT)) failedCast(s.tmp_6.arg0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_6.fn = s.tmp_6.arg0.vtable.methods.setBtns; + s.pc = 14; return s.tmp_6; + case 14: + r0 = s.retval; + s.tmp_0 = microcode_PageEditor_addToNavigator__P4488_mk(s); + r0 = s.arg0.fields["pageEditor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1534; s.pc = 15; return s.tmp_0; + case 15: + r0 = s.retval; + r0 = s.arg0.fields["cursor"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["navigator"]; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); + r0 = s.arg0.fields["queuedCursorMove"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = s.arg0.fields["queuedCursorMove"]; + s.tmp_1 = r0; + r0 = (s.col___15830 + s.tmp_1); + s.col___15830 = (r0); + r0 = (s.arg0).fields["queuedCursorMove"] = (undefined); + case 5: + case 6: + s.tmp_1 = r0 = s.row___15831; + r0 = s.arg0.fields["navigator"]; + s.tmp_3 = r0; + r0 = s.tmp_3.fields["buttonGroups"]; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_1 >= s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + r0 = s.arg0.fields["navigator"]; + s.tmp_6 = r0; + r0 = s.tmp_6.fields["buttonGroups"]; + s.tmp_7 = r0; + r0 = pxsim_Array__length(s.tmp_7); + s.tmp_5 = r0; + r0 = (s.tmp_5 - 1); + s.row___15831 = (r0); + case 7: + case 8: + s.tmp_0 = user_interface_base_RowNavigator_initialCursor__P3766_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.row___15831; + s.tmp_0.arg2 = s.col___15830; + s.callLocIdx = 1537; s.pc = 16; return s.tmp_0; + case 16: + r0 = s.retval; + s.tmp_0 = microcode_Editor_scrollAndMoveButton__P5954_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = user_interface_base_RowNavigator__C3753_v7_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_1.arg0 = r0; + if (!checkSubtype(s.tmp_1.arg0, user_interface_base_RowNavigator__C3753_VT)) failedCast(s.tmp_1.arg0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.getCurrent; + s.pc = 18; return s.tmp_1; + case 18: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1538; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + case 9: + r0 = undefined; + return leave(s, r0) default: oops() } } } -radio_RadioPacket_time__P3050.info = {"start":6854,"length":87,"line":196,"column":8,"endLine":198,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"time","argumentNames":["this"]} -radio_RadioPacket_time__P3050.isGetter = true; +microcode_Editor_rebuildNavigator__P5961.info = {"start":14259,"length":1005,"line":426,"column":8,"endLine":453,"endColumn":9,"fileName":"editor.ts","functionName":"rebuildNavigator","argumentNames":["this"]} -function radio_RadioPacket_time__P3050_mk(s) { +function microcode_Editor_rebuildNavigator__P5961_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_time__P3050, depth: s.depth + 1, + parent: s, fn: microcode_Editor_rebuildNavigator__P5961, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + col___15830: undefined, + row___15831: undefined, arg0: undefined, } } - -function radio_RadioPacket_numberPayload__P3057(s) { +function user_interface_base_RowNavigator_getCurrent__P3765(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33919,60 +37704,40 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); - r0 = s.arg0.fields["data"]; + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + r0 = s.arg0.fields["buttonGroups"]; s.tmp_1 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_1, 0); - s.tmp_0 = r0; - r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); - if (r0) { step = 4; continue; } - r0 = s.tmp_0; - { step = 5; continue; } - case 1: - case 2: - r0 = s.arg0.fields["data"]; + r0 = s.arg0.fields["row"]; s.tmp_2 = r0; - r0 = pxsim.BufferMethods.setNumber(s.tmp_2, 5, 9, s.arg1); - { step = 5; continue; } - case 3: - case 4: - r0 = s.arg0.fields["data"]; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); s.tmp_0 = r0; - r0 = pxsim.BufferMethods.setNumber(s.tmp_0, 14, 9, s.arg1); - case 5: - r0 = undefined; + r0 = s.arg0.fields["col"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_3); return leave(s, r0) default: oops() } } } -radio_RadioPacket_numberPayload__P3057.info = {"start":8331,"length":500,"line":238,"column":8,"endLine":249,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"numberPayload","argumentNames":["this","val"]} +user_interface_base_RowNavigator_getCurrent__P3765.info = {"start":5903,"length":96,"line":181,"column":8,"endLine":183,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getCurrent","argumentNames":["this"]} -function radio_RadioPacket_numberPayload__P3057_mk(s) { +function user_interface_base_RowNavigator_getCurrent__P3765_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_numberPayload__P3057, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_getCurrent__P3765, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, arg0: undefined, - arg1: undefined, } } - -function radio_RadioPacket_mkPacket__P3047(s) { +function microcode_Editor_scrollAndMoveButton__P5954(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -33982,45 +37747,194 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.res___14577 = undefined; + s.occBounds___15925 = undefined; + s.occ___15940 = undefined; + s.xocc___15952 = undefined; + s.yocc___15963 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(radio_RadioPacket__C3045_VT); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - s.tmp_1 = radio_RadioPacket_constructor__P5002_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = undefined; - s.callLocIdx = 163; s.pc = 1; return s.tmp_1; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 13; continue; } case 1: + case 2: + s.tmp_4 = user_interface_base_Affine_root__P3330_mk(s); + r0 = s.arg1.fields["xfrm_"]; + s.tmp_4.arg0 = r0; + s.callLocIdx = 1453; s.pc = 14; return s.tmp_4; + case 14: + r0 = s.retval; + s.tmp_3 = r0; + r0 = s.arg0.fields["hudroot"]; + s.tmp_6 = r0; + r0 = s.tmp_6.fields["xfrm_"]; + s.tmp_5 = r0; + r0 = (s.tmp_3 === s.tmp_5); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + s.tmp_7 = microcode_Editor_moveTo__P5952_mk(s); + s.tmp_7.arg0 = s.arg0; + s.tmp_7.arg1 = s.arg1; + s.callLocIdx = 1455; s.pc = 15; return s.tmp_7; + case 15: r0 = s.retval; - s.res___14577 = (s.tmp_0); - r0 = s.res___14577.fields["data"]; + { step = 13; continue; } + case 3: + case 4: + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); s.tmp_0 = r0; - r0 = pxsim.BufferMethods.setByte(s.tmp_0, 0, s.arg0); - r0 = s.res___14577; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", globals.user_interface_base_Screen_LEFT_EDGE___3416); + r0 = (globals.user_interface_base_Screen_TOP_EDGE___3418 + 17); + s.tmp_3 = r0; + r0 = (s.tmp_3 + 2); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", globals.user_interface_base_Screen_WIDTH___3412); + r0 = (globals.user_interface_base_Screen_HEIGHT___3413 - 19); + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_4); + s.tmp_5 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_5.arg0 = s.tmp_0; + s.tmp_5.arg1 = s.tmp_1; + s.callLocIdx = 1456; s.pc = 16; return s.tmp_5; + case 16: + r0 = s.retval; + s.occBounds___15925 = (s.tmp_0); + s.tmp_0 = user_interface_base_ButtonBase_occlusions__P3631_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.occBounds___15925; + s.callLocIdx = 1457; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + s.occ___15940 = (r0); + s.tmp_1 = user_interface_base_Occlusions_has__P3368_mk(s); + s.tmp_1.arg0 = s.occ___15940; + s.callLocIdx = 1458; s.pc = 18; return s.tmp_1; + case 18: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 5; continue; } + r0 = s.tmp_0; + { step = 6; continue; } + case 5: + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["visible"]; + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + case 6: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 11; continue; } + r0 = s.occ___15940.fields["left"]; + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 7; continue; } + r0 = s.occ___15940.fields["left"]; + { step = 8; continue; } + case 7: + r0 = s.occ___15940.fields["right"]; + s.tmp_6 = r0; + r0 = (0 - s.tmp_6); + case 8: + // jmp value (already in r0) + s.tmp_7 = r0; + s.xocc___15952 = (s.tmp_7); + r0 = s.occ___15940.fields["top"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = s.occ___15940.fields["top"]; + { step = 10; continue; } + case 9: + r0 = s.occ___15940.fields["bottom"]; + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + case 10: + // jmp value (already in r0) + s.tmp_2 = r0; + s.yocc___15963 = (s.tmp_2); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.xocc___15952; + s.tmp_1.arg2 = s.yocc___15963; + s.callLocIdx = 1461; s.pc = 19; return s.tmp_1; + case 19: + r0 = s.retval; + s.tmp_2 = user_interface_base_Vec2_TranslateToRef__P3398_mk(s); + r0 = s.arg0.fields["scrollroot"]; + s.tmp_4 = r0; + r0 = s.tmp_4.fields["xfrm_"]; + s.tmp_3 = r0; + r0 = s.tmp_3.fields["localPos_"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + r0 = s.arg0.fields["scrollroot"]; + s.tmp_6 = r0; + r0 = s.tmp_6.fields["xfrm_"]; + s.tmp_5 = r0; + r0 = s.tmp_5.fields["localPos_"]; + s.tmp_2.arg2 = r0; + s.callLocIdx = 1464; s.pc = 20; return s.tmp_2; + case 20: + r0 = s.retval; + case 11: + case 12: + s.tmp_0 = microcode_Editor_moveTo__P5952_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 1465; s.pc = 21; return s.tmp_0; + case 21: + r0 = s.retval; + case 13: + r0 = undefined; return leave(s, r0) default: oops() } } } -radio_RadioPacket_mkPacket__P3047.info = {"start":6340,"length":159,"line":178,"column":8,"endLine":182,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"mkPacket","argumentNames":["packetType"]} +microcode_Editor_scrollAndMoveButton__P5954.info = {"start":6270,"length":1059,"line":188,"column":8,"endLine":217,"endColumn":9,"fileName":"editor.ts","functionName":"scrollAndMoveButton","argumentNames":["this","target"]} -function radio_RadioPacket_mkPacket__P3047_mk(s) { +function microcode_Editor_scrollAndMoveButton__P5954_mk(s) { checkStack(s.depth); return { - parent: s, fn: radio_RadioPacket_mkPacket__P3047, depth: s.depth + 1, + parent: s, fn: microcode_Editor_scrollAndMoveButton__P5954, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - res___14577: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + occBounds___15925: undefined, + occ___15940: undefined, + xocc___15952: undefined, + yocc___15963: undefined, arg0: undefined, + arg1: undefined, } } - -function basic_showNumber__P2370(s) { +function user_interface_base_Occlusions_has__P3368(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34032,64 +37946,110 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_1 = isNaN__P2122_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 32; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Occlusions__C3367_VT)) failedCast(r0, user_interface_base_Occlusions__C3367_VT); + r0 = s.arg0.fields["left"]; + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + s.tmp_3 = r0; + r0 = pxsim_Boolean__bang(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - setupResume(s, 4); - pxsim.basic.showString("?", 150); - checkResumeConsumed(); - return; - case 4: - r0 = s.retval; + r0 = s.tmp_0; { step = 2; continue; } case 1: - s.tmp_2 = Math_roundWithPrecision__P2161_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = 2; - s.callLocIdx = 33; s.pc = 5; return s.tmp_2; + r0 = s.arg0.fields["top"]; + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); + s.tmp_7 = r0; + r0 = pxsim_Boolean__bang(s.tmp_7); + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + s.tmp_5 = r0; + r0 = pxsim_Boolean__bang(s.tmp_5); + case 2: + // jmp value (already in r0) + s.tmp_9 = r0; + r0 = pxsim_numops_toBool(s.tmp_9); + if (!r0) { step = 3; continue; } + r0 = s.tmp_9; + { step = 4; continue; } + case 3: + r0 = s.arg0.fields["right"]; + s.tmp_13 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_13); + s.tmp_12 = r0; + r0 = pxsim_Boolean__bang(s.tmp_12); + s.tmp_11 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_11); + s.tmp_10 = r0; + r0 = pxsim_Boolean__bang(s.tmp_10); + case 4: + // jmp value (already in r0) + s.tmp_14 = r0; + r0 = pxsim_numops_toBool(s.tmp_14); + if (!r0) { step = 5; continue; } + r0 = s.tmp_14; + { step = 6; continue; } case 5: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_numops.toString(s.tmp_1); - s.tmp_0 = r0; - setupResume(s, 6); - pxsim.basic.showString(s.tmp_0, s.arg1); - checkResumeConsumed(); - return; + r0 = s.arg0.fields["bottom"]; + s.tmp_18 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_18); + s.tmp_17 = r0; + r0 = pxsim_Boolean__bang(s.tmp_17); + s.tmp_16 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_16); + s.tmp_15 = r0; + r0 = pxsim_Boolean__bang(s.tmp_15); case 6: - r0 = s.retval; - case 2: - r0 = undefined; - return leave(s, r0) + // jmp value (already in r0) + s.tmp_19 = r0; + r0 = s.tmp_19; + return leaveAccessor(s, r0) default: oops() } } } -basic_showNumber__P2370.info = {"start":396,"length":215,"line":11,"column":4,"endLine":16,"endColumn":5,"fileName":"pxt_modules/core/basic.ts","functionName":"showNumber","argumentNames":["value","interval"]} +user_interface_base_Occlusions_has__P3368.info = {"start":6177,"length":115,"line":207,"column":8,"endLine":209,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"has","argumentNames":["this"]} +user_interface_base_Occlusions_has__P3368.isGetter = true; -function basic_showNumber__P2370_mk(s) { +function user_interface_base_Occlusions_has__P3368_mk(s) { checkStack(s.depth); return { - parent: s, fn: basic_showNumber__P2370, depth: s.depth + 1, + parent: s, fn: user_interface_base_Occlusions_has__P3368, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, arg0: undefined, - arg1: undefined, } } - -function Math_roundWithPrecision__P2161(s) { +function user_interface_base_ButtonBase_occlusions__P3631(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34099,74 +38059,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___14612 = undefined; - s.d___14614 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg1 | 0); - s.arg1 = (r0); - r0 = (s.arg1 <= 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim.Math_.round(s.arg0); - { step = 9; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + s.tmp_0 = user_interface_base_Sprite_occlusions__P3456_mk(s); + r0 = s.arg0.fields["icon"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 519; s.pc = 1; return s.tmp_0; case 1: - case 2: - r0 = (s.arg0 == 0); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = 0; - { step = 9; continue; } - case 3: - case 4: - s.r___14612 = (0); - case 5: - r0 = pxsim.Math_.pow(10, s.arg1); - s.d___14614 = (r0); - r0 = (s.arg0 * s.d___14614); - s.tmp_1 = r0; - r0 = pxsim.Math_.round(s.tmp_1); - s.tmp_0 = r0; - r0 = (s.tmp_0 / s.d___14614); - s.r___14612 = (r0); - r0 = (s.arg1 + 1); - s.arg1 = (r0); - r0 = (s.r___14612 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 6; continue; } - r0 = s.tmp_0; - { step = 7; continue; } - case 6: - r0 = (s.arg1 < 21); - case 7: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 8; continue; } - { step = 5; continue; } - case 8: - r0 = s.r___14612; - case 9: + r0 = s.retval; return leave(s, r0) default: oops() } } } -Math_roundWithPrecision__P2161.info = {"start":17145,"length":411,"line":579,"column":4,"endLine":591,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"roundWithPrecision","argumentNames":["x","digits"]} +user_interface_base_ButtonBase_occlusions__P3631.info = {"start":3301,"length":83,"line":146,"column":4,"endLine":148,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"occlusions","argumentNames":["this","bounds"]} -function Math_roundWithPrecision__P2161_mk(s) { +function user_interface_base_ButtonBase_occlusions__P3631_mk(s) { checkStack(s.depth); return { - parent: s, fn: Math_roundWithPrecision__P2161, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_occlusions__P3631, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - r___14612: undefined, - d___14614: undefined, arg0: undefined, arg1: undefined, } } @@ -34174,8 +38091,7 @@ function Math_roundWithPrecision__P2161_mk(s) { - -function microcode_MicrobitHost_showIcon__P5869(s) { +function user_interface_base_Sprite_occlusions__P3456(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34185,69 +38101,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.s___14636 = undefined; - s.row___14638 = undefined; - s.col___14642 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MicrobitHost__C4592_VT)) failedCast(r0, microcode_MicrobitHost__C4592_VT); - r0 = pxsim_Array__mk(); - s.s___14636 = (r0); - s.row___14638 = (0); + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + s.tmp_0 = user_interface_base_Occlusions_FromSprite__P3370_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 470; s.pc = 1; return s.tmp_0; case 1: - r0 = (s.row___14638 < 5); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.col___14642 = (0); - case 2: - r0 = (s.col___14642 < 5); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = pxsim.BitmapMethods.getPixel(s.arg1, s.col___14642, s.row___14638); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = pxsim.led.plot(s.col___14642, s.row___14638); - { step = 4; continue; } - case 3: - r0 = pxsim.led.unplot(s.col___14642, s.row___14638); - case 4: - r0 = (s.col___14642 + 1); - s.col___14642 = (r0); - { step = 2; continue; } - case 5: - r0 = (s.row___14638 + 1); - s.row___14638 = (r0); - { step = 1; continue; } - case 6: - setupResume(s, 7); - pxsim.basic.pause(400); - checkResumeConsumed(); - return; - case 7: r0 = s.retval; - r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_showIcon__P5869.info = {"start":5977,"length":416,"line":165,"column":8,"endLine":175,"endColumn":9,"fileName":"host.ts","functionName":"showIcon","argumentNames":["this","img"]} +user_interface_base_Sprite_occlusions__P3456.info = {"start":1483,"length":100,"line":54,"column":8,"endLine":56,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"occlusions","argumentNames":["this","bounds"]} -function microcode_MicrobitHost_showIcon__P5869_mk(s) { +function user_interface_base_Sprite_occlusions__P3456_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_showIcon__P5869, depth: s.depth + 1, + parent: s, fn: user_interface_base_Sprite_occlusions__P3456, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - s___14636: undefined, - row___14638: undefined, - col___14642: undefined, arg0: undefined, arg1: undefined, } } @@ -34255,8 +38132,7 @@ function microcode_MicrobitHost_showIcon__P5869_mk(s) { - -function microcode_MicrobitHost_emitClearScreen__P4595(s) { +function user_interface_base_Occlusions_FromSprite__P3370(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34266,89 +38142,170 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.anim___14666 = undefined; - s.pos___14669 = undefined; - s.col___14675 = undefined; - s.row___14679 = undefined; - s.onOff___14683 = undefined; + s.w___16022 = undefined; + s.left___16026 = undefined; + s.top___16033 = undefined; + s.right___16040 = undefined; + s.bottom___16048 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MicrobitHost__C4592_VT)) failedCast(r0, microcode_MicrobitHost__C4592_VT); - s.anim___14666 = (_hex14667); - s.pos___14669 = (0); - case 1: - s.tmp_1 = r0 = s.pos___14669; - r0 = pxsim.BufferMethods.length(s.anim___14666); + s.tmp_0 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 332; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + s.w___16022 = (r0); + r0 = s.w___16022.fields["x_"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["image"]; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (s.tmp_0 - s.tmp_1); + s.left___16026 = (r0); + r0 = s.w___16022.fields["y_"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.col___14675 = (0); - case 2: - r0 = (s.col___14675 < 5); + r0 = s.arg0.fields["image"]; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (s.tmp_0 - s.tmp_1); + s.top___16033 = (r0); + r0 = s.w___16022.fields["x_"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.row___14679 = (0); - case 3: - r0 = (s.row___14679 < 5); + r0 = s.arg0.fields["image"]; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); + s.right___16040 = (r0); + r0 = s.w___16022.fields["y_"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_2 = r0 = s.anim___14666; - r0 = (s.pos___14669 + s.col___14675); - s.tmp_4 = r0; - r0 = (s.row___14679 >> 3); - s.tmp_5 = r0; - r0 = (s.tmp_4 + s.tmp_5); + r0 = s.arg0.fields["image"]; s.tmp_3 = r0; - r0 = pxsim.BufferMethods.getByte(s.tmp_2, s.tmp_3); + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); s.tmp_1 = r0; - r0 = (s.row___14679 & 7); - s.tmp_7 = r0; - r0 = (1 << s.tmp_7); + r0 = (s.tmp_0 + s.tmp_1); + s.bottom___16048 = (r0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Occlusions__C3367_VT); + s.tmp_0 = r0; + r0 = s.arg1.fields["left"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 > s.left___16026); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 1; continue; } + r0 = s.arg1.fields["left"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 - s.left___16026); + { step = 2; continue; } + case 1: + r0 = 0; + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = s.arg1.fields["top"]; s.tmp_6 = r0; - r0 = (s.tmp_1 & s.tmp_6); - s.onOff___14683 = (r0); - r0 = pxsim_numops_toBoolDecr(s.onOff___14683); - if (!r0) { step = 4; continue; } - r0 = pxsim.led.plot(s.col___14675, s.row___14679); - { step = 5; continue; } + r0 = (s.tmp_6 > s.top___16033); + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 3; continue; } + r0 = s.arg1.fields["top"]; + s.tmp_7 = r0; + r0 = (s.tmp_7 - s.top___16033); + { step = 4; continue; } + case 3: + r0 = 0; case 4: - r0 = pxsim.led.unplot(s.col___14675, s.row___14679); + // jmp value (already in r0) + s.tmp_8 = r0; + r0 = s.arg1.fields["left"]; + s.tmp_12 = r0; + r0 = s.arg1.fields["width"]; + s.tmp_13 = r0; + r0 = (s.tmp_12 + s.tmp_13); + s.tmp_11 = r0; + r0 = (s.tmp_11 - 1); + s.tmp_10 = r0; + r0 = (s.tmp_10 < s.right___16040); + s.tmp_9 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_9); + if (!r0) { step = 5; continue; } + s.tmp_14 = r0 = s.right___16040; + r0 = s.arg1.fields["left"]; + s.tmp_17 = r0; + r0 = s.arg1.fields["width"]; + s.tmp_18 = r0; + r0 = (s.tmp_17 + s.tmp_18); + s.tmp_16 = r0; + r0 = (s.tmp_16 - 1); + s.tmp_15 = r0; + r0 = (s.tmp_14 - s.tmp_15); + { step = 6; continue; } case 5: - r0 = (s.row___14679 + 1); - s.row___14679 = (r0); - { step = 3; continue; } + r0 = 0; case 6: - r0 = (s.col___14675 + 1); - s.col___14675 = (r0); - { step = 2; continue; } + // jmp value (already in r0) + s.tmp_19 = r0; + r0 = s.arg1.fields["top"]; + s.tmp_23 = r0; + r0 = s.arg1.fields["height"]; + s.tmp_24 = r0; + r0 = (s.tmp_23 + s.tmp_24); + s.tmp_22 = r0; + r0 = (s.tmp_22 - 1); + s.tmp_21 = r0; + r0 = (s.tmp_21 < s.bottom___16048); + s.tmp_20 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_20); + if (!r0) { step = 7; continue; } + s.tmp_25 = r0 = s.bottom___16048; + r0 = s.arg1.fields["top"]; + s.tmp_28 = r0; + r0 = s.arg1.fields["height"]; + s.tmp_29 = r0; + r0 = (s.tmp_28 + s.tmp_29); + s.tmp_27 = r0; + r0 = (s.tmp_27 - 1); + s.tmp_26 = r0; + r0 = (s.tmp_25 - s.tmp_26); + { step = 8; continue; } case 7: - setupResume(s, 9); - pxsim.control.waitMicros(20000); - checkResumeConsumed(); - return; - case 9: - r0 = s.retval; - r0 = (s.pos___14669 + 5); - s.pos___14669 = (r0); - { step = 1; continue; } + r0 = 0; case 8: - r0 = undefined; + // jmp value (already in r0) + s.tmp_30 = r0; + s.tmp_31 = user_interface_base_Occlusions_constructor__P3369_mk(s); + s.tmp_31.arg0 = s.tmp_0; + s.tmp_31.arg1 = s.tmp_4; + s.tmp_31.arg2 = s.tmp_8; + s.tmp_31.arg3 = s.tmp_19; + s.tmp_31.arg4 = s.tmp_30; + s.callLocIdx = 345; s.pc = 10; return s.tmp_31; + case 10: + r0 = s.retval; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_emitClearScreen__P4595.info = {"start":3938,"length":940,"line":105,"column":8,"endLine":134,"endColumn":9,"fileName":"host.ts","functionName":"emitClearScreen","argumentNames":["this"]} +user_interface_base_Occlusions_FromSprite__P3370.info = {"start":6470,"length":601,"line":218,"column":8,"endLine":230,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"FromSprite","argumentNames":["s","bounds"]} -function microcode_MicrobitHost_emitClearScreen__P4595_mk(s) { +function user_interface_base_Occlusions_FromSprite__P3370_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_emitClearScreen__P4595, depth: s.depth + 1, + parent: s, fn: user_interface_base_Occlusions_FromSprite__P3370, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -34358,20 +38315,43 @@ function microcode_MicrobitHost_emitClearScreen__P4595_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, - anim___14666: undefined, - pos___14669: undefined, - col___14675: undefined, - row___14679: undefined, - onOff___14683: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tmp_23: undefined, + tmp_24: undefined, + tmp_25: undefined, + tmp_26: undefined, + tmp_27: undefined, + tmp_28: undefined, + tmp_29: undefined, + tmp_30: undefined, + tmp_31: undefined, + w___16022: undefined, + left___16026: undefined, + top___16033: undefined, + right___16040: undefined, + bottom___16048: undefined, arg0: undefined, + arg1: undefined, } } -const _hex14667 = pxsim.BufferMethods.createBufferFromHex("0001000000000001000000000001000000000002000000000400000000080000001000000010000000100000000800000000040000000002000000000000000000") - -function microcode_MicrobitHost_registerOnSensorEvent__P4594(s) { +function user_interface_base_Occlusions_constructor__P3369(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34384,31 +38364,39 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MicrobitHost__C4592_VT)) failedCast(r0, microcode_MicrobitHost__C4592_VT); - r0 = (s.arg0).fields["_handler"] = (s.arg1); + if (!checkSubtype(r0, user_interface_base_Occlusions__C3367_VT)) failedCast(r0, user_interface_base_Occlusions__C3367_VT); + r0 = (s.arg0).fields["left"] = (s.arg1); + r0 = (s.arg0).fields["top"] = (s.arg2); + r0 = (s.arg0).fields["right"] = (s.arg3); + r0 = (s.arg0).fields["bottom"] = (s.arg4); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MicrobitHost_registerOnSensorEvent__P4594.info = {"start":3783,"length":145,"line":99,"column":8,"endLine":103,"endColumn":9,"fileName":"host.ts","functionName":"registerOnSensorEvent","argumentNames":["this","handler"]} +user_interface_base_Occlusions_constructor__P3369.info = {"start":6302,"length":158,"line":211,"column":8,"endLine":216,"endColumn":12,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"inline","argumentNames":["this","left","top","right","bottom"]} -function microcode_MicrobitHost_registerOnSensorEvent__P4594_mk(s) { +function user_interface_base_Occlusions_constructor__P3369_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MicrobitHost_registerOnSensorEvent__P4594, depth: s.depth + 1, + parent: s, fn: user_interface_base_Occlusions_constructor__P3369, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, } } - -function microcode_Home_draw__P4363(s) { +function microcode_Editor_moveTo__P5952(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34418,254 +38406,61 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.t___14736 = undefined; - s.dy___14739 = undefined; - s.OFFSET___14752 = undefined; - s.y___14761 = undefined; - s.tagline___14809 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Home__C4359_VT)) failedCast(r0, microcode_Home__C4359_VT); - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - s.tmp_0.arg0 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - s.tmp_0.arg1 = globals.user_interface_base_Screen_TOP_EDGE___3445; - s.tmp_0.arg2 = globals.user_interface_base_Screen_WIDTH___3439; - s.tmp_0.arg3 = globals.user_interface_base_Screen_HEIGHT___3440; - s.tmp_0.arg4 = 12; - s.callLocIdx = 1527; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = Math_min__P2160_mk(s); - s.tmp_2.arg0 = 0; - r0 = s.arg0.fields["yOffset"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 2); - s.tmp_2.arg1 = r0; - s.callLocIdx = 1528; s.pc = 6; return s.tmp_2; - case 6: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["yOffset"] = (s.tmp_1); - r0 = pxsim.control.millis(); - s.t___14736 = (r0); - r0 = s.arg0.fields["yOffset"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = pxsim_numops_toBoolDecr(s.arg1); if (!r0) { step = 1; continue; } - r0 = pxsim.Math_.idiv(s.t___14736, 800); - s.tmp_3 = r0; - r0 = (s.tmp_3 & 1); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - { step = 2; continue; } - case 1: - r0 = 0; - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - s.dy___14739 = (s.tmp_4); - r0 = (globals.user_interface_base_Screen_HEIGHT___3440 >> 1); - s.tmp_1 = r0; - r0 = pxsim.BitmapMethods.height(globals.wordLogo___3884); - s.tmp_2 = r0; - r0 = (s.tmp_1 - s.tmp_2); - s.tmp_0 = r0; - r0 = (s.tmp_0 - 2); - s.OFFSET___14752 = (r0); - r0 = (globals.user_interface_base_Screen_TOP_EDGE___3445 + s.OFFSET___14752); - s.tmp_0 = r0; - r0 = (s.tmp_0 + s.dy___14739); - s.y___14761 = (r0); - s.tmp_0 = user_interface_base_Screen_drawTransparentImage__P3454_mk(s); - s.tmp_0.arg0 = globals.wordLogo___3884; - s.tmp_2 = r0 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - s.tmp_5 = r0 = globals.user_interface_base_Screen_WIDTH___3439; - r0 = pxsim.BitmapMethods.width(globals.wordLogo___3884); - s.tmp_6 = r0; - r0 = (s.tmp_5 - s.tmp_6); - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 + s.dy___14739); - s.tmp_0.arg1 = r0; - r0 = s.arg0.fields["yOffset"]; - s.tmp_7 = r0; - r0 = (s.y___14761 + s.tmp_7); - s.tmp_0.arg2 = r0; - s.callLocIdx = 1529; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_drawTransparentImage__P3454_mk(s); - s.tmp_0.arg0 = globals.microbitLogo___3848; - s.tmp_2 = r0 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - s.tmp_5 = r0 = globals.user_interface_base_Screen_WIDTH___3439; - r0 = pxsim.BitmapMethods.width(globals.microbitLogo___3848); - s.tmp_6 = r0; - r0 = (s.tmp_5 - s.tmp_6); - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 + s.dy___14739); - s.tmp_0.arg1 = r0; - s.tmp_9 = r0 = s.y___14761; - r0 = pxsim.BitmapMethods.height(globals.wordLogo___3884); - s.tmp_10 = r0; - r0 = (s.tmp_9 - s.tmp_10); - s.tmp_8 = r0; - r0 = s.arg0.fields["yOffset"]; - s.tmp_11 = r0; - r0 = (s.tmp_8 + s.tmp_11); - s.tmp_7 = r0; - r0 = (s.tmp_7 + 2); - s.tmp_0.arg2 = r0; - s.callLocIdx = 1530; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - r0 = s.arg0.fields["yOffset"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_3 = microcode_resolveTooltip__P4590_mk(s); - s.tmp_3.arg0 = "tagline"; - s.callLocIdx = 1531; s.pc = 9; return s.tmp_3; - case 9: - r0 = s.retval; - s.tagline___14809 = (r0); - s.tmp_0 = user_interface_base_Screen_print__P3469_mk(s); - s.tmp_0.arg0 = s.tagline___14809; - s.tmp_3 = r0 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - s.tmp_6 = r0 = globals.user_interface_base_Screen_WIDTH___3439; - r0 = pxsim.BitmapMethods.width(globals.wordLogo___3884); - s.tmp_7 = r0; - r0 = (s.tmp_6 + s.tmp_7); - s.tmp_5 = r0; - r0 = (s.tmp_5 >> 1); - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_2 = r0; - r0 = (s.tmp_2 + s.dy___14739); - s.tmp_1 = r0; - s.tmp_10 = if_charWidth_1_mk(s); - s.tmp_10.arg0 = globals.font___3487; - if (!s.tmp_10.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_10.arg0, "charWidth"); - } else { - s.tmp_10.fn = s.tmp_10.arg0.vtable.iface["charWidth"]; - if (s.tmp_10.fn == null) { s.retval = s.tmp_10.arg0.fields["charWidth"]; } - else if (!s.tmp_10.fn.isGetter) { s.retval = bind(s.tmp_10); } - else { s.callLocIdx = 1532; s.pc = 11; return s.tmp_10; } - } - case 11: + s.tmp_0 = user_interface_base_Cursor_moveTo__P3704_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.arg1.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1444; s.pc = 4; return s.tmp_1; + case 4: r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_String_.length(s.tagline___14809); - s.tmp_11 = r0; - r0 = (s.tmp_9 * s.tmp_11); - s.tmp_8 = r0; - r0 = (s.tmp_1 - s.tmp_8); s.tmp_0.arg1 = r0; - r0 = (globals.user_interface_base_Screen_TOP_EDGE___3445 + s.OFFSET___14752); - s.tmp_15 = r0; - r0 = pxsim.BitmapMethods.height(globals.wordLogo___3884); - s.tmp_16 = r0; - r0 = (s.tmp_15 + s.tmp_16); - s.tmp_14 = r0; - r0 = (s.tmp_14 + s.dy___14739); - s.tmp_13 = r0; - r0 = s.arg0.fields["yOffset"]; - s.tmp_17 = r0; - r0 = (s.tmp_13 + s.tmp_17); - s.tmp_12 = r0; - r0 = (s.tmp_12 + 1); + r0 = s.arg1.fields["_ariaId"]; s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = 11; - s.tmp_0.arg4 = globals.font___3487; - s.tmp_0.arg5 = undefined; - s.callLocIdx = 1533; s.pc = 10; return s.tmp_0; - case 10: + s.tmp_2 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_2.arg0 = s.arg1; + s.callLocIdx = 1446; s.pc = 5; return s.tmp_2; + case 5: r0 = s.retval; + s.tmp_0.arg3 = r0; + s.callLocIdx = 1447; s.pc = 3; return s.tmp_0; case 3: - case 4: - s.tmp_0 = if_drawComponents_1_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "drawComponents"), 1); - s.callLocIdx = 1534; s.pc = 12; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["drawComponents"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["drawComponents"], 1); s.callLocIdx = 1534; s.pc = 12; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1534; s.pc = 12; return s.tmp_0;; } - else { s.callLocIdx = 1534; s.pc = 12; return s.tmp_0; } - } - case 12: - r0 = s.retval; - s.tmp_0 = microcode_Home_drawVersion__P5803_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1535; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - s.tmp_0 = user_interface_base_CursorScene_draw__P3837_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1536; s.pc = 14; return s.tmp_0; - case 14: r0 = s.retval; + r0 = (s.arg0).fields["dirty"] = (true); + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Home_draw__P4363.info = {"start":3549,"length":1800,"line":100,"column":8,"endLine":149,"endColumn":9,"fileName":"home.ts","functionName":"draw","argumentNames":["this"]} +microcode_Editor_moveTo__P5952.info = {"start":5371,"length":281,"line":162,"column":8,"endLine":171,"endColumn":9,"fileName":"editor.ts","functionName":"moveTo","argumentNames":["this","target"]} -function microcode_Home_draw__P4363_mk(s) { +function microcode_Editor_moveTo__P5952_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Home_draw__P4363, depth: s.depth + 1, + parent: s, fn: microcode_Editor_moveTo__P5952, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - t___14736: undefined, - dy___14739: undefined, - OFFSET___14752: undefined, - y___14761: undefined, - tagline___14809: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Home_drawVersion__P5803(s) { +function user_interface_base_Button_ariaId__P3643(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34675,90 +38470,108 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.font___14853 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Home__C4359_VT)) failedCast(r0, microcode_Home__C4359_VT); - s.font___14853 = (globals.font5___3332); - s.tmp_0 = user_interface_base_Screen_print__P3469_mk(s); - s.tmp_0.arg0 = globals.VERSION___4365; - s.tmp_1 = r0 = globals.user_interface_base_Screen_RIGHT_EDGE___3444; - s.tmp_4 = if_charWidth_1_mk(s); - s.tmp_4.arg0 = s.font___14853; - if (!s.tmp_4.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "charWidth"); - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["charWidth"]; - if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["charWidth"]; } - else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 1524; s.pc = 2; return s.tmp_4; } - } - case 2: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String_.length(globals.VERSION___4365); - s.tmp_5 = r0; - r0 = (s.tmp_3 * s.tmp_5); - s.tmp_2 = r0; - r0 = (s.tmp_1 - s.tmp_2); - s.tmp_0.arg1 = r0; - s.tmp_7 = r0 = globals.user_interface_base_Screen_BOTTOM_EDGE___3446; - s.tmp_9 = if_charHeight_1_mk(s); - s.tmp_9.arg0 = s.font___14853; - if (!s.tmp_9.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_9.arg0, "charHeight"); - } else { - s.tmp_9.fn = s.tmp_9.arg0.vtable.iface["charHeight"]; - if (s.tmp_9.fn == null) { s.retval = s.tmp_9.arg0.fields["charHeight"]; } - else if (!s.tmp_9.fn.isGetter) { s.retval = bind(s.tmp_9); } - else { s.callLocIdx = 1525; s.pc = 3; return s.tmp_9; } + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + r0 = s.arg0.fields["_ariaId"]; + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_Button_ariaId__P3643.info = {"start":6190,"length":61,"line":251,"column":4,"endLine":253,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"ariaId","argumentNames":["this"]} +user_interface_base_Button_ariaId__P3643.isGetter = true; + +function user_interface_base_Button_ariaId__P3643_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Button_ariaId__P3643, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function user_interface_base_Cursor_moveTo__P3704(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.lambdaArgs = null; } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + r0 = s.arg0.fields["resetOutlineColourOnMove"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = user_interface_base_Cursor_setOutlineColour__P3708_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = 9; + s.callLocIdx = 608; s.pc = 3; return s.tmp_1; case 3: r0 = s.retval; - s.tmp_8 = r0; - r0 = (s.tmp_7 - s.tmp_8); - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = 11; - s.tmp_0.arg4 = s.font___14853; - s.tmp_0.arg5 = undefined; - s.callLocIdx = 1526; s.pc = 1; return s.tmp_0; case 1: + case 2: + s.tmp_0 = user_interface_base_Cursor_setSize__P3707_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg3; + s.callLocIdx = 609; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_copyFrom__P3391_mk(s); + r0 = s.arg0.fields["moveDest"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 610; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + r0 = pxsim.control.millis(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["moveStartMs"] = (s.tmp_1); + s.tmp_0 = user_interface_base_Cursor_setAriaContent__P3705_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg2; + s.tmp_0.arg2 = null; + s.callLocIdx = 611; s.pc = 6; return s.tmp_0; + case 6: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Home_drawVersion__P5803.info = {"start":3167,"length":326,"line":88,"column":8,"endLine":97,"endColumn":9,"fileName":"home.ts","functionName":"drawVersion","argumentNames":["this"]} +user_interface_base_Cursor_moveTo__P3704.info = {"start":2464,"length":308,"line":75,"column":4,"endLine":83,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"moveTo","argumentNames":["this","pos","ariaId","sizeHint"]} -function microcode_Home_drawVersion__P5803_mk(s) { +function user_interface_base_Cursor_moveTo__P3704_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Home_drawVersion__P5803, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_moveTo__P3704, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - font___14853: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function user_interface_base_Screen_print__P3469(s) { +function user_interface_base_Cursor_setAriaContent__P3705(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34772,54 +38585,44 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); - s.arg5 = (s.lambdaArgs[5]); s.lambdaArgs = null; } - s.tmp_0 = helpers_imagePrint__P3342_mk(s); - s.tmp_1 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 459; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg0; - r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_WIDTH___3441); - s.tmp_0.arg2 = r0; - r0 = (s.arg2 + globals.user_interface_base_Screen_HALF_HEIGHT___3442); - s.tmp_0.arg3 = r0; - s.tmp_0.arg4 = s.arg3; - s.tmp_0.arg5 = s.arg4; - s.tmp_0.arg6 = s.arg5; - s.callLocIdx = 462; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; + r0 = pxsim_String_.mkEmpty(); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = (s.arg0).fields["ariaId"] = (s.tmp_1); + r0 = (s.arg0).fields["ariaPos"] = (s.arg2); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_print__P3469.info = {"start":8455,"length":318,"line":344,"column":4,"endLine":360,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"print","argumentNames":["text","x","y","color","font","offsets"]} +user_interface_base_Cursor_setAriaContent__P3705.info = {"start":2844,"length":129,"line":88,"column":4,"endLine":91,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"setAriaContent","argumentNames":["this","ariaId","ariaPos"]} -function user_interface_base_Screen_print__P3469_mk(s) { +function user_interface_base_Cursor_setAriaContent__P3705_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_print__P3469, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_setAriaContent__P3705, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, arg0: undefined, arg1: undefined, arg2: undefined, - arg3: undefined, - arg4: undefined, - arg5: undefined, } } - -function user_interface_base_Screen_y__P3449(s) { +function user_interface_base_Cursor_setSize__P3707(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34831,27 +38634,82 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_HEIGHT___3442); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "left", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "top", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "width", 16); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "height", 16); + s.tmp_3 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_3.arg0 = s.tmp_1; + s.tmp_3.arg1 = s.tmp_2; + s.callLocIdx = 621; s.pc = 5; return s.tmp_3; + case 5: + r0 = s.retval; + r0 = s.tmp_1; + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + s.arg1 = (s.tmp_4); + r0 = s.arg0.fields["size"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = user_interface_base_Bounds_copyFrom__P3351_mk(s); + r0 = s.arg0.fields["size"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.arg1; + s.callLocIdx = 622; s.pc = 6; return s.tmp_1; + case 6: + r0 = s.retval; + { step = 4; continue; } + case 3: + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = user_interface_base_Bounds_clone__P3350_mk(s); + s.tmp_2.arg0 = s.arg1; + s.callLocIdx = 623; s.pc = 7; return s.tmp_2; + case 7: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["size"] = (s.tmp_1); + case 4: + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_y__P3449.info = {"start":1519,"length":70,"line":45,"column":4,"endLine":47,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"y","argumentNames":["v"]} +user_interface_base_Cursor_setSize__P3707.info = {"start":3377,"length":203,"line":107,"column":4,"endLine":112,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"setSize","argumentNames":["this","size"]} -function user_interface_base_Screen_y__P3449_mk(s) { +function user_interface_base_Cursor_setSize__P3707_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_y__P3449, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_setSize__P3707, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_Screen_x__P3448(s) { +function user_interface_base_Bounds_copyFrom__P3351(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34863,27 +38721,43 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_WIDTH___3441); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + r0 = s.arg1.fields["left"]; + s.tmp_0 = r0; + r0 = (s.arg0).fields["left"] = (s.tmp_0); + r0 = s.arg1.fields["top"]; + s.tmp_0 = r0; + r0 = (s.arg0).fields["top"] = (s.tmp_0); + r0 = s.arg1.fields["width"]; + s.tmp_0 = r0; + r0 = (s.arg0).fields["width"] = (s.tmp_0); + r0 = s.arg1.fields["height"]; + s.tmp_0 = r0; + r0 = (s.arg0).fields["height"] = (s.tmp_0); + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_x__P3448.info = {"start":1445,"length":69,"line":42,"column":4,"endLine":44,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"x","argumentNames":["v"]} +user_interface_base_Bounds_copyFrom__P3351.info = {"start":1619,"length":186,"line":55,"column":8,"endLine":60,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"copyFrom","argumentNames":["this","other"]} -function user_interface_base_Screen_x__P3448_mk(s) { +function user_interface_base_Bounds_copyFrom__P3351_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_x__P3448, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_copyFrom__P3351, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_Screen_drawTransparentImage__P3454(s) { +function user_interface_base_Cursor_setOutlineColour__P3708(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34896,46 +38770,30 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tmp_1 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 378; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - s.tmp_0 = r0; - s.tmp_2 = r0 = s.arg0; - r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_WIDTH___3441); - s.tmp_3 = r0; - r0 = (s.arg2 + globals.user_interface_base_Screen_HALF_HEIGHT___3442); - s.tmp_4 = r0; - r0 = pxsim.BitmapMethods.drawTransparentBitmap(s.tmp_0, s.tmp_2, s.tmp_3, s.tmp_4); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + r0 = (s.arg0).fields["cursorOutlineColour"] = (s.arg1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_drawTransparentImage__P3454.info = {"start":2113,"length":151,"line":68,"column":4,"endLine":70,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"drawTransparentImage","argumentNames":["from","x","y"]} +user_interface_base_Cursor_setOutlineColour__P3708.info = {"start":3631,"length":161,"line":118,"column":4,"endLine":121,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"setOutlineColour","argumentNames":["this","colour"]} -function user_interface_base_Screen_drawTransparentImage__P3454_mk(s) { +function user_interface_base_Cursor_setOutlineColour__P3708_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_drawTransparentImage__P3454, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_setOutlineColour__P3708, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function user_interface_base_Screen_fillRect__P3461(s) { +function user_interface_base_Placeable_xfrm__P3381(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -34947,53 +38805,29 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - s.tmp_0 = helpers_imageFillRect__P3136_mk(s); - s.tmp_1 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 393; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg0 = r0; - r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_WIDTH___3441); - s.tmp_0.arg1 = r0; - r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_HEIGHT___3442); - s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = s.arg2; - s.tmp_0.arg4 = s.arg3; - s.tmp_0.arg5 = s.arg4; - s.callLocIdx = 396; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Placeable__C3380_VT)) failedCast(r0, user_interface_base_Placeable__C3380_VT); + r0 = s.arg0.fields["xfrm_"]; + return leaveAccessor(s, r0) default: oops() } } } -user_interface_base_Screen_fillRect__P3461.info = {"start":4047,"length":202,"line":158,"column":4,"endLine":166,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"fillRect","argumentNames":["x","y","width","height","c"]} +user_interface_base_Placeable_xfrm__P3381.info = {"start":414,"length":59,"line":18,"column":8,"endLine":20,"endColumn":9,"fileName":"pxt_modules/user-interface-base/component.ts","functionName":"xfrm","argumentNames":["this"]} +user_interface_base_Placeable_xfrm__P3381.isGetter = true; -function user_interface_base_Screen_fillRect__P3461_mk(s) { +function user_interface_base_Placeable_xfrm__P3381_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_fillRect__P3461, depth: s.depth + 1, + parent: s, fn: user_interface_base_Placeable_xfrm__P3381, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function microcode_Home_activate__P4362(s) { +function user_interface_base_Affine_root__P3330(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35003,43 +38837,54 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.node___16186 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Home__C4359_VT)) failedCast(r0, microcode_Home__C4359_VT); - s.tmp_0 = user_interface_base_CursorScene_activate__P3835_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1522; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, user_interface_base_Affine__C3324_VT)) failedCast(r0, user_interface_base_Affine__C3324_VT); + r0 = s.arg0.fields["parent_"]; + s.node___16186 = (r0); case 1: - r0 = s.retval; - s.tmp_0 = user_interface_base_Scene_backgroundColor__P3689_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 15; - s.callLocIdx = 1523; s.pc = 2; return s.tmp_0; + s.tmp_0 = r0 = s.node___16186; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } case 2: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) + r0 = s.node___16186.fields["parent_"]; + case 3: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = s.node___16186.fields["parent_"]; + s.node___16186 = (r0); + { step = 1; continue; } + case 4: + r0 = s.node___16186; + return leaveAccessor(s, r0) default: oops() } } } -microcode_Home_activate__P4362.info = {"start":3032,"length":125,"line":82,"column":23,"endLine":86,"endColumn":9,"fileName":"home.ts","functionName":"activate","argumentNames":["this"]} +user_interface_base_Affine_root__P3330.info = {"start":1135,"length":179,"line":35,"column":8,"endLine":41,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"root","argumentNames":["this"]} +user_interface_base_Affine_root__P3330.isGetter = true; -function microcode_Home_activate__P4362_mk(s) { +function user_interface_base_Affine_root__P3330_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Home_activate__P4362, depth: s.depth + 1, + parent: s, fn: user_interface_base_Affine_root__P3330, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + node___16186: undefined, arg0: undefined, } } - -function microcode_Home_startup__P4361(s) { +function user_interface_base_RowNavigator_initialCursor__P3766(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35049,134 +38894,78 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.rows___16200 = undefined; + s.cols___16214 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Home__C4359_VT)) failedCast(r0, microcode_Home__C4359_VT); - s.tmp_0 = user_interface_base_CursorScene_startup__P3832_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1500; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_0 = r0; + r0 = pxsim_Array__length(s.tmp_0); + s.rows___16200 = (r0); case 1: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); + r0 = (s.arg1 < 0); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = (s.arg1 + s.rows___16200); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", null); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.Transparent___3641); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", "edit_program"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", "C0"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", -50); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 30); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P14937); - s.tmp_2 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_2); - s.tmp_3 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_3.arg0 = s.tmp_0; - s.tmp_3.arg1 = s.tmp_1; - s.callLocIdx = 1504; s.pc = 2; return s.tmp_3; + r0 = (s.tmp_1 % s.rows___16200); + s.arg1 = (r0); + { step = 1; continue; } case 2: - r0 = s.retval; - r0 = pxsim_Array__mk(); - s.tmp_4 = r0; - r0 = pxsim_Array__push(s.tmp_4, s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); - s.tmp_5 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_6 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "parent", null); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "style", globals.Transparent___3641); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "icon", "smiley_buttons"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "ariaId", "C1"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "x", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "y", 30); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P14952); - s.tmp_7 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_7, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "onClick", s.tmp_7); - s.tmp_8 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_8.arg0 = s.tmp_5; - s.tmp_8.arg1 = s.tmp_6; - s.callLocIdx = 1507; s.pc = 3; return s.tmp_8; + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.arg1); + s.tmp_0 = r0; + r0 = pxsim_Array__length(s.tmp_0); + s.cols___16214 = (r0); case 3: - r0 = s.retval; - r0 = pxsim_Array__push(s.tmp_4, s.tmp_5); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); - s.tmp_9 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_10 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "parent", null); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "style", globals.Transparent___3641); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "icon", "largeDisk"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "ariaId", "Load program"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "x", 50); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "y", 30); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P14965); - s.tmp_11 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_11, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "onClick", s.tmp_11); - s.tmp_12 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_12.arg0 = s.tmp_9; - s.tmp_12.arg1 = s.tmp_10; - s.callLocIdx = 1509; s.pc = 4; return s.tmp_12; + r0 = (s.arg2 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = (s.arg2 + s.cols___16214); + s.tmp_1 = r0; + r0 = (s.tmp_1 % s.cols___16214); + s.arg2 = (r0); + { step = 3; continue; } case 4: - r0 = s.retval; - r0 = pxsim_Array__push(s.tmp_4, s.tmp_9); - r0 = pxsim_Array__mk(); - s.tmp_13 = r0; - r0 = pxsim_Array__push(s.tmp_13, s.tmp_4); - s.tmp_14 = if_setBtns_2_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_14.arg0 = r0; - s.tmp_14.arg1 = s.tmp_13; - if (!s.tmp_14.arg0.vtable.iface) { - setupLambda(s.tmp_14, pxsim_pxtrt.mapGetByString(s.tmp_14.arg0, "setBtns"), 2); - s.callLocIdx = 1510; s.pc = 5; return s.tmp_14; - } else { - s.tmp_14.fn = s.tmp_14.arg0.vtable.iface["setBtns"]; - if (s.tmp_14.fn == null) { setupLambda(s.tmp_14, s.tmp_14.arg0.fields["setBtns"], 2); s.callLocIdx = 1510; s.pc = 5; return s.tmp_14; } - else if (s.tmp_14.fn.isGetter) { s.tmp_14.stage2Call = true; s.callLocIdx = 1510; s.pc = 5; return s.tmp_14;; } - else { s.callLocIdx = 1510; s.pc = 5; return s.tmp_14; } - } - case 5: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0).fields["row"] = (s.arg1); + r0 = (s.arg0).fields["col"] = (s.arg2); + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.arg1); + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.arg2); return leave(s, r0) default: oops() } } } -microcode_Home_startup__P4361.info = {"start":542,"length":1539,"line":14,"column":23,"endLine":56,"endColumn":9,"fileName":"home.ts","functionName":"startup","argumentNames":["this"]} +user_interface_base_RowNavigator_initialCursor__P3766.info = {"start":6482,"length":380,"line":199,"column":8,"endLine":207,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"initialCursor","argumentNames":["this","row","col"]} -function microcode_Home_startup__P4361_mk(s) { +function user_interface_base_RowNavigator_initialCursor__P3766_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Home_startup__P4361, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_initialCursor__P3766, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, + rows___16200: undefined, + cols___16214: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function onClick_inline__P14937(s) { +function microcode_RuleRowNavigator_getRowCount__P4722(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35186,65 +38975,33 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = if_popScene_1_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); - s.callLocIdx = 1501; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1501; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1501; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1501; s.pc = 1; return s.tmp_0; } + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; } - case 1: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(microcode_Editor__C4301_VT); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleRowNavigator__C4720_VT)) failedCast(r0, microcode_RuleRowNavigator__C4720_VT); + r0 = s.arg0.fields["buttonGroups"]; s.tmp_0 = r0; - s.tmp_1 = microcode_Editor_constructor__P4307_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.caps[0].fields["app"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1502; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_2 = if_pushScene_2_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - if (!s.tmp_2.arg0.vtable.iface) { - setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); - s.callLocIdx = 1503; s.pc = 3; return s.tmp_2; - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1503; s.pc = 3; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1503; s.pc = 3; return s.tmp_2;; } - else { s.callLocIdx = 1503; s.pc = 3; return s.tmp_2; } - } - case 3: - r0 = s.retval; - r0 = undefined; + r0 = pxsim_Array__length(s.tmp_0); return leave(s, r0) default: oops() } } } -onClick_inline__P14937.info = {"start":946,"length":150,"line":26,"column":33,"endLine":29,"endColumn":25,"fileName":"home.ts","functionName":"inline","argumentNames":[]} +microcode_RuleRowNavigator_getRowCount__P4722.info = {"start":464,"length":69,"line":15,"column":8,"endLine":17,"endColumn":9,"fileName":"navigator.ts","functionName":"getRowCount","argumentNames":["this"]} -function onClick_inline__P14937_mk(s) { +function microcode_RuleRowNavigator_getRowCount__P4722_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P14937, depth: s.depth + 1, + parent: s, fn: microcode_RuleRowNavigator_getRowCount__P4722, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, + arg0: undefined, } } - -function onClick_inline__P14952(s) { +function microcode_PageEditor_addToNavigator__P4488(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35254,52 +39011,42 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_pxtcore_mkClassInstance(microcode_SamplesGallery__C4470_VT); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + r0 = pxsim_pxtcore_mkAction(1, microcode_PageEditor_addToNavigator_inline__P16248); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_CursorScene_constructor__P3830_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.caps[0].fields["app"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = undefined; - s.callLocIdx = 1505; s.pc = 1; return s.tmp_1; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1577; s.pc = 1; return s.tmp_1; case 1: - r0 = s.retval; - s.tmp_2 = if_pushScene_2_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - if (!s.tmp_2.arg0.vtable.iface) { - setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); - s.callLocIdx = 1506; s.pc = 2; return s.tmp_2; - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1506; s.pc = 2; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1506; s.pc = 2; return s.tmp_2;; } - else { s.callLocIdx = 1506; s.pc = 2; return s.tmp_2; } - } - case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P14952.info = {"start":1430,"length":161,"line":38,"column":33,"endLine":41,"endColumn":25,"fileName":"home.ts","functionName":"inline","argumentNames":[]} +microcode_PageEditor_addToNavigator__P4488.info = {"start":19390,"length":219,"line":588,"column":8,"endLine":593,"endColumn":9,"fileName":"editor.ts","functionName":"addToNavigator","argumentNames":["this"]} -function onClick_inline__P14952_mk(s) { +function microcode_PageEditor_addToNavigator__P4488_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P14952, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_addToNavigator__P4488, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, + arg0: undefined, } } - -function onClick_inline__P14965(s) { +function microcode_PageEditor_addToNavigator_inline__P16248(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35309,30 +39056,51 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_Home_pickDiskSLot__P5802_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1508; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = microcode_RuleRowNavigator_addRule__P4724_mk(s); + r0 = s.caps[0].fields["editor"]; + r0 = r0.fields["navigator"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["ruledef"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1574; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_0 = microcode_Editor_addButtons__P4478_mk(s); + r0 = s.caps[0].fields["editor"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = microcode_RuleEditor_getRuleButtons__P4507_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1575; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1576; s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P14965.info = {"start":1931,"length":81,"line":50,"column":33,"endLine":52,"endColumn":25,"fileName":"home.ts","functionName":"inline","argumentNames":[]} +microcode_PageEditor_addToNavigator_inline__P16248.info = {"start":19453,"length":145,"line":589,"column":37,"endLine":592,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} -function onClick_inline__P14965_mk(s) { +function microcode_PageEditor_addToNavigator_inline__P16248_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P14965, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_addToNavigator_inline__P16248, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function microcode_Home_pickDiskSLot__P5802(s) { +function microcode_RuleEditor_getRuleButtons__P4507(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35342,78 +39110,146 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btns___14968 = undefined; + s.btns___16264 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Home__C4359_VT)) failedCast(r0, microcode_Home__C4359_VT); - s.tmp_0 = helpers_arrayMap__P2135_mk(s); - s.tmp_1 = microcode_diskSlots__P4300_mk(s); - s.callLocIdx = 1511; s.pc = 2; return s.tmp_1; - case 2: + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = pxsim_Array__mk(); + s.btns___16264 = (r0); + r0 = s.arg0.fields["handleBtn"]; + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.btns___16264, s.tmp_0); + r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_getRuleButtons_inline__P16276); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btns___16264); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = if_sensors_1_mk(s); + r0 = s.arg0.fields["ruleButtons"]; + s.tmp_2.arg0 = r0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "sensors"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["sensors"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["sensors"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1683; s.pc = 6; return s.tmp_2; } + } + case 6: r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = btns_inline__P14970; - s.callLocIdx = 1512; s.pc = 1; return s.tmp_0; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1684; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_getRuleButtons_inline__P16287); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btns___16264); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = if_filters_1_mk(s); + r0 = s.arg0.fields["ruleButtons"]; + s.tmp_2.arg0 = r0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "filters"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["filters"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["filters"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1685; s.pc = 8; return s.tmp_2; } + } + case 8: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1686; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + r0 = s.arg0.fields["whenInsertBtn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["whenInsertBtn"]; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.btns___16264, s.tmp_1); case 1: + case 2: + r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_getRuleButtons_inline__P16305); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btns___16264); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = if_actuators_1_mk(s); + r0 = s.arg0.fields["ruleButtons"]; + s.tmp_2.arg0 = r0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "actuators"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["actuators"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["actuators"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1687; s.pc = 10; return s.tmp_2; } + } + case 10: r0 = s.retval; - s.btns___14968 = (r0); - s.tmp_0 = user_interface_base_Picker_setGroup__P3756_mk(s); - r0 = s.arg0.fields["picker"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.btns___14968; - s.callLocIdx = 1513; s.pc = 3; return s.tmp_0; - case 3: + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1688; s.pc = 9; return s.tmp_1; + case 9: r0 = s.retval; - r0 = pxsim_pxtrt.mkMap(); + r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_getRuleButtons_inline__P16316); s.tmp_0 = r0; - s.tmp_2 = accessibility_ariaToTooltip__P3519_mk(s); - s.tmp_2.arg0 = "load"; - s.callLocIdx = 1514; s.pc = 4; return s.tmp_2; - case 4: + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btns___16264); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = if_modifiers_1_mk(s); + r0 = s.arg0.fields["ruleButtons"]; + s.tmp_2.arg0 = r0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "modifiers"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["modifiers"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["modifiers"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1689; s.pc = 12; return s.tmp_2; } + } + case 12: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); - r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P14983); - s.tmp_3 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.btns___14968); - r0 = pxsim_pxtrt_stclo(s.tmp_3, 1, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_3); - s.tmp_4 = user_interface_base_Picker_show__P3758_mk(s); - r0 = s.arg0.fields["picker"]; - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = s.tmp_0; - s.tmp_4.arg2 = true; - s.callLocIdx = 1521; s.pc = 5; return s.tmp_4; - case 5: + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1690; s.pc = 11; return s.tmp_1; + case 11: r0 = s.retval; - r0 = undefined; + r0 = s.arg0.fields["doInsertBtn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = s.arg0.fields["doInsertBtn"]; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.btns___16264, s.tmp_1); + case 3: + case 4: + r0 = s.btns___16264; return leave(s, r0) default: oops() } } } -microcode_Home_pickDiskSLot__P5802.info = {"start":2091,"length":916,"line":58,"column":8,"endLine":80,"endColumn":9,"fileName":"home.ts","functionName":"pickDiskSLot","argumentNames":["this"]} +microcode_RuleEditor_getRuleButtons__P4507.info = {"start":13814,"length":581,"line":375,"column":8,"endLine":390,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"getRuleButtons","argumentNames":["this"]} -function microcode_Home_pickDiskSLot__P5802_mk(s) { +function microcode_RuleEditor_getRuleButtons__P4507_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Home_pickDiskSLot__P5802, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_getRuleButtons__P4507, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - btns___14968: undefined, + btns___16264: undefined, arg0: undefined, } } - -function btns_inline__P14970(s) { +function microcode_RuleEditor_getRuleButtons_inline__P16276(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35427,150 +39263,57 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", s.arg0); - r0 = s.tmp_0; + r0 = pxsim_Array__push(s.caps[0], s.arg0); + r0 = undefined; return leave(s, r0) default: oops() } } } -btns_inline__P14970.info = {"start":2176,"length":98,"line":59,"column":60,"endLine":63,"endColumn":13,"fileName":"home.ts","functionName":"inline","argumentNames":["slot"]} +microcode_RuleEditor_getRuleButtons_inline__P16276.info = {"start":14015,"length":17,"line":379,"column":45,"endLine":379,"endColumn":62,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} -function btns_inline__P14970_mk(s) { +function microcode_RuleEditor_getRuleButtons_inline__P16276_mk(s) { checkStack(s.depth); return { - parent: s, fn: btns_inline__P14970, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_getRuleButtons_inline__P16276, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, } } - -function onClick_inline__P14983(s) { +function microcode_RuleEditor_getRuleButtons_inline__P16287(s) { let r0 = s.r0, step = s.pc; s.pc = -1; while (true) { if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.buf___14985 = undefined; - s.i___14996 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_1 = if_icon_1_mk(s); - r0 = pxsim_Array__getAt(s.caps[0], s.arg0); - s.tmp_1.arg0 = r0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "icon"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["icon"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["icon"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1515; s.pc = 5; return s.tmp_1; } - } - case 5: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim.settings._get(s.tmp_0); - s.buf___14985 = (r0); - r0 = pxsim_numops_toBoolDecr(s.buf___14985); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = pxsim.control.createBuffer(6); - s.buf___14985 = (r0); - s.i___14996 = (0); - case 1: - r0 = (s.i___14996 < 5); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = pxsim.BufferMethods.setByte(s.buf___14985, s.i___14996, 1); - r0 = (s.i___14996 + 1); - s.i___14996 = (r0); - { step = 1; continue; } - case 2: - r0 = pxsim.BufferMethods.setByte(s.buf___14985, 5, 0); - case 3: - case 4: - s.tmp_0 = settings_writeBuffer__P3093_mk(s); - s.tmp_0.arg0 = globals.SAVESLOT_AUTO___4287; - s.tmp_0.arg1 = s.buf___14985; - s.callLocIdx = 1517; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.tmp_0 = if_popScene_1_mk(s); - r0 = s.caps[1].fields["app"]; - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); - s.callLocIdx = 1518; s.pc = 7; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1518; s.pc = 7; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1518; s.pc = 7; return s.tmp_0;; } - else { s.callLocIdx = 1518; s.pc = 7; return s.tmp_0; } - } - case 7: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(microcode_Editor__C4301_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_Editor_constructor__P4307_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.caps[1].fields["app"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1519; s.pc = 8; return s.tmp_1; - case 8: - r0 = s.retval; - s.tmp_2 = if_pushScene_2_mk(s); - r0 = s.caps[1].fields["app"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - if (!s.tmp_2.arg0.vtable.iface) { - setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); - s.callLocIdx = 1520; s.pc = 9; return s.tmp_2; - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1520; s.pc = 9; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1520; s.pc = 9; return s.tmp_2;; } - else { s.callLocIdx = 1520; s.pc = 9; return s.tmp_2; } +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; } - case 9: - r0 = s.retval; + r0 = pxsim_Array__push(s.caps[0], s.arg0); r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P14983.info = {"start":2431,"length":550,"line":67,"column":25,"endLine":78,"endColumn":17,"fileName":"home.ts","functionName":"inline","argumentNames":["index"]} +microcode_RuleEditor_getRuleButtons_inline__P16287.info = {"start":14079,"length":17,"line":380,"column":45,"endLine":380,"endColumn":62,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} -function onClick_inline__P14983_mk(s) { +function microcode_RuleEditor_getRuleButtons_inline__P16287_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P14983, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_getRuleButtons_inline__P16287, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - buf___14985: undefined, - i___14996: undefined, arg0: undefined, } } - -function accessibility_ariaToTooltip__P3519(s) { +function microcode_RuleEditor_getRuleButtons_inline__P16305(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35584,40 +39327,57 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = helpers_stringReplaceAll__P2146_mk(s); - s.tmp_1 = lambda_2_mk(s); - s.tmp_1.argL = globals.resolveTooltip___3489; - s.tmp_1.arg0 = s.arg0; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 487; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = "_"; - s.tmp_0.arg2 = " "; - s.callLocIdx = 488; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + r0 = pxsim_Array__push(s.caps[0], s.arg0); + r0 = undefined; return leave(s, r0) default: oops() } } } -accessibility_ariaToTooltip__P3519.info = {"start":1215,"length":132,"line":46,"column":4,"endLine":48,"endColumn":5,"fileName":"pxt_modules/user-interface-base/accessibility.ts","functionName":"ariaToTooltip","argumentNames":["ariaId"]} +microcode_RuleEditor_getRuleButtons_inline__P16305.info = {"start":14213,"length":17,"line":384,"column":47,"endLine":384,"endColumn":64,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} -function accessibility_ariaToTooltip__P3519_mk(s) { +function microcode_RuleEditor_getRuleButtons_inline__P16305_mk(s) { checkStack(s.depth); return { - parent: s, fn: accessibility_ariaToTooltip__P3519, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_getRuleButtons_inline__P16305, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } +function microcode_RuleEditor_getRuleButtons_inline__P16316(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; -function helpers_stringReplaceAll__P2146(s) { + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_Array__push(s.caps[0], s.arg0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_RuleEditor_getRuleButtons_inline__P16316.info = {"start":14279,"length":17,"line":385,"column":47,"endLine":385,"endColumn":64,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} + +function microcode_RuleEditor_getRuleButtons_inline__P16316_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_RuleEditor_getRuleButtons_inline__P16316, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function microcode_Editor_addButtons__P4478(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35627,230 +39387,42 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.split___15036 = undefined; - s.empty___15042 = undefined; - s.output___15046 = undefined; - s.i___15061 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 11); - pxsim_String__stringConv(s.arg1); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg1) + ""; } - case 11: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.arg1 = (r0); - s.tmp_0 = helpers_stringSplit__P2151_mk(s); - s.tmp_0.arg0 = s.arg0; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = user_interface_base_RowNavigator__C3753_v4_2_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = undefined; - s.callLocIdx = 14; s.pc = 12; return s.tmp_0; - case 12: - r0 = s.retval; - s.split___15036 = (r0); - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_0 = r0; - r0 = pxsim_Boolean__bang(s.tmp_0); - s.empty___15042 = (r0); - r0 = pxsim_numops_toBoolDecr(s.empty___15042); - if (!r0) { step = 1; continue; } - s.tmp_0 = applyReplace__P15049_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = s.arg2; - s.callLocIdx = 16; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - { step = 2; continue; } + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_RowNavigator__C3753_VT)) failedCast(s.tmp_0.arg0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.addRow; + s.pc = 1; return s.tmp_0; case 1: - r0 = pxsim_String_.mkEmpty(); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - s.output___15046 = (s.tmp_1); - r0 = pxsim_Array__length(s.split___15036); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - if ((s.output___15046) && (s.output___15046).vtable) { - setupResume(s, 14); - pxsim_String__stringConv(s.output___15046); - checkResumeConsumed(); - return; - } else { s.retval = (s.output___15046) + ""; } - case 14: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.split___15036, 0); - s.tmp_3 = r0; - if ((s.tmp_3) && (s.tmp_3).vtable) { - setupResume(s, 15); - pxsim_String__stringConv(s.tmp_3); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_3) + ""; } - case 15: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_String__concat(s.tmp_1, s.tmp_2); - s.output___15046 = (r0); - case 3: - case 4: - s.i___15061 = (1); - case 5: - s.tmp_1 = r0 = s.i___15061; - r0 = pxsim_Array__length(s.split___15036); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - if ((s.output___15046) && (s.output___15046).vtable) { - setupResume(s, 16); - pxsim_String__stringConv(s.output___15046); - checkResumeConsumed(); - return; - } else { s.retval = (s.output___15046) + ""; } - case 16: - r0 = s.retval; - s.tmp_3 = r0; - s.tmp_8 = applyReplace__P15049_mk(s); - s.tmp_8.arg0 = s.arg1; - s.tmp_8.arg1 = s.arg2; - s.callLocIdx = 17; s.pc = 17; return s.tmp_8; - case 17: - r0 = s.retval; - s.tmp_7 = r0; - if ((s.tmp_7) && (s.tmp_7).vtable) { - setupResume(s, 18); - pxsim_String__stringConv(s.tmp_7); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_7) + ""; } - case 18: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.split___15036, s.i___15061); - s.tmp_10 = r0; - if ((s.tmp_10) && (s.tmp_10).vtable) { - setupResume(s, 19); - pxsim_String__stringConv(s.tmp_10); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_10) + ""; } - case 19: - r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_String__concat(s.tmp_6, s.tmp_9); - s.tmp_5 = r0; - if ((s.tmp_5) && (s.tmp_5).vtable) { - setupResume(s, 20); - pxsim_String__stringConv(s.tmp_5); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_5) + ""; } - case 20: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); - s.output___15046 = (r0); - r0 = (s.i___15061 + 1); - s.i___15061 = (r0); - { step = 5; continue; } - case 6: - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 7; continue; } - r0 = s.tmp_0; - { step = 8; continue; } - case 7: - r0 = s.empty___15042; - case 8: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 9; continue; } - if ((s.output___15046) && (s.output___15046).vtable) { - setupResume(s, 21); - pxsim_String__stringConv(s.output___15046); - checkResumeConsumed(); - return; - } else { s.retval = (s.output___15046) + ""; } - case 21: - r0 = s.retval; - s.tmp_5 = r0; - s.tmp_8 = applyReplace__P15049_mk(s); - s.tmp_8.arg0 = s.arg1; - s.tmp_8.arg1 = s.arg2; - s.callLocIdx = 19; s.pc = 22; return s.tmp_8; - case 22: r0 = s.retval; - s.tmp_7 = r0; - if ((s.tmp_7) && (s.tmp_7).vtable) { - setupResume(s, 23); - pxsim_String__stringConv(s.tmp_7); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_7) + ""; } - case 23: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_String__concat(s.tmp_5, s.tmp_6); - s.output___15046 = (r0); - case 9: - case 10: - r0 = s.output___15046; + r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_stringReplaceAll__P2146.info = {"start":10239,"length":919,"line":346,"column":4,"endLine":374,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringReplaceAll","argumentNames":["s","toReplace","replacer"]} +microcode_Editor_addButtons__P4478.info = {"start":14164,"length":85,"line":422,"column":8,"endLine":424,"endColumn":9,"fileName":"editor.ts","functionName":"addButtons","argumentNames":["this","btns"]} -function helpers_stringReplaceAll__P2146_mk(s) { +function microcode_Editor_addButtons__P4478_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_stringReplaceAll__P2146, depth: s.depth + 1, + parent: s, fn: microcode_Editor_addButtons__P4478, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - split___15036: undefined, - empty___15042: undefined, - output___15046: undefined, - i___15061: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function applyReplace__P15049(s) { +function user_interface_base_RowNavigator_addRow__P3759(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35865,53 +39437,23 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore.typeOf(s.arg1); - s.tmp_1 = r0; - r0 = (s.tmp_1 == "string"); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + r0 = s.arg0.fields["buttonGroups"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 3; continue; } - r0 = s.arg1; - { step = 5; continue; } - { step = 4; continue; } - case 3: - s.tmp_4 = lambda_2_mk(s); - s.tmp_4.argL = s.arg1; - s.tmp_4.arg0 = s.arg0; - setupLambda(s.tmp_4, s.tmp_4.argL); - s.callLocIdx = 20; s.pc = 6; return s.tmp_4; - case 6: - r0 = s.retval; - { step = 5; continue; } - case 4: + r0 = pxsim_Array__push(s.tmp_0, s.arg1); r0 = undefined; - case 5: return leave(s, r0) default: oops() } } } -applyReplace__P15049.info = {"start":10880,"length":272,"line":367,"column":8,"endLine":373,"endColumn":9,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"applyReplace","argumentNames":["r","replacer"]} +user_interface_base_RowNavigator_addRow__P3759.info = {"start":2346,"length":82,"line":71,"column":8,"endLine":73,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"addRow","argumentNames":["this","btns"]} -function applyReplace__P15049_mk(s) { +function user_interface_base_RowNavigator_addRow__P3759_mk(s) { checkStack(s.depth); return { - parent: s, fn: applyReplace__P15049, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_addRow__P3759, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, arg1: undefined, } } @@ -35919,8 +39461,7 @@ function applyReplace__P15049_mk(s) { - -function helpers_stringEmpty__P2154(s) { +function microcode_RuleRowNavigator_addRule__P4724(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35932,30 +39473,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleRowNavigator__C4720_VT)) failedCast(r0, microcode_RuleRowNavigator__C4720_VT); + r0 = s.arg0.fields["rules"]; s.tmp_0 = r0; - r0 = pxsim_Boolean__bang(s.tmp_0); + r0 = pxsim_Array__push(s.tmp_0, s.arg1); + r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_stringEmpty__P2154.info = {"start":15544,"length":74,"line":522,"column":4,"endLine":524,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringEmpty","argumentNames":["S"]} +microcode_RuleRowNavigator_addRule__P4724.info = {"start":657,"length":76,"line":25,"column":8,"endLine":27,"endColumn":9,"fileName":"navigator.ts","functionName":"addRule","argumentNames":["this","rule"]} -function helpers_stringEmpty__P2154_mk(s) { +function microcode_RuleRowNavigator_addRule__P4724_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_stringEmpty__P2154, depth: s.depth + 1, + parent: s, fn: microcode_RuleRowNavigator_addRule__P4724, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_Picker_show__P3758(s) { +function user_interface_base_RowNavigator_setBtns__P3758(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -35968,288 +39513,74 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); - s.tmp_1 = if_selected_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "selected"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["selected"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["selected"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 712; s.pc = 11; return s.tmp_1; } - } - case 11: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_2 = if_selected_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "selected"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["selected"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["selected"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 713; s.pc = 12; return s.tmp_2; } - } - case 12: - r0 = s.retval; - { step = 2; continue; } - case 1: - r0 = -1; - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = (s.arg0).fields["start"] = (s.tmp_3); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_onClick_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onClick"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onClick"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onClick"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 714; s.pc = 13; return s.tmp_2; } - } - case 13: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["onClick"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_onHide_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onHide"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onHide"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onHide"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 715; s.pc = 14; return s.tmp_2; } - } - case 14: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["onHide"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_onDelete_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onDelete"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onDelete"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onDelete"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 716; s.pc = 15; return s.tmp_2; } - } - case 15: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["onDelete"] = (s.tmp_1); - s.tmp_1 = if_navigator_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "navigator"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["navigator"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["navigator"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 717; s.pc = 16; return s.tmp_1; } - } - case 16: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_2 = user_interface_base_PickerNavigator_clear__P3813_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_2.arg0 = r0; - s.callLocIdx = 718; s.pc = 17; return s.tmp_2; - case 17: - r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_navigator_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "navigator"), 1); - s.callLocIdx = 719; s.pc = 18; return s.tmp_2; - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["navigator"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["navigator"], 1); s.callLocIdx = 719; s.pc = 18; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 719; s.pc = 18; return s.tmp_2;; } - else { s.callLocIdx = 719; s.pc = 18; return s.tmp_2; } - } - case 18: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); - { step = 4; continue; } - case 3: - s.tmp_0 = user_interface_base_PickerNavigator_clear__P3813_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 720; s.pc = 19; return s.tmp_0; - case 19: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_PickerNavigator_constructor__P3804_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.arg0; - s.callLocIdx = 721; s.pc = 20; return s.tmp_1; - case 20: - r0 = s.retval; - r0 = (s.arg0).fields["navigator"] = (s.tmp_0); - case 4: - r0 = (s.arg0).fields["hideOnClick"] = (s.arg2); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_title_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "title"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["title"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["title"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 722; s.pc = 21; return s.tmp_2; } - } - case 21: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["title"] = (s.tmp_1); - s.tmp_1 = if_style_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "style"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["style"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["style"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 723; s.pc = 22; return s.tmp_1; } - } - case 22: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = s.tmp_0; - { step = 6; continue; } - case 5: - r0 = globals.LightShadowedWhite___3637; - case 6: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = (s.arg0).fields["style"] = (s.tmp_2); - s.tmp_1 = if_width_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "width"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["width"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["width"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 724; s.pc = 23; return s.tmp_1; } - } - case 23: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = s.tmp_0; - { step = 8; continue; } - case 7: - r0 = 5; - case 8: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = (s.arg0).fields["width"] = (s.tmp_2); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = user_interface_base_Cursor_saveState__P3736_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_2.arg0 = r0; - s.callLocIdx = 725; s.pc = 24; return s.tmp_2; - case 24: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["prevState"] = (s.tmp_1); - r0 = s.arg0.fields["cursor"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["navigator"]; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_Picker_show_inline__P15203); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = s.arg0.fields["cursor"]; - r0 = r0.fields["cancelHandlerStack"]; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); - r0 = s.arg0.fields["onDelete"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "parent", s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "style", globals.RedBorderedWhite___3640); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "delete"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "x", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "y", 0); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P15213); - s.tmp_3 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "onClick", s.tmp_3); - s.tmp_4 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_4.arg0 = s.tmp_1; - s.tmp_4.arg1 = s.tmp_2; - s.callLocIdx = 729; s.pc = 25; return s.tmp_4; - case 25: - r0 = s.retval; - r0 = (s.arg0).fields["deleteBtn"] = (s.tmp_1); - case 9: - case 10: - s.tmp_0 = user_interface_base_Picker_layout__P5282_mk(s); + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + r0 = (s.arg0).fields["buttonGroups"] = (s.arg1); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_RowNavigator_setBtns__P3758.info = {"start":2255,"length":81,"line":67,"column":8,"endLine":69,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"setBtns","argumentNames":["this","btns"]} + +function user_interface_base_RowNavigator_setBtns__P3758_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_RowNavigator_setBtns__P3758, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_RuleRowNavigator_constructor__P4721(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleRowNavigator__C4720_VT)) failedCast(r0, microcode_RuleRowNavigator__C4720_VT); + s.tmp_0 = user_interface_base_RowNavigator_constructor__P3754_mk(s); s.tmp_0.arg0 = s.arg0; - r0 = s.arg0.fields["width"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 730; s.pc = 26; return s.tmp_0; - case 26: + s.callLocIdx = 1945; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - r0 = (s.arg0).fields["visible"] = (true); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["rules"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Picker_show__P3758.info = {"start":5072,"length":1711,"line":158,"column":8,"endLine":204,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"show","argumentNames":["this","opts","hideOnClick"]} +microcode_RuleRowNavigator_constructor__P4721.info = {"start":381,"length":73,"line":10,"column":8,"endLine":13,"endColumn":9,"fileName":"navigator.ts","functionName":"inline","argumentNames":["this"]} -function user_interface_base_Picker_show__P3758_mk(s) { +function microcode_RuleRowNavigator_constructor__P4721_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_show__P3758, depth: s.depth + 1, + parent: s, fn: microcode_RuleRowNavigator_constructor__P4721, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function user_interface_base_Picker_show_inline__P15203(s) { +function user_interface_base_RowNavigator_constructor__P3754(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36259,30 +39590,38 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Picker_cancelClicked__P5281_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 726; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["buttonGroups"] = (s.tmp_1); + r0 = (s.arg0).fields["row"] = (0); + r0 = (s.arg0).fields["col"] = (0); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Picker_show_inline__P15203.info = {"start":6250,"length":26,"line":188,"column":48,"endLine":188,"endColumn":74,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":[]} +user_interface_base_RowNavigator_constructor__P3754.info = {"start":1931,"length":112,"line":49,"column":8,"endLine":53,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["this"]} -function user_interface_base_Picker_show_inline__P15203_mk(s) { +function user_interface_base_RowNavigator_constructor__P3754_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_show_inline__P15203, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_constructor__P3754, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function onClick_inline__P15213(s) { +function microcode_RuleRowNavigator_clear__P4723(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36292,43 +39631,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Picker_hide__P3759_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 727; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.tmp_0 = if_onDelete_1_mk(s); - s.tmp_0.arg0 = s.caps[0]; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "onDelete"), 1); - s.callLocIdx = 728; s.pc = 2; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["onDelete"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["onDelete"], 1); s.callLocIdx = 728; s.pc = 2; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 728; s.pc = 2; return s.tmp_0;; } - else { s.callLocIdx = 728; s.pc = 2; return s.tmp_0; } + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; } - case 2: + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleRowNavigator__C4720_VT)) failedCast(r0, microcode_RuleRowNavigator__C4720_VT); + s.tmp_0 = user_interface_base_RowNavigator_clear__P3755_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1946; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["rules"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P15213.info = {"start":6566,"length":105,"line":196,"column":29,"endLine":199,"endColumn":21,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":[]} +microcode_RuleRowNavigator_clear__P4723.info = {"start":567,"length":80,"line":20,"column":8,"endLine":23,"endColumn":9,"fileName":"navigator.ts","functionName":"clear","argumentNames":["this"]} -function onClick_inline__P15213_mk(s) { +function microcode_RuleRowNavigator_clear__P4723_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P15213, depth: s.depth + 1, + parent: s, fn: microcode_RuleRowNavigator_clear__P4723, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function user_interface_base_Picker_layout__P5282(s) { +function user_interface_base_RowNavigator_clear__P3755(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36338,307 +39675,69 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.top___15231 = undefined; - s.group___15257 = undefined; - s.btn___15352 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = undefined; - s.callLocIdx = 744; s.pc = 15; return s.tmp_1; - case 15: - r0 = s.retval; - r0 = (s.arg0).fields["panel"] = (s.tmp_0); - s.top___15231 = (2); - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = s.arg0.fields["title"]; - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 5; continue; } - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 3; continue; } - s.tmp_3 = user_interface_base_ButtonBase_height__P3653_mk(s); - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 745; s.pc = 16; return s.tmp_3; - case 16: - r0 = s.retval; - { step = 4; continue; } - case 3: - r0 = 16; - case 4: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = (s.top___15231 + s.tmp_4); - s.top___15231 = (r0); - case 5: - case 6: - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.tmp_1 = user_interface_base_PickerNavigator_addDelete__P3815_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 746; s.pc = 17; return s.tmp_1; - case 17: - r0 = s.retval; - case 7: - case 8: - r0 = s.arg0.fields["group"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = s.arg0.fields["group"]; - s.group___15257 = (r0); - s.tmp_0 = user_interface_base_PickerGroup_layout__P5276_mk(s); - s.tmp_0.arg0 = s.group___15257; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 747; s.pc = 18; return s.tmp_0; - case 18: - r0 = s.retval; - s.tmp_0 = r0 = s.top___15231; - r0 = s.group___15257.fields["cell"]; - r0 = r0.fields["height"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 >> 1); - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.top___15231 = (r0); - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - r0 = s.group___15257.fields["xfrm"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.top___15231; - s.callLocIdx = 750; s.pc = 19; return s.tmp_0; - case 19: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = s.top___15231; - s.callLocIdx = 751; s.pc = 20; return s.tmp_1; - case 20: - r0 = s.retval; - s.tmp_2 = user_interface_base_Bounds_add__P3388_mk(s); - r0 = s.arg0.fields["panel"]; - s.tmp_2.arg0 = r0; - s.tmp_3 = user_interface_base_Bounds_Translate__P3384_mk(s); - r0 = s.group___15257.fields["bounds"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.tmp_0; - s.callLocIdx = 752; s.pc = 22; return s.tmp_3; - case 22: - r0 = s.retval; - s.tmp_2.arg1 = r0; - s.callLocIdx = 753; s.pc = 21; return s.tmp_2; - case 21: - r0 = s.retval; - r0 = s.group___15257.fields["bounds"]; - r0 = r0.fields["height"]; - s.tmp_0 = r0; - r0 = (s.top___15231 + s.tmp_0); - s.top___15231 = (r0); - case 9: - case 10: - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 11; continue; } - s.tmp_1 = user_interface_base_Vec2_x__P3413_mk(s); - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_3 = r0; - r0 = s.tmp_3.fields["xfrm_"]; - s.tmp_2 = r0; - r0 = s.tmp_2.fields["localPos_"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["panel"]; - s.tmp_6 = r0; - r0 = s.tmp_6.fields["left"]; - s.tmp_8 = r0; - r0 = s.tmp_6.fields["width"]; - s.tmp_9 = r0; - r0 = (s.tmp_8 + s.tmp_9); - s.tmp_7 = r0; - r0 = (s.tmp_7 - 1); - s.tmp_5 = r0; - s.tmp_12 = user_interface_base_ButtonBase_width__P3652_mk(s); - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_12.arg0 = r0; - s.callLocIdx = 757; s.pc = 24; return s.tmp_12; - case 24: - r0 = s.retval; - s.tmp_11 = r0; - r0 = (s.tmp_11 >> 1); - s.tmp_10 = r0; - r0 = (s.tmp_5 - s.tmp_10); - s.tmp_4 = r0; - r0 = (s.tmp_4 + 1); - s.tmp_1.arg1 = r0; - s.callLocIdx = 758; s.pc = 23; return s.tmp_1; - case 23: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_2 = r0; - r0 = s.tmp_2.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["panel"]; - r0 = r0.fields["top"]; - s.tmp_3 = r0; - s.tmp_6 = user_interface_base_ButtonBase_height__P3653_mk(s); - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_6.arg0 = r0; - s.callLocIdx = 761; s.pc = 26; return s.tmp_6; - case 26: - r0 = s.retval; - s.tmp_5 = r0; - r0 = (s.tmp_5 >> 1); - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_0.arg1 = r0; - s.callLocIdx = 762; s.pc = 25; return s.tmp_0; - case 25: - r0 = s.retval; - case 11: - case 12: - s.tmp_0 = user_interface_base_Bounds_grow__P3382_mk(s); - r0 = s.arg0.fields["panel"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 2; - s.callLocIdx = 763; s.pc = 27; return s.tmp_0; - case 27: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["panel"]; - r0 = r0.fields["width"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 >> 1); - s.tmp_2 = r0; - r0 = (2 - s.tmp_2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 766; s.pc = 28; return s.tmp_0; - case 28: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["panel"]; - r0 = r0.fields["height"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 >> 1); - s.tmp_2 = r0; - r0 = (2 - s.tmp_2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 769; s.pc = 29; return s.tmp_0; - case 29: - r0 = s.retval; - r0 = s.arg0.fields["start"]; + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); s.tmp_1 = r0; - r0 = (s.tmp_1 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - r0 = (s.arg0).fields["start"] = (0); - case 13: - case 14: - s.tmp_0 = user_interface_base_PickerNavigator_moveToIndex__P3811_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["start"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 770; s.pc = 30; return s.tmp_0; - case 30: - r0 = s.retval; - s.btn___15352 = (r0); - s.tmp_0 = user_interface_base_Cursor_moveTo__P3731_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_0.arg0 = r0; - s.tmp_1 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.btn___15352.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 772; s.pc = 32; return s.tmp_1; - case 32: - r0 = s.retval; - s.tmp_0.arg1 = r0; - r0 = s.btn___15352.fields["_ariaId"]; - s.tmp_0.arg2 = r0; - s.tmp_2 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_2.arg0 = s.btn___15352; - s.callLocIdx = 774; s.pc = 33; return s.tmp_2; - case 33: - r0 = s.retval; - s.tmp_0.arg3 = r0; - s.callLocIdx = 775; s.pc = 31; return s.tmp_0; - case 31: - r0 = s.retval; + r0 = (s.tmp_0).fields["buttonGroups"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Picker_layout__P5282.info = {"start":7695,"length":1369,"line":235,"column":8,"endLine":268,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"layout","argumentNames":["this","maxPerRow"]} +user_interface_base_RowNavigator_clear__P3755.info = {"start":2053,"length":61,"line":55,"column":8,"endLine":57,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"clear","argumentNames":["this"]} -function user_interface_base_Picker_layout__P5282_mk(s) { +function user_interface_base_RowNavigator_clear__P3755_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_layout__P5282, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_clear__P3755, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - top___15231: undefined, - group___15257: undefined, - btn___15352: undefined, arg0: undefined, - arg1: undefined, } } +function user_interface_base_RowNavigator_getRow__P3756(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + r0 = s.arg0.fields["row"]; + return leave(s, r0) + default: oops() +} } } +user_interface_base_RowNavigator_getRow__P3756.info = {"start":2124,"length":55,"line":59,"column":8,"endLine":61,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getRow","argumentNames":["this"]} + +function user_interface_base_RowNavigator_getRow__P3756_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_RowNavigator_getRow__P3756, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function user_interface_base_ButtonBase_bounds__P3654(s) { +function user_interface_base_RowNavigator_getCol__P3757(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36653,55 +39752,66 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = user_interface_base_Bounds_GrowXY__P3381_mk(s); - s.tmp_1 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 517; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + r0 = s.arg0.fields["col"]; + return leave(s, r0) + default: oops() +} } } +user_interface_base_RowNavigator_getCol__P3757.info = {"start":2191,"length":54,"line":63,"column":8,"endLine":65,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getCol","argumentNames":["this"]} + +function user_interface_base_RowNavigator_getCol__P3757_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_RowNavigator_getCol__P3757, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function microcode_PageEditor_update__P4493(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleEditors"]; s.tmp_0.arg0 = r0; - s.tmp_2 = user_interface_base_borderLeft__P3642_mk(s); - r0 = s.arg0.fields["style"]; - s.tmp_2.arg0 = r0; - s.callLocIdx = 518; s.pc = 3; return s.tmp_2; - case 3: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.tmp_3 = user_interface_base_borderTop__P3643_mk(s); - r0 = s.arg0.fields["style"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 519; s.pc = 4; return s.tmp_3; - case 4: - r0 = s.retval; - s.tmp_0.arg2 = r0; - s.callLocIdx = 520; s.pc = 1; return s.tmp_0; + s.tmp_0.arg1 = microcode_PageEditor_update_inline__P16388; + s.callLocIdx = 1598; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - return leaveAccessor(s, r0) + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_bounds__P3654.info = {"start":2734,"length":190,"line":117,"column":4,"endLine":124,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"bounds","argumentNames":["this"]} -user_interface_base_ButtonBase_bounds__P3654.isGetter = true; +microcode_PageEditor_update__P4493.info = {"start":21082,"length":80,"line":640,"column":8,"endLine":642,"endColumn":9,"fileName":"editor.ts","functionName":"update","argumentNames":["this"]} -function user_interface_base_ButtonBase_bounds__P3654_mk(s) { +function microcode_PageEditor_update__P4493_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_bounds__P3654, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_update__P4493, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, } } - -function user_interface_base_borderTop__P3643(s) { +function microcode_PageEditor_update_inline__P16388(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36715,39 +39825,63 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0.fields["borders"]; - r0 = r0.fields["top"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = 1; - { step = 2; continue; } + s.tmp_0 = microcode_RuleEditor_update__P4509_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1597; s.pc = 1; return s.tmp_0; case 1: - r0 = 0; - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_borderTop__P3643.info = {"start":1478,"length":88,"line":68,"column":2,"endLine":70,"endColumn":3,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"borderTop","argumentNames":["style"]} +microcode_PageEditor_update_inline__P16388.info = {"start":21130,"length":21,"line":641,"column":37,"endLine":641,"endColumn":58,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} -function user_interface_base_borderTop__P3643_mk(s) { +function microcode_PageEditor_update_inline__P16388_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_borderTop__P3643, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_update_inline__P16388, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } +function microcode_RuleEditor_update__P4509(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_RuleEditor_update__P4509.info = {"start":14485,"length":18,"line":396,"column":8,"endLine":396,"endColumn":26,"fileName":"ruleeditor.ts","functionName":"update","argumentNames":["this"]} + +function microcode_RuleEditor_update__P4509_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_RuleEditor_update__P4509, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function user_interface_base_borderLeft__P3642(s) { +function microcode_Editor_activate__P4477(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36761,39 +39895,59 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0.fields["borders"]; - r0 = r0.fields["left"]; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = user_interface_base_Scene_activate__P3666_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1530; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = s.arg0.fields["pageEditor"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = 1; - { step = 2; continue; } + s.tmp_3 = microcode_Editor_switchToPage__P4468_mk(s); + s.tmp_3.arg0 = s.arg0; + r0 = s.arg0.fields["currPage"]; + s.tmp_3.arg1 = r0; + s.tmp_3.arg2 = 1; + s.tmp_3.arg3 = 1; + s.callLocIdx = 1531; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; case 1: - r0 = 0; case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + s.tmp_0 = microcode_Editor_saveAndCompileProgram__P4467_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1532; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_borderLeft__P3642.info = {"start":1384,"length":90,"line":64,"column":2,"endLine":66,"endColumn":3,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"borderLeft","argumentNames":["style"]} +microcode_Editor_activate__P4477.info = {"start":13963,"length":191,"line":414,"column":23,"endLine":420,"endColumn":9,"fileName":"editor.ts","functionName":"activate","argumentNames":["this"]} -function user_interface_base_borderLeft__P3642_mk(s) { +function microcode_Editor_activate__P4477_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_borderLeft__P3642, depth: s.depth + 1, + parent: s, fn: microcode_Editor_activate__P4477, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function user_interface_base_Sprite_bounds__P3478(s) { +function microcode_Editor_saveAndCompileProgram__P4467(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36803,94 +39957,61 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.b___15390 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", 0); - r0 = s.arg0.fields["image"]; - s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_2); - r0 = s.arg0.fields["image"]; - s.tmp_5 = r0; - r0 = pxsim.BitmapMethods.height(s.tmp_5); - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_4); - s.tmp_6 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_6.arg0 = s.tmp_0; - s.tmp_6.arg1 = s.tmp_1; - s.callLocIdx = 465; s.pc = 1; return s.tmp_6; - case 1: - r0 = s.retval; - s.b___15390 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = s.arg0.fields["programChanged"]; s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.arg0.fields["image"]; - s.tmp_4 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 >> 1); - s.tmp_2 = r0; - r0 = (0 - s.tmp_2); - s.tmp_1.arg1 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_7 = r0; - r0 = pxsim.BitmapMethods.height(s.tmp_7); - s.tmp_6 = r0; - r0 = (s.tmp_6 >> 1); - s.tmp_5 = r0; - r0 = (0 - s.tmp_5); - s.tmp_1.arg2 = r0; - s.callLocIdx = 468; s.pc = 2; return s.tmp_1; - case 2: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = (s.arg0).fields["programChanged"] = (false); + s.tmp_0 = if_save_3_mk(s); + r0 = s.arg0.fields["app"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4438; + s.tmp_1 = microcode_ProgramDefn_toBuffer__P4224_mk(s); + r0 = s.arg0.fields["progdef"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1409; s.pc = 4; return s.tmp_1; + case 4: r0 = s.retval; - s.tmp_8 = user_interface_base_Bounds_translate__P3385_mk(s); - s.tmp_8.arg0 = s.b___15390; - s.tmp_8.arg1 = s.tmp_0; - s.callLocIdx = 469; s.pc = 3; return s.tmp_8; + s.tmp_0.arg2 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "save"), 3); + s.callLocIdx = 1410; s.pc = 3; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["save"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["save"], 3); s.callLocIdx = 1410; s.pc = 3; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1410; s.pc = 3; return s.tmp_0;; } + else { s.callLocIdx = 1410; s.pc = 3; return s.tmp_0; } + } case 3: r0 = s.retval; - return leaveAccessor(s, r0) + case 1: + case 2: + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Sprite_bounds__P3478.info = {"start":766,"length":312,"line":26,"column":8,"endLine":36,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"bounds","argumentNames":["this"]} -user_interface_base_Sprite_bounds__P3478.isGetter = true; +microcode_Editor_saveAndCompileProgram__P4467.info = {"start":3041,"length":249,"line":92,"column":8,"endLine":98,"endColumn":9,"fileName":"editor.ts","functionName":"saveAndCompileProgram","argumentNames":["this"]} -function user_interface_base_Sprite_bounds__P3478_mk(s) { +function microcode_Editor_saveAndCompileProgram__P4467_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_bounds__P3478, depth: s.depth + 1, + parent: s, fn: microcode_Editor_saveAndCompileProgram__P4467, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - b___15390: undefined, arg0: undefined, } } - -function user_interface_base_Bounds_translate__P3385(s) { +function microcode_ProgramDefn_toBuffer__P4224(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36900,53 +40021,73 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.bw___16415 = undefined; + s.magic___16418 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["left"]; - s.tmp_2 = r0; - r0 = s.arg1.fields["x_"]; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["left"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["top"]; - s.tmp_2 = r0; - r0 = s.arg1.fields["y_"]; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["top"] = (s.tmp_1); - r0 = s.arg0; + if (!checkSubtype(r0, microcode_ProgramDefn__C4220_VT)) failedCast(r0, microcode_ProgramDefn__C4220_VT); + r0 = pxsim_pxtcore_mkClassInstance(microcode_BufferWriter__C4621_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_BufferWriter_constructor__P4622_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1270; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + s.bw___16415 = (s.tmp_0); + r0 = pxsim.control.createBuffer(4); + s.magic___16418 = (r0); + r0 = pxsim.BufferMethods.setNumber(s.magic___16418, 11, 0, 1049819173); + s.tmp_0 = microcode_BufferWriter_writeBuffer__P4626_mk(s); + s.tmp_0.arg0 = s.bw___16415; + s.tmp_0.arg1 = s.magic___16418; + s.callLocIdx = 1271; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_ProgramDefn_toBuffer_inline__P16432); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.bw___16415); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["pages"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1273; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.tmp_0 = microcode_BufferWriter_writeByte__P4625_mk(s); + s.tmp_0.arg0 = s.bw___16415; + s.tmp_0.arg1 = 0; + s.callLocIdx = 1274; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.tmp_0 = microcode_BufferWriter_buffer__P4624_mk(s); + s.tmp_0.arg0 = s.bw___16415; + s.callLocIdx = 1275; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_translate__P3385.info = {"start":3003,"length":124,"line":106,"column":8,"endLine":110,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"translate","argumentNames":["this","p"]} +microcode_ProgramDefn_toBuffer__P4224.info = {"start":11534,"length":343,"line":354,"column":8,"endLine":362,"endColumn":9,"fileName":"language.ts","functionName":"toBuffer","argumentNames":["this"]} -function user_interface_base_Bounds_translate__P3385_mk(s) { +function microcode_ProgramDefn_toBuffer__P4224_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_translate__P3385, depth: s.depth + 1, + parent: s, fn: microcode_ProgramDefn_toBuffer__P4224, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, + bw___16415: undefined, + magic___16418: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Sprite_height__P3476(s) { +function microcode_ProgramDefn_toBuffer_inline__P16432(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36960,21 +40101,22 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - r0 = s.arg0.fields["image"]; - s.tmp_0 = r0; - r0 = pxsim.BitmapMethods.height(s.tmp_0); - return leaveAccessor(s, r0) + s.tmp_0 = microcode_PageDefn_toBuffer__P4217_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.caps[0]; + s.callLocIdx = 1272; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Sprite_height__P3476.info = {"start":605,"length":68,"line":19,"column":8,"endLine":21,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"height","argumentNames":["this"]} -user_interface_base_Sprite_height__P3476.isGetter = true; +microcode_ProgramDefn_toBuffer_inline__P16432.info = {"start":11770,"length":25,"line":359,"column":31,"endLine":359,"endColumn":56,"fileName":"language.ts","functionName":"inline","argumentNames":["page"]} -function user_interface_base_Sprite_height__P3476_mk(s) { +function microcode_ProgramDefn_toBuffer_inline__P16432_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_height__P3476, depth: s.depth + 1, + parent: s, fn: microcode_ProgramDefn_toBuffer_inline__P16432, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -36983,8 +40125,7 @@ function user_interface_base_Sprite_height__P3476_mk(s) { - -function user_interface_base_Sprite_width__P3475(s) { +function microcode_BufferWriter_buffer__P4624(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -36994,35 +40135,49 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.buf___16443 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - r0 = s.arg0.fields["image"]; + if (!checkSubtype(r0, microcode_BufferWriter__C4621_VT)) failedCast(r0, microcode_BufferWriter__C4621_VT); + r0 = s.arg0.fields["ptr"]; s.tmp_0 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_0); + r0 = pxsim.control.createBuffer(s.tmp_0); + s.buf___16443 = (r0); + s.tmp_0 = r0 = s.buf___16443; + r0 = s.arg0.fields["buf"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["ptr"]; + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.slice(s.tmp_2, 0, s.tmp_3); + s.tmp_1 = r0; + r0 = pxsim.BufferMethods.write(s.tmp_0, 0, s.tmp_1); + r0 = s.buf___16443; return leaveAccessor(s, r0) default: oops() } } } -user_interface_base_Sprite_width__P3475.info = {"start":530,"length":66,"line":16,"column":8,"endLine":18,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"width","argumentNames":["this"]} -user_interface_base_Sprite_width__P3475.isGetter = true; +microcode_BufferWriter_buffer__P4624.info = {"start":520,"length":156,"line":22,"column":8,"endLine":26,"endColumn":9,"fileName":"utils.ts","functionName":"buffer","argumentNames":["this"]} +microcode_BufferWriter_buffer__P4624.isGetter = true; -function user_interface_base_Sprite_width__P3475_mk(s) { +function microcode_BufferWriter_buffer__P4624_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_width__P3475, depth: s.depth + 1, + parent: s, fn: microcode_BufferWriter_buffer__P4624, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + buf___16443: undefined, arg0: undefined, } } - -function user_interface_base_Bounds_GrowXY__P3381(s) { +function microcode_BufferWriter_writeByte__P4625(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37032,49 +40187,114 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.b___15432 = undefined; + s.copy___16488 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tmp_0 = user_interface_base_Bounds_clone__P3377_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 318; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_BufferWriter__C4621_VT)) failedCast(r0, microcode_BufferWriter__C4621_VT); + r0 = (0 <= s.arg1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - s.b___15432 = (r0); - s.tmp_0 = user_interface_base_Bounds_growxy__P3383_mk(s); - s.tmp_0.arg0 = s.b___15432; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = s.arg2; - s.callLocIdx = 319; s.pc = 2; return s.tmp_0; + r0 = (s.arg1 <= 255); case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (r0) { step = 3; continue; } + r0 = s.tmp_1; + { step = 4; continue; } + case 3: + r0 = (s.arg1 | 0); + s.tmp_2 = r0; + r0 = (s.tmp_2 == s.arg1); + case 4: + // jmp value (already in r0) + s.tmp_3 = r0; + s.tmp_4 = microcode_assert__P4620_mk(s); + s.tmp_4.arg0 = s.tmp_3; + r0 = pxsim_numops.toString(s.arg1); + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 8); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 8: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat("writeByte: v=", s.tmp_5); + s.tmp_4.arg1 = r0; + s.callLocIdx = 1940; s.pc = 7; return s.tmp_4; + case 7: r0 = s.retval; - r0 = s.b___15432; + r0 = s.arg0.fields["ptr"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 >= s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = s.arg0.fields["buf"]; + s.tmp_6 = r0; + r0 = pxsim.BufferMethods.length(s.tmp_6); + s.tmp_5 = r0; + r0 = (s.tmp_5 * 2); + s.tmp_4 = r0; + r0 = pxsim.control.createBuffer(s.tmp_4); + s.copy___16488 = (r0); + r0 = s.arg0.fields["buf"]; + s.tmp_0 = r0; + r0 = pxsim.BufferMethods.write(s.copy___16488, 0, s.tmp_0); + r0 = (s.arg0).fields["buf"] = (s.copy___16488); + case 5: + case 6: + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + r0 = s.arg0.fields["buf"]; + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.setByte(s.tmp_3, s.tmp_2, s.arg1); + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_GrowXY__P3381.info = {"start":2152,"length":157,"line":75,"column":8,"endLine":79,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"GrowXY","argumentNames":["box","x","y"]} +microcode_BufferWriter_writeByte__P4625.info = {"start":686,"length":407,"line":28,"column":8,"endLine":39,"endColumn":9,"fileName":"utils.ts","functionName":"writeByte","argumentNames":["this","v"]} -function user_interface_base_Bounds_GrowXY__P3381_mk(s) { +function microcode_BufferWriter_writeByte__P4625_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_GrowXY__P3381, depth: s.depth + 1, + parent: s, fn: microcode_BufferWriter_writeByte__P4625, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - b___15432: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + copy___16488: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function user_interface_base_Bounds_growxy__P3383(s) { +function microcode_PageDefn_toBuffer__P4217(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37087,64 +40307,47 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["top"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 - s.arg1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["top"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["left"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 - s.arg2); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["left"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["width"]; - s.tmp_2 = r0; - r0 = (s.arg1 * 2); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["width"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["height"]; - s.tmp_2 = r0; - r0 = (s.arg2 * 2); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["height"] = (s.tmp_1); - r0 = s.arg0; + if (!checkSubtype(r0, microcode_PageDefn__C4211_VT)) failedCast(r0, microcode_PageDefn__C4211_VT); + r0 = pxsim_pxtcore_mkAction(1, microcode_PageDefn_toBuffer_inline__P16516); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["rules"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1257; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + s.tmp_0 = microcode_BufferWriter_writeByte__P4625_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = 1; + s.callLocIdx = 1258; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_growxy__P3383.info = {"start":2532,"length":195,"line":89,"column":8,"endLine":95,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"growxy","argumentNames":["this","x","y"]} +microcode_PageDefn_toBuffer__P4217.info = {"start":10539,"length":145,"line":316,"column":8,"endLine":319,"endColumn":9,"fileName":"language.ts","functionName":"toBuffer","argumentNames":["this","bw"]} -function user_interface_base_Bounds_growxy__P3383_mk(s) { +function microcode_PageDefn_toBuffer__P4217_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_growxy__P3383, depth: s.depth + 1, + parent: s, fn: microcode_PageDefn_toBuffer__P4217, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function user_interface_base_Bounds_clone__P3377(s) { +function microcode_PageDefn_toBuffer_inline__P16516(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37158,56 +40361,31 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = s.arg0.fields["left"]; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.tmp_2); - r0 = s.arg0.fields["top"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_3); - r0 = s.arg0.fields["width"]; - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_4); - r0 = s.arg0.fields["height"]; - s.tmp_5 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_5); - s.tmp_6 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_6.arg0 = s.tmp_0; - s.tmp_6.arg1 = s.tmp_1; - s.callLocIdx = 317; s.pc = 1; return s.tmp_6; + s.tmp_0 = microcode_RuleDefn_toBuffer__P4209_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.caps[0]; + s.callLocIdx = 1256; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = s.tmp_0; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_clone__P3377.info = {"start":1392,"length":217,"line":46,"column":8,"endLine":53,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"clone","argumentNames":["this"]} +microcode_PageDefn_toBuffer_inline__P16516.info = {"start":10606,"length":25,"line":317,"column":31,"endLine":317,"endColumn":56,"fileName":"language.ts","functionName":"inline","argumentNames":["rule"]} -function user_interface_base_Bounds_clone__P3377_mk(s) { +function microcode_PageDefn_toBuffer_inline__P16516_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_clone__P3377, depth: s.depth + 1, + parent: s, fn: microcode_PageDefn_toBuffer_inline__P16516, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, arg0: undefined, } } - -function user_interface_base_Button_ariaId__P3670(s) { +function microcode_RuleDefn_toBuffer__P4209(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37217,32 +40395,89 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.handleFieldEditors___16526 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - r0 = s.arg0.fields["_ariaId"]; - return leaveAccessor(s, r0) + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + r0 = pxsim_pxtcore_mkAction(1, handleFieldEditors_inline__P16527); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); + s.handleFieldEditors___16526 = (s.tmp_0); + s.tmp_1 = microcode_RuleDefn_isEmpty__P4204_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1213; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 3; continue; } + case 1: + case 2: + s.tmp_2 = microcode_BufferWriter_writeByte__P4625_mk(s); + s.tmp_2.arg0 = s.arg1; + s.tmp_3 = microcode_RuleDefn_sensor__P4202_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 1214; s.pc = 6; return s.tmp_3; + case 6: + r0 = s.retval; + s.tmp_2.arg1 = r0; + s.callLocIdx = 1215; s.pc = 5; return s.tmp_2; + case 5: + r0 = s.retval; + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["filters"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.handleFieldEditors___16526; + s.callLocIdx = 1216; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_RuleDefn_toBuffer_inline__P16555); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["actuators"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1218; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["modifiers"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.handleFieldEditors___16526; + s.callLocIdx = 1219; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + case 3: + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Button_ariaId__P3670.info = {"start":6190,"length":61,"line":251,"column":4,"endLine":253,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"ariaId","argumentNames":["this"]} -user_interface_base_Button_ariaId__P3670.isGetter = true; +microcode_RuleDefn_toBuffer__P4209.info = {"start":7085,"length":709,"line":216,"column":8,"endLine":233,"endColumn":9,"fileName":"language.ts","functionName":"toBuffer","argumentNames":["this","bw"]} -function user_interface_base_Button_ariaId__P3670_mk(s) { +function microcode_RuleDefn_toBuffer__P4209_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_ariaId__P3670, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_toBuffer__P4209, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + handleFieldEditors___16526: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_Affine_worldPos__P3352(s) { +function handleFieldEditors_inline__P16527(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37252,37 +40487,75 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.fieldEditor___16533 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Affine__C3351_VT)) failedCast(r0, user_interface_base_Affine__C3351_VT); - s.tmp_0 = user_interface_base_Affine_computeWorldPos__P5162_mk(s); + s.tmp_0 = microcode_BufferWriter_writeByte__P4625_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_1 = microcode_getTid__P4194_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1209; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1210; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = microcode_getFieldEditor__P4542_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 302; s.pc = 1; return s.tmp_0; - case 1: + s.callLocIdx = 1211; s.pc = 5; return s.tmp_0; + case 5: r0 = s.retval; - return leaveAccessor(s, r0) + s.fieldEditor___16533 = (r0); + r0 = pxsim_numops_toBoolDecr(s.fieldEditor___16533); + if (!r0) { step = 1; continue; } + s.tmp_0 = microcode_BufferWriter_writeBuffer__P4626_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_1 = microcode_FieldEditor__C5998_v4_2_mk(s); + s.tmp_1.arg0 = s.fieldEditor___16533; + s.tmp_2 = microcode_ModifierEditor__C4543_v0_1_mk(s); + s.tmp_2.arg0 = s.arg0; + if (!checkSubtype(s.tmp_2.arg0, microcode_ModifierEditor__C4543_VT)) failedCast(s.tmp_2.arg0, microcode_ModifierEditor__C4543_VT); + s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.getField; + s.pc = 8; return s.tmp_2; + case 8: + r0 = s.retval; + s.tmp_1.arg1 = r0; + if (!checkSubtype(s.tmp_1.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_1.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.toBuffer; + s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1212; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + case 1: + case 2: + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Affine_worldPos__P3352.info = {"start":563,"length":75,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"worldPos","argumentNames":["this"]} -user_interface_base_Affine_worldPos__P3352.isGetter = true; +handleFieldEditors_inline__P16527.info = {"start":7160,"length":378,"line":217,"column":39,"endLine":227,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["tile"]} -function user_interface_base_Affine_worldPos__P3352_mk(s) { +function handleFieldEditors_inline__P16527_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Affine_worldPos__P3352, depth: s.depth + 1, + parent: s, fn: handleFieldEditors_inline__P16527, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + fieldEditor___16533: undefined, arg0: undefined, } } - -function user_interface_base_Affine_computeWorldPos__P5162(s) { +function microcode_RuleDefn_toBuffer_inline__P16555(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37292,71 +40565,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.pos___15484 = undefined; - s.parent___15491 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Affine__C3351_VT)) failedCast(r0, user_interface_base_Affine__C3351_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = 0; - s.callLocIdx = 308; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.pos___15484 = (s.tmp_0); - s.tmp_0 = user_interface_base_Vec2_copyFrom__P3418_mk(s); - s.tmp_0.arg0 = s.pos___15484; - r0 = s.arg0.fields["localPos_"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 309; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - r0 = s.arg0.fields["parent_"]; - s.parent___15491 = (r0); + s.tmp_0 = microcode_BufferWriter_writeByte__P4625_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 1217; s.pc = 1; return s.tmp_0; case 1: - r0 = pxsim_numops_toBoolDecr(s.parent___15491); - if (!r0) { step = 2; continue; } - s.tmp_0 = user_interface_base_Vec2_TranslateToRef__P3425_mk(s); - s.tmp_0.arg0 = s.pos___15484; - r0 = s.parent___15491.fields["localPos_"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.pos___15484; - s.callLocIdx = 311; s.pc = 5; return s.tmp_0; - case 5: r0 = s.retval; - r0 = s.parent___15491.fields["parent_"]; - s.parent___15491 = (r0); - { step = 1; continue; } - case 2: - r0 = s.pos___15484; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Affine_computeWorldPos__P5162.info = {"start":1663,"length":325,"line":58,"column":8,"endLine":67,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"computeWorldPos","argumentNames":["this"]} +microcode_RuleDefn_toBuffer_inline__P16555.info = {"start":7704,"length":24,"line":231,"column":35,"endLine":231,"endColumn":59,"fileName":"language.ts","functionName":"inline","argumentNames":["act"]} -function user_interface_base_Affine_computeWorldPos__P5162_mk(s) { +function microcode_RuleDefn_toBuffer_inline__P16555_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Affine_computeWorldPos__P5162, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_toBuffer_inline__P16555, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - pos___15484: undefined, - parent___15491: undefined, arg0: undefined, } } - -function user_interface_base_Affine_parent__P3355(s) { +function microcode_RuleDefn_isEmpty__P4204(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37371,27 +40608,50 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Affine__C3351_VT)) failedCast(r0, user_interface_base_Affine__C3351_VT); - r0 = s.arg0.fields["parent_"]; - return leaveAccessor(s, r0) + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + r0 = s.arg0.fields["sensors"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 === 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = s.arg0.fields["actuators"]; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 === 0); + case 2: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = s.tmp_5; + return leave(s, r0) default: oops() } } } -user_interface_base_Affine_parent__P3355.info = {"start":931,"length":63,"line":27,"column":8,"endLine":29,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"parent","argumentNames":["this"]} -user_interface_base_Affine_parent__P3355.isGetter = true; +microcode_RuleDefn_isEmpty__P4204.info = {"start":2707,"length":113,"line":96,"column":8,"endLine":98,"endColumn":9,"fileName":"language.ts","functionName":"isEmpty","argumentNames":["this"]} -function user_interface_base_Affine_parent__P3355_mk(s) { +function microcode_RuleDefn_isEmpty__P4204_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Affine_parent__P3355, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_isEmpty__P4204, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, arg0: undefined, } } - -function user_interface_base_Vec2_TranslateToRef__P3425(s) { +function microcode_FieldEditor_toBuffer__P6003(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37404,55 +40664,29 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_0.arg0 = s.arg2; - r0 = s.arg0.fields["x_"]; - s.tmp_1 = r0; - r0 = s.arg1.fields["x_"]; - s.tmp_2 = r0; - r0 = (s.tmp_1 + s.tmp_2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 364; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - s.tmp_0.arg0 = s.arg2; - r0 = s.arg0.fields["y_"]; - s.tmp_1 = r0; - r0 = s.arg1.fields["y_"]; - s.tmp_2 = r0; - r0 = (s.tmp_1 + s.tmp_2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 367; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - r0 = s.arg2; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_FieldEditor__C5998_VT)) failedCast(r0, microcode_FieldEditor__C5998_VT); + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_TranslateToRef__P3425.info = {"start":1439,"length":158,"line":63,"column":8,"endLine":67,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"TranslateToRef","argumentNames":["v","p","ref"]} +microcode_FieldEditor_toBuffer__P6003.info = {"start":801,"length":69,"line":28,"column":8,"endLine":30,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toBuffer","argumentNames":["this","field"]} -function user_interface_base_Vec2_TranslateToRef__P3425_mk(s) { +function microcode_FieldEditor_toBuffer__P6003_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_TranslateToRef__P3425, depth: s.depth + 1, + parent: s, fn: microcode_FieldEditor_toBuffer__P6003, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function user_interface_base_Vec2_copyFrom__P3418(s) { +function microcode_getFieldEditor__P4542(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37464,46 +40698,37 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Vec2__C3411_VT)) failedCast(r0, user_interface_base_Vec2__C3411_VT); - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_0.arg0 = s.arg0; - r0 = s.arg1.fields["x_"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 359; s.pc = 1; return s.tmp_0; + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["fieldEditor"]; + { step = 3; continue; } case 1: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - s.tmp_0.arg0 = s.arg0; - r0 = s.arg1.fields["y_"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 361; s.pc = 2; return s.tmp_0; case 2: - r0 = s.retval; - r0 = s.arg0; + r0 = undefined; + case 3: return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_copyFrom__P3418.info = {"start":541,"length":116,"line":25,"column":8,"endLine":29,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"copyFrom","argumentNames":["this","v"]} +microcode_getFieldEditor__P4542.info = {"start":198,"length":156,"line":5,"column":4,"endLine":8,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"getFieldEditor","argumentNames":["tile"]} -function user_interface_base_Vec2_copyFrom__P3418_mk(s) { +function microcode_getFieldEditor__P4542_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_copyFrom__P3418, depth: s.depth + 1, + parent: s, fn: microcode_getFieldEditor__P4542, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Cursor_moveTo__P3731(s) { +function microcode_BufferWriter_writeBuffer__P4626(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37513,75 +40738,58 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.i___16586 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - r0 = s.arg0.fields["resetOutlineColourOnMove"]; + if (!checkSubtype(r0, microcode_BufferWriter__C4621_VT)) failedCast(r0, microcode_BufferWriter__C4621_VT); + s.i___16586 = (0); + case 1: + s.tmp_1 = r0 = s.i___16586; + r0 = pxsim.BufferMethods.length(s.arg1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = user_interface_base_Cursor_setOutlineColour__P3735_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = 9; - s.callLocIdx = 616; s.pc = 3; return s.tmp_1; + if (!r0) { step = 2; continue; } + s.tmp_3 = microcode_BufferWriter_writeByte__P4625_mk(s); + s.tmp_3.arg0 = s.arg0; + r0 = pxsim.BufferMethods.getByte(s.arg1, s.i___16586); + s.tmp_3.arg1 = r0; + s.callLocIdx = 1941; s.pc = 3; return s.tmp_3; case 3: r0 = s.retval; - case 1: + r0 = (s.i___16586 + 1); + s.i___16586 = (r0); + { step = 1; continue; } case 2: - s.tmp_0 = user_interface_base_Cursor_setSize__P3734_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg3; - s.callLocIdx = 617; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_copyFrom__P3418_mk(s); - r0 = s.arg0.fields["moveDest"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 618; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - r0 = pxsim.control.millis(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["moveStartMs"] = (s.tmp_1); - s.tmp_0 = user_interface_base_Cursor_setAriaContent__P3732_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg2; - s.tmp_0.arg2 = null; - s.callLocIdx = 619; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_moveTo__P3731.info = {"start":2464,"length":308,"line":75,"column":4,"endLine":83,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"moveTo","argumentNames":["this","pos","ariaId","sizeHint"]} +microcode_BufferWriter_writeBuffer__P4626.info = {"start":1103,"length":109,"line":41,"column":8,"endLine":43,"endColumn":9,"fileName":"utils.ts","functionName":"writeBuffer","argumentNames":["this","b"]} -function user_interface_base_Cursor_moveTo__P3731_mk(s) { +function microcode_BufferWriter_writeBuffer__P4626_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_moveTo__P3731, depth: s.depth + 1, + parent: s, fn: microcode_BufferWriter_writeBuffer__P4626, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + i___16586: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function user_interface_base_Cursor_setAriaContent__P3732(s) { +function microcode_BufferWriter_constructor__P4622(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37593,47 +40801,35 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - s.tmp_0 = r0 = s.arg1; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = pxsim_String_.mkEmpty(); - case 2: - // jmp value (already in r0) + if (!checkSubtype(r0, microcode_BufferWriter__C4621_VT)) failedCast(r0, microcode_BufferWriter__C4621_VT); + r0 = (s.arg0).fields["ptr"] = (0); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim.control.createBuffer(64); s.tmp_1 = r0; - r0 = (s.arg0).fields["ariaId"] = (s.tmp_1); - r0 = (s.arg0).fields["ariaPos"] = (s.arg2); + r0 = (s.tmp_0).fields["buf"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_setAriaContent__P3732.info = {"start":2844,"length":129,"line":88,"column":4,"endLine":91,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"setAriaContent","argumentNames":["this","ariaId","ariaPos"]} +microcode_BufferWriter_constructor__P4622.info = {"start":375,"length":66,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"utils.ts","functionName":"inline","argumentNames":["this"]} -function user_interface_base_Cursor_setAriaContent__P3732_mk(s) { +function microcode_BufferWriter_constructor__P4622_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_setAriaContent__P3732, depth: s.depth + 1, + parent: s, fn: microcode_BufferWriter_constructor__P4622, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function user_interface_base_Cursor_setSize__P3734(s) { +function microcode_Editor_switchToPage__P4468(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37646,67 +40842,125 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - s.tmp_0 = r0 = s.arg1; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = (s.arg1 < 0); + s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0 = s.arg1; + r0 = s.arg0.fields["progdef"]; + r0 = r0.fields["pages"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "left", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "top", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "width", 16); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "height", 16); - s.tmp_3 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_3.arg0 = s.tmp_1; - s.tmp_3.arg1 = s.tmp_2; - s.callLocIdx = 629; s.pc = 5; return s.tmp_3; - case 5: + r0 = (s.tmp_1 >= s.tmp_2); + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 3; continue; } + { step = 5; continue; } + case 3: + case 4: + r0 = (s.arg0).fields["currPage"] = (s.arg1); + s.tmp_0 = user_interface_base_Button_setIcon__P3654_mk(s); + r0 = s.arg0.fields["pageBtn"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = microcode_getIcon__P4195_mk(s); + s.tmp_3 = microcode_PAGE_IDS__P4219_mk(s); + s.callLocIdx = 1425; s.pc = 8; return s.tmp_3; + case 8: + r0 = s.retval; + s.tmp_2 = r0; + r0 = s.arg0.fields["currPage"]; + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_4); + s.tmp_1.arg0 = r0; + s.callLocIdx = 1426; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = undefined; + s.callLocIdx = 1427; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(microcode_PageEditor__C4481_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_PageEditor_constructor__P4484_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.arg0; + r0 = s.arg0.fields["scrollroot"]; + s.tmp_1.arg2 = r0; + r0 = s.arg0.fields["progdef"]; + r0 = r0.fields["pages"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["currPage"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + s.tmp_1.arg3 = r0; + s.callLocIdx = 1428; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + r0 = (s.arg0).fields["pageEditor"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + r0 = (globals.user_interface_base_Screen_TOP_EDGE___3418 + 17); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 2); + s.tmp_1.arg2 = r0; + s.callLocIdx = 1430; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + s.tmp_3 = user_interface_base_Affine_localPos__P3327_mk(s); + r0 = s.arg0.fields["scrollroot"]; + s.tmp_4 = r0; + r0 = s.tmp_4.fields["xfrm_"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.tmp_0; + s.callLocIdx = 1431; s.pc = 11; return s.tmp_3; + case 11: r0 = s.retval; - r0 = s.tmp_1; - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - s.arg1 = (s.tmp_4); - r0 = s.arg0.fields["size"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_1 = user_interface_base_Bounds_copyFrom__P3378_mk(s); - r0 = s.arg0.fields["size"]; + s.tmp_0 = microcode_Editor_rebuildNavigator__P5961_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1432; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.tmp_0 = microcode_Editor_snapCursorTo__P4469_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = user_interface_base_RowNavigator_initialCursor__P3766_mk(s); + r0 = s.arg0.fields["navigator"]; s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.arg1; - s.callLocIdx = 630; s.pc = 6; return s.tmp_1; - case 6: + s.tmp_1.arg1 = s.arg2; + s.tmp_1.arg2 = s.arg3; + s.callLocIdx = 1433; s.pc = 14; return s.tmp_1; + case 14: r0 = s.retval; - { step = 4; continue; } - case 3: - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = user_interface_base_Bounds_clone__P3377_mk(s); - s.tmp_2.arg0 = s.arg1; - s.callLocIdx = 631; s.pc = 7; return s.tmp_2; - case 7: + s.tmp_0.arg1 = r0; + s.callLocIdx = 1434; s.pc = 13; return s.tmp_0; + case 13: r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["size"] = (s.tmp_1); - case 4: + case 5: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_setSize__P3734.info = {"start":3377,"length":203,"line":107,"column":4,"endLine":112,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"setSize","argumentNames":["this","size"]} +microcode_Editor_switchToPage__P4468.info = {"start":4188,"length":727,"line":129,"column":8,"endLine":146,"endColumn":9,"fileName":"editor.ts","functionName":"switchToPage","argumentNames":["this","index","startRow","startCol"]} -function user_interface_base_Cursor_setSize__P3734_mk(s) { +function microcode_Editor_switchToPage__P4468_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_setSize__P3734, depth: s.depth + 1, + parent: s, fn: microcode_Editor_switchToPage__P4468, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -37715,13 +40969,14 @@ function user_interface_base_Cursor_setSize__P3734_mk(s) { tmp_4: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function user_interface_base_Bounds_copyFrom__P3378(s) { +function microcode_Editor_snapCursorTo__P4469(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37731,37 +40986,60 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.w___16660 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - r0 = s.arg1.fields["left"]; - s.tmp_0 = r0; - r0 = (s.arg0).fields["left"] = (s.tmp_0); - r0 = s.arg1.fields["top"]; - s.tmp_0 = r0; - r0 = (s.arg0).fields["top"] = (s.tmp_0); - r0 = s.arg1.fields["width"]; - s.tmp_0 = r0; - r0 = (s.arg0).fields["width"] = (s.tmp_0); - r0 = s.arg1.fields["height"]; - s.tmp_0 = r0; - r0 = (s.arg0).fields["height"] = (s.tmp_0); + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.arg1.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1436; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + s.w___16660 = (r0); + s.tmp_0 = user_interface_base_Cursor_snapTo__P3706_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_0.arg0 = r0; + r0 = s.w___16660.fields["x_"]; + s.tmp_0.arg1 = r0; + r0 = s.w___16660.fields["y_"]; + s.tmp_0.arg2 = r0; + r0 = s.arg1.fields["_ariaId"]; + s.tmp_0.arg3 = r0; + s.tmp_1 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_1.arg0 = s.arg1; + s.callLocIdx = 1440; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.tmp_0.arg4 = r0; + s.callLocIdx = 1441; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + s.tmp_0 = user_interface_base_Button_reportAria__P3649_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = true; + s.callLocIdx = 1442; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + r0 = (s.arg0).fields["dirty"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_copyFrom__P3378.info = {"start":1619,"length":186,"line":55,"column":8,"endLine":60,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"copyFrom","argumentNames":["this","other"]} +microcode_Editor_snapCursorTo__P4469.info = {"start":4925,"length":212,"line":148,"column":8,"endLine":153,"endColumn":9,"fileName":"editor.ts","functionName":"snapCursorTo","argumentNames":["this","btn"]} -function user_interface_base_Bounds_copyFrom__P3378_mk(s) { +function microcode_Editor_snapCursorTo__P4469_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_copyFrom__P3378, depth: s.depth + 1, + parent: s, fn: microcode_Editor_snapCursorTo__P4469, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + w___16660: undefined, arg0: undefined, arg1: undefined, } } @@ -37769,8 +41047,7 @@ function user_interface_base_Bounds_copyFrom__P3378_mk(s) { - -function user_interface_base_Cursor_setOutlineColour__P3735(s) { +function user_interface_base_Button_reportAria__P3649(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37786,18 +41063,17 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - r0 = (s.arg0).fields["cursorOutlineColour"] = (s.arg1); + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_setOutlineColour__P3735.info = {"start":3631,"length":161,"line":118,"column":4,"endLine":121,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"setOutlineColour","argumentNames":["this","colour"]} +user_interface_base_Button_reportAria__P3649.info = {"start":6554,"length":224,"line":267,"column":4,"endLine":274,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"reportAria","argumentNames":["this","force"]} -function user_interface_base_Cursor_setOutlineColour__P3735_mk(s) { +function user_interface_base_Button_reportAria__P3649_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_setOutlineColour__P3735, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_reportAria__P3649, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, arg1: undefined, @@ -37806,8 +41082,7 @@ function user_interface_base_Cursor_setOutlineColour__P3735_mk(s) { - -function user_interface_base_PickerNavigator_moveToIndex__P3811(s) { +function user_interface_base_Cursor_snapTo__P3706(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37820,78 +41095,112 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0 = control_assert__P2486_mk(s); - s.tmp_1 = r0 = s.arg1; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["group"]; - r0 = r0.fields["defs"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = "index out of bounds"; - s.callLocIdx = 788; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + s.tmp_0 = r0 = s.arg4; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "left", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "top", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "width", 16); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "height", 16); + s.tmp_3 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_3.arg0 = s.tmp_1; + s.tmp_3.arg1 = s.tmp_2; + s.callLocIdx = 612; s.pc = 3; return s.tmp_3; + case 3: r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = r0 = s.arg1; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - s.tmp_3 = r0; - r0 = pxsim.Math_.idiv(s.tmp_2, s.tmp_3); + r0 = s.tmp_1; + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + s.tmp_5 = user_interface_base_Cursor_setSize__P3707_mk(s); + s.tmp_5.arg0 = s.arg0; + s.tmp_5.arg1 = s.tmp_4; + s.callLocIdx = 613; s.pc = 4; return s.tmp_5; + case 4: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + r0 = s.arg0.fields["xfrm"]; s.tmp_1 = r0; - r0 = (s.tmp_0).fields["row"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; s.tmp_2 = r0 = s.arg1; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - s.tmp_3 = r0; - r0 = (s.tmp_2 % s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["col"] = (s.tmp_1); - s.tmp_0 = user_interface_base_PickerNavigator__C3803_v0_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; - s.pc = 2; return s.tmp_0; - case 2: + s.tmp_0.arg1 = r0; + s.callLocIdx = 615; s.pc = 5; return s.tmp_0; + case 5: r0 = s.retval; - s.tmp_0 = user_interface_base_PickerGroup_getButtonAtIndex__P5274_mk(s); - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["group"]; + s.tmp_3 = user_interface_base_Vec2_x__P3386_mk(s); + r0 = s.arg0.fields["moveDest"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.tmp_2; + s.callLocIdx = 616; s.pc = 6; return s.tmp_3; + case 6: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + r0 = s.arg0.fields["xfrm"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 791; s.pc = 3; return s.tmp_0; - case 3: + s.tmp_2 = r0 = s.arg2; + s.tmp_0.arg1 = r0; + s.callLocIdx = 618; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + s.tmp_3 = user_interface_base_Vec2_y__P3388_mk(s); + r0 = s.arg0.fields["moveDest"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.tmp_2; + s.callLocIdx = 619; s.pc = 8; return s.tmp_3; + case 8: + r0 = s.retval; + s.tmp_0 = user_interface_base_Cursor_setAriaContent__P3705_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg3; + s.tmp_0.arg2 = null; + s.callLocIdx = 620; s.pc = 9; return s.tmp_0; + case 9: r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_moveToIndex__P3811.info = {"start":11185,"length":294,"line":367,"column":8,"endLine":373,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"moveToIndex","argumentNames":["this","index"]} +user_interface_base_Cursor_snapTo__P3706.info = {"start":3050,"length":321,"line":97,"column":4,"endLine":105,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"snapTo","argumentNames":["this","x","y","ariaId","sizeHint"]} -function user_interface_base_PickerNavigator_moveToIndex__P3811_mk(s) { +function user_interface_base_Cursor_snapTo__P3706_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_moveToIndex__P3811, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_snapTo__P3706, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, } } - -function user_interface_base_PickerGroup_getButtonAtIndex__P5274(s) { +function user_interface_base_Affine_localPos__P3327(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -37901,110 +41210,32 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.def___15635 = undefined; - s.btn___15641 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerGroup__C5272_VT)) failedCast(r0, user_interface_base_PickerGroup__C5272_VT); - r0 = s.arg0.fields["defs"]; - s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.arg1); - s.def___15635 = (r0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = s.arg0.fields["picker"]; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.tmp_2); - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["style"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", s.tmp_3); - s.tmp_5 = if_icon_1_mk(s); - s.tmp_5.arg0 = s.def___15635; - if (!s.tmp_5.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "icon"); - } else { - s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["icon"]; - if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["icon"]; } - else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } - else { s.callLocIdx = 670; s.pc = 1; return s.tmp_5; } - } - case 1: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_4); - s.tmp_7 = if_ariaId_1_mk(s); - s.tmp_7.arg0 = s.def___15635; - if (!s.tmp_7.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "ariaId"); - } else { - s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["ariaId"]; - if (s.tmp_7.fn == null) { s.retval = s.tmp_7.arg0.fields["ariaId"]; } - else if (!s.tmp_7.fn.isGetter) { s.retval = bind(s.tmp_7); } - else { s.callLocIdx = 671; s.pc = 2; return s.tmp_7; } - } - case 2: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", s.tmp_6); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 0); - r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P15655); - s.tmp_8 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_8, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_8, 1, s.arg1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_8); - s.tmp_9 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_9.arg0 = s.tmp_0; - s.tmp_9.arg1 = s.tmp_1; - s.callLocIdx = 673; s.pc = 3; return s.tmp_9; - case 3: - r0 = s.retval; - s.btn___15641 = (s.tmp_0); - s.tmp_0 = user_interface_base_Affine_parent__P3356_mk(s); - r0 = s.btn___15641.fields["xfrm_"]; + if (!checkSubtype(r0, user_interface_base_Affine__C3324_VT)) failedCast(r0, user_interface_base_Affine__C3324_VT); + s.tmp_0 = user_interface_base_Vec2_copyFrom__P3391_mk(s); + r0 = s.arg0.fields["localPos_"]; s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["xfrm"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 675; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - s.tmp_0 = user_interface_base_PickerGroup_setButtonCoords__P5277_mk(s); - s.tmp_0.arg0 = s.arg0; s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = s.btn___15641; - s.callLocIdx = 676; s.pc = 5; return s.tmp_0; - case 5: + s.callLocIdx = 296; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - r0 = s.btn___15641; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_getButtonAtIndex__P5274.info = {"start":1263,"length":549,"line":41,"column":8,"endLine":57,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"getButtonAtIndex","argumentNames":["this","idx"]} +user_interface_base_Affine_localPos__P3327.info = {"start":787,"length":79,"line":22,"column":8,"endLine":24,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"localPos","argumentNames":["this","v"]} -function user_interface_base_PickerGroup_getButtonAtIndex__P5274_mk(s) { +function user_interface_base_Affine_localPos__P3327_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_getButtonAtIndex__P5274, depth: s.depth + 1, + parent: s, fn: user_interface_base_Affine_localPos__P3327, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - def___15635: undefined, - btn___15641: undefined, arg0: undefined, arg1: undefined, } } @@ -38012,8 +41243,7 @@ function user_interface_base_PickerGroup_getButtonAtIndex__P5274_mk(s) { - -function onClick_inline__P15655(s) { +function microcode_PageEditor_constructor__P4484(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38023,32 +41253,93 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Picker_onButtonClicked__P3757_mk(s); - r0 = s.caps[0].fields["picker"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.caps[1]; - s.callLocIdx = 672; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + r0 = (s.arg0).fields["editor"] = (s.arg1); + r0 = (s.arg0).fields["pagedef"] = (s.arg3); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1551; s.pc = 1; return s.tmp_1; case 1: + r0 = s.retval; + r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); + s.tmp_0 = user_interface_base_Affine_parent__P3329_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = if_xfrm_1_mk(s); + s.tmp_1.arg0 = s.arg2; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "xfrm"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["xfrm"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["xfrm"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1552; s.pc = 3; return s.tmp_1; } + } + case 3: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1553; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(2, microcode_PageEditor_inline__P16733); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg0); + s.tmp_1 = r0 = s.arg0; + s.tmp_3 = helpers_arrayMap__P2135_mk(s); + r0 = s.arg3.fields["rules"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.tmp_0; + s.callLocIdx = 1555; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["ruleEditors"] = (s.tmp_2); + s.tmp_0 = microcode_PageEditor_ensureFinalEmptyRule__P5965_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1556; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.tmp_0 = microcode_PageEditor_layout__P4487_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1557; s.pc = 6; return s.tmp_0; + case 6: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P15655.info = {"start":1602,"length":78,"line":50,"column":25,"endLine":52,"endColumn":17,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":[]} +microcode_PageEditor_constructor__P4484.info = {"start":16938,"length":433,"line":515,"column":8,"endLine":527,"endColumn":9,"fileName":"editor.ts","functionName":"inline","argumentNames":["this","editor","parent","pagedef"]} -function onClick_inline__P15655_mk(s) { +function microcode_PageEditor_constructor__P4484_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P15655, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_constructor__P4484, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function user_interface_base_PickerGroup_setButtonCoords__P5277(s) { +function microcode_PageEditor_inline__P16733(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38058,127 +41349,43 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.row___15679 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerGroup__C5272_VT)) failedCast(r0, user_interface_base_PickerGroup__C5272_VT); - s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3656_mk(s); - s.tmp_0.arg0 = s.arg2; - s.tmp_1 = lambda_3_mk(s); - s.tmp_1.argL = globals.getIcon___3488; - s.tmp_2 = if_icon_1_mk(s); - r0 = s.arg0.fields["defs"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_3, s.arg1); - s.tmp_2.arg0 = r0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "icon"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["icon"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["icon"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 687; s.pc = 3; return s.tmp_2; } - } - case 3: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = false; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 688; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 689; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; + r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleEditor__C4496_VT); s.tmp_0 = r0; - r0 = pxsim.Math_.idiv(s.arg1, s.tmp_0); - s.row___15679 = (r0); - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - r0 = s.arg2.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["cell"]; - r0 = r0.fields["width"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - s.tmp_7 = r0; - r0 = (s.arg1 % s.tmp_7); - s.tmp_6 = r0; - r0 = s.arg0.fields["cell"]; - r0 = r0.fields["width"]; - s.tmp_8 = r0; - r0 = (s.tmp_6 * s.tmp_8); - s.tmp_5 = r0; - r0 = (s.tmp_3 + s.tmp_5); - s.tmp_2 = r0; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - s.tmp_10 = r0; - r0 = (s.arg1 % s.tmp_10); - s.tmp_9 = r0; - r0 = (s.tmp_2 + s.tmp_9); - s.tmp_0.arg1 = r0; - s.callLocIdx = 692; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - r0 = s.arg2.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["cell"]; - r0 = r0.fields["height"]; - s.tmp_2 = r0; - r0 = (s.row___15679 * s.tmp_2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 695; s.pc = 5; return s.tmp_0; - case 5: + s.tmp_1 = microcode_RuleEditor_constructor__P4506_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.caps[0]; + s.tmp_1.arg2 = s.caps[1]; + s.tmp_1.arg3 = s.arg0; + s.tmp_1.arg4 = s.arg1; + s.callLocIdx = 1554; s.pc = 1; return s.tmp_1; + case 1: r0 = s.retval; - r0 = undefined; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_setButtonCoords__P5277.info = {"start":2756,"length":423,"line":85,"column":8,"endLine":93,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"setButtonCoords","argumentNames":["this","idx","btn"]} +microcode_PageEditor_inline__P16733.info = {"start":17217,"length":64,"line":523,"column":16,"endLine":523,"endColumn":80,"fileName":"editor.ts","functionName":"inline","argumentNames":["ruledef","index"]} -function user_interface_base_PickerGroup_setButtonCoords__P5277_mk(s) { +function microcode_PageEditor_inline__P16733_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_setButtonCoords__P5277, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_inline__P16733, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - row___15679: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function user_interface_base_ButtonBase_buildSprite__P3656(s) { +function microcode_PageEditor_layout__P4487(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38188,59 +41395,98 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.left___16754 = undefined; + s.top___16756 = undefined; + s.maxRuleWidth___16797 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Sprite__C3471_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "img", s.arg1); - s.tmp_2 = user_interface_base_Sprite_constructor__P3479_mk(s); - s.tmp_2.arg0 = s.tmp_0; - s.tmp_2.arg1 = s.tmp_1; - s.callLocIdx = 521; s.pc = 1; return s.tmp_2; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 3; continue; } case 1: - r0 = s.retval; - r0 = (s.arg0).fields["icon"] = (s.tmp_0); - s.tmp_0 = user_interface_base_Affine_parent__P3356_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 524; s.pc = 2; return s.tmp_0; case 2: + s.tmp_3 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = microcode_PageEditor_layout_inline__P16750; + s.callLocIdx = 1563; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + s.left___16754 = (globals.microcode_PageEditor_MARGIN___4485); + r0 = pxsim_pxtrt.mklocRef(); + s.top___16756 = (r0); + r0 = pxsim_pxtrt_stlocRef(s.top___16756, globals.microcode_PageEditor_MARGIN___4485); + r0 = pxsim_pxtcore_mkAction(3, microcode_PageEditor_layout_inline__P16761); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.top___16756); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.left___16754); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1570; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + r0 = pxsim_pxtrt.mklocRef(); + s.maxRuleWidth___16797 = (r0); + r0 = pxsim_pxtrt_stlocRef(s.maxRuleWidth___16797, 0); + r0 = pxsim_pxtcore_mkAction(1, microcode_PageEditor_layout_inline__P16801); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.maxRuleWidth___16797); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1572; s.pc = 6; return s.tmp_1; + case 6: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_PageEditor_layout_inline__P16812); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.maxRuleWidth___16797); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1573; s.pc = 7; return s.tmp_1; + case 7: r0 = s.retval; + case 3: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_buildSprite__P3656.info = {"start":3081,"length":154,"line":134,"column":4,"endLine":140,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"buildSprite","argumentNames":["this","img"]} +microcode_PageEditor_layout__P4487.info = {"start":18434,"length":946,"line":562,"column":8,"endLine":586,"endColumn":9,"fileName":"editor.ts","functionName":"layout","argumentNames":["this"]} -function user_interface_base_ButtonBase_buildSprite__P3656_mk(s) { +function microcode_PageEditor_layout__P4487_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_buildSprite__P3656, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_layout__P4487, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + left___16754: undefined, + top___16756: undefined, + maxRuleWidth___16797: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Sprite_xfrm__P3474(s) { +function microcode_PageEditor_layout_inline__P16750(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38254,28 +41500,30 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - r0 = s.arg0.fields["xfrm_"]; - return leaveAccessor(s, r0) + s.tmp_0 = microcode_RuleEditor_layout__P4510_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1562; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Sprite_xfrm__P3474.info = {"start":461,"length":60,"line":13,"column":8,"endLine":15,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"xfrm","argumentNames":["this"]} -user_interface_base_Sprite_xfrm__P3474.isGetter = true; +microcode_PageEditor_layout_inline__P16750.info = {"start":18531,"length":53,"line":564,"column":37,"endLine":566,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} -function user_interface_base_Sprite_xfrm__P3474_mk(s) { +function microcode_PageEditor_layout_inline__P16750_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_xfrm__P3474, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_layout_inline__P16750, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, } } - -function user_interface_base_Sprite_constructor__P3479(s) { +function microcode_PageEditor_layout_inline__P16761(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38290,93 +41538,72 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 470; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); - s.tmp_1 = if_parent_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "parent"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["parent"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["parent"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 471; s.pc = 4; return s.tmp_1; } - } - case 4: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_2 = if_xfrm_1_mk(s); - s.tmp_3 = if_parent_1_mk(s); - s.tmp_3.arg0 = s.arg1; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "parent"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["parent"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["parent"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 472; s.pc = 6; return s.tmp_3; } - } - case 6: - r0 = s.retval; - s.tmp_2.arg0 = r0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "xfrm"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["xfrm"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["xfrm"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 473; s.pc = 5; return s.tmp_2; } - } - case 5: - r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 1; continue; } + s.tmp_0 = r0 = s.caps[1]; + r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); + s.tmp_2 = r0; + r0 = s.caps[0].fields["ruleEditors"]; + s.tmp_5 = r0; + r0 = (s.arg1 - 1); + s.tmp_6 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); + r0 = r0.fields["bounds"]; + r0 = r0.fields["height"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + s.tmp_0 = r0 = s.caps[1]; + r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); + s.tmp_2 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["height"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + s.tmp_0 = r0 = s.caps[1]; + r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); + s.tmp_2 = r0; + r0 = (s.tmp_2 + globals.microcode_PageEditor_RULE_MARGIN___4486); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + case 1: case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - s.tmp_5 = user_interface_base_Affine_parent__P3356_mk(s); + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); r0 = s.arg0.fields["xfrm_"]; - s.tmp_5.arg0 = r0; - s.tmp_5.arg1 = s.tmp_4; - s.callLocIdx = 474; s.pc = 7; return s.tmp_5; - case 7: - r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_img_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "img"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["img"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["img"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 475; s.pc = 8; return s.tmp_2; } - } - case 8: + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.caps[2]; + s.callLocIdx = 1566; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + r0 = s.arg0.fields["xfrm_"]; s.tmp_1 = r0; - r0 = (s.tmp_0).fields["image"] = (s.tmp_1); + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1569; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Sprite_constructor__P3479.info = {"start":1088,"length":203,"line":38,"column":8,"endLine":42,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"inline","argumentNames":["this","opts"]} +microcode_PageEditor_layout_inline__P16761.info = {"start":18704,"length":341,"line":569,"column":37,"endLine":577,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule","index"]} -function user_interface_base_Sprite_constructor__P3479_mk(s) { +function microcode_PageEditor_layout_inline__P16761_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_constructor__P3479, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_layout_inline__P16761, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -38384,6 +41611,7 @@ function user_interface_base_Sprite_constructor__P3479_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, + tmp_6: undefined, arg0: undefined, arg1: undefined, } } @@ -38391,8 +41619,7 @@ function user_interface_base_Sprite_constructor__P3479_mk(s) { - -function user_interface_base_Affine_parent__P3356(s) { +function microcode_PageEditor_layout_inline__P16801(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38404,32 +41631,41 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Affine__C3351_VT)) failedCast(r0, user_interface_base_Affine__C3351_VT); - r0 = (s.arg0).fields["parent_"] = (s.arg1); + s.tmp_0 = r0 = s.caps[0]; + s.tmp_2 = Math_max__P2159_mk(s); + r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + s.tmp_2.arg0 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["width"]; + s.tmp_2.arg1 = r0; + s.callLocIdx = 1571; s.pc = 1; return s.tmp_2; + case 1: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Affine_parent__P3356.info = {"start":1003,"length":69,"line":30,"column":8,"endLine":32,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"parent","argumentNames":["this","p"]} +microcode_PageEditor_layout_inline__P16801.info = {"start":19162,"length":96,"line":580,"column":37,"endLine":582,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} -function user_interface_base_Affine_parent__P3356_mk(s) { +function microcode_PageEditor_layout_inline__P16801_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Affine_parent__P3356, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_layout_inline__P16801, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Picker_onButtonClicked__P3757(s) { +function microcode_PageEditor_layout_inline__P16812(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38439,65 +41675,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.onClick___15767 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); - r0 = s.arg0.fields["onClick"]; - s.onClick___15767 = (r0); - r0 = s.arg0.fields["hideOnClick"]; + r0 = s.arg0.fields["bounds"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["cursor"]; - r0 = r0.fields["cancelHandlerStack"]; + r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); s.tmp_1 = r0; - r0 = pxsim_Array_.pop(s.tmp_1); - s.tmp_0 = user_interface_base_Picker_hide__P3759_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 709; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - case 1: - case 2: - r0 = pxsim_numops_toBoolDecr(s.onClick___15767); - if (!r0) { step = 3; continue; } - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.onClick___15767; - s.tmp_0.arg0 = s.arg1; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 710; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - case 3: - case 4: + r0 = (s.tmp_0).fields["width"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Picker_onButtonClicked__P3757.info = {"start":4651,"length":293,"line":142,"column":8,"endLine":151,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"onButtonClicked","argumentNames":["this","index"]} +microcode_PageEditor_layout_inline__P16812.info = {"start":19297,"length":72,"line":583,"column":37,"endLine":585,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} -function user_interface_base_Picker_onButtonClicked__P3757_mk(s) { +function microcode_PageEditor_layout_inline__P16812_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_onButtonClicked__P3757, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_layout_inline__P16812, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - onClick___15767: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_PickerNavigator_reportAria__P5292(s) { +function microcode_RuleEditor_layout__P4510(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38507,53 +41713,431 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.ruleRep___16819 = undefined; + s.v___16822 = undefined; + s.whenTiles___16830 = undefined; + s.doTiles___16839 = undefined; + s.firstWhenTile___16862 = undefined; + s.lastWhenTile___16865 = undefined; + s.layoutButtons___16900 = undefined; + s.updateSizeFromButtons___16995 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 == -1); + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = s.arg0.fields["ruleButtons"]; + s.ruleRep___16819 = (r0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = 0; + s.tmp_1.arg2 = 0; + s.callLocIdx = 1692; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + s.v___16822 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = undefined; + s.callLocIdx = 1693; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + r0 = (s.arg0).fields["whenBounds"] = (s.tmp_0); + s.tmp_0 = helpers_arrayConcat__P2142_mk(s); + s.tmp_1 = if_sensors_1_mk(s); + s.tmp_1.arg0 = s.ruleRep___16819; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "sensors"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["sensors"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["sensors"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1694; s.pc = 12; return s.tmp_1; } + } + case 12: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_2 = if_filters_1_mk(s); + s.tmp_2.arg0 = s.ruleRep___16819; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "filters"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["filters"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["filters"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1695; s.pc = 13; return s.tmp_2; } + } + case 13: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1696; s.pc = 11; return s.tmp_0; + case 11: + r0 = s.retval; + s.whenTiles___16830 = (r0); + s.tmp_0 = helpers_arrayConcat__P2142_mk(s); + s.tmp_1 = if_actuators_1_mk(s); + s.tmp_1.arg0 = s.ruleRep___16819; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "actuators"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["actuators"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["actuators"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1697; s.pc = 15; return s.tmp_1; } + } + case 15: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_2 = if_modifiers_1_mk(s); + s.tmp_2.arg0 = s.ruleRep___16819; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "modifiers"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["modifiers"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["modifiers"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1698; s.pc = 16; return s.tmp_2; } + } + case 16: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1699; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; + s.doTiles___16839 = (r0); + r0 = s.arg0.fields["whenInsertBtn"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "type", "text"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "value", "delete_tile"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "force", true); - s.tmp_3 = accessibility_setLiveContent__P3518_mk(s); - s.tmp_3.arg0 = s.tmp_2; - s.callLocIdx = 813; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; + r0 = s.arg0.fields["whenInsertBtn"]; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.whenTiles___16830, s.tmp_1); case 1: case 2: + r0 = s.arg0.fields["doInsertBtn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = s.arg0.fields["doInsertBtn"]; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.doTiles___16839, s.tmp_1); + case 3: + case 4: + r0 = pxsim_Array__getAt(s.whenTiles___16830, 0); + s.firstWhenTile___16862 = (r0); + s.tmp_0 = r0 = s.whenTiles___16830; + r0 = pxsim_Array__length(s.whenTiles___16830); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + s.lastWhenTile___16865 = (r0); + s.tmp_0 = user_interface_base_Affine_localPos__P3327_mk(s); + r0 = s.arg0.fields["handleBtn"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.v___16822; + s.callLocIdx = 1701; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.v___16822; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + s.tmp_4 = user_interface_base_ButtonBase_width__P3625_mk(s); + r0 = s.arg0.fields["handleBtn"]; + s.tmp_4.arg0 = r0; + s.callLocIdx = 1702; s.pc = 19; return s.tmp_4; + case 19: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1704; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + r0 = s.arg0.fields["whenBounds"]; + s.tmp_0 = r0; + r0 = s.v___16822.fields["x_"]; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["left"] = (s.tmp_1); + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.v___16822; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + s.tmp_5 = user_interface_base_ButtonBase_width__P3625_mk(s); + s.tmp_5.arg0 = s.firstWhenTile___16862; + s.callLocIdx = 1706; s.pc = 21; return s.tmp_5; + case 21: + r0 = s.retval; + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1708; s.pc = 20; return s.tmp_0; + case 20: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.v___16822; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1710; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, layoutButtons_inline__P16901); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.v___16822); + s.layoutButtons___16900 = (s.tmp_0); + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.layoutButtons___16900; + s.tmp_0.arg0 = s.whenTiles___16830; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1722; s.pc = 23; return s.tmp_0; + case 23: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.v___16822; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + s.tmp_5 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_5.arg0 = s.lastWhenTile___16865; + s.callLocIdx = 1723; s.pc = 25; return s.tmp_5; + case 25: + r0 = s.retval; + r0 = r0.fields["width"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1725; s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + s.tmp_0 = user_interface_base_Bounds_right__P3342_mk(s); + r0 = s.arg0.fields["whenBounds"]; + s.tmp_0.arg0 = r0; + r0 = s.v___16822.fields["x_"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1727; s.pc = 26; return s.tmp_0; + case 26: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.v___16822; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + s.tmp_5 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["arrow"]; + s.tmp_5.arg0 = r0; + s.callLocIdx = 1728; s.pc = 28; return s.tmp_5; + case 28: + r0 = s.retval; + r0 = r0.fields["width"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1730; s.pc = 27; return s.tmp_0; + case 27: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.v___16822; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1732; s.pc = 29; return s.tmp_0; + case 29: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + r0 = s.arg0.fields["arrow"]; + s.tmp_2 = r0; + r0 = s.tmp_2.fields["xfrm_"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + r0 = s.v___16822.fields["x_"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1736; s.pc = 30; return s.tmp_0; + case 30: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.v___16822; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + s.tmp_4 = user_interface_base_Sprite_bounds__P3451_mk(s); + r0 = s.arg0.fields["arrow"]; + s.tmp_4.arg0 = r0; + s.callLocIdx = 1737; s.pc = 32; return s.tmp_4; + case 32: + r0 = s.retval; + r0 = r0.fields["width"]; + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1739; s.pc = 31; return s.tmp_0; + case 31: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.v___16822; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1741; s.pc = 33; return s.tmp_0; + case 33: + r0 = s.retval; + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.layoutButtons___16900; + s.tmp_0.arg0 = s.doTiles___16839; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1742; s.pc = 34; return s.tmp_0; + case 34: + r0 = s.retval; + r0 = s.arg0.fields["doInsertBtn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_1 = user_interface_base_Affine_localPos__P3327_mk(s); + r0 = s.arg0.fields["doInsertBtn"]; + s.tmp_2 = r0; + r0 = s.tmp_2.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.v___16822; + s.callLocIdx = 1744; s.pc = 35; return s.tmp_1; + case 35: + r0 = s.retval; + case 5: + case 6: + r0 = (s.arg0).fields["bounds"] = (undefined); + r0 = pxsim_pxtcore_mkAction(1, updateSizeFromButtons_inline__P16996); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.updateSizeFromButtons___16995 = (s.tmp_0); + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.updateSizeFromButtons___16995; + s.tmp_0.arg0 = s.whenTiles___16830; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1756; s.pc = 36; return s.tmp_0; + case 36: + r0 = s.retval; + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.updateSizeFromButtons___16995; + s.tmp_0.arg0 = s.doTiles___16839; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1757; s.pc = 37; return s.tmp_0; + case 37: + r0 = s.retval; + r0 = s.arg0.fields["bounds"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_3 = r0; + s.tmp_4 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_4.arg0 = s.tmp_3; + s.tmp_4.arg1 = undefined; + s.callLocIdx = 1758; s.pc = 38; return s.tmp_4; + case 38: + r0 = s.retval; + r0 = (s.arg0).fields["bounds"] = (s.tmp_3); + { step = 8; continue; } + case 7: + s.tmp_0 = user_interface_base_Bounds_grow__P3355_mk(s); + r0 = s.arg0.fields["bounds"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 1; + s.callLocIdx = 1759; s.pc = 39; return s.tmp_0; + case 39: + r0 = s.retval; + case 8: + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["width"]; + s.tmp_0 = r0; + r0 = (s.arg0).fields["innerWidth"] = (s.tmp_0); + r0 = s.arg0.fields["bounds"]; + s.tmp_0 = r0; + s.tmp_2 = Math_max__P2159_mk(s); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["width"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = globals.user_interface_base_Screen_WIDTH___3412; + s.callLocIdx = 1760; s.pc = 40; return s.tmp_2; + case 40: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["width"] = (s.tmp_1); + r0 = s.arg0.fields["whenBounds"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["left"]; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["left"] = (s.tmp_1); + r0 = s.arg0.fields["whenBounds"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["top"]; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["top"] = (s.tmp_1); + r0 = s.arg0.fields["whenBounds"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["height"]; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["height"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_reportAria__P5292.info = {"start":15239,"length":355,"line":488,"column":8,"endLine":498,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"reportAria","argumentNames":["this"]} +microcode_RuleEditor_layout__P4510.info = {"start":14513,"length":2695,"line":398,"column":8,"endLine":479,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"layout","argumentNames":["this"]} -function user_interface_base_PickerNavigator_reportAria__P5292_mk(s) { +function microcode_RuleEditor_layout__P4510_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_reportAria__P5292, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_layout__P4510, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + ruleRep___16819: undefined, + v___16822: undefined, + whenTiles___16830: undefined, + doTiles___16839: undefined, + firstWhenTile___16862: undefined, + lastWhenTile___16865: undefined, + layoutButtons___16900: undefined, + updateSizeFromButtons___16995: undefined, arg0: undefined, } } - -function accessibility_setLiveContent__P3518(s) { +function layoutButtons_inline__P16901(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38563,43 +42147,40 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.data___15789 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_1 = JSON_stringify__P2807_mk(s); + r0 = pxsim_pxtcore_mkAction(2, layoutButtons_inline__P16905); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.caps[0]); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = null; - s.tmp_1.arg2 = 0; - s.callLocIdx = 486; s.pc = 1; return s.tmp_1; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1721; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim.control.createBufferFromUTF8(s.tmp_0); - s.data___15789 = (r0); r0 = undefined; return leave(s, r0) default: oops() } } } -accessibility_setLiveContent__P3518.info = {"start":971,"length":238,"line":40,"column":4,"endLine":44,"endColumn":5,"fileName":"pxt_modules/user-interface-base/accessibility.ts","functionName":"setLiveContent","argumentNames":["msg"]} +layoutButtons_inline__P16901.info = {"start":15270,"length":335,"line":418,"column":34,"endLine":427,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["btns"]} -function accessibility_setLiveContent__P3518_mk(s) { +function layoutButtons_inline__P16901_mk(s) { checkStack(s.depth); return { - parent: s, fn: accessibility_setLiveContent__P3518, depth: s.depth + 1, + parent: s, fn: layoutButtons_inline__P16901, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - data___15789: undefined, arg0: undefined, } } - -function user_interface_base_PickerNavigator_width__P5288(s) { +function layoutButtons_inline__P16905(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38611,31 +42192,97 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - return leaveAccessor(s, r0) + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 1; continue; } + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.caps[1]; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + s.tmp_5 = user_interface_base_ButtonBase_width__P3625_mk(s); + s.tmp_6 = r0 = s.caps[0]; + r0 = (s.arg1 - 1); + s.tmp_7 = r0; + r0 = pxsim_Array__getAt(s.tmp_6, s.tmp_7); + s.tmp_5.arg0 = r0; + s.callLocIdx = 1711; s.pc = 4; return s.tmp_5; + case 4: + r0 = s.retval; + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1713; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.caps[1]; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + s.tmp_5 = user_interface_base_ButtonBase_width__P3625_mk(s); + s.tmp_5.arg0 = s.arg0; + s.callLocIdx = 1714; s.pc = 6; return s.tmp_5; + case 6: + r0 = s.retval; + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1716; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + s.tmp_1 = r0 = s.caps[1]; + s.tmp_0.arg0 = r0; + r0 = s.tmp_1.fields["x_"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_0.arg1 = r0; + s.callLocIdx = 1718; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + case 1: + case 2: + s.tmp_0 = user_interface_base_Affine_localPos__P3327_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.caps[1]; + s.callLocIdx = 1720; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_width__P5288.info = {"start":10679,"length":68,"line":343,"column":8,"endLine":345,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"width","argumentNames":["this"]} -user_interface_base_PickerNavigator_width__P5288.isGetter = true; +layoutButtons_inline__P16905.info = {"start":15321,"length":269,"line":419,"column":29,"endLine":426,"endColumn":17,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["btn","index"]} -function user_interface_base_PickerNavigator_width__P5288_mk(s) { +function layoutButtons_inline__P16905_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_width__P5288, depth: s.depth + 1, + parent: s, fn: layoutButtons_inline__P16905, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_PickerNavigator_length__P5289(s) { +function updateSizeFromButtons_inline__P16996(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38649,33 +42296,35 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["group"]; - r0 = r0.fields["defs"]; + r0 = pxsim_pxtcore_mkAction(1, updateSizeFromButtons_inline__P17000); s.tmp_0 = r0; - r0 = pxsim_Array__length(s.tmp_0); - return leaveAccessor(s, r0) + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1755; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_length__P5289.info = {"start":10756,"length":81,"line":346,"column":8,"endLine":348,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"length","argumentNames":["this"]} -user_interface_base_PickerNavigator_length__P5289.isGetter = true; +updateSizeFromButtons_inline__P16996.info = {"start":16133,"length":470,"line":449,"column":42,"endLine":461,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["btns"]} -function user_interface_base_PickerNavigator_length__P5289_mk(s) { +function updateSizeFromButtons_inline__P16996_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_length__P5289, depth: s.depth + 1, + parent: s, fn: updateSizeFromButtons_inline__P16996, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function control_assert__P2486(s) { +function updateSizeFromButtons_inline__P17000(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38687,92 +42336,89 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); + r0 = s.caps[0].fields["bounds"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_2 = console_log__P2528_mk(s); - s.tmp_2.arg0 = "ASSERTION FAILED"; - s.callLocIdx = 35; s.pc = 5; return s.tmp_2; + if (!r0) { step = 1; continue; } + s.tmp_3 = r0 = s.caps[0]; + s.tmp_5 = user_interface_base_Bounds_translate__P3358_mk(s); + s.tmp_6 = user_interface_base_Bounds_clone__P3350_mk(s); + s.tmp_7 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_7.arg0 = s.arg0; + s.callLocIdx = 1745; s.pc = 5; return s.tmp_7; case 5: r0 = s.retval; - r0 = (s.arg1 != null); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = console_log__P2528_mk(s); - s.tmp_1.arg0 = s.arg1; - s.callLocIdx = 36; s.pc = 6; return s.tmp_1; - case 6: + s.tmp_6.arg0 = r0; + s.callLocIdx = 1746; s.pc = 4; return s.tmp_6; + case 4: + r0 = s.retval; + s.tmp_5.arg0 = r0; + r0 = s.arg0.fields["xfrm_"]; + s.tmp_8 = r0; + r0 = s.tmp_8.fields["localPos_"]; + s.tmp_5.arg1 = r0; + s.callLocIdx = 1749; s.pc = 3; return s.tmp_5; + case 3: r0 = s.retval; + s.tmp_4 = r0; + r0 = (s.tmp_3).fields["bounds"] = (s.tmp_4); + { step = 2; continue; } case 1: + s.tmp_0 = user_interface_base_Bounds_add__P3361_mk(s); + r0 = s.caps[0].fields["bounds"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = user_interface_base_Bounds_Translate__P3357_mk(s); + s.tmp_2 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1750; s.pc = 8; return s.tmp_2; + case 8: + r0 = s.retval; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["xfrm_"]; + s.tmp_3 = r0; + r0 = s.tmp_3.fields["localPos_"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1753; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1754; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; case 2: - r0 = pxsim_pxtrt.panic(98); - case 3: - case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -control_assert__P2486.info = {"start":2635,"length":244,"line":99,"column":4,"endLine":107,"endColumn":5,"fileName":"pxt_modules/core/control.ts","functionName":"assert","argumentNames":["condition","msg"]} +updateSizeFromButtons_inline__P17000.info = {"start":16184,"length":404,"line":450,"column":29,"endLine":460,"endColumn":17,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["btn"]} -function control_assert__P2486_mk(s) { +function updateSizeFromButtons_inline__P17000_mk(s) { checkStack(s.depth); return { - parent: s, fn: control_assert__P2486, depth: s.depth + 1, + parent: s, fn: updateSizeFromButtons_inline__P17000, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function user_interface_base_Picker_xfrm__P3754(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); - r0 = s.arg0.fields["xfrm_"]; - return leaveAccessor(s, r0) - default: oops() -} } } -user_interface_base_Picker_xfrm__P3754.info = {"start":4282,"length":59,"line":128,"column":8,"endLine":130,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"xfrm","argumentNames":["this"]} -user_interface_base_Picker_xfrm__P3754.isGetter = true; - -function user_interface_base_Picker_xfrm__P3754_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: user_interface_base_Picker_xfrm__P3754, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, arg0: undefined, } } - -function user_interface_base_Bounds_grow__P3382(s) { +function user_interface_base_Bounds_grow__P3355(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38788,7 +42434,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); s.tmp_0 = r0 = s.arg0; r0 = s.tmp_0.fields["top"]; s.tmp_2 = r0; @@ -38821,12 +42467,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_grow__P3382.info = {"start":2319,"length":203,"line":81,"column":8,"endLine":87,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"grow","argumentNames":["this","amount"]} +user_interface_base_Bounds_grow__P3355.info = {"start":2319,"length":203,"line":81,"column":8,"endLine":87,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"grow","argumentNames":["this","amount"]} -function user_interface_base_Bounds_grow__P3382_mk(s) { +function user_interface_base_Bounds_grow__P3355_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_grow__P3382, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_grow__P3355, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -38839,8 +42485,7 @@ function user_interface_base_Bounds_grow__P3382_mk(s) { - -function user_interface_base_ButtonBase_width__P3652(s) { +function microcode_PageEditor_ensureFinalEmptyRule__P5965(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38850,38 +42495,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.ruledefn___17097 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 515; s.pc = 1; return s.tmp_0; - case 1: + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_PageEditor_trimRules__P5966_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1558; s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; - r0 = r0.fields["width"]; - return leaveAccessor(s, r0) + r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleDefn__C4196_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_RuleDefn_constructor__P4201_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1559; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + s.ruledefn___17097 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleEditor__C4496_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_RuleEditor_constructor__P4506_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.arg0.fields["editor"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.arg0; + s.tmp_1.arg3 = s.ruledefn___17097; + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1.arg4 = r0; + s.callLocIdx = 1560; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_3 = r0; + r0 = pxsim_Array__push(s.tmp_3, s.tmp_0); + r0 = s.arg0.fields["pagedef"]; + r0 = r0.fields["rules"]; + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.ruledefn___17097); + case 1: + case 2: + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_width__P3652.info = {"start":2607,"length":57,"line":110,"column":4,"endLine":112,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"width","argumentNames":["this"]} -user_interface_base_ButtonBase_width__P3652.isGetter = true; +microcode_PageEditor_ensureFinalEmptyRule__P5965.info = {"start":17381,"length":487,"line":529,"column":8,"endLine":543,"endColumn":9,"fileName":"editor.ts","functionName":"ensureFinalEmptyRule","argumentNames":["this"]} -function user_interface_base_ButtonBase_width__P3652_mk(s) { +function microcode_PageEditor_ensureFinalEmptyRule__P5965_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_width__P3652, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_ensureFinalEmptyRule__P5965, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + ruledefn___17097: undefined, arg0: undefined, } } - -function user_interface_base_Bounds_right__P3368(s) { +function microcode_PageEditor_trimRules__P5966(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38891,41 +42575,105 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.last___17123 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - r0 = s.arg0.fields["left"]; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; - r0 = s.arg0.fields["width"]; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 7; continue; } + case 1: + case 2: + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_4 = r0; + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_7 = r0; + r0 = pxsim_Array__length(s.tmp_7); + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); + s.last___17123 = (r0); + case 3: + s.tmp_1 = microcode_RuleEditor_isEmpty__P4508_mk(s); + s.tmp_1.arg0 = s.last___17123; + s.callLocIdx = 1561; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = s.arg0.fields["ruleEditors"]; s.tmp_2 = r0; - r0 = (s.tmp_1 + s.tmp_2); + r0 = pxsim_Array_.pop(s.tmp_2); + r0 = s.arg0.fields["pagedef"]; + r0 = r0.fields["rules"]; s.tmp_0 = r0; - r0 = (s.tmp_0 - 1); - return leaveAccessor(s, r0) + r0 = pxsim_Array_.pop(s.tmp_0); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + { step = 7; continue; } + case 4: + case 5: + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_4 = r0; + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_7 = r0; + r0 = pxsim_Array__length(s.tmp_7); + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); + s.last___17123 = (r0); + { step = 3; continue; } + case 6: + case 7: + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_right__P3368.info = {"start":234,"length":76,"line":7,"column":8,"endLine":9,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"right","argumentNames":["this"]} -user_interface_base_Bounds_right__P3368.isGetter = true; +microcode_PageEditor_trimRules__P5966.info = {"start":17878,"length":474,"line":545,"column":8,"endLine":558,"endColumn":9,"fileName":"editor.ts","functionName":"trimRules","argumentNames":["this"]} -function user_interface_base_Bounds_right__P3368_mk(s) { +function microcode_PageEditor_trimRules__P5966_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_right__P3368, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_trimRules__P5966, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + last___17123: undefined, arg0: undefined, } } - -function user_interface_base_ButtonBase_xfrm__P3651(s) { +function microcode_RuleEditor_isEmpty__P4508(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38940,27 +42688,31 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - r0 = s.arg0.fields["xfrm_"]; - return leaveAccessor(s, r0) + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + s.tmp_0 = microcode_RuleDefn_isEmpty__P4204_mk(s); + r0 = s.arg0.fields["ruledef"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1691; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_xfrm__P3651.info = {"start":2553,"length":49,"line":107,"column":4,"endLine":109,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"xfrm","argumentNames":["this"]} -user_interface_base_ButtonBase_xfrm__P3651.isGetter = true; +microcode_RuleEditor_isEmpty__P4508.info = {"start":14405,"length":70,"line":392,"column":8,"endLine":394,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"isEmpty","argumentNames":["this"]} -function user_interface_base_ButtonBase_xfrm__P3651_mk(s) { +function microcode_RuleEditor_isEmpty__P4508_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_xfrm__P3651, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_isEmpty__P4508, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, } } - -function user_interface_base_Vec2_x__P3413(s) { +function microcode_RuleEditor_constructor__P4506(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -38973,31 +42725,153 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Vec2__C3411_VT)) failedCast(r0, user_interface_base_Vec2__C3411_VT); - r0 = (s.arg0).fields["x_"] = (s.arg1); + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = (s.arg0).fields["editor"] = (s.arg1); + r0 = (s.arg0).fields["page"] = (s.arg2); + r0 = (s.arg0).fields["ruledef"] = (s.arg3); + r0 = (s.arg0).fields["index"] = (s.arg4); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1601; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); + s.tmp_0 = user_interface_base_Affine_parent__P3329_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg2.fields["xfrm_"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1603; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", "rule_handle"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", "rule"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.Transparent___3614); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P17175); + s.tmp_2 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_2); + s.tmp_3 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_3.arg0 = s.tmp_0; + s.tmp_3.arg1 = s.tmp_1; + s.callLocIdx = 1605; s.pc = 3; return s.tmp_3; + case 3: + r0 = s.retval; + r0 = (s.arg0).fields["handleBtn"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Sprite__C3444_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.arg0); + s.tmp_3 = microcode_icons_get__P4047_mk(s); + s.tmp_3.arg0 = "rule_arrow"; + s.tmp_3.arg1 = false; + s.callLocIdx = 1606; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "img", s.tmp_2); + s.tmp_4 = user_interface_base_Sprite_constructor__P3452_mk(s); + s.tmp_4.arg0 = s.tmp_0; + s.tmp_4.arg1 = s.tmp_1; + s.callLocIdx = 1607; s.pc = 5; return s.tmp_4; + case 5: + r0 = s.retval; + r0 = (s.arg0).fields["arrow"] = (s.tmp_0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "sensors", s.tmp_1); + r0 = pxsim_Array__mk(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "filters", s.tmp_2); + r0 = pxsim_Array__mk(); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "actuators", s.tmp_3); + r0 = pxsim_Array__mk(); + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "modifiers", s.tmp_4); + r0 = (s.arg0).fields["ruleButtons"] = (s.tmp_0); + s.tmp_0 = microcode_RuleEditor_instantiateProgramTiles__P5977_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1608; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_x__P3413.info = {"start":208,"length":51,"line":8,"column":8,"endLine":10,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"x","argumentNames":["this","v"]} +microcode_RuleEditor_constructor__P4506.info = {"start":1248,"length":905,"line":36,"column":8,"endLine":64,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["this","editor","page","ruledef","index"]} -function user_interface_base_Vec2_x__P3413_mk(s) { +function microcode_RuleEditor_constructor__P4506_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_x__P3413, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_constructor__P4506, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, } } +function onClick_inline__P17175(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = microcode_RuleEditor_showRuleHandleMenu__P5978_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1604; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +onClick_inline__P17175.info = {"start":1757,"length":31,"line":51,"column":25,"endLine":51,"endColumn":56,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} + +function onClick_inline__P17175_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: onClick_inline__P17175, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + -function user_interface_base_Vec2_x__P3412(s) { +function microcode_RuleEditor_instantiateProgramTiles__P5977(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39007,32 +42881,85 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.rule___17191 = undefined; + s.changed___17196 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Vec2__C3411_VT)) failedCast(r0, user_interface_base_Vec2__C3411_VT); - r0 = s.arg0.fields["x_"]; - return leaveAccessor(s, r0) + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + s.tmp_0 = microcode_RuleEditor_destroyProgramTiles__P5975_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1627; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + r0 = s.arg0.fields["ruledef"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1628; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.rule___17191 = (r0); + r0 = pxsim_pxtrt.mklocRef(); + s.changed___17196 = (r0); + r0 = pxsim_pxtrt_stlocRef(s.changed___17196, false); + r0 = pxsim_pxtcore_mkAction(3, microcode_RuleEditor_instantiateProgramTiles_inline__P17201); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.changed___17196); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.rule___17191); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = pxsim_pxtrt.keysOf(s.rule___17191); + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1630; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + s.tmp_0 = microcode_RuleEditor_needsWhenInsert__P5972_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1631; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = microcode_RuleEditor_needsDoInsert__P5974_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1632; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + r0 = pxsim_pxtrt_ldlocRef(s.changed___17196); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_PageEditor_changed__P4489_mk(s); + r0 = s.arg0.fields["page"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1633; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + case 1: + case 2: + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_x__P3412.info = {"start":146,"length":53,"line":5,"column":8,"endLine":7,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"x","argumentNames":["this"]} -user_interface_base_Vec2_x__P3412.isGetter = true; +microcode_RuleEditor_instantiateProgramTiles__P5977.info = {"start":5005,"length":412,"line":151,"column":8,"endLine":161,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"instantiateProgramTiles","argumentNames":["this"]} -function user_interface_base_Vec2_x__P3412_mk(s) { +function microcode_RuleEditor_instantiateProgramTiles__P5977_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_x__P3412, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_instantiateProgramTiles__P5977, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + rule___17191: undefined, + changed___17196: undefined, arg0: undefined, } } - -function user_interface_base_Bounds_Translate__P3384(s) { +function microcode_RuleEditor_instantiateProgramTiles_inline__P17201(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39044,70 +42971,47 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = s.arg0.fields["left"]; - s.tmp_3 = r0; - r0 = s.arg1.fields["x_"]; - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.tmp_2); - r0 = s.arg0.fields["top"]; - s.tmp_6 = r0; - r0 = s.arg1.fields["y_"]; - s.tmp_7 = r0; - r0 = (s.tmp_6 + s.tmp_7); - s.tmp_5 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_5); - r0 = s.arg0.fields["width"]; - s.tmp_8 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_8); - r0 = s.arg0.fields["height"]; - s.tmp_9 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_9); - s.tmp_10 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_10.arg0 = s.tmp_0; - s.tmp_10.arg1 = s.tmp_1; - s.callLocIdx = 322; s.pc = 1; return s.tmp_10; - case 1: + s.tmp_1 = microcode_RuleEditor_processSection__P5976_mk(s); + s.tmp_1.arg0 = s.caps[1]; + s.tmp_1.arg1 = s.arg0; + s.tmp_1.arg2 = s.caps[2]; + s.callLocIdx = 1629; s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_pxtrt_stlocRef(s.caps[0], s.tmp_2); + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_Translate__P3384.info = {"start":2737,"length":256,"line":97,"column":8,"endLine":104,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"Translate","argumentNames":["box","p"]} +microcode_RuleEditor_instantiateProgramTiles_inline__P17201.info = {"start":5201,"length":92,"line":155,"column":38,"endLine":157,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["name"]} -function user_interface_base_Bounds_Translate__P3384_mk(s) { +function microcode_RuleEditor_instantiateProgramTiles_inline__P17201_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_Translate__P3384, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_instantiateProgramTiles_inline__P17201, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Bounds_add__P3388(s) { +function microcode_PageEditor_changed__P4489(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39119,113 +43023,79 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = Math_min__P2160_mk(s); - r0 = s.arg0.fields["left"]; - s.tmp_2.arg0 = r0; - r0 = s.arg1.fields["left"]; - s.tmp_2.arg1 = r0; - s.callLocIdx = 325; s.pc = 1; return s.tmp_2; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + s.tmp_0 = microcode_PageEditor_ensureFinalEmptyRule__P5965_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1578; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["left"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = Math_min__P2160_mk(s); - r0 = s.arg0.fields["top"]; - s.tmp_2.arg0 = r0; - r0 = s.arg1.fields["top"]; - s.tmp_2.arg1 = r0; - s.callLocIdx = 326; s.pc = 2; return s.tmp_2; - case 2: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["top"] = (s.tmp_1); - s.tmp_0 = user_interface_base_Bounds_right__P3369_mk(s); + s.tmp_0 = microcode_PageEditor_layout__P4487_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_1 = Math_max__P2159_mk(s); - r0 = s.arg0.fields["left"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["width"]; - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1.arg0 = r0; - r0 = s.arg1.fields["left"]; - s.tmp_6 = r0; - r0 = s.arg1.fields["width"]; - s.tmp_7 = r0; - r0 = (s.tmp_6 + s.tmp_7); - s.tmp_5 = r0; - r0 = (s.tmp_5 - 1); - s.tmp_1.arg1 = r0; - s.callLocIdx = 329; s.pc = 4; return s.tmp_1; - case 4: + s.callLocIdx = 1579; s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 330; s.pc = 3; return s.tmp_0; + s.tmp_0 = microcode_Editor_changed__P4462_mk(s); + r0 = s.arg0.fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1580; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; - s.tmp_0 = user_interface_base_Bounds_bottom__P3371_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_1 = Math_max__P2159_mk(s); - r0 = s.arg0.fields["top"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["height"]; - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1.arg0 = r0; - r0 = s.arg1.fields["top"]; - s.tmp_6 = r0; - r0 = s.arg1.fields["height"]; - s.tmp_7 = r0; - r0 = (s.tmp_6 + s.tmp_7); - s.tmp_5 = r0; - r0 = (s.tmp_5 - 1); - s.tmp_1.arg1 = r0; - s.callLocIdx = 333; s.pc = 6; return s.tmp_1; - case 6: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 334; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - r0 = s.arg0; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_add__P3388.info = {"start":4152,"length":297,"line":149,"column":8,"endLine":155,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"add","argumentNames":["this","other"]} +microcode_PageEditor_changed__P4489.info = {"start":19619,"length":128,"line":595,"column":8,"endLine":599,"endColumn":9,"fileName":"editor.ts","functionName":"changed","argumentNames":["this"]} -function user_interface_base_Bounds_add__P3388_mk(s) { +function microcode_PageEditor_changed__P4489_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_add__P3388, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_changed__P4489, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, arg0: undefined, - arg1: undefined, } } +function microcode_Editor_changed__P4462(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = (s.arg0).fields["_changed"] = (true); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_Editor_changed__P4462.info = {"start":1867,"length":61,"line":50,"column":8,"endLine":52,"endColumn":9,"fileName":"editor.ts","functionName":"changed","argumentNames":["this"]} + +function microcode_Editor_changed__P4462_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_Editor_changed__P4462, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function user_interface_base_Bounds_bottom__P3371(s) { +function microcode_RuleEditor_needsDoInsert__P5974(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39237,43 +43107,124 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["top"]; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = s.arg0.fields["ruledef"]; s.tmp_3 = r0; - r0 = (s.arg1 - s.tmp_3); + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_3, "actuators"); s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); + r0 = pxsim_Array__length(s.tmp_2); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["height"] = (s.tmp_1); + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_5 = microcode_RuleEditor_getSuggestions__P5984_mk(s); + s.tmp_5.arg0 = s.arg0; + s.tmp_5.arg1 = "modifiers"; + r0 = s.arg0.fields["ruledef"]; + s.tmp_7 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_7, "modifiers"); + s.tmp_6 = r0; + r0 = pxsim_Array__length(s.tmp_6); + s.tmp_5.arg2 = r0; + s.callLocIdx = 1613; s.pc = 7; return s.tmp_5; + case 7: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + case 2: + // jmp value (already in r0) + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); + if (!r0) { step = 5; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_9 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_10 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "parent", s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "style", globals.Transparent___3614); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "icon", "do_insertion_point"); + r0 = s.arg0.fields["ruledef"]; + s.tmp_14 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_14, "actuators"); + s.tmp_13 = r0; + r0 = pxsim_Array__length(s.tmp_13); + s.tmp_12 = r0; + r0 = (s.tmp_12 == 0); + s.tmp_11 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_11); + if (!r0) { step = 3; continue; } + r0 = "do"; + { step = 4; continue; } + case 3: + r0 = undefined; + case 4: + // jmp value (already in r0) + s.tmp_15 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "ariaId", s.tmp_15); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "x", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "y", 0); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P17246); + s.tmp_16 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_16, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "onClick", s.tmp_16); + s.tmp_17 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_17.arg0 = s.tmp_9; + s.tmp_17.arg1 = s.tmp_10; + s.callLocIdx = 1615; s.pc = 8; return s.tmp_17; + case 8: + r0 = s.retval; + r0 = (s.arg0).fields["doInsertBtn"] = (s.tmp_9); + { step = 6; continue; } + case 5: + s.tmp_0 = microcode_RuleEditor_destroyDoInsertButton__P5973_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1616; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + case 6: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_bottom__P3371.info = {"start":556,"length":87,"line":17,"column":8,"endLine":19,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"bottom","argumentNames":["this","val"]} +microcode_RuleEditor_needsDoInsert__P5974.info = {"start":3165,"length":833,"line":97,"column":8,"endLine":120,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"needsDoInsert","argumentNames":["this"]} -function user_interface_base_Bounds_bottom__P3371_mk(s) { +function microcode_RuleEditor_needsDoInsert__P5974_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_bottom__P3371, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_needsDoInsert__P5974, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Bounds_bottom__P3370(s) { +function onClick_inline__P17246(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39283,41 +43234,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - r0 = s.arg0.fields["top"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["height"]; - s.tmp_2 = r0; - r0 = (s.tmp_1 + s.tmp_2); - s.tmp_0 = r0; - r0 = (s.tmp_0 - 1); - return leaveAccessor(s, r0) + s.tmp_0 = microcode_RuleEditor_showDoInsertMenu__P5983_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1614; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_bottom__P3370.info = {"start":470,"length":77,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"bottom","argumentNames":["this"]} -user_interface_base_Bounds_bottom__P3370.isGetter = true; +onClick_inline__P17246.info = {"start":3859,"length":29,"line":115,"column":29,"endLine":115,"endColumn":58,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Bounds_bottom__P3370_mk(s) { +function onClick_inline__P17246_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_bottom__P3370, depth: s.depth + 1, + parent: s, fn: onClick_inline__P17246, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - arg0: undefined, } } - -function user_interface_base_Bounds_right__P3369(s) { +function microcode_RuleEditor_destroyDoInsertButton__P5973(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39329,43 +43268,29 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["left"]; - s.tmp_3 = r0; - r0 = (s.arg1 - s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["width"] = (s.tmp_1); + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = (s.arg0).fields["doInsertBtn"] = (undefined); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_right__P3369.info = {"start":319,"length":87,"line":10,"column":8,"endLine":12,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"right","argumentNames":["this","val"]} +microcode_RuleEditor_destroyDoInsertButton__P5973.info = {"start":3071,"length":84,"line":93,"column":8,"endLine":95,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"destroyDoInsertButton","argumentNames":["this"]} -function user_interface_base_Bounds_right__P3369_mk(s) { +function microcode_RuleEditor_destroyDoInsertButton__P5973_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_right__P3369, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_destroyDoInsertButton__P5973, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Affine_localPos__P3353(s) { +function microcode_RuleEditor_showDoInsertMenu__P5983(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39380,27 +43305,57 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Affine__C3351_VT)) failedCast(r0, user_interface_base_Affine__C3351_VT); - r0 = s.arg0.fields["localPos_"]; - return leaveAccessor(s, r0) + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["actuators"]; + s.tmp_1 = r0; + r0 = pxsim_Array__length(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = microcode_RuleEditor_editTile__P5980_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = "modifiers"; + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["modifiers"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2.arg2 = r0; + s.callLocIdx = 1680; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + { step = 2; continue; } + case 1: + s.tmp_0 = microcode_RuleEditor_editTile__P5980_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = "actuators"; + s.tmp_0.arg2 = 0; + s.callLocIdx = 1681; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + case 2: + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Affine_localPos__P3353.info = {"start":705,"length":73,"line":19,"column":8,"endLine":21,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"localPos","argumentNames":["this"]} -user_interface_base_Affine_localPos__P3353.isGetter = true; +microcode_RuleEditor_showDoInsertMenu__P5983.info = {"start":13415,"length":242,"line":363,"column":8,"endLine":369,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"showDoInsertMenu","argumentNames":["this"]} -function user_interface_base_Affine_localPos__P3353_mk(s) { +function microcode_RuleEditor_showDoInsertMenu__P5983_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Affine_localPos__P3353, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_showDoInsertMenu__P5983, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function user_interface_base_Vec2_y__P3415(s) { +function microcode_RuleEditor_editTile__P5980(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39410,34 +43365,293 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.ruleTiles___17270 = undefined; + s.tileUpdated___17277 = undefined; + s.newFieldEditor___17346 = undefined; + s.suggestions___17399 = undefined; + s.btns___17404 = undefined; + s.theOne___17423 = undefined; + s.onDelete___17439 = undefined; + s.selectedButton___17441 = undefined; + s.tile___17448 = undefined; + s.selected___17459 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Vec2__C3411_VT)) failedCast(r0, user_interface_base_Vec2__C3411_VT); - r0 = (s.arg0).fields["y_"] = (s.arg1); + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + s.tmp_0 = microcode_Editor_stopProgram__P4473_mk(s); + r0 = s.arg0.fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1638; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + s.tmp_1 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + r0 = s.arg0.fields["ruledef"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1639; s.pc = 23; return s.tmp_1; + case 23: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg1); + s.ruleTiles___17270 = (r0); + r0 = pxsim_pxtcore_mkAction(4, tileUpdated_inline__P17278); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg2); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.ruleTiles___17270); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 3, s.arg1); + s.tileUpdated___17277 = (s.tmp_0); + r0 = pxsim_pxtcore_mkAction(2, newFieldEditor_inline__P17347); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.tileUpdated___17277); + s.newFieldEditor___17346 = (s.tmp_0); + s.tmp_1 = r0 = s.arg2; + r0 = pxsim_Array__length(s.ruleTiles___17270); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = pxsim_Array__getAt(s.ruleTiles___17270, s.arg2); + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 3; continue; } + s.tmp_4 = lambda_3_mk(s); + s.tmp_4.argL = s.newFieldEditor___17346; + r0 = pxsim_Array__getAt(s.ruleTiles___17270, s.arg2); + s.tmp_4.arg0 = r0; + s.tmp_4.arg1 = true; + setupLambda(s.tmp_4, s.tmp_4.argL); + s.callLocIdx = 1654; s.pc = 24; return s.tmp_4; + case 24: + r0 = s.retval; + { step = 21; continue; } + case 3: + case 4: + s.tmp_0 = microcode_RuleEditor_getSuggestions__P5984_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = s.arg2; + s.callLocIdx = 1655; s.pc = 25; return s.tmp_0; + case 25: + r0 = s.retval; + s.suggestions___17399 = (r0); + s.tmp_0 = helpers_arrayMap__P2135_mk(s); + s.tmp_0.arg0 = s.suggestions___17399; + s.tmp_0.arg1 = btns_inline__P17406; + s.callLocIdx = 1659; s.pc = 26; return s.tmp_0; + case 26: + r0 = s.retval; + s.btns___17404 = (r0); + r0 = pxsim_Array__length(s.suggestions___17399); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 5; continue; } + r0 = s.tmp_0; + { step = 6; continue; } + case 5: + r0 = pxsim_Array__getAt(s.suggestions___17399, 0); + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); + case 6: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 11; continue; } + r0 = (s.arg2 > 0); + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (r0) { step = 7; continue; } + r0 = s.tmp_3; + { step = 8; continue; } + case 7: + s.tmp_4 = r0 = s.ruleTiles___17270; + r0 = (s.arg2 - 1); + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); + case 8: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 9; continue; } + s.tmp_7 = r0 = s.ruleTiles___17270; + r0 = (s.arg2 - 1); + s.tmp_8 = r0; + r0 = pxsim_Array__getAt(s.tmp_7, s.tmp_8); + { step = 10; continue; } + case 9: + r0 = pxsim_Array__getAt(s.suggestions___17399, 0); + case 10: + // jmp value (already in r0) + s.tmp_9 = r0; + s.theOne___17423 = (s.tmp_9); + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.newFieldEditor___17346; + s.tmp_0.arg0 = s.theOne___17423; + s.tmp_0.arg1 = false; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1660; s.pc = 27; return s.tmp_0; + case 27: + r0 = s.retval; + { step = 21; continue; } + case 11: + case 12: + s.onDelete___17439 = (undefined); + s.selectedButton___17441 = (-1); + s.tmp_1 = r0 = s.arg2; + r0 = pxsim_Array__length(s.ruleTiles___17270); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 17; continue; } + r0 = pxsim_Array__getAt(s.ruleTiles___17270, s.arg2); + s.tile___17448 = (r0); + s.tmp_1 = microcode_filterModifierWithDelete__P4421_mk(s); + s.tmp_1.arg0 = s.tile___17448; + s.callLocIdx = 1661; s.pc = 28; return s.tmp_1; + case 28: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_editTile_inline__P17455); + s.tmp_2 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.tileUpdated___17277); + r0 = s.tmp_2; + { step = 14; continue; } + case 13: + r0 = undefined; + case 14: + // jmp value (already in r0) + s.tmp_3 = r0; + s.onDelete___17439 = (s.tmp_3); + r0 = pxsim_pxtcore_mkAction(1, selected_inline__P17462); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.tile___17448); + s.tmp_1 = r0 = s.btns___17404; + s.tmp_3 = helpers_arrayFind__P2140_mk(s); + s.tmp_3.arg0 = s.btns___17404; + s.tmp_3.arg1 = s.tmp_0; + s.callLocIdx = 1666; s.pc = 29; return s.tmp_3; + case 29: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_Array_.indexOf(s.tmp_1, s.tmp_2, undefined); + s.selected___17459 = (r0); + r0 = (s.selected___17459 >= 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + s.selectedButton___17441 = (s.selected___17459); + case 15: + case 16: + case 17: + case 18: + r0 = pxsim_Array__length(s.btns___17404); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 19; continue; } + s.tmp_1 = user_interface_base_Picker_setGroup__P3729_mk(s); + r0 = s.arg0.fields["editor"]; + r0 = r0.fields["picker"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.btns___17404; + s.callLocIdx = 1667; s.pc = 30; return s.tmp_1; + case 30: + r0 = s.retval; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + s.tmp_2 = accessibility_ariaToTooltip__P3492_mk(s); + s.tmp_2.arg0 = s.arg1; + s.callLocIdx = 1668; s.pc = 31; return s.tmp_2; + case 31: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); + r0 = pxsim_pxtcore_mkAction(1, navigator_inline__P17492); + s.tmp_3 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "navigator", s.tmp_3); + r0 = pxsim_pxtcore_mkAction(5, onClick_inline__P17498); + s.tmp_4 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_4, 0, s.suggestions___17399); + r0 = pxsim_pxtrt_stclo(s.tmp_4, 1, s.arg2); + r0 = pxsim_pxtrt_stclo(s.tmp_4, 2, s.ruleTiles___17270); + r0 = pxsim_pxtrt_stclo(s.tmp_4, 3, s.newFieldEditor___17346); + r0 = pxsim_pxtrt_stclo(s.tmp_4, 4, s.tileUpdated___17277); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_4); + r0 = pxsim_pxtcore_mkAction(1, onHide_inline__P17524); + s.tmp_5 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_5, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onHide", s.tmp_5); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onDelete", s.onDelete___17439); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "selected", s.selectedButton___17441); + s.tmp_6 = user_interface_base_Picker_show__P3731_mk(s); + r0 = s.arg0.fields["editor"]; + r0 = r0.fields["picker"]; + s.tmp_6.arg0 = r0; + s.tmp_6.arg1 = s.tmp_0; + s.tmp_6.arg2 = true; + s.callLocIdx = 1673; s.pc = 32; return s.tmp_6; + case 32: + r0 = s.retval; + case 19: + case 20: + case 21: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_y__P3415.info = {"start":331,"length":51,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"y","argumentNames":["this","v"]} +microcode_RuleEditor_editTile__P5980.info = {"start":7191,"length":5487,"line":214,"column":8,"endLine":341,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"editTile","argumentNames":["this","name","index"]} -function user_interface_base_Vec2_y__P3415_mk(s) { +function microcode_RuleEditor_editTile__P5980_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_y__P3415, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_editTile__P5980, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + ruleTiles___17270: undefined, + tileUpdated___17277: undefined, + newFieldEditor___17346: undefined, + suggestions___17399: undefined, + btns___17404: undefined, + theOne___17423: undefined, + onDelete___17439: undefined, + selectedButton___17441: undefined, + tile___17448: undefined, + selected___17459: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function user_interface_base_Vec2_y__P3414(s) { +function tileUpdated_inline__P17278(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39447,32 +43661,165 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.numberAdded___17283 = undefined; + s.deleted___17284 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Vec2__C3411_VT)) failedCast(r0, user_interface_base_Vec2__C3411_VT); - r0 = s.arg0.fields["y_"]; - return leaveAccessor(s, r0) + r0 = s.caps[0].fields["editor"]; + s.tmp_0 = r0; + r0 = (s.tmp_0).fields["programChanged"] = (true); + s.numberAdded___17283 = (0); + s.deleted___17284 = (0); + r0 = pxsim_numops_toBoolDecr(s.arg0); + if (!r0) { step = 3; continue; } + s.tmp_1 = r0 = s.caps[1]; + r0 = pxsim_Array__length(s.caps[2]); + s.tmp_2 = r0; + r0 = (s.tmp_1 >= s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = microcode_RuleDefn_push__P4206_mk(s); + r0 = s.caps[0].fields["ruledef"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.arg0; + s.tmp_3.arg2 = s.caps[3]; + s.tmp_3.arg3 = true; + s.callLocIdx = 1640; s.pc = 15; return s.tmp_3; + case 15: + r0 = s.retval; + s.numberAdded___17283 = (r0); + { step = 2; continue; } + case 1: + s.tmp_0 = microcode_RuleDefn_updateAt__P4208_mk(s); + r0 = s.caps[0].fields["ruledef"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.caps[3]; + s.tmp_0.arg2 = s.caps[1]; + s.tmp_0.arg3 = s.arg0; + s.callLocIdx = 1641; s.pc = 16; return s.tmp_0; + case 16: + r0 = s.retval; + case 2: + { step = 4; continue; } + case 3: + s.tmp_0 = microcode_RuleDefn_deleteAt__P4207_mk(s); + r0 = s.caps[0].fields["ruledef"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.caps[3]; + s.tmp_0.arg2 = s.caps[1]; + s.callLocIdx = 1642; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + s.deleted___17284 = (r0); + case 4: + s.tmp_0 = microcode_Language_ensureValid__P4228_mk(s); + r0 = s.caps[0].fields["ruledef"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1643; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + r0 = s.caps[0].fields["editor"]; + s.tmp_0 = r0; + r0 = (s.tmp_0).fields["programChanged"] = (true); + s.tmp_0 = microcode_Editor_saveAndCompileProgram__P4467_mk(s); + r0 = s.caps[0].fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1644; s.pc = 19; return s.tmp_0; + case 19: + r0 = s.retval; + s.tmp_0 = microcode_RuleEditor_instantiateProgramTiles__P5977_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1645; s.pc = 20; return s.tmp_0; + case 20: + r0 = s.retval; + r0 = (s.numberAdded___17283 == 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 5; continue; } + r0 = s.tmp_0; + { step = 6; continue; } + case 5: + s.tmp_1 = microcode_RuleEditor_nextEmpty__P5979_mk(s); + s.tmp_1.arg0 = s.caps[0]; + s.tmp_1.arg1 = s.caps[3]; + s.tmp_1.arg2 = s.caps[1]; + s.callLocIdx = 1646; s.pc = 21; return s.tmp_1; + case 21: + r0 = s.retval; + case 6: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 7; continue; } + r0 = s.caps[0].fields["editor"]; + s.tmp_3 = r0; + r0 = (s.tmp_3).fields["queuedCursorMove"] = (1); + { step = 14; continue; } + case 7: + r0 = (s.numberAdded___17283 == 2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + r0 = s.caps[0].fields["editor"]; + s.tmp_1 = r0; + r0 = (s.tmp_1).fields["queuedCursorMove"] = (2); + { step = 13; continue; } + case 8: + r0 = (s.deleted___17284 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + r0 = (s.deleted___17284 == 1); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 9; continue; } + r0 = -1; + { step = 10; continue; } + case 9: + r0 = -2; + case 10: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = s.caps[0].fields["editor"]; + s.tmp_3 = r0; + r0 = (s.tmp_3).fields["queuedCursorMove"] = (s.tmp_2); + case 11: + case 12: + case 13: + case 14: + s.tmp_0 = microcode_PageEditor_changed__P4489_mk(s); + r0 = s.caps[0].fields["page"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1647; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_y__P3414.info = {"start":268,"length":54,"line":11,"column":8,"endLine":13,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"y","argumentNames":["this"]} -user_interface_base_Vec2_y__P3414.isGetter = true; +tileUpdated_inline__P17278.info = {"start":7371,"length":1265,"line":217,"column":32,"endLine":245,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["tile"]} -function user_interface_base_Vec2_y__P3414_mk(s) { +function tileUpdated_inline__P17278_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_y__P3414, depth: s.depth + 1, + parent: s, fn: tileUpdated_inline__P17278, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + numberAdded___17283: undefined, + deleted___17284: undefined, arg0: undefined, } } - -function user_interface_base_PickerGroup_buttonHeight__P5273(s) { +function newFieldEditor_inline__P17347(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39482,32 +43829,107 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.newOne___17350 = undefined; + s.fieldEditor___17357 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 1; continue; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerGroup__C5272_VT)) failedCast(r0, user_interface_base_PickerGroup__C5272_VT); - r0 = s.arg0.fields["cell"]; - r0 = r0.fields["height"]; + { step = 2; continue; } + case 1: + s.tmp_0 = microcode_ModifierEditor__C4543_v2_2_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = null; + if (!checkSubtype(s.tmp_0.arg0, microcode_ModifierEditor__C4543_VT)) failedCast(s.tmp_0.arg0, microcode_ModifierEditor__C4543_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getNewInstance; + s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + s.newOne___17350 = (s.tmp_1); + s.tmp_0 = microcode_getFieldEditor__P4542_mk(s); + s.tmp_0.arg0 = s.newOne___17350; + s.callLocIdx = 1648; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.fieldEditor___17357 = (r0); + s.tmp_0 = user_interface_base_Scene_captureBackground__P3671_mk(s); + r0 = s.caps[0].fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1649; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(3, newFieldEditor_inline__P17372); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.caps[1]); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.newOne___17350); + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 3; continue; } + r0 = pxsim_pxtcore_mkAction(2, newFieldEditor_inline__P17379); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.caps[0]); + r0 = pxsim_pxtrt_stclo(s.tmp_1, 1, s.caps[1]); + r0 = s.tmp_1; + { step = 4; continue; } + case 3: + r0 = undefined; + case 4: + // jmp value (already in r0) + s.tmp_2 = r0; + s.tmp_3 = microcode_FieldEditor__C5998_v2_6_mk(s); + s.tmp_3.arg0 = s.fieldEditor___17357; + s.tmp_4 = microcode_ModifierEditor__C4543_v0_1_mk(s); + s.tmp_4.arg0 = s.newOne___17350; + if (!checkSubtype(s.tmp_4.arg0, microcode_ModifierEditor__C4543_VT)) failedCast(s.tmp_4.arg0, microcode_ModifierEditor__C4543_VT); + s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.getField; + s.pc = 9; return s.tmp_4; + case 9: + r0 = s.retval; + s.tmp_3.arg1 = r0; + r0 = s.caps[0].fields["editor"]; + r0 = r0.fields["picker"]; + s.tmp_3.arg2 = r0; + s.tmp_3.arg3 = s.tmp_0; + s.tmp_3.arg4 = s.tmp_2; + s.tmp_3.arg5 = undefined; + if (!checkSubtype(s.tmp_3.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_3.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_3.fn = s.tmp_3.arg0.vtable.methods.editor; + s.pc = 8; return s.tmp_3; + case 8: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_buttonHeight__P5273.info = {"start":1184,"length":69,"line":37,"column":8,"endLine":39,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"buttonHeight","argumentNames":["this"]} +newFieldEditor_inline__P17347.info = {"start":8672,"length":842,"line":246,"column":35,"endLine":266,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["tile","del"]} -function user_interface_base_PickerGroup_buttonHeight__P5273_mk(s) { +function newFieldEditor_inline__P17347_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_buttonHeight__P5273, depth: s.depth + 1, + parent: s, fn: newFieldEditor_inline__P17347, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + newOne___17350: undefined, + fieldEditor___17357: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_PickerGroup_layout__P5276(s) { +function newFieldEditor_inline__P17372(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39517,152 +43939,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerGroup__C5272_VT)) failedCast(r0, user_interface_base_PickerGroup__C5272_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = undefined; - s.callLocIdx = 677; s.pc = 1; return s.tmp_1; + s.tmp_0 = user_interface_base_Scene_releaseBackground__P3672_mk(s); + r0 = s.caps[0].fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1650; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = (s.arg0).fields["cell"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_PickerGroup_layout_inline__P15963); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["defs"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 685; s.pc = 2; return s.tmp_1; + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.caps[1]; + s.tmp_0.arg0 = s.caps[2]; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1651; s.pc = 2; return s.tmp_0; case 2: - r0 = s.retval; - s.tmp_0 = user_interface_base_PickerGroup_layoutDraw__P5278_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = false; - s.callLocIdx = 686; s.pc = 3; return s.tmp_0; - case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_layout__P5276.info = {"start":2218,"length":528,"line":68,"column":8,"endLine":83,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"layout","argumentNames":["this","maxPerRow"]} +newFieldEditor_inline__P17372.info = {"start":9115,"length":129,"line":255,"column":20,"endLine":258,"endColumn":21,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_PickerGroup_layout__P5276_mk(s) { +function newFieldEditor_inline__P17372_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_layout__P5276, depth: s.depth + 1, + parent: s, fn: newFieldEditor_inline__P17372, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, - arg1: undefined, } } - - -function user_interface_base_PickerGroup_layout_inline__P15963(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.btn___15965 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_ButtonBase_constructor__P3650_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = 0; - r0 = s.caps[0].fields["picker"]; - r0 = r0.fields["style"]; - s.tmp_1.arg3 = r0; - r0 = s.caps[0].fields["picker"]; - s.tmp_2 = r0; - r0 = s.tmp_2.fields["xfrm_"]; - s.tmp_1.arg4 = r0; - s.callLocIdx = 679; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - s.btn___15965 = (s.tmp_0); - s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3656_mk(s); - s.tmp_0.arg0 = s.btn___15965; - s.tmp_1 = lambda_3_mk(s); - s.tmp_1.argL = globals.getIcon___3488; - s.tmp_2 = if_icon_1_mk(s); - s.tmp_2.arg0 = s.arg0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "icon"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["icon"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["icon"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 680; s.pc = 4; return s.tmp_2; } - } - case 4: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = false; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 681; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 682; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - s.tmp_0 = user_interface_base_Bounds_add__P3388_mk(s); - r0 = s.caps[0].fields["cell"]; + +function newFieldEditor_inline__P17379(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = user_interface_base_Scene_releaseBackground__P3672_mk(s); + r0 = s.caps[0].fields["editor"]; s.tmp_0.arg0 = r0; - s.tmp_1 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_1.arg0 = s.btn___15965; - s.callLocIdx = 683; s.pc = 6; return s.tmp_1; - case 6: + s.callLocIdx = 1652; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 684; s.pc = 5; return s.tmp_0; - case 5: + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.caps[1]; + s.tmp_0.arg0 = undefined; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1653; s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_layout_inline__P15963.info = {"start":2374,"length":331,"line":71,"column":30,"endLine":81,"endColumn":13,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":["def"]} +newFieldEditor_inline__P17379.info = {"start":9296,"length":150,"line":260,"column":26,"endLine":263,"endColumn":27,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_PickerGroup_layout_inline__P15963_mk(s) { +function newFieldEditor_inline__P17379_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_layout_inline__P15963, depth: s.depth + 1, + parent: s, fn: newFieldEditor_inline__P17379, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - btn___15965: undefined, - arg0: undefined, } } - -function user_interface_base_PickerGroup_layoutDraw__P5278(s) { +function btns_inline__P17406(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39674,53 +44021,63 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerGroup__C5272_VT)) failedCast(r0, user_interface_base_PickerGroup__C5272_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = undefined; - s.callLocIdx = 696; s.pc = 1; return s.tmp_1; + s.tmp_2 = microcode_getIcon__P4195_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1656; s.pc = 1; return s.tmp_2; case 1: r0 = s.retval; - r0 = (s.arg0).fields["bounds"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkAction(2, user_interface_base_PickerGroup_layoutDraw_inline__P15995); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["defs"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 704; s.pc = 2; return s.tmp_1; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", s.tmp_1); + s.tmp_5 = microcode_getTid__P4194_mk(s); + s.tmp_5.arg0 = s.arg0; + s.callLocIdx = 1657; s.pc = 2; return s.tmp_5; case 2: r0 = s.retval; - r0 = undefined; + s.tmp_4 = r0; + r0 = pxsim_numops.toString(s.tmp_4); + s.tmp_7 = r0; + if ((s.tmp_7) && (s.tmp_7).vtable) { + setupResume(s, 3); + pxsim_String__stringConv(s.tmp_7); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_7) + ""; } + case 3: + r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_String__concat("T", s.tmp_6); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ariaId", s.tmp_3); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_layoutDraw__P5278.info = {"start":3189,"length":437,"line":95,"column":8,"endLine":104,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"layoutDraw","argumentNames":["this","draw"]} +btns_inline__P17406.info = {"start":10007,"length":170,"line":277,"column":60,"endLine":282,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["tile"]} -function user_interface_base_PickerGroup_layoutDraw__P5278_mk(s) { +function btns_inline__P17406_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_layoutDraw__P5278, depth: s.depth + 1, + parent: s, fn: btns_inline__P17406, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_PickerGroup_layoutDraw_inline__P15995(s) { +function microcode_RuleEditor_editTile_inline__P17455(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39730,91 +44087,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btn___15998 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_ButtonBase_constructor__P3650_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = 0; - r0 = s.caps[0].fields["picker"]; - r0 = r0.fields["style"]; - s.tmp_1.arg3 = r0; - r0 = s.caps[0].fields["xfrm"]; - s.tmp_1.arg4 = r0; - s.callLocIdx = 697; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.btn___15998 = (s.tmp_0); - s.tmp_0 = user_interface_base_PickerGroup_setButtonCoords__P5277_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = s.btn___15998; - s.callLocIdx = 698; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - s.tmp_0 = user_interface_base_Bounds_add__P3388_mk(s); - r0 = s.caps[0].fields["bounds"]; - s.tmp_0.arg0 = r0; - s.tmp_1 = user_interface_base_Bounds_Translate__P3384_mk(s); - s.tmp_2 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_2.arg0 = s.btn___15998; - s.callLocIdx = 699; s.pc = 7; return s.tmp_2; - case 7: - r0 = s.retval; - s.tmp_1.arg0 = r0; - r0 = s.btn___15998.fields["xfrm_"]; - s.tmp_3 = r0; - r0 = s.tmp_3.fields["localPos_"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 702; s.pc = 6; return s.tmp_1; - case 6: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 703; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(s.caps[1]); - if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_ButtonBase__C3648_v0_1_mk(s); - s.tmp_0.arg0 = s.btn___15998; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_ButtonBase__C3648_VT)) failedCast(s.tmp_0.arg0, user_interface_base_ButtonBase__C3648_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; - s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.caps[0]; + s.tmp_0.arg0 = undefined; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1662; s.pc = 1; return s.tmp_0; case 1: - case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_layoutDraw_inline__P15995.info = {"start":3342,"length":273,"line":98,"column":30,"endLine":103,"endColumn":13,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":["def","idx"]} +microcode_RuleEditor_editTile_inline__P17455.info = {"start":11094,"length":80,"line":303,"column":22,"endLine":305,"endColumn":23,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_PickerGroup_layoutDraw_inline__P15995_mk(s) { +function microcode_RuleEditor_editTile_inline__P17455_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_layoutDraw_inline__P15995, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_editTile_inline__P17455, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - btn___15998: undefined, - arg0: undefined, - arg1: undefined, } } - -function user_interface_base_ButtonBase_draw__P3664(s) { +function selected_inline__P17462(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39828,38 +44125,53 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = user_interface_base_ButtonBase_drawStyle__P5255_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 527; s.pc = 1; return s.tmp_0; + s.tmp_1 = if_icon_1_mk(s); + s.tmp_1.arg0 = s.arg0; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "icon"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["icon"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["icon"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1663; s.pc = 1; return s.tmp_1; } + } case 1: r0 = s.retval; - s.tmp_0 = user_interface_base_ButtonBase_drawIcon__P5254_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 528; s.pc = 2; return s.tmp_0; + s.tmp_0 = r0; + s.tmp_3 = microcode_getIcon__P4195_mk(s); + s.tmp_4 = microcode_getTid__P4194_mk(s); + s.tmp_4.arg0 = s.caps[0]; + s.callLocIdx = 1664; s.pc = 3; return s.tmp_4; + case 3: + r0 = s.retval; + s.tmp_3.arg0 = r0; + s.callLocIdx = 1665; s.pc = 2; return s.tmp_3; case 2: r0 = s.retval; - r0 = undefined; + s.tmp_2 = r0; + r0 = (s.tmp_0 === s.tmp_2); return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_draw__P3664.info = {"start":3731,"length":59,"line":168,"column":4,"endLine":171,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"draw","argumentNames":["this"]} +selected_inline__P17462.info = {"start":11284,"length":37,"line":308,"column":30,"endLine":308,"endColumn":67,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} -function user_interface_base_ButtonBase_draw__P3664_mk(s) { +function selected_inline__P17462_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_draw__P3664, depth: s.depth + 1, + parent: s, fn: selected_inline__P17462, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, } } - -function user_interface_base_ButtonBase_drawIcon__P5254(s) { +function navigator_inline__P17492(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39869,38 +44181,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = user_interface_base_Sprite_draw__P3485_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 529; s.pc = 1; return s.tmp_0; + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_PickerNavigator_constructor__P3777_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.caps[0].fields["editor"]; + r0 = r0.fields["picker"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1669; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - r0 = undefined; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_drawIcon__P5254.info = {"start":3796,"length":49,"line":173,"column":4,"endLine":175,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"drawIcon","argumentNames":["this"]} +navigator_inline__P17492.info = {"start":11680,"length":45,"line":318,"column":31,"endLine":318,"endColumn":76,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_ButtonBase_drawIcon__P5254_mk(s) { +function navigator_inline__P17492_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_drawIcon__P5254, depth: s.depth + 1, + parent: s, fn: navigator_inline__P17492, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, + tmp_1: undefined, } } - -function user_interface_base_Sprite_draw__P3485(s) { +function onClick_inline__P17498(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39910,54 +44219,74 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.theOne___17500 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - r0 = s.arg0.fields["invisible"]; + r0 = pxsim_Array__getAt(s.caps[0], s.arg0); + s.theOne___17500 = (r0); + r0 = s.theOne___17500; + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 3; continue; } + if (!r0) { step = 5; continue; } + r0 = (s.caps[1] > 0); + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (r0) { step = 1; continue; } + r0 = s.tmp_1; + { step = 2; continue; } case 1: + s.tmp_2 = r0 = s.caps[2]; + r0 = (s.caps[1] - 1); + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); case 2: - s.tmp_1 = user_interface_base_Screen_drawTransparentImageXfrm__P3455_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_1.arg1 = r0; - r0 = s.arg0.fields["image"]; + // jmp value (already in r0) s.tmp_4 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 >> 1); - s.tmp_2 = r0; - r0 = (0 - s.tmp_2); - s.tmp_1.arg2 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_7 = r0; - r0 = pxsim.BitmapMethods.height(s.tmp_7); + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 3; continue; } + s.tmp_5 = r0 = s.caps[2]; + r0 = (s.caps[1] - 1); s.tmp_6 = r0; - r0 = (s.tmp_6 >> 1); - s.tmp_5 = r0; - r0 = (0 - s.tmp_5); - s.tmp_1.arg3 = r0; - s.callLocIdx = 484; s.pc = 4; return s.tmp_1; + r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); + { step = 4; continue; } + case 3: + r0 = s.theOne___17500; case 4: + // jmp value (already in r0) + s.tmp_7 = r0; + s.theOne___17500 = (s.tmp_7); + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.caps[3]; + s.tmp_0.arg0 = s.theOne___17500; + s.tmp_0.arg1 = false; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1670; s.pc = 7; return s.tmp_0; + case 7: r0 = s.retval; - case 3: + { step = 6; continue; } + case 5: + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.caps[4]; + s.tmp_0.arg0 = s.theOne___17500; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1671; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + case 6: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Sprite_draw__P3485.info = {"start":1842,"length":287,"line":65,"column":8,"endLine":75,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"draw","argumentNames":["this"]} +onClick_inline__P17498.info = {"start":11756,"length":664,"line":319,"column":29,"endLine":332,"endColumn":21,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["idx"]} -function user_interface_base_Sprite_draw__P3485_mk(s) { +function onClick_inline__P17498_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_draw__P3485, depth: s.depth + 1, + parent: s, fn: onClick_inline__P17498, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -39967,14 +44296,47 @@ function user_interface_base_Sprite_draw__P3485_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, + theOne___17500: undefined, arg0: undefined, } } +function onHide_inline__P17524(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = microcode_Editor_saveAndCompileProgram__P4467_mk(s); + r0 = s.caps[0].fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1672; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +onHide_inline__P17524.info = {"start":12450,"length":89,"line":333,"column":28,"endLine":335,"endColumn":21,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} + +function onHide_inline__P17524_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: onHide_inline__P17524, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + -function user_interface_base_Screen_drawTransparentImageXfrm__P3455(s) { +function user_interface_base_PickerNavigator_constructor__P3777(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -39984,75 +44346,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___16051 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - s.tmp_0 = user_interface_base_Affine_worldPos__P3352_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 381; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.w___16051 = (r0); - s.tmp_1 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 382; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0 = r0; - s.tmp_2 = r0 = s.arg1; - s.tmp_5 = r0 = s.arg2; - r0 = s.w___16051.fields["x_"]; - s.tmp_6 = r0; - r0 = (s.tmp_5 + s.tmp_6); - s.tmp_4 = r0; - r0 = (s.tmp_4 + globals.user_interface_base_Screen_HALF_WIDTH___3441); - s.tmp_3 = r0; - s.tmp_9 = r0 = s.arg3; - r0 = s.w___16051.fields["y_"]; - s.tmp_10 = r0; - r0 = (s.tmp_9 + s.tmp_10); - s.tmp_8 = r0; - r0 = (s.tmp_8 + globals.user_interface_base_Screen_HALF_HEIGHT___3442); - s.tmp_7 = r0; - r0 = pxsim.BitmapMethods.drawTransparentBitmap(s.tmp_0, s.tmp_2, s.tmp_3, s.tmp_7); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = (s.arg0).fields["picker"] = (s.arg1); + r0 = (s.arg0).fields["row"] = (0); + r0 = (s.arg0).fields["col"] = (0); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_drawTransparentImageXfrm__P3455.info = {"start":2270,"length":273,"line":72,"column":4,"endLine":84,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"drawTransparentImageXfrm","argumentNames":["xfrm","from","x","y"]} +user_interface_base_PickerNavigator_constructor__P3777.info = {"start":10570,"length":99,"line":338,"column":8,"endLine":341,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["this","picker"]} -function user_interface_base_Screen_drawTransparentImageXfrm__P3455_mk(s) { +function user_interface_base_PickerNavigator_constructor__P3777_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_drawTransparentImageXfrm__P3455, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_constructor__P3777, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - w___16051: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function user_interface_base_ButtonBase_drawStyle__P5255(s) { +function user_interface_base_Picker_show__P3731(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -40064,172 +44386,288 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - r0 = s.arg0.fields["style"]; - r0 = r0.fields["fill"]; + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); + s.tmp_1 = if_selected_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "selected"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["selected"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["selected"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 704; s.pc = 11; return s.tmp_1; } + } + case 11: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_1 = user_interface_base_Screen_fillBoundsXfrm__P3463_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.tmp_2 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_2.arg0 = r0; - s.callLocIdx = 531; s.pc = 8; return s.tmp_2; - case 8: - r0 = s.retval; - s.tmp_1.arg1 = r0; - r0 = s.arg0.fields["style"]; - r0 = r0.fields["fill"]; - s.tmp_1.arg2 = r0; - s.callLocIdx = 532; s.pc = 7; return s.tmp_1; - case 7: + s.tmp_2 = if_selected_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "selected"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["selected"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["selected"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 705; s.pc = 12; return s.tmp_2; } + } + case 12: r0 = s.retval; + { step = 2; continue; } case 1: + r0 = -1; case 2: - r0 = s.arg0.fields["style"]; - r0 = r0.fields["borders"]; + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = (s.arg0).fields["start"] = (s.tmp_3); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_onClick_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onClick"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onClick"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onClick"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 706; s.pc = 13; return s.tmp_2; } + } + case 13: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["onClick"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_onHide_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onHide"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onHide"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onHide"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 707; s.pc = 14; return s.tmp_2; } + } + case 14: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["onHide"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_onDelete_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onDelete"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onDelete"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onDelete"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 708; s.pc = 15; return s.tmp_2; } + } + case 15: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["onDelete"] = (s.tmp_1); + s.tmp_1 = if_navigator_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "navigator"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["navigator"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["navigator"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 709; s.pc = 16; return s.tmp_1; } + } + case 16: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - s.tmp_1 = user_interface_base_Screen_outlineBoundsXfrm4__P3466_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.tmp_2 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["icon"]; + s.tmp_2 = user_interface_base_PickerNavigator_clear__P3786_mk(s); + r0 = s.arg0.fields["navigator"]; s.tmp_2.arg0 = r0; - s.callLocIdx = 534; s.pc = 10; return s.tmp_2; - case 10: + s.callLocIdx = 710; s.pc = 17; return s.tmp_2; + case 17: r0 = s.retval; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = 1; - r0 = s.arg0.fields["style"]; - r0 = r0.fields["borders"]; - s.tmp_1.arg3 = r0; - s.callLocIdx = 535; s.pc = 9; return s.tmp_1; - case 9: + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_navigator_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "navigator"), 1); + s.callLocIdx = 711; s.pc = 18; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["navigator"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["navigator"], 1); s.callLocIdx = 711; s.pc = 18; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 711; s.pc = 18; return s.tmp_2;; } + else { s.callLocIdx = 711; s.pc = 18; return s.tmp_2; } + } + case 18: r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); + { step = 4; continue; } case 3: - case 4: - r0 = s.arg0.fields["style"]; - r0 = r0.fields["shadow"]; + s.tmp_0 = user_interface_base_PickerNavigator_clear__P3786_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 712; s.pc = 19; return s.tmp_0; + case 19: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_PickerNavigator__C3776_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.tmp_1 = user_interface_base_Screen_setPixelXfrm__P3468_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.tmp_3 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 537; s.pc = 12; return s.tmp_3; - case 12: + s.tmp_1 = user_interface_base_PickerNavigator_constructor__P3777_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.arg0; + s.callLocIdx = 713; s.pc = 20; return s.tmp_1; + case 20: r0 = s.retval; - r0 = r0.fields["left"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1.arg1 = r0; - s.tmp_5 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_5.arg0 = r0; - s.callLocIdx = 538; s.pc = 13; return s.tmp_5; - case 13: + r0 = (s.arg0).fields["navigator"] = (s.tmp_0); + case 4: + r0 = (s.arg0).fields["hideOnClick"] = (s.arg2); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_title_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "title"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["title"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["title"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 714; s.pc = 21; return s.tmp_2; } + } + case 21: r0 = s.retval; - s.tmp_4 = r0; - r0 = s.tmp_4.fields["top"]; - s.tmp_7 = r0; - r0 = s.tmp_4.fields["height"]; - s.tmp_8 = r0; - r0 = (s.tmp_7 + s.tmp_8); - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_1.arg2 = r0; - r0 = s.arg0.fields["style"]; - r0 = r0.fields["borders"]; - r0 = r0.fields["bottom"]; - s.tmp_1.arg3 = r0; - s.callLocIdx = 540; s.pc = 11; return s.tmp_1; - case 11: + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["title"] = (s.tmp_1); + s.tmp_1 = if_style_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "style"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["style"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["style"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 715; s.pc = 22; return s.tmp_1; } + } + case 22: r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_setPixelXfrm__P3468_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - s.tmp_3 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 542; s.pc = 15; return s.tmp_3; - case 15: + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = s.tmp_0; + { step = 6; continue; } + case 5: + r0 = globals.LightShadowedWhite___3610; + case 6: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = (s.arg0).fields["style"] = (s.tmp_2); + s.tmp_1 = if_width_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "width"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["width"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["width"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 716; s.pc = 23; return s.tmp_1; } + } + case 23: r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 7; continue; } + r0 = s.tmp_0; + { step = 8; continue; } + case 7: + r0 = 5; + case 8: + // jmp value (already in r0) s.tmp_2 = r0; - r0 = s.tmp_2.fields["left"]; - s.tmp_5 = r0; - r0 = s.tmp_2.fields["width"]; - s.tmp_6 = r0; - r0 = (s.tmp_5 + s.tmp_6); - s.tmp_4 = r0; - r0 = (s.tmp_4 - 1); + r0 = (s.arg0).fields["width"] = (s.tmp_2); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = user_interface_base_Cursor_saveState__P3709_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_2.arg0 = r0; + s.callLocIdx = 717; s.pc = 24; return s.tmp_2; + case 24: + r0 = s.retval; s.tmp_1 = r0; - r0 = (s.tmp_1 + 1); - s.tmp_0.arg1 = r0; - s.tmp_8 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_8.arg0 = r0; - s.callLocIdx = 544; s.pc = 16; return s.tmp_8; - case 16: + r0 = (s.tmp_0).fields["prevState"] = (s.tmp_1); + r0 = s.arg0.fields["cursor"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["navigator"]; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_Picker_show_inline__P17625); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = s.arg0.fields["cursor"]; + r0 = r0.fields["cancelHandlerStack"]; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); + r0 = s.arg0.fields["onDelete"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "parent", s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "style", globals.RedBorderedWhite___3613); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "delete"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "x", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "y", 0); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P17634); + s.tmp_3 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "onClick", s.tmp_3); + s.tmp_4 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_4.arg0 = s.tmp_1; + s.tmp_4.arg1 = s.tmp_2; + s.callLocIdx = 721; s.pc = 25; return s.tmp_4; + case 25: r0 = s.retval; - s.tmp_7 = r0; - r0 = s.tmp_7.fields["top"]; - s.tmp_10 = r0; - r0 = s.tmp_7.fields["height"]; - s.tmp_11 = r0; - r0 = (s.tmp_10 + s.tmp_11); - s.tmp_9 = r0; - r0 = (s.tmp_9 - 1); - s.tmp_0.arg2 = r0; - r0 = s.arg0.fields["style"]; - r0 = r0.fields["borders"]; - r0 = r0.fields["bottom"]; - s.tmp_0.arg3 = r0; - s.callLocIdx = 546; s.pc = 14; return s.tmp_0; - case 14: + r0 = (s.arg0).fields["deleteBtn"] = (s.tmp_1); + case 9: + case 10: + s.tmp_0 = user_interface_base_Picker_layout__P5271_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = s.arg0.fields["width"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 722; s.pc = 26; return s.tmp_0; + case 26: r0 = s.retval; - case 5: - case 6: + r0 = (s.arg0).fields["visible"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_drawStyle__P5255.info = {"start":3851,"length":712,"line":177,"column":4,"endLine":205,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"drawStyle","argumentNames":["this"]} +user_interface_base_Picker_show__P3731.info = {"start":5072,"length":1711,"line":158,"column":8,"endLine":204,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"show","argumentNames":["this","opts","hideOnClick"]} -function user_interface_base_ButtonBase_drawStyle__P5255_mk(s) { +function user_interface_base_Picker_show__P3731_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_drawStyle__P5255, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_show__P3731, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function user_interface_base_Screen_setPixelXfrm__P3468(s) { +function user_interface_base_Picker_show_inline__P17625(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -40239,63 +44677,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___16129 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.lambdaArgs = null; - } - s.tmp_0 = user_interface_base_Affine_worldPos__P3352_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 455; s.pc = 1; return s.tmp_0; + s.tmp_0 = user_interface_base_Picker_cancelClicked__P5270_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 718; s.pc = 1; return s.tmp_0; case 1: - r0 = s.retval; - s.w___16129 = (r0); - s.tmp_0 = user_interface_base_Screen_setPixel__P3467_mk(s); - s.tmp_1 = r0 = s.arg1; - r0 = s.w___16129.fields["x_"]; - s.tmp_2 = r0; - r0 = (s.tmp_1 + s.tmp_2); - s.tmp_0.arg0 = r0; - s.tmp_3 = r0 = s.arg2; - r0 = s.w___16129.fields["y_"]; - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.arg3; - s.callLocIdx = 458; s.pc = 2; return s.tmp_0; - case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_setPixelXfrm__P3468.info = {"start":8265,"length":184,"line":334,"column":4,"endLine":342,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"setPixelXfrm","argumentNames":["xfrm","x","y","c"]} +user_interface_base_Picker_show_inline__P17625.info = {"start":6250,"length":26,"line":188,"column":48,"endLine":188,"endColumn":74,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Screen_setPixelXfrm__P3468_mk(s) { +function user_interface_base_Picker_show_inline__P17625_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_setPixelXfrm__P3468, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_show_inline__P17625, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - w___16129: undefined, - arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function user_interface_base_Screen_setPixel__P3467(s) { +function onClick_inline__P17634(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -40305,51 +44709,42 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.lambdaArgs = null; - } - r0 = pxsim_numops_toBoolDecr(s.arg2); - if (!r0) { step = 1; continue; } - s.tmp_1 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 452; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0 = r0; - r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_WIDTH___3441); - s.tmp_2 = r0; - r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_HEIGHT___3442); - s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_2, s.tmp_3, s.arg2); + s.tmp_0 = user_interface_base_Picker_hide__P3732_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 719; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_0 = if_onDelete_1_mk(s); + s.tmp_0.arg0 = s.caps[0]; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "onDelete"), 1); + s.callLocIdx = 720; s.pc = 2; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["onDelete"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["onDelete"], 1); s.callLocIdx = 720; s.pc = 2; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 720; s.pc = 2; return s.tmp_0;; } + else { s.callLocIdx = 720; s.pc = 2; return s.tmp_0; } + } case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_setPixel__P3467.info = {"start":8114,"length":145,"line":328,"column":4,"endLine":332,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"setPixel","argumentNames":["x","y","c"]} +onClick_inline__P17634.info = {"start":6566,"length":105,"line":196,"column":29,"endLine":199,"endColumn":21,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Screen_setPixel__P3467_mk(s) { +function onClick_inline__P17634_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_setPixel__P3467, depth: s.depth + 1, + parent: s, fn: onClick_inline__P17634, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function user_interface_base_Screen_outlineBoundsXfrm4__P3466(s) { +function user_interface_base_Picker_layout__P5271(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -40359,491 +44754,281 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___16177 = undefined; - s.left___16180 = undefined; - s.top___16186 = undefined; - s.right___16192 = undefined; - s.bottom___16198 = undefined; + s.top___17651 = undefined; + s.group___17677 = undefined; + s.btn___17770 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - s.tmp_3 = if_top_1_mk(s); - s.tmp_3.arg0 = s.arg3; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "top"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["top"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["top"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 417; s.pc = 28; return s.tmp_3; } - } - case 28: + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = undefined; + s.callLocIdx = 736; s.pc = 15; return s.tmp_1; + case 15: r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (s.arg0).fields["panel"] = (s.tmp_0); + s.top___17651 = (2); + r0 = s.arg0.fields["deleteBtn"]; s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } + if (!r0) { step = 1; continue; } r0 = s.tmp_0; { step = 2; continue; } case 1: - s.tmp_6 = if_left_1_mk(s); - s.tmp_6.arg0 = s.arg3; - if (!s.tmp_6.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "left"); - } else { - s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["left"]; - if (s.tmp_6.fn == null) { s.retval = s.tmp_6.arg0.fields["left"]; } - else if (!s.tmp_6.fn.isGetter) { s.retval = bind(s.tmp_6); } - else { s.callLocIdx = 418; s.pc = 29; return s.tmp_6; } - } - case 29: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - s.tmp_4 = r0; - r0 = pxsim_Boolean__bang(s.tmp_4); + r0 = s.arg0.fields["title"]; case 2: // jmp value (already in r0) - s.tmp_7 = r0; - r0 = pxsim_numops_toBool(s.tmp_7); - if (r0) { step = 3; continue; } - r0 = s.tmp_7; + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 5; continue; } + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + s.tmp_3 = user_interface_base_ButtonBase_height__P3626_mk(s); + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 737; s.pc = 16; return s.tmp_3; + case 16: + r0 = s.retval; { step = 4; continue; } case 3: - s.tmp_10 = if_right_1_mk(s); - s.tmp_10.arg0 = s.arg3; - if (!s.tmp_10.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_10.arg0, "right"); - } else { - s.tmp_10.fn = s.tmp_10.arg0.vtable.iface["right"]; - if (s.tmp_10.fn == null) { s.retval = s.tmp_10.arg0.fields["right"]; } - else if (!s.tmp_10.fn.isGetter) { s.retval = bind(s.tmp_10); } - else { s.callLocIdx = 419; s.pc = 30; return s.tmp_10; } - } - case 30: - r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_9); - s.tmp_8 = r0; - r0 = pxsim_Boolean__bang(s.tmp_8); + r0 = 16; case 4: // jmp value (already in r0) - s.tmp_11 = r0; - r0 = pxsim_numops_toBool(s.tmp_11); - if (r0) { step = 5; continue; } - r0 = s.tmp_11; - { step = 6; continue; } + s.tmp_4 = r0; + r0 = (s.top___17651 + s.tmp_4); + s.top___17651 = (r0); case 5: - s.tmp_14 = if_bottom_1_mk(s); - s.tmp_14.arg0 = s.arg3; - if (!s.tmp_14.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_14.arg0, "bottom"); - } else { - s.tmp_14.fn = s.tmp_14.arg0.vtable.iface["bottom"]; - if (s.tmp_14.fn == null) { s.retval = s.tmp_14.arg0.fields["bottom"]; } - else if (!s.tmp_14.fn.isGetter) { s.retval = bind(s.tmp_14); } - else { s.callLocIdx = 420; s.pc = 31; return s.tmp_14; } - } - case 31: - r0 = s.retval; - s.tmp_13 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_13); - s.tmp_12 = r0; - r0 = pxsim_Boolean__bang(s.tmp_12); case 6: - // jmp value (already in r0) - s.tmp_15 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_15); + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 7; continue; } - { step = 27; continue; } + s.tmp_1 = user_interface_base_PickerNavigator_addDelete__P3788_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 738; s.pc = 17; return s.tmp_1; + case 17: + r0 = s.retval; case 7: case 8: - s.tmp_16 = user_interface_base_Affine_worldPos__P3352_mk(s); - s.tmp_16.arg0 = s.arg0; - s.callLocIdx = 421; s.pc = 32; return s.tmp_16; - case 32: - r0 = s.retval; - s.w___16177 = (r0); - r0 = s.arg1.fields["left"]; - s.tmp_0 = r0; - r0 = s.w___16177.fields["x_"]; - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.left___16180 = (r0); - r0 = s.arg1.fields["top"]; + r0 = s.arg0.fields["group"]; s.tmp_0 = r0; - r0 = s.w___16177.fields["y_"]; - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.top___16186 = (r0); - r0 = s.arg1.fields["left"]; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = s.arg0.fields["group"]; + s.group___17677 = (r0); + s.tmp_0 = user_interface_base_PickerGroup_layout__P5265_mk(s); + s.tmp_0.arg0 = s.group___17677; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 739; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + s.tmp_0 = r0 = s.top___17651; + r0 = s.group___17677.fields["cell"]; + r0 = r0.fields["height"]; s.tmp_2 = r0; - r0 = s.arg1.fields["width"]; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); + r0 = (s.tmp_2 >> 1); s.tmp_1 = r0; - r0 = (s.tmp_1 - 1); - s.tmp_0 = r0; - r0 = s.w___16177.fields["x_"]; - s.tmp_4 = r0; - r0 = (s.tmp_0 + s.tmp_4); - s.right___16192 = (r0); - r0 = s.arg1.fields["top"]; - s.tmp_2 = r0; - r0 = s.arg1.fields["height"]; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); + r0 = (s.tmp_0 + s.tmp_1); + s.top___17651 = (r0); + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + r0 = s.group___17677.fields["xfrm"]; s.tmp_1 = r0; - r0 = (s.tmp_1 - 1); - s.tmp_0 = r0; - r0 = s.w___16177.fields["y_"]; - s.tmp_4 = r0; - r0 = (s.tmp_0 + s.tmp_4); - s.bottom___16198 = (r0); - s.tmp_1 = if_left_1_mk(s); - s.tmp_1.arg0 = s.arg3; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "left"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["left"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["left"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 428; s.pc = 33; return s.tmp_1; } - } - case 33: + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.top___17651; + s.callLocIdx = 742; s.pc = 19; return s.tmp_0; + case 19: r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - s.tmp_2 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.left___16180 - s.arg2); + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = 0; + s.tmp_1.arg2 = s.top___17651; + s.callLocIdx = 743; s.pc = 20; return s.tmp_1; + case 20: + r0 = s.retval; + s.tmp_2 = user_interface_base_Bounds_add__P3361_mk(s); + r0 = s.arg0.fields["panel"]; s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.top___16186; - r0 = (s.left___16180 - s.arg2); - s.tmp_2.arg2 = r0; - s.tmp_2.arg3 = s.bottom___16198; - s.tmp_3 = if_left_1_mk(s); - s.tmp_3.arg0 = s.arg3; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "left"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["left"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["left"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 429; s.pc = 35; return s.tmp_3; } - } - case 35: + s.tmp_3 = user_interface_base_Bounds_Translate__P3357_mk(s); + r0 = s.group___17677.fields["bounds"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.tmp_0; + s.callLocIdx = 744; s.pc = 22; return s.tmp_3; + case 22: r0 = s.retval; - s.tmp_2.arg4 = r0; - s.callLocIdx = 430; s.pc = 34; return s.tmp_2; - case 34: + s.tmp_2.arg1 = r0; + s.callLocIdx = 745; s.pc = 21; return s.tmp_2; + case 21: r0 = s.retval; + r0 = s.group___17677.fields["bounds"]; + r0 = r0.fields["height"]; + s.tmp_0 = r0; + r0 = (s.top___17651 + s.tmp_0); + s.top___17651 = (r0); case 9: case 10: - s.tmp_1 = if_right_1_mk(s); - s.tmp_1.arg0 = s.arg3; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "right"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["right"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["right"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 431; s.pc = 36; return s.tmp_1; } - } - case 36: - r0 = s.retval; + r0 = s.arg0.fields["deleteBtn"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 11; continue; } - s.tmp_2 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.right___16192 + s.arg2); - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.top___16186; - r0 = (s.right___16192 + s.arg2); - s.tmp_2.arg2 = r0; - s.tmp_2.arg3 = s.bottom___16198; - s.tmp_3 = if_right_1_mk(s); - s.tmp_3.arg0 = s.arg3; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "right"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["right"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["right"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 432; s.pc = 38; return s.tmp_3; } - } - case 38: - r0 = s.retval; - s.tmp_2.arg4 = r0; - s.callLocIdx = 433; s.pc = 37; return s.tmp_2; - case 37: - r0 = s.retval; - case 11: - case 12: - s.tmp_1 = if_top_1_mk(s); - s.tmp_1.arg0 = s.arg3; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "top"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["top"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["top"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 434; s.pc = 39; return s.tmp_1; } - } - case 39: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - s.tmp_2 = user_interface_base_Screen_drawLine__P3456_mk(s); - s.tmp_2.arg0 = s.left___16180; - r0 = (s.top___16186 - s.arg2); - s.tmp_2.arg1 = r0; - s.tmp_2.arg2 = s.right___16192; - r0 = (s.top___16186 - s.arg2); - s.tmp_2.arg3 = r0; - s.tmp_3 = if_top_1_mk(s); - s.tmp_3.arg0 = s.arg3; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "top"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["top"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["top"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 435; s.pc = 41; return s.tmp_3; } - } - case 41: - r0 = s.retval; - s.tmp_2.arg4 = r0; - s.callLocIdx = 436; s.pc = 40; return s.tmp_2; - case 40: - r0 = s.retval; - case 13: - case 14: - s.tmp_1 = if_bottom_1_mk(s); - s.tmp_1.arg0 = s.arg3; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "bottom"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["bottom"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["bottom"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 437; s.pc = 42; return s.tmp_1; } - } - case 42: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - s.tmp_2 = user_interface_base_Screen_drawLine__P3456_mk(s); - s.tmp_2.arg0 = s.left___16180; - r0 = (s.bottom___16198 + s.arg2); - s.tmp_2.arg1 = r0; - s.tmp_2.arg2 = s.right___16192; - r0 = (s.bottom___16198 + s.arg2); - s.tmp_2.arg3 = r0; - s.tmp_3 = if_bottom_1_mk(s); - s.tmp_3.arg0 = s.arg3; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "bottom"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["bottom"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["bottom"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 438; s.pc = 44; return s.tmp_3; } - } - case 44: - r0 = s.retval; - s.tmp_2.arg4 = r0; - s.callLocIdx = 439; s.pc = 43; return s.tmp_2; - case 43: + s.tmp_1 = user_interface_base_Vec2_x__P3386_mk(s); + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_3 = r0; + r0 = s.tmp_3.fields["xfrm_"]; + s.tmp_2 = r0; + r0 = s.tmp_2.fields["localPos_"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["panel"]; + s.tmp_6 = r0; + r0 = s.tmp_6.fields["left"]; + s.tmp_8 = r0; + r0 = s.tmp_6.fields["width"]; + s.tmp_9 = r0; + r0 = (s.tmp_8 + s.tmp_9); + s.tmp_7 = r0; + r0 = (s.tmp_7 - 1); + s.tmp_5 = r0; + s.tmp_12 = user_interface_base_ButtonBase_width__P3625_mk(s); + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_12.arg0 = r0; + s.callLocIdx = 749; s.pc = 24; return s.tmp_12; + case 24: r0 = s.retval; - case 15: - case 16: - r0 = (s.arg2 > 1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 25; continue; } - s.tmp_2 = if_left_1_mk(s); - s.tmp_2.arg0 = s.arg3; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "left"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["left"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["left"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 440; s.pc = 45; return s.tmp_2; } - } - case 45: + s.tmp_11 = r0; + r0 = (s.tmp_11 >> 1); + s.tmp_10 = r0; + r0 = (s.tmp_5 - s.tmp_10); + s.tmp_4 = r0; + r0 = (s.tmp_4 + 1); + s.tmp_1.arg1 = r0; + s.callLocIdx = 750; s.pc = 23; return s.tmp_1; + case 23: r0 = s.retval; + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_2 = r0; + r0 = s.tmp_2.fields["xfrm_"]; s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 17; continue; } - s.tmp_3 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.left___16180 - s.arg2); - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.top___16186; - s.tmp_3.arg2 = s.left___16180; - r0 = (s.top___16186 - s.arg2); - s.tmp_3.arg3 = r0; - s.tmp_4 = if_left_1_mk(s); - s.tmp_4.arg0 = s.arg3; - if (!s.tmp_4.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "left"); - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["left"]; - if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["left"]; } - else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 441; s.pc = 47; return s.tmp_4; } - } - case 47: - r0 = s.retval; - s.tmp_3.arg4 = r0; - s.callLocIdx = 442; s.pc = 46; return s.tmp_3; - case 46: + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["panel"]; + r0 = r0.fields["top"]; + s.tmp_3 = r0; + s.tmp_6 = user_interface_base_ButtonBase_height__P3626_mk(s); + r0 = s.arg0.fields["deleteBtn"]; + s.tmp_6.arg0 = r0; + s.callLocIdx = 753; s.pc = 26; return s.tmp_6; + case 26: r0 = s.retval; - case 17: - case 18: - s.tmp_1 = if_right_1_mk(s); - s.tmp_1.arg0 = s.arg3; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "right"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["right"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["right"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 443; s.pc = 48; return s.tmp_1; } - } - case 48: + s.tmp_5 = r0; + r0 = (s.tmp_5 >> 1); + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_0.arg1 = r0; + s.callLocIdx = 754; s.pc = 25; return s.tmp_0; + case 25: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 19; continue; } - s.tmp_2 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.right___16192 + s.arg2); - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.top___16186; - s.tmp_2.arg2 = s.right___16192; - r0 = (s.top___16186 - s.arg2); - s.tmp_2.arg3 = r0; - s.tmp_3 = if_right_1_mk(s); - s.tmp_3.arg0 = s.arg3; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "right"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["right"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["right"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 444; s.pc = 50; return s.tmp_3; } - } - case 50: + case 11: + case 12: + s.tmp_0 = user_interface_base_Bounds_grow__P3355_mk(s); + r0 = s.arg0.fields["panel"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 2; + s.callLocIdx = 755; s.pc = 27; return s.tmp_0; + case 27: r0 = s.retval; - s.tmp_2.arg4 = r0; - s.callLocIdx = 445; s.pc = 49; return s.tmp_2; - case 49: + s.tmp_0 = user_interface_base_Vec2_x__P3386_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["panel"]; + r0 = r0.fields["width"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 >> 1); + s.tmp_2 = r0; + r0 = (2 - s.tmp_2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 758; s.pc = 28; return s.tmp_0; + case 28: r0 = s.retval; - case 19: - case 20: - s.tmp_1 = if_left_1_mk(s); - s.tmp_1.arg0 = s.arg3; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "left"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["left"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["left"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 446; s.pc = 51; return s.tmp_1; } - } - case 51: + s.tmp_0 = user_interface_base_Vec2_y__P3388_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_1 = r0; + r0 = s.tmp_1.fields["localPos_"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["panel"]; + r0 = r0.fields["height"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 >> 1); + s.tmp_2 = r0; + r0 = (2 - s.tmp_2); + s.tmp_0.arg1 = r0; + s.callLocIdx = 761; s.pc = 29; return s.tmp_0; + case 29: r0 = s.retval; + r0 = s.arg0.fields["start"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 < 0); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 21; continue; } - s.tmp_2 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.left___16180 - s.arg2); - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.bottom___16198; - s.tmp_2.arg2 = s.left___16180; - r0 = (s.bottom___16198 + s.arg2); - s.tmp_2.arg3 = r0; - s.tmp_3 = if_left_1_mk(s); - s.tmp_3.arg0 = s.arg3; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "left"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["left"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["left"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 447; s.pc = 53; return s.tmp_3; } - } - case 53: - r0 = s.retval; - s.tmp_2.arg4 = r0; - s.callLocIdx = 448; s.pc = 52; return s.tmp_2; - case 52: + if (!r0) { step = 13; continue; } + r0 = (s.arg0).fields["start"] = (0); + case 13: + case 14: + s.tmp_0 = user_interface_base_PickerNavigator_moveToIndex__P3784_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["start"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 762; s.pc = 30; return s.tmp_0; + case 30: r0 = s.retval; - case 21: - case 22: - s.tmp_1 = if_right_1_mk(s); - s.tmp_1.arg0 = s.arg3; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "right"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["right"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["right"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 449; s.pc = 54; return s.tmp_1; } - } - case 54: + s.btn___17770 = (r0); + s.tmp_0 = user_interface_base_Cursor_moveTo__P3704_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.btn___17770.fields["xfrm_"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 764; s.pc = 32; return s.tmp_1; + case 32: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 23; continue; } - s.tmp_2 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.right___16192 + s.arg2); - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.bottom___16198; - s.tmp_2.arg2 = s.right___16192; - r0 = (s.bottom___16198 + s.arg2); - s.tmp_2.arg3 = r0; - s.tmp_3 = if_right_1_mk(s); - s.tmp_3.arg0 = s.arg3; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "right"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["right"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["right"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 450; s.pc = 56; return s.tmp_3; } - } - case 56: + s.tmp_0.arg1 = r0; + r0 = s.btn___17770.fields["_ariaId"]; + s.tmp_0.arg2 = r0; + s.tmp_2 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_2.arg0 = s.btn___17770; + s.callLocIdx = 766; s.pc = 33; return s.tmp_2; + case 33: r0 = s.retval; - s.tmp_2.arg4 = r0; - s.callLocIdx = 451; s.pc = 55; return s.tmp_2; - case 55: + s.tmp_0.arg3 = r0; + s.callLocIdx = 767; s.pc = 31; return s.tmp_0; + case 31: r0 = s.retval; - case 23: - case 24: - case 25: - case 26: - case 27: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_outlineBoundsXfrm4__P3466.info = {"start":6136,"length":1972,"line":240,"column":4,"endLine":326,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"outlineBoundsXfrm4","argumentNames":["xfrm","bounds","dist","colors"]} +user_interface_base_Picker_layout__P5271.info = {"start":7695,"length":1369,"line":235,"column":8,"endLine":268,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"layout","argumentNames":["this","maxPerRow"]} -function user_interface_base_Screen_outlineBoundsXfrm4__P3466_mk(s) { +function user_interface_base_Picker_layout__P5271_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_outlineBoundsXfrm4__P3466, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_layout__P5271, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -40858,26 +45043,100 @@ function user_interface_base_Screen_outlineBoundsXfrm4__P3466_mk(s) { tmp_10: undefined, tmp_11: undefined, tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - w___16177: undefined, - left___16180: undefined, - top___16186: undefined, - right___16192: undefined, - bottom___16198: undefined, + top___17651: undefined, + group___17677: undefined, + btn___17770: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, } } +function user_interface_base_PickerNavigator_moveToIndex__P3784(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0 = control_assert__P2486_mk(s); + s.tmp_1 = r0 = s.arg1; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["group"]; + r0 = r0.fields["defs"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = "index out of bounds"; + s.callLocIdx = 780; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = r0 = s.arg1; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_3 = r0; + r0 = pxsim.Math_.idiv(s.tmp_2, s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["row"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = r0 = s.arg1; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_3 = r0; + r0 = (s.tmp_2 % s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["col"] = (s.tmp_1); + s.tmp_0 = user_interface_base_PickerNavigator__C3776_v0_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; + s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + s.tmp_0 = user_interface_base_PickerGroup_getButtonAtIndex__P5263_mk(s); + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["group"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 783; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + return leave(s, r0) + default: oops() +} } } +user_interface_base_PickerNavigator_moveToIndex__P3784.info = {"start":11185,"length":294,"line":367,"column":8,"endLine":373,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"moveToIndex","argumentNames":["this","index"]} + +function user_interface_base_PickerNavigator_moveToIndex__P3784_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_PickerNavigator_moveToIndex__P3784, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, + arg1: undefined, +} } + + + -function user_interface_base_Screen_drawLine__P3456(s) { +function user_interface_base_PickerGroup_getButtonAtIndex__P5263(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -40887,57 +45146,152 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.def___17812 = undefined; + s.btn___17817 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - s.tmp_0 = helpers_imageDrawLine__P3138_mk(s); - s.tmp_1 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 387; s.pc = 2; return s.tmp_1; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerGroup__C5261_VT)) failedCast(r0, user_interface_base_PickerGroup__C5261_VT); + r0 = s.arg0.fields["defs"]; + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.arg1); + s.def___17812 = (r0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["picker"]; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.tmp_2); + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["style"]; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", s.tmp_3); + s.tmp_5 = if_icon_1_mk(s); + s.tmp_5.arg0 = s.def___17812; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "icon"); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["icon"]; + if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["icon"]; } + else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } + else { s.callLocIdx = 662; s.pc = 1; return s.tmp_5; } + } + case 1: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_4); + s.tmp_7 = if_ariaId_1_mk(s); + s.tmp_7.arg0 = s.def___17812; + if (!s.tmp_7.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "ariaId"); + } else { + s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["ariaId"]; + if (s.tmp_7.fn == null) { s.retval = s.tmp_7.arg0.fields["ariaId"]; } + else if (!s.tmp_7.fn.isGetter) { s.retval = bind(s.tmp_7); } + else { s.callLocIdx = 663; s.pc = 2; return s.tmp_7; } + } case 2: r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", s.tmp_6); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 0); + r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P17830); + s.tmp_8 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_8, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_8, 1, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_8); + s.tmp_9 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_9.arg0 = s.tmp_0; + s.tmp_9.arg1 = s.tmp_1; + s.callLocIdx = 665; s.pc = 3; return s.tmp_9; + case 3: + r0 = s.retval; + s.btn___17817 = (s.tmp_0); + s.tmp_0 = user_interface_base_Affine_parent__P3329_mk(s); + r0 = s.btn___17817.fields["xfrm_"]; s.tmp_0.arg0 = r0; - r0 = (s.arg0 + globals.user_interface_base_Screen_HALF_WIDTH___3441); + r0 = s.arg0.fields["xfrm"]; s.tmp_0.arg1 = r0; - r0 = (s.arg1 + globals.user_interface_base_Screen_HALF_HEIGHT___3442); - s.tmp_0.arg2 = r0; - r0 = (s.arg2 + globals.user_interface_base_Screen_HALF_WIDTH___3441); - s.tmp_0.arg3 = r0; - r0 = (s.arg3 + globals.user_interface_base_Screen_HALF_HEIGHT___3442); - s.tmp_0.arg4 = r0; - s.tmp_0.arg5 = s.arg4; - s.callLocIdx = 392; s.pc = 1; return s.tmp_0; - case 1: + s.callLocIdx = 667; s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; - r0 = undefined; + s.tmp_0 = user_interface_base_PickerGroup_setButtonCoords__P5266_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = s.btn___17817; + s.callLocIdx = 668; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = s.btn___17817; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_drawLine__P3456.info = {"start":2549,"length":260,"line":86,"column":4,"endLine":100,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"drawLine","argumentNames":["x0","y0","x1","y1","c"]} +user_interface_base_PickerGroup_getButtonAtIndex__P5263.info = {"start":1263,"length":549,"line":41,"column":8,"endLine":57,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"getButtonAtIndex","argumentNames":["this","idx"]} -function user_interface_base_Screen_drawLine__P3456_mk(s) { +function user_interface_base_PickerGroup_getButtonAtIndex__P5263_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_drawLine__P3456, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerGroup_getButtonAtIndex__P5263, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + def___17812: undefined, + btn___17817: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } +function onClick_inline__P17830(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = user_interface_base_Picker_onButtonClicked__P3730_mk(s); + r0 = s.caps[0].fields["picker"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.caps[1]; + s.callLocIdx = 664; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +onClick_inline__P17830.info = {"start":1602,"length":78,"line":50,"column":25,"endLine":52,"endColumn":17,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":[]} + +function onClick_inline__P17830_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: onClick_inline__P17830, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + -function user_interface_base_Screen_fillBoundsXfrm__P3463(s) { +function user_interface_base_Picker_onButtonClicked__P3730(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -40947,48 +45301,171 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.onClick___17846 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tmp_0 = user_interface_base_Screen_fillRectXfrm__P3462_mk(s); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); + r0 = s.arg0.fields["onClick"]; + s.onClick___17846 = (r0); + r0 = s.arg0.fields["hideOnClick"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["cursor"]; + r0 = r0.fields["cancelHandlerStack"]; + s.tmp_1 = r0; + r0 = pxsim_Array_.pop(s.tmp_1); + s.tmp_0 = user_interface_base_Picker_hide__P3732_mk(s); s.tmp_0.arg0 = s.arg0; - r0 = s.arg1.fields["left"]; - s.tmp_0.arg1 = r0; - r0 = s.arg1.fields["top"]; - s.tmp_0.arg2 = r0; - r0 = s.arg1.fields["width"]; - s.tmp_0.arg3 = r0; - r0 = s.arg1.fields["height"]; - s.tmp_0.arg4 = r0; - s.tmp_0.arg5 = s.arg2; - s.callLocIdx = 401; s.pc = 1; return s.tmp_0; + s.callLocIdx = 701; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; case 1: + case 2: + r0 = pxsim_numops_toBoolDecr(s.onClick___17846); + if (!r0) { step = 3; continue; } + s.tmp_0 = lambda_2_mk(s); + s.tmp_0.argL = s.onClick___17846; + s.tmp_0.arg0 = s.arg1; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 702; s.pc = 6; return s.tmp_0; + case 6: r0 = s.retval; + case 3: + case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_fillBoundsXfrm__P3463.info = {"start":4503,"length":222,"line":180,"column":4,"endLine":189,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"fillBoundsXfrm","argumentNames":["xfrm","bounds","c"]} +user_interface_base_Picker_onButtonClicked__P3730.info = {"start":4651,"length":293,"line":142,"column":8,"endLine":151,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"onButtonClicked","argumentNames":["this","index"]} -function user_interface_base_Screen_fillBoundsXfrm__P3463_mk(s) { +function user_interface_base_Picker_onButtonClicked__P3730_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_fillBoundsXfrm__P3463, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_onButtonClicked__P3730, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + onClick___17846: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } +function user_interface_base_PickerNavigator_reportAria__P5281(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_PickerNavigator_reportAria__P5281.info = {"start":15239,"length":382,"line":488,"column":8,"endLine":498,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"reportAria","argumentNames":["this"]} + +function user_interface_base_PickerNavigator_reportAria__P5281_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_PickerNavigator_reportAria__P5281, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function user_interface_base_PickerNavigator_width__P5277(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_PickerNavigator_width__P5277.info = {"start":10679,"length":68,"line":343,"column":8,"endLine":345,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"width","argumentNames":["this"]} +user_interface_base_PickerNavigator_width__P5277.isGetter = true; + +function user_interface_base_PickerNavigator_width__P5277_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_PickerNavigator_width__P5277, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function user_interface_base_PickerNavigator_length__P5278(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["group"]; + r0 = r0.fields["defs"]; + s.tmp_0 = r0; + r0 = pxsim_Array__length(s.tmp_0); + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_PickerNavigator_length__P5278.info = {"start":10756,"length":81,"line":346,"column":8,"endLine":348,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"length","argumentNames":["this"]} +user_interface_base_PickerNavigator_length__P5278.isGetter = true; + +function user_interface_base_PickerNavigator_length__P5278_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_PickerNavigator_length__P5278, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + -function user_interface_base_Screen_fillRectXfrm__P3462(s) { +function control_assert__P2486(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -40998,69 +45475,92 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___16346 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); - s.arg5 = (s.lambdaArgs[5]); s.lambdaArgs = null; } - s.tmp_0 = user_interface_base_Affine_worldPos__P3352_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 397; s.pc = 1; return s.tmp_0; - case 1: + r0 = pxsim_numops_toBoolDecr(s.arg0); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_2 = console_log__P2528_mk(s); + s.tmp_2.arg0 = "ASSERTION FAILED"; + s.callLocIdx = 33; s.pc = 5; return s.tmp_2; + case 5: r0 = s.retval; - s.w___16346 = (r0); - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - s.tmp_1 = r0 = s.arg1; - r0 = s.w___16346.fields["x_"]; - s.tmp_2 = r0; - r0 = (s.tmp_1 + s.tmp_2); - s.tmp_0.arg0 = r0; - s.tmp_3 = r0 = s.arg2; - r0 = s.w___16346.fields["y_"]; - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.arg3; - s.tmp_0.arg3 = s.arg4; - s.tmp_0.arg4 = s.arg5; - s.callLocIdx = 400; s.pc = 2; return s.tmp_0; - case 2: + r0 = (s.arg1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = console_log__P2528_mk(s); + s.tmp_1.arg0 = s.arg1; + s.callLocIdx = 34; s.pc = 6; return s.tmp_1; + case 6: r0 = s.retval; + case 1: + case 2: + r0 = pxsim_pxtrt.panic(98); + case 3: + case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_fillRectXfrm__P3462.info = {"start":4255,"length":242,"line":168,"column":4,"endLine":178,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"fillRectXfrm","argumentNames":["xfrm","x","y","width","height","c"]} +control_assert__P2486.info = {"start":2635,"length":244,"line":99,"column":4,"endLine":107,"endColumn":5,"fileName":"pxt_modules/core/control.ts","functionName":"assert","argumentNames":["condition","msg"]} -function user_interface_base_Screen_fillRectXfrm__P3462_mk(s) { +function control_assert__P2486_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_fillRectXfrm__P3462, depth: s.depth + 1, + parent: s, fn: control_assert__P2486, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - w___16346: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, - arg5: undefined, } } +function user_interface_base_PickerGroup_buttonHeight__P5262(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerGroup__C5261_VT)) failedCast(r0, user_interface_base_PickerGroup__C5261_VT); + r0 = s.arg0.fields["cell"]; + r0 = r0.fields["height"]; + return leave(s, r0) + default: oops() +} } } +user_interface_base_PickerGroup_buttonHeight__P5262.info = {"start":1184,"length":69,"line":37,"column":8,"endLine":39,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"buttonHeight","argumentNames":["this"]} + +function user_interface_base_PickerGroup_buttonHeight__P5262_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_PickerGroup_buttonHeight__P5262, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function user_interface_base_ButtonBase_constructor__P3650(s) { +function user_interface_base_PickerGroup_layout__P5265(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41073,72 +45573,56 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); + if (!checkSubtype(r0, user_interface_base_PickerGroup__C5261_VT)) failedCast(r0, user_interface_base_PickerGroup__C5261_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); + s.tmp_1 = user_interface_base_Bounds_constructor__P3349_mk(s); s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 506; s.pc = 1; return s.tmp_1; + s.tmp_1.arg1 = undefined; + s.callLocIdx = 669; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 509; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg2; - s.callLocIdx = 512; s.pc = 3; return s.tmp_0; - case 3: + r0 = (s.arg0).fields["cell"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_PickerGroup_layout_inline__P17897); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["defs"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 677; s.pc = 2; return s.tmp_1; + case 2: r0 = s.retval; - r0 = (s.arg0).fields["style"] = (s.arg3); - s.tmp_0 = user_interface_base_Affine_parent__P3356_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg4; - s.callLocIdx = 514; s.pc = 4; return s.tmp_0; - case 4: + s.tmp_0 = user_interface_base_PickerGroup_layoutDraw__P5267_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = false; + s.callLocIdx = 678; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_constructor__P3650.info = {"start":2319,"length":228,"line":99,"column":4,"endLine":105,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"inline","argumentNames":["this","x","y","style","parent"]} +user_interface_base_PickerGroup_layout__P5265.info = {"start":2218,"length":528,"line":68,"column":8,"endLine":83,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"layout","argumentNames":["this","maxPerRow"]} -function user_interface_base_ButtonBase_constructor__P3650_mk(s) { +function user_interface_base_PickerGroup_layout__P5265_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_constructor__P3650, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerGroup_layout__P5265, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function user_interface_base_PickerNavigator_addDelete__P3815(s) { +function user_interface_base_PickerGroup_layout_inline__P17897(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41148,34 +45632,88 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.btn___17899 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = (s.arg0).fields["deleteButton"] = (s.arg1); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_ButtonBase__C3621_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_ButtonBase_constructor__P3623_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = 0; + s.tmp_1.arg2 = 0; + r0 = s.caps[0].fields["picker"]; + r0 = r0.fields["style"]; + s.tmp_1.arg3 = r0; + r0 = s.caps[0].fields["picker"]; + s.tmp_2 = r0; + r0 = s.tmp_2.fields["xfrm_"]; + s.tmp_1.arg4 = r0; + s.callLocIdx = 671; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + s.btn___17899 = (s.tmp_0); + s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3629_mk(s); + s.tmp_0.arg0 = s.btn___17899; + s.tmp_1 = lambda_3_mk(s); + s.tmp_1.argL = globals.getIcon___3461; + s.tmp_2 = if_icon_1_mk(s); + s.tmp_2.arg0 = s.arg0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "icon"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["icon"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["icon"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 672; s.pc = 4; return s.tmp_2; } + } + case 4: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = false; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 673; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 674; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + s.tmp_0 = user_interface_base_Bounds_add__P3361_mk(s); + r0 = s.caps[0].fields["cell"]; + s.tmp_0.arg0 = r0; + s.tmp_1 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_1.arg0 = s.btn___17899; + s.callLocIdx = 675; s.pc = 6; return s.tmp_1; + case 6: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 676; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_addDelete__P3815.info = {"start":12270,"length":70,"line":403,"column":8,"endLine":405,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"addDelete","argumentNames":["this","btn"]} +user_interface_base_PickerGroup_layout_inline__P17897.info = {"start":2374,"length":331,"line":71,"column":30,"endLine":81,"endColumn":13,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":["def"]} -function user_interface_base_PickerNavigator_addDelete__P3815_mk(s) { +function user_interface_base_PickerGroup_layout_inline__P17897_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_addDelete__P3815, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerGroup_layout_inline__P17897, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + btn___17899: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_ButtonBase_height__P3653(s) { +function user_interface_base_PickerNavigator_addDelete__P3788(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41187,36 +45725,31 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 516; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = r0.fields["height"]; - return leaveAccessor(s, r0) + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = (s.arg0).fields["deleteButton"] = (s.arg1); + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_height__P3653.info = {"start":2669,"length":59,"line":113,"column":4,"endLine":115,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"height","argumentNames":["this"]} -user_interface_base_ButtonBase_height__P3653.isGetter = true; +user_interface_base_PickerNavigator_addDelete__P3788.info = {"start":12270,"length":70,"line":403,"column":8,"endLine":405,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"addDelete","argumentNames":["this","btn"]} -function user_interface_base_ButtonBase_height__P3653_mk(s) { +function user_interface_base_PickerNavigator_addDelete__P3788_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_height__P3653, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_addDelete__P3788, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_Picker_hide__P3759(s) { +function user_interface_base_Picker_hide__P3732(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41231,20 +45764,20 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); r0 = (s.arg0).fields["visible"] = (false); - s.tmp_0 = user_interface_base_PickerNavigator_clear__P3813_mk(s); + s.tmp_0 = user_interface_base_PickerNavigator_clear__P3786_mk(s); r0 = s.arg0.fields["navigator"]; s.tmp_0.arg0 = r0; - s.callLocIdx = 731; s.pc = 3; return s.tmp_0; + s.callLocIdx = 723; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; - s.tmp_0 = user_interface_base_Cursor_restoreState__P3737_mk(s); + s.tmp_0 = user_interface_base_Cursor_restoreState__P3710_mk(s); r0 = s.arg0.fields["cursor"]; s.tmp_0.arg0 = r0; r0 = s.arg0.fields["prevState"]; s.tmp_0.arg1 = r0; - s.callLocIdx = 732; s.pc = 4; return s.tmp_0; + s.callLocIdx = 724; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; r0 = (s.arg0).fields["deleteBtn"] = (undefined); @@ -41257,12 +45790,12 @@ switch (step) { s.tmp_1.arg0 = s.arg0; if (!s.tmp_1.arg0.vtable.iface) { setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "onHide"), 1); - s.callLocIdx = 733; s.pc = 5; return s.tmp_1; + s.callLocIdx = 725; s.pc = 5; return s.tmp_1; } else { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["onHide"]; - if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["onHide"], 1); s.callLocIdx = 733; s.pc = 5; return s.tmp_1; } - else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 733; s.pc = 5; return s.tmp_1;; } - else { s.callLocIdx = 733; s.pc = 5; return s.tmp_1; } + if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["onHide"], 1); s.callLocIdx = 725; s.pc = 5; return s.tmp_1; } + else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 725; s.pc = 5; return s.tmp_1;; } + else { s.callLocIdx = 725; s.pc = 5; return s.tmp_1; } } case 5: r0 = s.retval; @@ -41272,12 +45805,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Picker_hide__P3759.info = {"start":6793,"length":288,"line":206,"column":8,"endLine":215,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"hide","argumentNames":["this"]} +user_interface_base_Picker_hide__P3732.info = {"start":6793,"length":288,"line":206,"column":8,"endLine":215,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"hide","argumentNames":["this"]} -function user_interface_base_Picker_hide__P3759_mk(s) { +function user_interface_base_Picker_hide__P3732_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_hide__P3759, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_hide__P3732, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -41287,8 +45820,7 @@ function user_interface_base_Picker_hide__P3759_mk(s) { - -function user_interface_base_Cursor_restoreState__P3737(s) { +function user_interface_base_Cursor_restoreState__P3710(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41304,7 +45836,7 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); s.tmp_0 = r0 = s.arg0; s.tmp_2 = if_navigator_1_mk(s); s.tmp_2.arg0 = s.arg1; @@ -41314,13 +45846,13 @@ switch (step) { s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["navigator"]; if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["navigator"]; } else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 635; s.pc = 1; return s.tmp_2; } + else { s.callLocIdx = 627; s.pc = 1; return s.tmp_2; } } case 1: r0 = s.retval; s.tmp_1 = r0; r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); - s.tmp_0 = user_interface_base_Vec2_copyFrom__P3418_mk(s); + s.tmp_0 = user_interface_base_Vec2_copyFrom__P3391_mk(s); r0 = s.arg0.fields["xfrm"]; s.tmp_1 = r0; r0 = s.tmp_1.fields["localPos_"]; @@ -41333,15 +45865,15 @@ switch (step) { s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pos"]; if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["pos"]; } else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 637; s.pc = 3; return s.tmp_2; } + else { s.callLocIdx = 629; s.pc = 3; return s.tmp_2; } } case 3: r0 = s.retval; s.tmp_0.arg1 = r0; - s.callLocIdx = 638; s.pc = 2; return s.tmp_0; + s.callLocIdx = 630; s.pc = 2; return s.tmp_0; case 2: r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_copyFrom__P3418_mk(s); + s.tmp_0 = user_interface_base_Vec2_copyFrom__P3391_mk(s); r0 = s.arg0.fields["moveDest"]; s.tmp_0.arg0 = r0; s.tmp_1 = if_pos_1_mk(s); @@ -41352,12 +45884,12 @@ switch (step) { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["pos"]; if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["pos"]; } else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 639; s.pc = 5; return s.tmp_1; } + else { s.callLocIdx = 631; s.pc = 5; return s.tmp_1; } } case 5: r0 = s.retval; s.tmp_0.arg1 = r0; - s.callLocIdx = 640; s.pc = 4; return s.tmp_0; + s.callLocIdx = 632; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; s.tmp_0 = r0 = s.arg0; @@ -41369,13 +45901,13 @@ switch (step) { s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["ariaId"]; if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["ariaId"]; } else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 641; s.pc = 6; return s.tmp_2; } + else { s.callLocIdx = 633; s.pc = 6; return s.tmp_2; } } case 6: r0 = s.retval; s.tmp_1 = r0; r0 = (s.tmp_0).fields["ariaId"] = (s.tmp_1); - s.tmp_0 = user_interface_base_Bounds_copyFrom__P3378_mk(s); + s.tmp_0 = user_interface_base_Bounds_copyFrom__P3351_mk(s); r0 = s.arg0.fields["size"]; s.tmp_0.arg0 = r0; s.tmp_1 = if_size_1_mk(s); @@ -41386,24 +45918,24 @@ switch (step) { s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["size"]; if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["size"]; } else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 642; s.pc = 8; return s.tmp_1; } + else { s.callLocIdx = 634; s.pc = 8; return s.tmp_1; } } case 8: r0 = s.retval; s.tmp_0.arg1 = r0; - s.callLocIdx = 643; s.pc = 7; return s.tmp_0; + s.callLocIdx = 635; s.pc = 7; return s.tmp_0; case 7: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_restoreState__P3737.info = {"start":4201,"length":241,"line":142,"column":4,"endLine":148,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"restoreState","argumentNames":["this","state"]} +user_interface_base_Cursor_restoreState__P3710.info = {"start":4201,"length":241,"line":142,"column":4,"endLine":148,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"restoreState","argumentNames":["this","state"]} -function user_interface_base_Cursor_restoreState__P3737_mk(s) { +function user_interface_base_Cursor_restoreState__P3710_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_restoreState__P3737, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_restoreState__P3710, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -41415,8 +45947,7 @@ function user_interface_base_Cursor_restoreState__P3737_mk(s) { - -function user_interface_base_Picker_cancelClicked__P5281(s) { +function user_interface_base_Picker_cancelClicked__P5270(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41431,26 +45962,26 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); r0 = s.arg0.fields["cursor"]; r0 = r0.fields["cancelHandlerStack"]; s.tmp_0 = r0; r0 = pxsim_Array_.pop(s.tmp_0); - s.tmp_0 = user_interface_base_Picker_hide__P3759_mk(s); + s.tmp_0 = user_interface_base_Picker_hide__P3732_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 711; s.pc = 1; return s.tmp_0; + s.callLocIdx = 703; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Picker_cancelClicked__P5281.info = {"start":4954,"length":108,"line":153,"column":8,"endLine":156,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"cancelClicked","argumentNames":["this"]} +user_interface_base_Picker_cancelClicked__P5270.info = {"start":4954,"length":108,"line":153,"column":8,"endLine":156,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"cancelClicked","argumentNames":["this"]} -function user_interface_base_Picker_cancelClicked__P5281_mk(s) { +function user_interface_base_Picker_cancelClicked__P5270_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_cancelClicked__P5281, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_cancelClicked__P5270, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -41459,8 +45990,7 @@ function user_interface_base_Picker_cancelClicked__P5281_mk(s) { - -function user_interface_base_Cursor_saveState__P3736(s) { +function user_interface_base_Cursor_saveState__P3709(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41475,18 +46005,18 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; r0 = s.arg0.fields["navigator"]; s.tmp_1 = r0; r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "navigator", s.tmp_1); - s.tmp_3 = user_interface_base_Vec2_clone__P3417_mk(s); + s.tmp_3 = user_interface_base_Vec2_clone__P3390_mk(s); r0 = s.arg0.fields["xfrm"]; s.tmp_4 = r0; r0 = s.tmp_4.fields["localPos_"]; s.tmp_3.arg0 = r0; - s.callLocIdx = 633; s.pc = 1; return s.tmp_3; + s.callLocIdx = 625; s.pc = 1; return s.tmp_3; case 1: r0 = s.retval; s.tmp_2 = r0; @@ -41494,10 +46024,10 @@ switch (step) { r0 = s.arg0.fields["ariaId"]; s.tmp_5 = r0; r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ariaId", s.tmp_5); - s.tmp_7 = user_interface_base_Bounds_clone__P3377_mk(s); + s.tmp_7 = user_interface_base_Bounds_clone__P3350_mk(s); r0 = s.arg0.fields["size"]; s.tmp_7.arg0 = r0; - s.callLocIdx = 634; s.pc = 2; return s.tmp_7; + s.callLocIdx = 626; s.pc = 2; return s.tmp_7; case 2: r0 = s.retval; s.tmp_6 = r0; @@ -41506,12 +46036,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_saveState__P3736.info = {"start":3874,"length":200,"line":128,"column":4,"endLine":135,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"saveState","argumentNames":["this"]} +user_interface_base_Cursor_saveState__P3709.info = {"start":3874,"length":200,"line":128,"column":4,"endLine":135,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"saveState","argumentNames":["this"]} -function user_interface_base_Cursor_saveState__P3736_mk(s) { +function user_interface_base_Cursor_saveState__P3709_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_saveState__P3736, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_saveState__P3709, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -41527,8 +46057,7 @@ function user_interface_base_Cursor_saveState__P3736_mk(s) { - -function user_interface_base_Vec2_clone__P3417(s) { +function user_interface_base_Vec2_clone__P3390(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41543,28 +46072,28 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Vec2__C3411_VT)) failedCast(r0, user_interface_base_Vec2__C3411_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); + if (!checkSubtype(r0, user_interface_base_Vec2__C3384_VT)) failedCast(r0, user_interface_base_Vec2__C3384_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); s.tmp_1.arg0 = s.tmp_0; r0 = s.arg0.fields["x_"]; s.tmp_1.arg1 = r0; r0 = s.arg0.fields["y_"]; s.tmp_1.arg2 = r0; - s.callLocIdx = 357; s.pc = 1; return s.tmp_1; + s.callLocIdx = 351; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_clone__P3417.info = {"start":455,"length":76,"line":21,"column":8,"endLine":23,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"clone","argumentNames":["this"]} +user_interface_base_Vec2_clone__P3390.info = {"start":455,"length":76,"line":21,"column":8,"endLine":23,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"clone","argumentNames":["this"]} -function user_interface_base_Vec2_clone__P3417_mk(s) { +function user_interface_base_Vec2_clone__P3390_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_clone__P3417, depth: s.depth + 1, + parent: s, fn: user_interface_base_Vec2_clone__P3390, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -41574,8 +46103,88 @@ function user_interface_base_Vec2_clone__P3417_mk(s) { +function user_interface_base_PickerNavigator_clear__P3786(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = (s.arg0).fields["deleteButton"] = (undefined); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_PickerNavigator_clear__P3786.info = {"start":12155,"length":61,"line":397,"column":8,"endLine":399,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"clear","argumentNames":["this"]} + +function user_interface_base_PickerNavigator_clear__P3786_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_PickerNavigator_clear__P3786, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function user_interface_base_Picker_setGroup__P3729(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_PickerGroup__C5261_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_PickerGroup_constructor__P5269_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.arg0; + s.tmp_1.arg2 = s.arg1; + s.callLocIdx = 700; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = (s.arg0).fields["group"] = (s.tmp_0); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_Picker_setGroup__P3729.info = {"start":4536,"length":105,"line":138,"column":8,"endLine":140,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"setGroup","argumentNames":["this","defs"]} + +function user_interface_base_Picker_setGroup__P3729_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Picker_setGroup__P3729, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, + arg1: undefined, +} } + + + -function user_interface_base_PickerNavigator_constructor__P3804(s) { +function user_interface_base_PickerGroup_constructor__P5269(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41588,68 +46197,488 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); + if (!checkSubtype(r0, user_interface_base_PickerGroup__C5261_VT)) failedCast(r0, user_interface_base_PickerGroup__C5261_VT); r0 = (s.arg0).fields["picker"] = (s.arg1); - r0 = (s.arg0).fields["row"] = (0); - r0 = (s.arg0).fields["col"] = (0); + r0 = (s.arg0).fields["defs"] = (s.arg2); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 659; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = (s.arg0).fields["xfrm"] = (s.tmp_0); + s.tmp_0 = user_interface_base_Affine_parent__P3329_mk(s); + r0 = s.arg0.fields["xfrm"]; + s.tmp_0.arg0 = r0; + r0 = s.arg1.fields["xfrm_"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 661; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_PickerGroup_constructor__P5269.info = {"start":989,"length":158,"line":30,"column":8,"endLine":33,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":["this","picker","defs"]} + +function user_interface_base_PickerGroup_constructor__P5269_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_PickerGroup_constructor__P5269, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, +} } + + + + +function microcode_filterModifierWithDelete__P4421(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tid___18017 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1340; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tid___18017 = (r0); + s.tmp_1 = microcode_isMathOperator__P4413_mk(s); + s.tmp_1.arg0 = s.tid___18017; + s.callLocIdx = 1341; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_2 = microcode_isComparisonOperator__P4414_mk(s); + s.tmp_2.arg0 = s.tid___18017; + s.callLocIdx = 1342; s.pc = 5; return s.tmp_2; + case 5: + r0 = s.retval; + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_4 = r0; + r0 = pxsim_Boolean__bang(s.tmp_4); + return leave(s, r0) + default: oops() +} } } +microcode_filterModifierWithDelete__P4421.info = {"start":14557,"length":169,"line":457,"column":4,"endLine":460,"endColumn":5,"fileName":"tiles.ts","functionName":"filterModifierWithDelete","argumentNames":["tile"]} + +function microcode_filterModifierWithDelete__P4421_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_filterModifierWithDelete__P4421, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tid___18017: undefined, + arg0: undefined, +} } + + + + +function microcode_tidToString__P4408(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_numops.toString(s.arg0); + s.tmp_1 = r0; + if ((s.tmp_1) && (s.tmp_1).vtable) { + setupResume(s, 1); + pxsim_String__stringConv(s.tmp_1); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_1) + ""; } + case 1: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_String__concat("T", s.tmp_0); + return leave(s, r0) + default: oops() +} } } +microcode_tidToString__P4408.info = {"start":7487,"length":77,"line":231,"column":4,"endLine":233,"endColumn":5,"fileName":"tiles.ts","functionName":"tidToString","argumentNames":["e"]} + +function microcode_tidToString__P4408_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_tidToString__P4408, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, +} } + + + + +function user_interface_base_Scene_releaseBackground__P3672(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); + r0 = (s.arg0).fields["backgroundCaptured_"] = (false); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_Scene_releaseBackground__P3672.info = {"start":2200,"length":76,"line":77,"column":8,"endLine":79,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"releaseBackground","argumentNames":["this"]} + +function user_interface_base_Scene_releaseBackground__P3672_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Scene_releaseBackground__P3672, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function microcode_FieldEditor_editor__P6001(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); + s.arg5 = (s.lambdaArgs[5]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_FieldEditor__C5998_VT)) failedCast(r0, microcode_FieldEditor__C5998_VT); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_FieldEditor_editor__P6001.info = {"start":546,"length":169,"line":18,"column":8,"endLine":24,"endColumn":18,"fileName":"fieldeditors.ts","functionName":"editor","argumentNames":["this","field","picker","onHide","onDelete","param"]} + +function microcode_FieldEditor_editor__P6001_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_FieldEditor_editor__P6001, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, + arg5: undefined, +} } + + + + +function user_interface_base_Scene_captureBackground__P3671(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); + r0 = (s.arg0).fields["backgroundCaptured_"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_constructor__P3804.info = {"start":10570,"length":99,"line":338,"column":8,"endLine":341,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["this","picker"]} +user_interface_base_Scene_captureBackground__P3671.info = {"start":2115,"length":75,"line":73,"column":8,"endLine":75,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"captureBackground","argumentNames":["this"]} + +function user_interface_base_Scene_captureBackground__P3671_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Scene_captureBackground__P3671, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function microcode_RuleEditor_nextEmpty__P5979(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = (s.arg1 == "sensors"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["filters"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (r0) { step = 3; continue; } + r0 = s.tmp_3; + { step = 4; continue; } + case 3: + r0 = s.arg0.fields["whenInsertBtn"]; + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (!r0) { step = 5; continue; } + r0 = s.tmp_4; + { step = 12; continue; } + case 5: + r0 = (s.arg1 == "filters"); + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (r0) { step = 6; continue; } + r0 = s.tmp_5; + { step = 7; continue; } + case 6: + s.tmp_6 = r0 = s.arg2; + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["filters"]; + s.tmp_9 = r0; + r0 = pxsim_Array__length(s.tmp_9); + s.tmp_8 = r0; + r0 = (s.tmp_8 - 1); + s.tmp_7 = r0; + r0 = (s.tmp_6 == s.tmp_7); + case 7: + // jmp value (already in r0) + s.tmp_10 = r0; + r0 = pxsim_numops_toBool(s.tmp_10); + if (r0) { step = 8; continue; } + r0 = s.tmp_10; + { step = 11; continue; } + case 8: + r0 = s.arg0.fields["whenInsertBtn"]; + s.tmp_11 = r0; + r0 = pxsim_numops_toBool(s.tmp_11); + if (!r0) { step = 9; continue; } + r0 = s.tmp_11; + { step = 10; continue; } + case 9: + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["actuators"]; + s.tmp_13 = r0; + r0 = pxsim_Array__length(s.tmp_13); + s.tmp_12 = r0; + r0 = (s.tmp_12 == 0); + case 10: + // jmp value (already in r0) + s.tmp_14 = r0; + r0 = s.tmp_14; + case 11: + // jmp value (already in r0) + s.tmp_15 = r0; + r0 = s.tmp_15; + case 12: + // jmp value (already in r0) + s.tmp_16 = r0; + r0 = pxsim_numops_toBool(s.tmp_16); + if (!r0) { step = 13; continue; } + r0 = s.tmp_16; + { step = 18; continue; } + case 13: + r0 = (s.arg1 == "actuators"); + s.tmp_17 = r0; + r0 = pxsim_numops_toBool(s.tmp_17); + if (r0) { step = 14; continue; } + r0 = s.tmp_17; + { step = 15; continue; } + case 14: + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["modifiers"]; + s.tmp_19 = r0; + r0 = pxsim_Array__length(s.tmp_19); + s.tmp_18 = r0; + r0 = (s.tmp_18 == 0); + case 15: + // jmp value (already in r0) + s.tmp_20 = r0; + r0 = pxsim_numops_toBool(s.tmp_20); + if (r0) { step = 16; continue; } + r0 = s.tmp_20; + { step = 17; continue; } + case 16: + r0 = s.arg0.fields["doInsertBtn"]; + case 17: + // jmp value (already in r0) + s.tmp_21 = r0; + r0 = s.tmp_21; + case 18: + // jmp value (already in r0) + s.tmp_22 = r0; + r0 = pxsim_numops_toBool(s.tmp_22); + if (!r0) { step = 19; continue; } + r0 = s.tmp_22; + { step = 24; continue; } + case 19: + r0 = (s.arg1 == "modifiers"); + s.tmp_23 = r0; + r0 = pxsim_numops_toBool(s.tmp_23); + if (r0) { step = 20; continue; } + r0 = s.tmp_23; + { step = 21; continue; } + case 20: + s.tmp_24 = r0 = s.arg2; + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["modifiers"]; + s.tmp_27 = r0; + r0 = pxsim_Array__length(s.tmp_27); + s.tmp_26 = r0; + r0 = (s.tmp_26 - 1); + s.tmp_25 = r0; + r0 = (s.tmp_24 == s.tmp_25); + case 21: + // jmp value (already in r0) + s.tmp_28 = r0; + r0 = pxsim_numops_toBool(s.tmp_28); + if (r0) { step = 22; continue; } + r0 = s.tmp_28; + { step = 23; continue; } + case 22: + r0 = s.arg0.fields["doInsertBtn"]; + case 23: + // jmp value (already in r0) + s.tmp_29 = r0; + r0 = s.tmp_29; + case 24: + // jmp value (already in r0) + s.tmp_30 = r0; + r0 = s.tmp_30; + return leave(s, r0) + default: oops() +} } } +microcode_RuleEditor_nextEmpty__P5979.info = {"start":6459,"length":722,"line":196,"column":8,"endLine":212,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"nextEmpty","argumentNames":["this","name","index"]} -function user_interface_base_PickerNavigator_constructor__P3804_mk(s) { +function microcode_RuleEditor_nextEmpty__P5979_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_constructor__P3804, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_nextEmpty__P5979, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tmp_23: undefined, + tmp_24: undefined, + tmp_25: undefined, + tmp_26: undefined, + tmp_27: undefined, + tmp_28: undefined, + tmp_29: undefined, + tmp_30: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function user_interface_base_PickerNavigator_clear__P3813(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = (s.arg0).fields["deleteButton"] = (undefined); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -user_interface_base_PickerNavigator_clear__P3813.info = {"start":12155,"length":61,"line":397,"column":8,"endLine":399,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"clear","argumentNames":["this"]} - -function user_interface_base_PickerNavigator_clear__P3813_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: user_interface_base_PickerNavigator_clear__P3813, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, -} } - - - - - -function user_interface_base_Picker_setGroup__P3756(s) { +function microcode_Language_ensureValid__P4228(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41661,43 +46690,64 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_PickerGroup__C5272_VT); + r0 = s.arg0.fields["sensors"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_PickerGroup_constructor__P5280_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.arg0; - s.tmp_1.arg2 = s.arg1; - s.callLocIdx = 708; s.pc = 1; return s.tmp_1; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_4 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["filters"] = (s.tmp_5); case 1: - r0 = s.retval; - r0 = (s.arg0).fields["group"] = (s.tmp_0); + case 2: + r0 = s.arg0.fields["actuators"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_4 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["modifiers"] = (s.tmp_5); + case 3: + case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Picker_setGroup__P3756.info = {"start":4536,"length":105,"line":138,"column":8,"endLine":140,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"setGroup","argumentNames":["this","defs"]} +microcode_Language_ensureValid__P4228.info = {"start":16033,"length":391,"line":483,"column":8,"endLine":493,"endColumn":9,"fileName":"language.ts","functionName":"ensureValid","argumentNames":["rule"]} -function user_interface_base_Picker_setGroup__P3756_mk(s) { +function microcode_Language_ensureValid__P4228_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_setGroup__P3756, depth: s.depth + 1, + parent: s, fn: microcode_Language_ensureValid__P4228, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_PickerGroup_constructor__P5280(s) { +function microcode_RuleDefn_deleteAt__P4207(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41707,6 +46757,8 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.ruleTiles___18128 = undefined; + s.tile___18133 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); @@ -41714,38 +46766,70 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerGroup__C5272_VT)) failedCast(r0, user_interface_base_PickerGroup__C5272_VT); - r0 = (s.arg0).fields["picker"] = (s.arg1); - r0 = (s.arg0).fields["defs"] = (s.arg2); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + s.tmp_1 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1192; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 667; s.pc = 1; return s.tmp_1; - case 1: + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg1); + s.ruleTiles___18128 = (r0); + r0 = pxsim_Array__getAt(s.ruleTiles___18128, s.arg2); + s.tile___18133 = (r0); + s.tmp_0 = helpers_arraySplice__P2129_mk(s); + s.tmp_0.arg0 = s.ruleTiles___18128; + s.tmp_0.arg1 = s.arg2; + s.tmp_0.arg2 = 1; + s.callLocIdx = 1193; s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; - r0 = (s.arg0).fields["xfrm"] = (s.tmp_0); - s.tmp_0 = user_interface_base_Affine_parent__P3356_mk(s); - r0 = s.arg0.fields["xfrm"]; - s.tmp_0.arg0 = r0; - r0 = s.arg1.fields["xfrm_"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 669; s.pc = 2; return s.tmp_0; - case 2: + s.tmp_0 = microcode_RuleDefn_fixup__P4205_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1194; s.pc = 5; return s.tmp_0; + case 5: r0 = s.retval; - r0 = undefined; + s.tmp_0 = microcode_RuleDefn_deleteIncompatibleTiles__P5902_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1195; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_1 = r0 = s.arg2; + r0 = pxsim_Array__length(s.ruleTiles___18128); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = 0; + { step = 2; continue; } + case 1: + s.tmp_3 = r0 = s.arg2; + r0 = pxsim_Array__length(s.ruleTiles___18128); + s.tmp_4 = r0; + r0 = (s.tmp_3 - s.tmp_4); + case 2: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = s.tmp_5; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_constructor__P5280.info = {"start":989,"length":158,"line":30,"column":8,"endLine":33,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":["this","picker","defs"]} +microcode_RuleDefn_deleteAt__P4207.info = {"start":5234,"length":334,"line":166,"column":8,"endLine":173,"endColumn":9,"fileName":"language.ts","functionName":"deleteAt","argumentNames":["this","name","index"]} -function user_interface_base_PickerGroup_constructor__P5280_mk(s) { +function microcode_RuleDefn_deleteAt__P4207_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_constructor__P5280, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_deleteAt__P4207, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + ruleTiles___18128: undefined, + tile___18133: undefined, arg0: undefined, arg1: undefined, arg2: undefined, @@ -41754,41 +46838,7 @@ function user_interface_base_PickerGroup_constructor__P5280_mk(s) { - -function microcode_diskSlots__P4300(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - r0 = pxsim_Array__mk(); - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, "disk1"); - r0 = pxsim_Array__push(s.tmp_0, "disk2"); - r0 = pxsim_Array__push(s.tmp_0, "disk3"); - r0 = s.tmp_0; - return leave(s, r0) - default: oops() -} } } -microcode_diskSlots__P4300.info = {"start":1403,"length":78,"line":35,"column":4,"endLine":37,"endColumn":5,"fileName":"editor.ts","functionName":"diskSlots","argumentNames":[]} - -function microcode_diskSlots__P4300_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_diskSlots__P4300, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, -} } - - - - - -function microcode_Editor_constructor__P4307(s) { +function microcode_RuleDefn_deleteIncompatibleTiles__P5902(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -41798,449 +46848,158 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.doit___18151 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = (s.arg0).fields["backgroundCaptured_"] = (false); - r0 = (s.arg0).fields["rendering"] = (false); - r0 = (s.arg0).fields["dirty"] = (false); - s.tmp_0 = user_interface_base_Scene_constructor__P3690_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = "editor"; - s.callLocIdx = 1134; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + r0 = pxsim_pxtcore_mkAction(1, doit_inline__P18152); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.doit___18151 = (s.tmp_0); + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.doit___18151; + s.tmp_0.arg0 = "filters"; + s.tmp_0.arg1 = 0; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1203; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = user_interface_base_Scene_backgroundColor__P3689_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 6; - s.callLocIdx = 1135; s.pc = 2; return s.tmp_0; + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.doit___18151; + s.tmp_0.arg0 = "modifiers"; + s.tmp_0.arg1 = 0; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1204; s.pc = 2; return s.tmp_0; case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_constructor__P4307.info = {"start":2068,"length":112,"line":58,"column":8,"endLine":61,"endColumn":9,"fileName":"editor.ts","functionName":"inline","argumentNames":["this","app"]} +microcode_RuleDefn_deleteIncompatibleTiles__P5902.info = {"start":5717,"length":734,"line":179,"column":8,"endLine":198,"endColumn":9,"fileName":"language.ts","functionName":"deleteIncompatibleTiles","argumentNames":["this"]} -function microcode_Editor_constructor__P4307_mk(s) { +function microcode_RuleDefn_deleteIncompatibleTiles__P5902_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_constructor__P4307, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_deleteIncompatibleTiles__P5902, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function user_interface_base_Button_constructor__P3677(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - s.tmp_2 = if_x_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "x"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["x"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["x"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 549; s.pc = 17; return s.tmp_2; } - } - case 17: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 != null); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = if_x_1_mk(s); - s.tmp_3.arg0 = s.arg1; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "x"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["x"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["x"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 550; s.pc = 18; return s.tmp_3; } - } - case 18: - r0 = s.retval; - { step = 2; continue; } - case 1: - r0 = 0; - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - s.tmp_7 = if_y_1_mk(s); - s.tmp_7.arg0 = s.arg1; - if (!s.tmp_7.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "y"); - } else { - s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["y"]; - if (s.tmp_7.fn == null) { s.retval = s.tmp_7.arg0.fields["y"]; } - else if (!s.tmp_7.fn.isGetter) { s.retval = bind(s.tmp_7); } - else { s.callLocIdx = 551; s.pc = 19; return s.tmp_7; } - } - case 19: - r0 = s.retval; - s.tmp_6 = r0; - r0 = (s.tmp_6 != null); - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 3; continue; } - s.tmp_8 = if_y_1_mk(s); - s.tmp_8.arg0 = s.arg1; - if (!s.tmp_8.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "y"); - } else { - s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["y"]; - if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["y"]; } - else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } - else { s.callLocIdx = 552; s.pc = 20; return s.tmp_8; } - } - case 20: - r0 = s.retval; - { step = 4; continue; } - case 3: - r0 = 0; - case 4: - // jmp value (already in r0) - s.tmp_9 = r0; - s.tmp_11 = if_style_1_mk(s); - s.tmp_11.arg0 = s.arg1; - if (!s.tmp_11.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_11.arg0, "style"); - } else { - s.tmp_11.fn = s.tmp_11.arg0.vtable.iface["style"]; - if (s.tmp_11.fn == null) { s.retval = s.tmp_11.arg0.fields["style"]; } - else if (!s.tmp_11.fn.isGetter) { s.retval = bind(s.tmp_11); } - else { s.callLocIdx = 553; s.pc = 21; return s.tmp_11; } - } - case 21: - r0 = s.retval; - s.tmp_10 = r0; - r0 = pxsim_numops_toBool(s.tmp_10); - if (!r0) { step = 5; continue; } - r0 = s.tmp_10; - { step = 6; continue; } - case 5: - r0 = globals.Transparent___3641; - case 6: - // jmp value (already in r0) - s.tmp_12 = r0; - s.tmp_14 = if_parent_1_mk(s); - s.tmp_14.arg0 = s.arg1; - if (!s.tmp_14.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_14.arg0, "parent"); - } else { - s.tmp_14.fn = s.tmp_14.arg0.vtable.iface["parent"]; - if (s.tmp_14.fn == null) { s.retval = s.tmp_14.arg0.fields["parent"]; } - else if (!s.tmp_14.fn.isGetter) { s.retval = bind(s.tmp_14); } - else { s.callLocIdx = 554; s.pc = 22; return s.tmp_14; } - } - case 22: - r0 = s.retval; - s.tmp_13 = r0; - r0 = pxsim_numops_toBool(s.tmp_13); - if (r0) { step = 7; continue; } - r0 = s.tmp_13; - { step = 8; continue; } - case 7: - s.tmp_15 = if_xfrm_1_mk(s); - s.tmp_16 = if_parent_1_mk(s); - s.tmp_16.arg0 = s.arg1; - if (!s.tmp_16.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_16.arg0, "parent"); - } else { - s.tmp_16.fn = s.tmp_16.arg0.vtable.iface["parent"]; - if (s.tmp_16.fn == null) { s.retval = s.tmp_16.arg0.fields["parent"]; } - else if (!s.tmp_16.fn.isGetter) { s.retval = bind(s.tmp_16); } - else { s.callLocIdx = 555; s.pc = 24; return s.tmp_16; } - } - case 24: - r0 = s.retval; - s.tmp_15.arg0 = r0; - if (!s.tmp_15.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_15.arg0, "xfrm"); - } else { - s.tmp_15.fn = s.tmp_15.arg0.vtable.iface["xfrm"]; - if (s.tmp_15.fn == null) { s.retval = s.tmp_15.arg0.fields["xfrm"]; } - else if (!s.tmp_15.fn.isGetter) { s.retval = bind(s.tmp_15); } - else { s.callLocIdx = 556; s.pc = 23; return s.tmp_15; } - } - case 23: - r0 = s.retval; - case 8: - // jmp value (already in r0) - s.tmp_17 = r0; - s.tmp_18 = user_interface_base_ButtonBase_constructor__P3650_mk(s); - s.tmp_18.arg0 = s.arg0; - s.tmp_18.arg1 = s.tmp_4; - s.tmp_18.arg2 = s.tmp_9; - s.tmp_18.arg3 = s.tmp_12; - s.tmp_18.arg4 = s.tmp_17; - s.callLocIdx = 557; s.pc = 25; return s.tmp_18; - case 25: - r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_icon_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "icon"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["icon"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["icon"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 558; s.pc = 26; return s.tmp_2; } - } - case 26: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["iconId"] = (s.tmp_1); - s.tmp_2 = if_ariaId_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "ariaId"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["ariaId"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["ariaId"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 559; s.pc = 27; return s.tmp_2; } - } - case 27: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 != null); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - s.tmp_3 = if_ariaId_1_mk(s); - s.tmp_3.arg0 = s.arg1; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "ariaId"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["ariaId"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["ariaId"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 560; s.pc = 28; return s.tmp_3; } - } - case 28: - r0 = s.retval; - { step = 10; continue; } - case 9: - r0 = pxsim_String_.mkEmpty(); - case 10: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = (s.arg0).fields["_ariaId"] = (s.tmp_4); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_onClick_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onClick"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onClick"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onClick"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 561; s.pc = 29; return s.tmp_2; } - } - case 29: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["onClick"] = (s.tmp_1); - s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3656_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_1 = user_interface_base_Button_image___P5257_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 562; s.pc = 31; return s.tmp_1; - case 31: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 563; s.pc = 30; return s.tmp_0; - case 30: - r0 = s.retval; - s.tmp_1 = if_flipIcon_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "flipIcon"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["flipIcon"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["flipIcon"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 564; s.pc = 32; return s.tmp_1; } - } - case 32: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 11; continue; } - r0 = s.arg0.fields["icon"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["icon"]; - r0 = r0.fields["image"]; - s.tmp_4 = r0; - r0 = pxsim.BitmapMethods.clone(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["image"] = (s.tmp_3); - r0 = s.arg0.fields["icon"]; - r0 = r0.fields["image"]; - s.tmp_0 = r0; - r0 = pxsim.BitmapMethods.flipY(s.tmp_0); - case 11: - case 12: - r0 = (s.arg0).fields["selected"] = (false); - r0 = (s.arg0).fields["pressable"] = (true); - s.tmp_2 = if_dynamicBoundaryColorsOn_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "dynamicBoundaryColorsOn"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["dynamicBoundaryColorsOn"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["dynamicBoundaryColorsOn"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 565; s.pc = 33; return s.tmp_2; } - } - case 33: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 == null); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - s.tmp_3 = if_dynamicBoundaryColorsOn_2_mk(s); - s.tmp_3.arg0 = s.arg1; - s.tmp_3.arg1 = false; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapSetByString(s.tmp_3.arg0, "dynamicBoundaryColorsOn", s.tmp_3.arg1); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["set/dynamicBoundaryColorsOn"]; - if (s.tmp_3.fn === null) { s.tmp_3.arg0.fields["dynamicBoundaryColorsOn"] = s.tmp_3.arg1; } - else if (s.tmp_3.fn === undefined) { failedCast(s.tmp_3.arg0) } - else { s.callLocIdx = 566; s.pc = 34; return s.tmp_3; } - } - case 34: - r0 = s.retval; - { step = 14; continue; } - case 13: - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_dynamicBoundaryColorsOn_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "dynamicBoundaryColorsOn"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["dynamicBoundaryColorsOn"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["dynamicBoundaryColorsOn"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 567; s.pc = 35; return s.tmp_2; } + doit___18151: undefined, + arg0: undefined, +} } + + + + +function doit_inline__P18152(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.ruleTiles___18155 = undefined; + s.suggestions___18165 = undefined; + s.compatible___18170 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; } - case 35: + r0 = pxsim_pxtrt.mklocRef(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.arg1); + s.arg1 = (s.tmp_0); + s.tmp_2 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + s.tmp_2.arg0 = s.caps[0]; + s.callLocIdx = 1197; s.pc = 6; return s.tmp_2; + case 6: r0 = s.retval; s.tmp_1 = r0; - r0 = (s.tmp_0).fields["dynamicBoundaryColorsOn"] = (s.tmp_1); - r0 = (s.arg0).fields["boundaryColor"] = (2); - case 14: - s.tmp_2 = if_boundaryColor_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "boundaryColor"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["boundaryColor"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["boundaryColor"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 568; s.pc = 36; return s.tmp_2; } - } - case 36: - r0 = s.retval; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.arg0); + s.ruleTiles___18155 = (r0); + case 1: + r0 = pxsim_pxtrt_ldlocRef(s.arg1); s.tmp_1 = r0; - r0 = (s.tmp_1 != null); + r0 = pxsim_Array__length(s.ruleTiles___18155); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - r0 = (s.arg0).fields["dynamicBoundaryColorsOn"] = (true); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_boundaryColor_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "boundaryColor"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["boundaryColor"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["boundaryColor"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 569; s.pc = 37; return s.tmp_2; } - } - case 37: + if (!r0) { step = 4; continue; } + s.tmp_3 = microcode_RuleDefn_getSuggestions__P5901_mk(s); + s.tmp_3.arg0 = s.caps[0]; + s.tmp_3.arg1 = s.arg0; + r0 = pxsim_pxtrt_ldlocRef(s.arg1); + s.tmp_3.arg2 = r0; + s.callLocIdx = 1198; s.pc = 7; return s.tmp_3; + case 7: r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["boundaryColor"] = (s.tmp_1); - case 15: - case 16: - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_state_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "state"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["state"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["state"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 570; s.pc = 38; return s.tmp_2; } - } - case 38: + s.suggestions___18165 = (r0); + r0 = pxsim_pxtcore_mkAction(2, compatible_inline__P18172); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.ruleTiles___18155); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + s.tmp_1 = helpers_arrayFind__P2140_mk(s); + s.tmp_1.arg0 = s.suggestions___18165; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1201; s.pc = 8; return s.tmp_1; + case 8: r0 = s.retval; + s.compatible___18170 = (r0); + r0 = pxsim_numops_toBoolDecr(s.compatible___18170); + if (!r0) { step = 2; continue; } + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_pxtrt_ldlocRef(s.arg1); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["state"] = (s.tmp_1); - r0 = undefined; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + { step = 3; continue; } + case 2: + s.tmp_0 = helpers_arraySplice__P2129_mk(s); + s.tmp_0.arg0 = s.ruleTiles___18155; + r0 = pxsim_pxtrt_ldlocRef(s.arg1); + s.tmp_0.arg1 = r0; + r0 = pxsim_Array__length(s.ruleTiles___18155); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_ldlocRef(s.arg1); + s.tmp_2 = r0; + r0 = (s.tmp_1 - s.tmp_2); + s.tmp_0.arg2 = r0; + s.callLocIdx = 1202; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + r0 = false; + { step = 5; continue; } + case 3: + { step = 1; continue; } + case 4: + r0 = true; + case 5: return leave(s, r0) default: oops() } } } -user_interface_base_Button_constructor__P3677.info = {"start":6766,"length":1759,"line":276,"column":4,"endLine":330,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"inline","argumentNames":["this","opts"]} +doit_inline__P18152.info = {"start":5778,"length":599,"line":180,"column":25,"endLine":195,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["name","i"]} -function user_interface_base_Button_constructor__P3677_mk(s) { +function doit_inline__P18152_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_constructor__P3677, depth: s.depth + 1, + parent: s, fn: doit_inline__P18152, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, + ruleTiles___18155: undefined, + suggestions___18165: undefined, + compatible___18170: undefined, arg0: undefined, arg1: undefined, } } @@ -42248,8 +47007,7 @@ function user_interface_base_Button_constructor__P3677_mk(s) { - -function user_interface_base_Button_image___P5257(s) { +function compatible_inline__P18172(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -42263,54 +47021,32 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - r0 = s.arg0.fields["iconId"]; - s.tmp_2 = r0; - r0 = pxsim_pxtcore.typeOf(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == "string"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + s.tmp_1 = microcode_getTid__P4194_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1199; s.pc = 1; return s.tmp_1; case 1: - r0 = s.arg0.fields["iconId"]; - s.tmp_4 = r0; - r0 = pxsim_pxtcore.typeOf(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 == "number"); - case 2: - // jmp value (already in r0) + r0 = s.retval; + s.tmp_0 = r0; + s.tmp_3 = microcode_getTid__P4194_mk(s); + s.tmp_4 = r0 = s.caps[0]; + r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 3; continue; } - s.tmp_6 = lambda_3_mk(s); - s.tmp_6.argL = globals.getIcon___3488; - r0 = s.arg0.fields["iconId"]; - s.tmp_6.arg0 = r0; - s.tmp_6.arg1 = false; - setupLambda(s.tmp_6, s.tmp_6.argL); - s.callLocIdx = 571; s.pc = 5; return s.tmp_6; - case 5: + r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); + s.tmp_3.arg0 = r0; + s.callLocIdx = 1200; s.pc = 2; return s.tmp_3; + case 2: r0 = s.retval; - { step = 4; continue; } - case 3: - r0 = s.arg0.fields["iconId"]; - case 4: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = s.tmp_7; + s.tmp_2 = r0; + r0 = (s.tmp_0 == s.tmp_2); return leave(s, r0) default: oops() } } } -user_interface_base_Button_image___P5257.info = {"start":8783,"length":162,"line":344,"column":4,"endLine":348,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"image_","argumentNames":["this"]} +compatible_inline__P18172.info = {"start":6065,"length":38,"line":186,"column":24,"endLine":186,"endColumn":62,"fileName":"language.ts","functionName":"inline","argumentNames":["t"]} -function user_interface_base_Button_image___P5257_mk(s) { +function compatible_inline__P18172_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_image___P5257, depth: s.depth + 1, + parent: s, fn: compatible_inline__P18172, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -42318,16 +47054,13 @@ function user_interface_base_Button_image___P5257_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, arg0: undefined, } } - -function user_interface_base_CursorScene_draw__P3837(s) { +function microcode_RuleDefn_getSuggestions__P5901(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -42339,42 +47072,39 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0 = user_interface_base_Picker_draw__P3760_mk(s); - r0 = s.arg0.fields["picker"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 852; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + s.tmp_0 = microcode_Language_getTileSuggestions__P4227_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = s.arg2; + s.callLocIdx = 1196; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = user_interface_base_Cursor_draw__P3743_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 853; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_draw__P3837.info = {"start":4063,"length":64,"line":156,"column":23,"endLine":159,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"draw","argumentNames":["this"]} +microcode_RuleDefn_getSuggestions__P5901.info = {"start":5578,"length":129,"line":175,"column":8,"endLine":177,"endColumn":9,"fileName":"language.ts","functionName":"getSuggestions","argumentNames":["this","name","index"]} -function user_interface_base_CursorScene_draw__P3837_mk(s) { +function microcode_RuleDefn_getSuggestions__P5901_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_draw__P3837, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_getSuggestions__P5901, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function user_interface_base_Cursor_draw__P3743(s) { +function microcode_Language_getTileSuggestions__P4227(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -42384,215 +47114,421 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.dist___16624 = undefined; - s.text___16640 = undefined; - s.pos___16646 = undefined; - s.n___16653 = undefined; - s.w___16656 = undefined; - s.h___16661 = undefined; - s.x___16664 = undefined; - s.y___16680 = undefined; + s.tile___18204 = undefined; + s.rangeName___18212 = undefined; + s.lower___18229 = undefined; + s.upper___18230 = undefined; + s.all___18231 = undefined; + s.i___18233 = undefined; + s.ed___18239 = undefined; + s.existing___18296 = undefined; + s.ruleRep___18298 = undefined; + s.i___18302 = undefined; + s.tile___18307 = undefined; + s.last___18322 = undefined; + s.collect___18346 = undefined; + s.src___18355 = undefined; + s.src___18370 = undefined; + s.src___18385 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - r0 = s.arg0.fields["visible"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_2 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1288; s.pc = 50; return s.tmp_2; + case 50: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.arg1); + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.arg2); + s.tile___18204 = (r0); + s.rangeName___18212 = (s.arg1); + s.tmp_1 = microcode_isComparisonOperator__P4414_mk(s); + s.tmp_2 = microcode_getTid__P4194_mk(s); + s.tmp_2.arg0 = s.tile___18204; + s.callLocIdx = 1289; s.pc = 52; return s.tmp_2; + case 52: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1290; s.pc = 51; return s.tmp_1; + case 51: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim_numops_toBoolDecr(globals.microcodeClassic___4785); if (!r0) { step = 1; continue; } - { step = 9; continue; } + r0 = pxsim_Array__mk(); + { step = 49; continue; } case 1: case 2: - s.dist___16624 = (1); + s.rangeName___18212 = ("comparisonOperators"); + { step = 8; continue; } case 3: - r0 = s.arg0.fields["borderThickness"]; - s.tmp_1 = r0; - r0 = (s.dist___16624 <= s.tmp_1); + s.tmp_1 = microcode_isMathOperator__P4413_mk(s); + s.tmp_2 = microcode_getTid__P4194_mk(s); + s.tmp_2.arg0 = s.tile___18204; + s.callLocIdx = 1291; s.pc = 54; return s.tmp_2; + case 54: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1292; s.pc = 53; return s.tmp_1; + case 53: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = pxsim_numops_toBoolDecr(globals.microcodeClassic___4785); if (!r0) { step = 4; continue; } - s.tmp_2 = user_interface_base_Screen_outlineBoundsXfrm__P3465_mk(s); - r0 = s.arg0.fields["xfrm"]; - s.tmp_2.arg0 = r0; - r0 = s.arg0.fields["size"]; - s.tmp_2.arg1 = r0; - s.tmp_2.arg2 = s.dist___16624; - r0 = s.arg0.fields["cursorOutlineColour"]; - s.tmp_2.arg3 = r0; - s.callLocIdx = 653; s.pc = 10; return s.tmp_2; + r0 = pxsim_Array__mk(); + { step = 49; continue; } + case 4: + case 5: + s.rangeName___18212 = ("mathOperators"); + case 6: + case 7: + case 8: + r0 = pxsim_pxtrt.mapGetGeneric(globals.ranges___4407, s.rangeName___18212); + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, 0); + s.lower___18229 = (r0); + r0 = pxsim_Array__getAt(s.tmp_0, 1); + s.upper___18230 = (r0); + r0 = pxsim_Array__mk(); + s.all___18231 = (r0); + s.i___18233 = (s.lower___18229); + case 9: + r0 = (s.i___18233 <= s.upper___18230); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 12; continue; } + s.tmp_1 = microcode_getEditor__P4598_mk(s); + s.tmp_1.arg0 = s.i___18233; + s.callLocIdx = 1293; s.pc = 55; return s.tmp_1; + case 55: + r0 = s.retval; + s.ed___18239 = (r0); + r0 = pxsim_numops_toBoolDecr(s.ed___18239); + if (!r0) { step = 10; continue; } + r0 = pxsim_Array__push(s.all___18231, s.ed___18239); + { step = 11; continue; } case 10: + r0 = pxsim_Array__push(s.all___18231, s.i___18233); + case 11: + r0 = (s.i___18233 + 1); + s.i___18233 = (r0); + { step = 9; continue; } + case 12: + r0 = pxsim_numops_toBoolDecr(globals.microcodeClassic___4785); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 13; continue; } + r0 = s.tmp_0; + { step = 16; continue; } + case 13: + r0 = (s.rangeName___18212 == "filters"); + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (!r0) { step = 14; continue; } + r0 = s.tmp_2; + { step = 15; continue; } + case 14: + r0 = (s.rangeName___18212 == "modifiers"); + case 15: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; + case 16: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 17; continue; } + s.tmp_5 = r0 = s.all___18231; + s.tmp_7 = microcode_getEditor__P4598_mk(s); + s.tmp_7.arg0 = 255; + s.callLocIdx = 1294; s.pc = 56; return s.tmp_7; + case 56: + r0 = s.retval; + s.tmp_6 = r0; + r0 = pxsim_Array__push(s.tmp_5, s.tmp_6); + s.tmp_0 = r0 = s.all___18231; + s.tmp_2 = microcode_getEditor__P4598_mk(s); + s.tmp_2.arg0 = 254; + s.callLocIdx = 1295; s.pc = 57; return s.tmp_2; + case 57: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + case 17: + case 18: + s.tmp_0 = helpers_arraySort__P2134_mk(s); + s.tmp_1 = helpers_arrayFilter__P2139_mk(s); + s.tmp_1.arg0 = s.all___18231; + s.tmp_1.arg1 = sort_inline__P18277; + s.callLocIdx = 1297; s.pc = 59; return s.tmp_1; + case 59: r0 = s.retval; - r0 = (s.dist___16624 + 1); - s.dist___16624 = (r0); - { step = 3; continue; } - case 4: - s.tmp_0 = accessibility_ariaToTooltip__P3519_mk(s); - r0 = s.arg0.fields["ariaId"]; s.tmp_0.arg0 = r0; - s.callLocIdx = 654; s.pc = 11; return s.tmp_0; - case 11: + s.tmp_0.arg1 = microcode_Language_getTileSuggestions_inline__P18281; + s.callLocIdx = 1300; s.pc = 58; return s.tmp_0; + case 58: r0 = s.retval; - s.text___16640 = (r0); - r0 = pxsim_numops_toBoolDecr(s.text___16640); - if (!r0) { step = 7; continue; } - r0 = s.arg0.fields["ariaPos"]; + s.all___18231 = (r0); + r0 = (s.arg1 === "sensors"); s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 5; continue; } + if (!r0) { step = 19; continue; } r0 = s.tmp_0; - { step = 6; continue; } - case 5: - r0 = s.arg0.fields["xfrm"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - case 6: + { step = 20; continue; } + case 19: + r0 = (s.arg1 === "actuators"); + case 20: // jmp value (already in r0) - s.tmp_2 = r0; - s.pos___16646 = (s.tmp_2); - r0 = pxsim_String_.length(s.text___16640); - s.n___16653 = (r0); - s.tmp_1 = if_charWidth_1_mk(s); - s.tmp_1.arg0 = globals.font___3487; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "charWidth"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["charWidth"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["charWidth"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 656; s.pc = 12; return s.tmp_1; } - } - case 12: + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 21; continue; } + r0 = s.all___18231; + { step = 49; continue; } + case 21: + case 22: + r0 = pxsim_Array__mk(); + s.existing___18296 = (r0); + s.tmp_0 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1301; s.pc = 60; return s.tmp_0; + case 60: r0 = s.retval; + s.ruleRep___18298 = (r0); + s.i___18302 = (0); + case 23: + r0 = (s.i___18302 < s.arg2); s.tmp_0 = r0; - r0 = (s.tmp_0 * s.n___16653); - s.w___16656 = (r0); - s.tmp_0 = if_charHeight_1_mk(s); - s.tmp_0.arg0 = globals.font___3487; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charHeight"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charHeight"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charHeight"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 657; s.pc = 13; return s.tmp_0; } - } - case 13: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 24; continue; } + r0 = pxsim_pxtrt.mapGetGeneric(s.ruleRep___18298, s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.i___18302); + s.tile___18307 = (r0); + r0 = pxsim_Array__push(s.existing___18296, s.tile___18307); + r0 = (s.i___18302 + 1); + s.i___18302 = (r0); + { step = 23; continue; } + case 24: + r0 = pxsim_Array__length(s.existing___18296); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 35; continue; } + s.tmp_1 = r0 = s.existing___18296; + r0 = pxsim_Array__length(s.existing___18296); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.last___18322 = (r0); + s.tmp_1 = microcode_isTerminal__P4418_mk(s); + s.tmp_1.arg0 = s.last___18322; + s.callLocIdx = 1302; s.pc = 61; return s.tmp_1; + case 61: r0 = s.retval; - s.h___16661 = (r0); - s.tmp_0 = Math_max__P2159_mk(s); - r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3443 + 1); - s.tmp_0.arg0 = r0; - s.tmp_1 = Math_min__P2160_mk(s); - r0 = (globals.user_interface_base_Screen_RIGHT_EDGE___3444 - 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 25; continue; } + r0 = s.tmp_0; + { step = 28; continue; } + case 25: + r0 = (s.arg1 === "filters"); s.tmp_2 = r0; - r0 = (s.tmp_2 - s.w___16656); - s.tmp_1.arg0 = r0; - r0 = s.pos___16646.fields["x_"]; - s.tmp_3 = r0; - r0 = (s.w___16656 >> 1); + r0 = pxsim_numops_toBool(s.tmp_2); + if (r0) { step = 26; continue; } + r0 = s.tmp_2; + { step = 27; continue; } + case 26: + s.tmp_3 = microcode_isTerminal__P4418_mk(s); + r0 = s.arg0.fields["sensors"]; s.tmp_4 = r0; - r0 = (s.tmp_3 - s.tmp_4); - s.tmp_1.arg1 = r0; - s.callLocIdx = 659; s.pc = 15; return s.tmp_1; - case 15: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 660; s.pc = 14; return s.tmp_0; - case 14: + r0 = pxsim_Array__getAt(s.tmp_4, 0); + s.tmp_3.arg0 = r0; + s.callLocIdx = 1303; s.pc = 62; return s.tmp_3; + case 62: r0 = s.retval; - s.x___16664 = (r0); - s.tmp_0 = Math_min__P2160_mk(s); - r0 = s.pos___16646.fields["y_"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["size"]; - r0 = r0.fields["width"]; + case 27: + // jmp value (already in r0) s.tmp_5 = r0; - r0 = (s.tmp_5 >> 1); + r0 = s.tmp_5; + case 28: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBool(s.tmp_6); + if (!r0) { step = 29; continue; } + r0 = s.tmp_6; + { step = 32; continue; } + case 29: + r0 = (s.arg1 === "modifiers"); + s.tmp_7 = r0; + r0 = pxsim_numops_toBool(s.tmp_7); + if (r0) { step = 30; continue; } + r0 = s.tmp_7; + { step = 31; continue; } + case 30: + s.tmp_8 = microcode_isTerminal__P4418_mk(s); + r0 = s.arg0.fields["actuators"]; + s.tmp_9 = r0; + r0 = pxsim_Array__getAt(s.tmp_9, 0); + s.tmp_8.arg0 = r0; + s.callLocIdx = 1304; s.pc = 63; return s.tmp_8; + case 63: + r0 = s.retval; + case 31: + // jmp value (already in r0) + s.tmp_10 = r0; + r0 = s.tmp_10; + case 32: + // jmp value (already in r0) + s.tmp_11 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_11); + if (!r0) { step = 33; continue; } + r0 = pxsim_Array__mk(); + { step = 49; continue; } + case 33: + case 34: + case 35: + case 36: + s.tmp_12 = microcode_mkConstraints__P5903_mk(s); + s.callLocIdx = 1305; s.pc = 64; return s.tmp_12; + case 64: + r0 = s.retval; + s.collect___18346 = (r0); + r0 = (s.arg1 === "modifiers"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 37; continue; } + r0 = s.tmp_0; + { step = 38; continue; } + case 37: + r0 = s.arg0.fields["actuators"]; + s.tmp_1 = r0; + r0 = pxsim_Array__length(s.tmp_1); + case 38: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 39; continue; } + s.tmp_3 = microcode_getConstraints__P4424_mk(s); + r0 = s.arg0.fields["actuators"]; s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); + r0 = pxsim_Array__getAt(s.tmp_4, 0); + s.tmp_3.arg0 = r0; + s.callLocIdx = 1306; s.pc = 65; return s.tmp_3; + case 65: + r0 = s.retval; + s.src___18355 = (r0); + s.tmp_0 = microcode_mergeConstraints__P5896_mk(s); + s.tmp_0.arg0 = s.src___18355; + s.tmp_0.arg1 = s.collect___18346; + s.callLocIdx = 1307; s.pc = 66; return s.tmp_0; + case 66: + r0 = s.retval; + case 39: + case 40: + r0 = (s.arg1 == "filters"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 41; continue; } + r0 = s.tmp_0; + { step = 42; continue; } + case 41: + r0 = s.arg0.fields["sensors"]; + s.tmp_1 = r0; + r0 = pxsim_Array__length(s.tmp_1); + case 42: + // jmp value (already in r0) s.tmp_2 = r0; - s.tmp_8 = if_charHeight_1_mk(s); - s.tmp_8.arg0 = globals.font___3487; - if (!s.tmp_8.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "charHeight"); - } else { - s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["charHeight"]; - if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["charHeight"]; } - else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } - else { s.callLocIdx = 662; s.pc = 17; return s.tmp_8; } - } - case 17: + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 43; continue; } + s.tmp_3 = microcode_getConstraints__P4424_mk(s); + r0 = s.arg0.fields["sensors"]; + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, 0); + s.tmp_3.arg0 = r0; + s.callLocIdx = 1308; s.pc = 67; return s.tmp_3; + case 67: r0 = s.retval; - s.tmp_7 = r0; - r0 = (s.tmp_7 >> 1); - s.tmp_6 = r0; - r0 = (s.tmp_2 + s.tmp_6); + s.src___18370 = (r0); + s.tmp_0 = microcode_mergeConstraints__P5896_mk(s); + s.tmp_0.arg0 = s.src___18370; + s.tmp_0.arg1 = s.collect___18346; + s.callLocIdx = 1309; s.pc = 68; return s.tmp_0; + case 68: + r0 = s.retval; + { step = 48; continue; } + case 43: + r0 = (s.arg1 == "modifiers"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 44; continue; } + r0 = s.tmp_0; + { step = 45; continue; } + case 44: + r0 = s.arg0.fields["actuators"]; s.tmp_1 = r0; - r0 = (s.tmp_1 + 1); - s.tmp_0.arg0 = r0; - r0 = (globals.user_interface_base_Screen_BOTTOM_EDGE___3446 - 1); - s.tmp_9 = r0; - s.tmp_11 = if_charHeight_1_mk(s); - s.tmp_11.arg0 = globals.font___3487; - if (!s.tmp_11.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_11.arg0, "charHeight"); - } else { - s.tmp_11.fn = s.tmp_11.arg0.vtable.iface["charHeight"]; - if (s.tmp_11.fn == null) { s.retval = s.tmp_11.arg0.fields["charHeight"]; } - else if (!s.tmp_11.fn.isGetter) { s.retval = bind(s.tmp_11); } - else { s.callLocIdx = 663; s.pc = 18; return s.tmp_11; } - } - case 18: + r0 = pxsim_Array__length(s.tmp_1); + case 45: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 46; continue; } + s.tmp_3 = microcode_getConstraints__P4424_mk(s); + r0 = s.arg0.fields["actuators"]; + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, 0); + s.tmp_3.arg0 = r0; + s.callLocIdx = 1310; s.pc = 69; return s.tmp_3; + case 69: r0 = s.retval; - s.tmp_10 = r0; - r0 = (s.tmp_9 - s.tmp_10); - s.tmp_0.arg1 = r0; - s.callLocIdx = 664; s.pc = 16; return s.tmp_0; - case 16: + s.src___18385 = (r0); + s.tmp_0 = microcode_mergeConstraints__P5896_mk(s); + s.tmp_0.arg0 = s.src___18385; + s.tmp_0.arg1 = s.collect___18346; + s.callLocIdx = 1311; s.pc = 70; return s.tmp_0; + case 70: r0 = s.retval; - s.y___16680 = (r0); - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - r0 = (s.x___16664 - 1); - s.tmp_0.arg0 = r0; - r0 = (s.y___16680 - 1); - s.tmp_0.arg1 = r0; - r0 = (s.w___16656 + 1); - s.tmp_0.arg2 = r0; - r0 = (s.h___16661 + 2); - s.tmp_0.arg3 = r0; - s.tmp_0.arg4 = 15; - s.callLocIdx = 665; s.pc = 19; return s.tmp_0; - case 19: + case 46: + case 47: + case 48: + r0 = pxsim_pxtcore_mkAction(1, microcode_Language_getTileSuggestions_inline__P18396); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.collect___18346); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_1.arg0 = s.existing___18296; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1314; s.pc = 71; return s.tmp_1; + case 71: r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_print__P3469_mk(s); - s.tmp_0.arg0 = s.text___16640; - s.tmp_0.arg1 = s.x___16664; - s.tmp_0.arg2 = s.y___16680; - s.tmp_0.arg3 = 1; - s.tmp_0.arg4 = globals.font___3487; - s.tmp_0.arg5 = undefined; - s.callLocIdx = 666; s.pc = 20; return s.tmp_0; - case 20: + r0 = pxsim_pxtcore_mkAction(1, microcode_Language_getTileSuggestions_inline__P18407); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.collect___18346); + s.tmp_1 = helpers_arrayFilter__P2139_mk(s); + s.tmp_1.arg0 = s.all___18231; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1319; s.pc = 72; return s.tmp_1; + case 72: r0 = s.retval; - case 7: - case 8: - case 9: - r0 = undefined; + case 49: return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_draw__P3743.info = {"start":5394,"length":1089,"line":192,"column":4,"endLine":223,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"draw","argumentNames":["this"]} +microcode_Language_getTileSuggestions__P4227.info = {"start":12761,"length":3262,"line":395,"column":8,"endLine":481,"endColumn":9,"fileName":"language.ts","functionName":"getTileSuggestions","argumentNames":["rule","name","index"]} -function user_interface_base_Cursor_draw__P3743_mk(s) { +function microcode_Language_getTileSuggestions__P4227_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_draw__P3743, depth: s.depth + 1, + parent: s, fn: microcode_Language_getTileSuggestions__P4227, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -42606,22 +47542,68 @@ function user_interface_base_Cursor_draw__P3743_mk(s) { tmp_9: undefined, tmp_10: undefined, tmp_11: undefined, - dist___16624: undefined, - text___16640: undefined, - pos___16646: undefined, - n___16653: undefined, - w___16656: undefined, - h___16661: undefined, - x___16664: undefined, - y___16680: undefined, + tmp_12: undefined, + tile___18204: undefined, + rangeName___18212: undefined, + lower___18229: undefined, + upper___18230: undefined, + all___18231: undefined, + i___18233: undefined, + ed___18239: undefined, + existing___18296: undefined, + ruleRep___18298: undefined, + i___18302: undefined, + tile___18307: undefined, + last___18322: undefined, + collect___18346: undefined, + src___18355: undefined, + src___18370: undefined, + src___18385: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } +function sort_inline__P18277(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = microcode_isVisible__P4419_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1296; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + return leave(s, r0) + default: oops() +} } } +sort_inline__P18277.info = {"start":14001,"length":31,"line":429,"column":24,"endLine":429,"endColumn":55,"fileName":"language.ts","functionName":"inline","argumentNames":["tile"]} + +function sort_inline__P18277_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: sort_inline__P18277, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + -function user_interface_base_Screen_outlineBoundsXfrm__P3465(s) { +function microcode_Language_getTileSuggestions_inline__P18281(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -42631,196 +47613,165 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___16726 = undefined; - s.left___16729 = undefined; - s.top___16735 = undefined; - s.right___16741 = undefined; - s.bottom___16747 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg3); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 5; continue; } + s.tmp_1 = microcode_priority__P4423_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1298; s.pc = 1; return s.tmp_1; case 1: - case 2: - s.tmp_2 = user_interface_base_Affine_worldPos__P3352_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 402; s.pc = 6; return s.tmp_2; - case 6: r0 = s.retval; - s.w___16726 = (r0); - r0 = s.arg1.fields["left"]; - s.tmp_0 = r0; - r0 = s.w___16726.fields["x_"]; - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.left___16729 = (r0); - r0 = s.arg1.fields["top"]; - s.tmp_0 = r0; - r0 = s.w___16726.fields["y_"]; - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.top___16735 = (r0); - r0 = s.arg1.fields["left"]; - s.tmp_2 = r0; - r0 = s.arg1.fields["width"]; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 - 1); - s.tmp_0 = r0; - r0 = s.w___16726.fields["x_"]; - s.tmp_4 = r0; - r0 = (s.tmp_0 + s.tmp_4); - s.right___16741 = (r0); - r0 = s.arg1.fields["top"]; - s.tmp_2 = r0; - r0 = s.arg1.fields["height"]; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 - 1); s.tmp_0 = r0; - r0 = s.w___16726.fields["y_"]; - s.tmp_4 = r0; - r0 = (s.tmp_0 + s.tmp_4); - s.bottom___16747 = (r0); - s.tmp_0 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.left___16729 - s.arg2); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.top___16735; - r0 = (s.left___16729 - s.arg2); - s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = s.bottom___16747; - s.tmp_0.arg4 = s.arg3; - s.callLocIdx = 409; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.right___16741 + s.arg2); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.top___16735; - r0 = (s.right___16741 + s.arg2); - s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = s.bottom___16747; - s.tmp_0.arg4 = s.arg3; - s.callLocIdx = 410; s.pc = 8; return s.tmp_0; - case 8: + s.tmp_3 = microcode_priority__P4423_mk(s); + s.tmp_3.arg0 = s.arg1; + s.callLocIdx = 1299; s.pc = 2; return s.tmp_3; + case 2: r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_drawLine__P3456_mk(s); - s.tmp_0.arg0 = s.left___16729; - r0 = (s.top___16735 - s.arg2); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.right___16741; - r0 = (s.top___16735 - s.arg2); - s.tmp_0.arg3 = r0; - s.tmp_0.arg4 = s.arg3; - s.callLocIdx = 411; s.pc = 9; return s.tmp_0; - case 9: + s.tmp_2 = r0; + r0 = (s.tmp_0 - s.tmp_2); + return leave(s, r0) + default: oops() +} } } +microcode_Language_getTileSuggestions_inline__P18281.info = {"start":14056,"length":39,"line":430,"column":22,"endLine":430,"endColumn":61,"fileName":"language.ts","functionName":"inline","argumentNames":["t1","t2"]} + +function microcode_Language_getTileSuggestions_inline__P18281_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_Language_getTileSuggestions_inline__P18281, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_Language_getTileSuggestions_inline__P18396(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.src___18398 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = microcode_getConstraints__P4424_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1312; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_drawLine__P3456_mk(s); - s.tmp_0.arg0 = s.left___16729; - r0 = (s.bottom___16747 + s.arg2); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.right___16741; - r0 = (s.bottom___16747 + s.arg2); - s.tmp_0.arg3 = r0; - s.tmp_0.arg4 = s.arg3; - s.callLocIdx = 412; s.pc = 10; return s.tmp_0; - case 10: + s.src___18398 = (r0); + s.tmp_0 = microcode_mergeConstraints__P5896_mk(s); + s.tmp_0.arg0 = s.src___18398; + s.tmp_0.arg1 = s.caps[0]; + s.callLocIdx = 1313; s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; - r0 = (s.arg2 > 1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_1 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.left___16729 - s.arg2); - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.top___16735; - s.tmp_1.arg2 = s.left___16729; - r0 = (s.top___16735 - s.arg2); - s.tmp_1.arg3 = r0; - s.tmp_1.arg4 = s.arg3; - s.callLocIdx = 413; s.pc = 11; return s.tmp_1; - case 11: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_Language_getTileSuggestions_inline__P18396.info = {"start":15584,"length":119,"line":468,"column":29,"endLine":471,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["tile"]} + +function microcode_Language_getTileSuggestions_inline__P18396_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_Language_getTileSuggestions_inline__P18396, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + src___18398: undefined, + arg0: undefined, +} } + + + + +function microcode_Language_getTileSuggestions_inline__P18407(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.src___18409 = undefined; + s.cat___18413 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = microcode_getConstraints__P4424_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1315; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.right___16741 + s.arg2); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.top___16735; - s.tmp_0.arg2 = s.right___16741; - r0 = (s.top___16735 - s.arg2); - s.tmp_0.arg3 = r0; - s.tmp_0.arg4 = s.arg3; - s.callLocIdx = 414; s.pc = 12; return s.tmp_0; - case 12: + s.src___18409 = (r0); + s.tmp_0 = microcode_getCategory__P4425_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1316; s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.left___16729 - s.arg2); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.bottom___16747; - s.tmp_0.arg2 = s.left___16729; - r0 = (s.bottom___16747 + s.arg2); - s.tmp_0.arg3 = r0; - s.tmp_0.arg4 = s.arg3; - s.callLocIdx = 415; s.pc = 13; return s.tmp_0; - case 13: + s.cat___18413 = (r0); + s.tmp_1 = microcode_isCompatibleWith__P5897_mk(s); + s.tmp_1.arg0 = s.src___18409; + s.tmp_1.arg1 = s.caps[0]; + s.callLocIdx = 1317; s.pc = 5; return s.tmp_1; + case 5: r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_drawLine__P3456_mk(s); - r0 = (s.right___16741 + s.arg2); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.bottom___16747; - s.tmp_0.arg2 = s.right___16741; - r0 = (s.bottom___16747 + s.arg2); - s.tmp_0.arg3 = r0; - s.tmp_0.arg4 = s.arg3; - s.callLocIdx = 416; s.pc = 14; return s.tmp_0; - case 14: + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_2 = microcode_filterModifierCompat__P5898_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.cat___18413; + s.tmp_2.arg2 = s.caps[0]; + s.callLocIdx = 1318; s.pc = 6; return s.tmp_2; + case 6: r0 = s.retval; - case 3: - case 4: - case 5: - r0 = undefined; + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -user_interface_base_Screen_outlineBoundsXfrm__P3465.info = {"start":5015,"length":1059,"line":203,"column":4,"endLine":237,"endColumn":5,"fileName":"pxt_modules/user-interface-base/screen.ts","functionName":"outlineBoundsXfrm","argumentNames":["xfrm","bounds","dist","c"]} +microcode_Language_getTileSuggestions_inline__P18407.info = {"start":15736,"length":276,"line":473,"column":30,"endLine":480,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["tile"]} -function user_interface_base_Screen_outlineBoundsXfrm__P3465_mk(s) { +function microcode_Language_getTileSuggestions_inline__P18407_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Screen_outlineBoundsXfrm__P3465, depth: s.depth + 1, + parent: s, fn: microcode_Language_getTileSuggestions_inline__P18407, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - w___16726: undefined, - left___16729: undefined, - top___16735: undefined, - right___16741: undefined, - bottom___16747: undefined, + src___18409: undefined, + cat___18413: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function user_interface_base_Picker_draw__P3760(s) { +function microcode_filterModifierCompat__P5898(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -42830,120 +47781,153 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___16849 = undefined; + s.tid___18429 = undefined; + s.only___18433 = undefined; + s.allows___18451 = undefined; + s.disallows___18467 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); - r0 = s.arg0.fields["visible"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1155; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + s.tid___18429 = (r0); + r0 = pxsim_pxtcore_mkAction(2, only_inline__P18435); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.tid___18429); + s.tmp_1 = helpers_arraySome__P2136_mk(s); + s.tmp_2 = if_only_1_mk(s); + s.tmp_2.arg0 = s.arg2; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "only"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["only"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["only"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1156; s.pc = 12; return s.tmp_2; } + } + case 12: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1157; s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + s.only___18433 = (r0); + r0 = pxsim_numops_toBoolDecr(s.only___18433); if (!r0) { step = 1; continue; } + r0 = true; { step = 9; continue; } case 1: case 2: - s.tmp_3 = user_interface_base_Screen_fillBoundsXfrm__P3463_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_3.arg0 = r0; - r0 = s.arg0.fields["panel"]; - s.tmp_3.arg1 = r0; - s.tmp_3.arg2 = 12; - s.callLocIdx = 735; s.pc = 10; return s.tmp_3; - case 10: - r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_outlineBoundsXfrm__P3465_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["panel"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = 1; - s.tmp_0.arg3 = 15; - s.callLocIdx = 737; s.pc = 11; return s.tmp_0; - case 11: + s.tmp_2 = if_only_1_mk(s); + s.tmp_2.arg0 = s.arg2; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "only"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["only"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["only"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1158; s.pc = 13; return s.tmp_2; } + } + case 13: r0 = s.retval; - r0 = s.arg0.fields["title"]; + s.tmp_1 = r0; + r0 = pxsim_Array__length(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - s.tmp_1 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 739; s.pc = 12; return s.tmp_1; - case 12: - r0 = s.retval; - s.w___16849 = (r0); - s.tmp_0 = user_interface_base_Screen_print__P3469_mk(s); - r0 = s.arg0.fields["title"]; - s.tmp_0.arg0 = r0; - r0 = s.w___16849.fields["x_"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["panel"]; - r0 = r0.fields["left"]; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 + 2); - s.tmp_0.arg1 = r0; - r0 = s.w___16849.fields["y_"]; - s.tmp_5 = r0; - r0 = s.arg0.fields["panel"]; - r0 = r0.fields["top"]; - s.tmp_6 = r0; - r0 = (s.tmp_5 + s.tmp_6); - s.tmp_4 = r0; - r0 = (s.tmp_4 + 4); - s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = 1; - s.tmp_0.arg4 = globals.font___3487; - s.tmp_0.arg5 = undefined; - s.callLocIdx = 742; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; + r0 = false; + { step = 9; continue; } case 3: case 4: - r0 = s.arg0.fields["group"]; + r0 = pxsim_pxtcore_mkAction(2, allows_inline__P18453); + s.tmp_3 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg1); + r0 = pxsim_pxtrt_stclo(s.tmp_3, 1, s.tid___18429); + s.tmp_4 = helpers_arraySome__P2136_mk(s); + s.tmp_5 = if_allow_1_mk(s); + s.tmp_5.arg0 = s.arg2; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "allow"); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["allow"]; + if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["allow"]; } + else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } + else { s.callLocIdx = 1159; s.pc = 15; return s.tmp_5; } + } + case 15: + r0 = s.retval; + s.tmp_4.arg0 = r0; + s.tmp_4.arg1 = s.tmp_3; + s.callLocIdx = 1160; s.pc = 14; return s.tmp_4; + case 14: + r0 = s.retval; + s.allows___18451 = (r0); + r0 = pxsim_numops_toBoolDecr(s.allows___18451); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 5; continue; } - s.tmp_1 = user_interface_base_PickerGroup_draw__P5279_mk(s); - r0 = s.arg0.fields["group"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 743; s.pc = 14; return s.tmp_1; - case 14: - r0 = s.retval; + r0 = false; + { step = 9; continue; } case 5: case 6: - r0 = s.arg0.fields["deleteBtn"]; + r0 = pxsim_pxtcore_mkAction(2, disallows_inline__P18470); + s.tmp_2 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.arg1); + r0 = pxsim_pxtrt_stclo(s.tmp_2, 1, s.tid___18429); + s.tmp_5 = helpers_arraySome__P2136_mk(s); + s.tmp_6 = if_disallow_1_mk(s); + s.tmp_6.arg0 = s.arg2; + if (!s.tmp_6.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "disallow"); + } else { + s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["disallow"]; + if (s.tmp_6.fn == null) { s.retval = s.tmp_6.arg0.fields["disallow"]; } + else if (!s.tmp_6.fn.isGetter) { s.retval = bind(s.tmp_6); } + else { s.callLocIdx = 1161; s.pc = 17; return s.tmp_6; } + } + case 17: + r0 = s.retval; + s.tmp_5.arg0 = r0; + s.tmp_5.arg1 = s.tmp_2; + s.callLocIdx = 1163; s.pc = 16; return s.tmp_5; + case 16: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + s.tmp_3 = r0; + r0 = pxsim_Boolean__bang(s.tmp_3); + s.disallows___18467 = (r0); + r0 = pxsim_numops_toBoolDecr(s.disallows___18467); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 7; continue; } - s.tmp_1 = user_interface_base_Button__C3665_v0_1_mk(s); - r0 = s.arg0.fields["deleteBtn"]; - s.tmp_1.arg0 = r0; - if (!checkSubtype(s.tmp_1.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_1.arg0, user_interface_base_Button__C3665_VT); - s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.draw; - s.pc = 15; return s.tmp_1; - case 15: - r0 = s.retval; + r0 = false; + { step = 9; continue; } case 7: case 8: + r0 = true; case 9: - r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Picker_draw__P3760.info = {"start":7091,"length":594,"line":217,"column":8,"endLine":233,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"draw","argumentNames":["this"]} +microcode_filterModifierCompat__P5898.info = {"start":966,"length":672,"line":32,"column":4,"endLine":54,"endColumn":5,"fileName":"language.ts","functionName":"filterModifierCompat","argumentNames":["tile","category","c"]} -function user_interface_base_Picker_draw__P3760_mk(s) { +function microcode_filterModifierCompat__P5898_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_draw__P3760, depth: s.depth + 1, + parent: s, fn: microcode_filterModifierCompat__P5898, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -42952,15 +47936,19 @@ function user_interface_base_Picker_draw__P3760_mk(s) { tmp_4: undefined, tmp_5: undefined, tmp_6: undefined, - w___16849: undefined, + tid___18429: undefined, + only___18433: undefined, + allows___18451: undefined, + disallows___18467: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function user_interface_base_Button_draw__P3684(s) { +function only_inline__P18435(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -42970,96 +47958,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.boundaryColour___16887 = undefined; - s.dist___16896 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - s.tmp_0 = user_interface_base_ButtonBase_draw__P3664_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 578; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - r0 = s.arg0.fields["dynamicBoundaryColorsOn"]; + r0 = (s.arg0 === s.caps[0]); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = s.arg0.fields["selected"]; - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (r0) { step = 1; continue; } - r0 = s.tmp_1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = s.arg0.fields["pressable"]; + r0 = (s.arg0 === s.caps[1]); case 2: // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 3; continue; } - r0 = 7; - { step = 4; continue; } - case 3: - r0 = s.arg0.fields["boundaryColor"]; - case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - s.boundaryColour___16887 = (s.tmp_3); - s.dist___16896 = (1); - case 5: - r0 = (s.dist___16896 <= 3); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_1 = user_interface_base_Screen_outlineBoundsXfrm__P3465_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.tmp_2 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_2.arg0 = r0; - s.callLocIdx = 580; s.pc = 11; return s.tmp_2; - case 11: - r0 = s.retval; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.dist___16896; - s.tmp_1.arg3 = s.boundaryColour___16887; - s.callLocIdx = 581; s.pc = 10; return s.tmp_1; - case 10: - r0 = s.retval; - r0 = (s.dist___16896 + 1); - s.dist___16896 = (r0); - { step = 5; continue; } - case 6: - case 7: - case 8: - r0 = undefined; + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -user_interface_base_Button_draw__P3684.info = {"start":9505,"length":749,"line":375,"column":4,"endLine":393,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"draw","argumentNames":["this"]} +only_inline__P18435.info = {"start":1158,"length":38,"line":38,"column":33,"endLine":38,"endColumn":71,"fileName":"language.ts","functionName":"inline","argumentNames":["cat"]} -function user_interface_base_Button_draw__P3684_mk(s) { +function only_inline__P18435_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_draw__P3684, depth: s.depth + 1, + parent: s, fn: only_inline__P18435, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - boundaryColour___16887: undefined, - dist___16896: undefined, arg0: undefined, } } - -function user_interface_base_PickerGroup_draw__P5279(s) { +function allows_inline__P18453(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43073,34 +48006,37 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerGroup__C5272_VT)) failedCast(r0, user_interface_base_PickerGroup__C5272_VT); - s.tmp_0 = user_interface_base_PickerGroup_layoutDraw__P5278_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = true; - s.callLocIdx = 705; s.pc = 1; return s.tmp_0; + r0 = (s.arg0 === s.caps[0]); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 === s.caps[1]); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -user_interface_base_PickerGroup_draw__P5279.info = {"start":3635,"length":59,"line":105,"column":8,"endLine":107,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"draw","argumentNames":["this"]} +allows_inline__P18453.info = {"start":1305,"length":38,"line":42,"column":36,"endLine":42,"endColumn":74,"fileName":"language.ts","functionName":"inline","argumentNames":["cat"]} -function user_interface_base_PickerGroup_draw__P5279_mk(s) { +function allows_inline__P18453_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerGroup_draw__P5279, depth: s.depth + 1, + parent: s, fn: allows_inline__P18453, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function user_interface_base_CursorScene_update__P3836(s) { +function disallows_inline__P18470(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43114,34 +48050,70 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0 = user_interface_base_Cursor_update__P3742_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 851; s.pc = 1; return s.tmp_0; + r0 = (s.arg0 === s.caps[0]); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = (s.arg0 === s.caps[1]); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = s.tmp_1; + { step = 6; continue; } + case 3: + r0 = pxsim_pxtcore.typeOf(s.arg0); + s.tmp_3 = r0; + r0 = (s.tmp_3 == "function"); + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (r0) { step = 4; continue; } + r0 = s.tmp_2; + { step = 5; continue; } + case 4: + s.tmp_4 = lambda_2_mk(s); + s.tmp_4.argL = s.arg0; + s.tmp_4.arg0 = s.caps[1]; + setupLambda(s.tmp_4, s.tmp_4.argL); + s.callLocIdx = 1162; s.pc = 7; return s.tmp_4; + case 7: r0 = s.retval; - r0 = undefined; + case 5: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = s.tmp_5; + case 6: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = s.tmp_6; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_update__P3836.info = {"start":3995,"length":43,"line":152,"column":23,"endLine":154,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"update","argumentNames":["this"]} +disallows_inline__P18470.info = {"start":1436,"length":128,"line":46,"column":12,"endLine":49,"endColumn":54,"fileName":"language.ts","functionName":"inline","argumentNames":["cat"]} -function user_interface_base_CursorScene_update__P3836_mk(s) { +function disallows_inline__P18470_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_update__P3836, depth: s.depth + 1, + parent: s, fn: disallows_inline__P18470, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, arg0: undefined, } } - -function user_interface_base_Cursor_update__P3742(s) { +function microcode_isCompatibleWith__P5897(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43151,43 +48123,101 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.compat___18497 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - s.tmp_0 = user_interface_base_Vec2_copyFrom__P3418_mk(s); - r0 = s.arg0.fields["xfrm"]; + r0 = pxsim_numops_toBoolDecr(s.arg0); s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["moveDest"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 652; s.pc = 1; return s.tmp_0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = true; + { step = 7; continue; } case 1: + case 2: + s.tmp_3 = if_requires_1_mk(s); + s.tmp_3.arg0 = s.arg0; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "requires"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["requires"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["requires"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1150; s.pc = 8; return s.tmp_3; } + } + case 8: r0 = s.retval; - r0 = undefined; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 5; continue; } + r0 = pxsim_pxtrt.mklocRef(); + s.compat___18497 = (r0); + r0 = pxsim_pxtrt_stlocRef(s.compat___18497, false); + r0 = pxsim_pxtcore_mkAction(2, microcode_isCompatibleWith_inline__P18501); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.compat___18497); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = if_requires_1_mk(s); + s.tmp_2.arg0 = s.arg0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "requires"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["requires"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["requires"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1151; s.pc = 10; return s.tmp_2; } + } + case 10: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1154; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + r0 = pxsim_pxtrt_ldlocRef(s.compat___18497); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = false; + { step = 7; continue; } + case 3: + case 4: + case 5: + case 6: + r0 = true; + case 7: return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_update__P3742.info = {"start":5323,"length":65,"line":188,"column":4,"endLine":190,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"update","argumentNames":["this"]} +microcode_isCompatibleWith__P5897.info = {"start":599,"length":361,"line":20,"column":4,"endLine":30,"endColumn":5,"fileName":"language.ts","functionName":"isCompatibleWith","argumentNames":["src","c"]} -function user_interface_base_Cursor_update__P3742_mk(s) { +function microcode_isCompatibleWith__P5897_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_update__P3742, depth: s.depth + 1, + parent: s, fn: microcode_isCompatibleWith__P5897, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + compat___18497: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_CursorScene_activate__P3835(s) { +function microcode_isCompatibleWith_inline__P18501(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43197,94 +48227,65 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btn___16924 = undefined; - s.w___16930 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0 = user_interface_base_Scene_activate__P3693_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 841; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = if_initialCursor_3_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 0; - s.tmp_0.arg2 = 0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "initialCursor"), 3); - s.callLocIdx = 842; s.pc = 4; return s.tmp_0; + r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = pxsim_pxtcore_mkAction(1, microcode_isCompatibleWith_inline__P18509); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg0); + s.tmp_2 = helpers_arraySome__P2136_mk(s); + s.tmp_3 = if_provides_1_mk(s); + s.tmp_3.arg0 = s.caps[1]; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "provides"); } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["initialCursor"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["initialCursor"], 3); s.callLocIdx = 842; s.pc = 4; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 842; s.pc = 4; return s.tmp_0;; } - else { s.callLocIdx = 842; s.pc = 4; return s.tmp_0; } + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["provides"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["provides"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1152; s.pc = 4; return s.tmp_3; } } case 4: r0 = s.retval; - s.btn___16924 = (r0); - r0 = pxsim_numops_toBoolDecr(s.btn___16924); - if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.btn___16924.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 844; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.w___16930 = (r0); - s.tmp_0 = user_interface_base_Cursor_snapTo__P3733_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_0.arg0 = r0; - r0 = s.w___16930.fields["x_"]; - s.tmp_0.arg1 = r0; - r0 = s.w___16930.fields["y_"]; - s.tmp_0.arg2 = r0; - r0 = s.btn___16924.fields["_ariaId"]; - s.tmp_0.arg3 = r0; - s.tmp_1 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_1.arg0 = s.btn___16924; - s.callLocIdx = 848; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; - s.tmp_0.arg4 = r0; - s.callLocIdx = 849; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.tmp_0 = user_interface_base_Button_reportAria__P3676_mk(s); - s.tmp_0.arg0 = s.btn___16924; - s.tmp_0.arg1 = true; - s.callLocIdx = 850; s.pc = 8; return s.tmp_0; - case 8: + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_1; + s.callLocIdx = 1153; s.pc = 3; return s.tmp_2; + case 3: r0 = s.retval; - case 1: case 2: - r0 = undefined; + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_pxtrt_stlocRef(s.caps[0], s.tmp_4); + r0 = s.tmp_4; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_activate__P3835.info = {"start":3725,"length":245,"line":142,"column":23,"endLine":150,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"activate","argumentNames":["this"]} +microcode_isCompatibleWith_inline__P18501.info = {"start":809,"length":63,"line":25,"column":16,"endLine":25,"endColumn":79,"fileName":"language.ts","functionName":"inline","argumentNames":["req"]} -function user_interface_base_CursorScene_activate__P3835_mk(s) { +function microcode_isCompatibleWith_inline__P18501_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_activate__P3835, depth: s.depth + 1, + parent: s, fn: microcode_isCompatibleWith_inline__P18501, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - btn___16924: undefined, - w___16930: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, } } - -function user_interface_base_Button_reportAria__P3676(s) { +function microcode_isCompatibleWith_inline__P18509(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43294,50 +48295,28 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.msg___16949 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "tile"); - r0 = s.arg0.fields["_ariaId"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "value", s.tmp_1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "force", s.arg1); - s.msg___16949 = (s.tmp_0); - s.tmp_0 = accessibility_setLiveContent__P3518_mk(s); - s.tmp_0.arg0 = s.msg___16949; - s.callLocIdx = 548; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 === s.caps[0]); return leave(s, r0) default: oops() } } } -user_interface_base_Button_reportAria__P3676.info = {"start":6554,"length":206,"line":267,"column":4,"endLine":274,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"reportAria","argumentNames":["this","force"]} +microcode_isCompatibleWith_inline__P18509.info = {"start":852,"length":18,"line":25,"column":59,"endLine":25,"endColumn":77,"fileName":"language.ts","functionName":"inline","argumentNames":["pro"]} -function user_interface_base_Button_reportAria__P3676_mk(s) { +function microcode_isCompatibleWith_inline__P18509_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_reportAria__P3676, depth: s.depth + 1, + parent: s, fn: microcode_isCompatibleWith_inline__P18509, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - msg___16949: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Cursor_snapTo__P3733(s) { +function microcode_getCategory__P4425(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43347,97 +48326,260 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tid___18517 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - s.tmp_0 = r0 = s.arg4; - r0 = pxsim_numops_toBool(s.tmp_0); + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1364; s.pc = 49; return s.tmp_0; + case 49: + r0 = s.retval; + s.tid___18517 = (r0); + s.tmp_1 = microcode_isPressReleaseEvent__P5923_mk(s); + s.tmp_1.arg0 = s.tid___18517; + s.callLocIdx = 1365; s.pc = 50; return s.tmp_1; + case 50: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = "press_event"; + { step = 48; continue; } case 1: - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mkMap(); + case 2: + s.tmp_3 = microcode_isLineEvent__P5926_mk(s); + s.tmp_3.arg0 = s.tid___18517; + s.callLocIdx = 1366; s.pc = 51; return s.tmp_3; + case 51: + r0 = s.retval; s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "left", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "top", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "width", 16); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "height", 16); - s.tmp_3 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_3.arg0 = s.tmp_1; - s.tmp_3.arg1 = s.tmp_2; - s.callLocIdx = 620; s.pc = 3; return s.tmp_3; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + r0 = "line"; + { step = 48; continue; } case 3: - r0 = s.retval; - r0 = s.tmp_1; - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - s.tmp_5 = user_interface_base_Cursor_setSize__P3734_mk(s); - s.tmp_5.arg0 = s.arg0; - s.tmp_5.arg1 = s.tmp_4; - s.callLocIdx = 621; s.pc = 4; return s.tmp_5; case 4: + s.tmp_5 = microcode_isTimespan__P5928_mk(s); + s.tmp_5.arg0 = s.tid___18517; + s.callLocIdx = 1367; s.pc = 52; return s.tmp_5; + case 52: r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - r0 = s.arg0.fields["xfrm"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - s.tmp_2 = r0 = s.arg1; - s.tmp_0.arg1 = r0; - s.callLocIdx = 623; s.pc = 5; return s.tmp_0; + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 5; continue; } + r0 = "timespan"; + { step = 48; continue; } case 5: - r0 = s.retval; - s.tmp_3 = user_interface_base_Vec2_x__P3413_mk(s); - r0 = s.arg0.fields["moveDest"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.tmp_2; - s.callLocIdx = 624; s.pc = 6; return s.tmp_3; case 6: + s.tmp_7 = microcode_isAccelerometerEvent__P5925_mk(s); + s.tmp_7.arg0 = s.tid___18517; + s.callLocIdx = 1368; s.pc = 53; return s.tmp_7; + case 53: r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - r0 = s.arg0.fields["xfrm"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - s.tmp_2 = r0 = s.arg2; - s.tmp_0.arg1 = r0; - s.callLocIdx = 626; s.pc = 7; return s.tmp_0; + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 7; continue; } + r0 = "accel_event"; + { step = 48; continue; } case 7: - r0 = s.retval; - s.tmp_3 = user_interface_base_Vec2_y__P3415_mk(s); - r0 = s.arg0.fields["moveDest"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.tmp_2; - s.callLocIdx = 627; s.pc = 8; return s.tmp_3; case 8: + s.tmp_9 = microcode_isEmoji__P5929_mk(s); + s.tmp_9.arg0 = s.tid___18517; + s.callLocIdx = 1369; s.pc = 54; return s.tmp_9; + case 54: r0 = s.retval; - s.tmp_0 = user_interface_base_Cursor_setAriaContent__P3732_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg3; - s.tmp_0.arg2 = null; - s.callLocIdx = 628; s.pc = 9; return s.tmp_0; + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); + if (!r0) { step = 9; continue; } + r0 = "sound_emoji"; + { step = 48; continue; } case 9: + case 10: + s.tmp_11 = microcode_isComparisonOperator__P4414_mk(s); + s.tmp_11.arg0 = s.tid___18517; + s.callLocIdx = 1370; s.pc = 55; return s.tmp_11; + case 55: + r0 = s.retval; + s.tmp_10 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_10); + if (!r0) { step = 11; continue; } + r0 = "comparison"; + { step = 48; continue; } + case 11: + case 12: + s.tmp_13 = microcode_isMathOperator__P4413_mk(s); + s.tmp_13.arg0 = s.tid___18517; + s.callLocIdx = 1371; s.pc = 56; return s.tmp_13; + case 56: + r0 = s.retval; + s.tmp_12 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_12); + if (!r0) { step = 13; continue; } + r0 = "maths"; + { step = 48; continue; } + case 13: + case 14: + s.tmp_15 = microcode_isVariable__P5927_mk(s); + s.tmp_15.arg0 = s.tid___18517; + s.callLocIdx = 1372; s.pc = 57; return s.tmp_15; + case 57: + r0 = s.retval; + s.tmp_14 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_14); + if (!r0) { step = 15; continue; } + r0 = "variable"; + { step = 48; continue; } + case 15: + case 16: + s.tmp_17 = microcode_isPage__P5930_mk(s); + s.tmp_17.arg0 = s.tid___18517; + s.callLocIdx = 1373; s.pc = 58; return s.tmp_17; + case 58: + r0 = s.retval; + s.tmp_16 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_16); + if (!r0) { step = 17; continue; } + r0 = "page"; + { step = 48; continue; } + case 17: + case 18: + s.tmp_19 = microcode_isCarModifier__P5933_mk(s); + s.tmp_19.arg0 = s.tid___18517; + s.callLocIdx = 1374; s.pc = 59; return s.tmp_19; + case 59: + r0 = s.retval; + s.tmp_18 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_18); + if (!r0) { step = 19; continue; } + r0 = "car"; + { step = 48; continue; } + case 19: + case 20: + s.tmp_21 = microcode_isLedModifier__P5932_mk(s); + s.tmp_21.arg0 = s.tid___18517; + s.callLocIdx = 1375; s.pc = 60; return s.tmp_21; + case 60: r0 = s.retval; + s.tmp_20 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_20); + if (!r0) { step = 21; continue; } + r0 = "rgb_led"; + { step = 48; continue; } + case 21: + case 22: + s.tmp_22 = r0 = s.tid___18517; + r0 = pxsim_pxtcore.switch_eq(110, s.tmp_22); + if (r0) { step = 23; continue; } + r0 = pxsim_pxtcore.switch_eq(111, s.tmp_22); + if (r0) { step = 24; continue; } + r0 = pxsim_pxtcore.switch_eq(204, s.tmp_22); + if (r0) { step = 25; continue; } + r0 = pxsim_pxtcore.switch_eq(205, s.tmp_22); + if (r0) { step = 26; continue; } + r0 = pxsim_pxtcore.switch_eq(98, s.tmp_22); + if (r0) { step = 27; continue; } + r0 = pxsim_pxtcore.switch_eq(99, s.tmp_22); + if (r0) { step = 28; continue; } + r0 = pxsim_pxtcore.switch_eq(100, s.tmp_22); + if (r0) { step = 29; continue; } + r0 = pxsim_pxtcore.switch_eq(101, s.tmp_22); + if (r0) { step = 30; continue; } + r0 = pxsim_pxtcore.switch_eq(87, s.tmp_22); + if (r0) { step = 31; continue; } + r0 = pxsim_pxtcore.switch_eq(88, s.tmp_22); + if (r0) { step = 32; continue; } + r0 = pxsim_pxtcore.switch_eq(178, s.tmp_22); + if (r0) { step = 33; continue; } + r0 = pxsim_pxtcore.switch_eq(160, s.tmp_22); + if (r0) { step = 34; continue; } + r0 = pxsim_pxtcore.switch_eq(179, s.tmp_22); + if (r0) { step = 35; continue; } + r0 = pxsim_pxtcore.switch_eq(255, s.tmp_22); + if (r0) { step = 36; continue; } + r0 = pxsim_pxtcore.switch_eq(254, s.tmp_22); + if (r0) { step = 37; continue; } + r0 = pxsim_pxtcore.switch_eq(177, s.tmp_22); + if (r0) { step = 38; continue; } + r0 = pxsim_pxtcore.switch_eq(180, s.tmp_22); + if (r0) { step = 39; continue; } + r0 = pxsim_pxtcore.switch_eq(176, s.tmp_22); + if (r0) { step = 40; continue; } + r0 = pxsim_pxtcore.switch_eq(208, s.tmp_22); + if (r0) { step = 41; continue; } + r0 = pxsim_pxtcore.switch_eq(206, s.tmp_22); + if (r0) { step = 42; continue; } + r0 = pxsim_pxtcore.switch_eq(207, s.tmp_22); + if (r0) { step = 43; continue; } + r0 = pxsim_pxtcore.switch_eq(213, s.tmp_22); + if (r0) { step = 44; continue; } + r0 = pxsim_pxtcore.switch_eq(211, s.tmp_22); + if (r0) { step = 45; continue; } + r0 = pxsim_pxtcore.switch_eq(212, s.tmp_22); + if (r0) { step = 46; continue; } + r0 = s.tmp_22; + { step = 47; continue; } + case 23: + case 24: + r0 = "on_off_event"; + { step = 48; continue; } + case 25: + case 26: + r0 = "on_off"; + { step = 48; continue; } + case 27: + case 28: + r0 = "rotary_event"; + { step = 48; continue; } + case 29: + case 30: + r0 = "up_down_event"; + { step = 48; continue; } + case 31: + case 32: + r0 = "sound_event"; + { step = 48; continue; } + case 33: + r0 = "loop"; + { step = 48; continue; } + case 34: + r0 = "icon_editor"; + { step = 48; continue; } + case 35: + r0 = "melody_editor"; + { step = 48; continue; } + case 36: + r0 = "decimal_editor"; + { step = 48; continue; } + case 37: + r0 = "pos_int_editor"; + { step = 48; continue; } + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + r0 = "variable"; + { step = 48; continue; } + case 44: + case 45: + case 46: + r0 = "math_not_add"; + { step = 48; continue; } + case 47: r0 = undefined; + case 48: return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_snapTo__P3733.info = {"start":3050,"length":321,"line":97,"column":4,"endLine":105,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"snapTo","argumentNames":["this","x","y","ariaId","sizeHint"]} +microcode_getCategory__P4425.info = {"start":23767,"length":2218,"line":725,"column":4,"endLine":781,"endColumn":5,"fileName":"tiles.ts","functionName":"getCategory","argumentNames":["tile"]} -function user_interface_base_Cursor_snapTo__P3733_mk(s) { +function microcode_getCategory__P4425_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_snapTo__P3733, depth: s.depth + 1, + parent: s, fn: microcode_getCategory__P4425, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -43445,18 +48587,31 @@ function user_interface_base_Cursor_snapTo__P3733_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tid___18517: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function user_interface_base_CursorScene_startup__P3832(s) { +function microcode_isLedModifier__P5932(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43466,165 +48621,56 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.click___17013 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0 = user_interface_base_Scene_startup__P3691_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 826; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P16989); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 2049; - r0 = globals.right___3270.fields["id"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 827; s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P16996); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 2049; - r0 = globals.up___3269.fields["id"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 828; s.pc = 5; return s.tmp_1; + s.tmp_1 = microcode_isLedColor__P5931_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1325; s.pc = 5; return s.tmp_1; case 5: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P17003); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 2049; - r0 = globals.down___3271.fields["id"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 829; s.pc = 6; return s.tmp_1; - case 6: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P17010); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 2049; - r0 = globals.left___3268.fields["id"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 830; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, click_inline__P17014); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.click___17013 = (s.tmp_0); - s.tmp_0 = context_onEvent__P3274_mk(s); - s.tmp_0.arg0 = 2049; - r0 = globals.A___3266.fields["id"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.click___17013; - s.tmp_0.arg3 = 16; - s.callLocIdx = 832; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - s.tmp_0 = context_onEvent__P3274_mk(s); - s.tmp_0.arg0 = 2049; - r0 = globals.A___3266.fields["id"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 + 7); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.click___17013; - s.tmp_0.arg3 = 16; - s.callLocIdx = 833; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P17034); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 2049; - r0 = globals.B___3267.fields["id"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 835; s.pc = 10; return s.tmp_1; - case 10: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Cursor__C3718_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Cursor_constructor__P3730_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 836; s.pc = 11; return s.tmp_1; - case 11: - r0 = s.retval; - r0 = (s.arg0).fields["cursor"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Picker__C3748_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Picker_constructor__P3755_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.arg0.fields["cursor"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 837; s.pc = 12; return s.tmp_1; - case 12: - r0 = s.retval; - r0 = (s.arg0).fields["picker"] = (s.tmp_0); - r0 = s.arg0.fields["navigator"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 == null); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_RowNavigator__C3780_VT); - s.tmp_2 = r0; - s.tmp_3 = user_interface_base_RowNavigator_constructor__P3781_mk(s); - s.tmp_3.arg0 = s.tmp_2; - s.callLocIdx = 838; s.pc = 13; return s.tmp_3; - case 13: - r0 = s.retval; - r0 = (s.arg0).fields["navigator"] = (s.tmp_2); + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = (s.arg0 == 188); case 2: - r0 = s.arg0.fields["cursor"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["navigator"]; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); - r0 = undefined; + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (!r0) { step = 3; continue; } + r0 = s.tmp_2; + { step = 4; continue; } + case 3: + r0 = (s.arg0 == 189); + case 4: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_startup__P3832.info = {"start":1500,"length":1238,"line":56,"column":4,"endLine":102,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"startup","argumentNames":["this"]} +microcode_isLedModifier__P5932.info = {"start":10988,"length":233,"line":356,"column":4,"endLine":362,"endColumn":5,"fileName":"tiles.ts","functionName":"isLedModifier","argumentNames":["tidEnum"]} -function user_interface_base_CursorScene_startup__P3832_mk(s) { +function microcode_isLedModifier__P5932_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_startup__P3832, depth: s.depth + 1, + parent: s, fn: microcode_isLedModifier__P5932, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - click___17013: undefined, arg0: undefined, } } - -function user_interface_base_CursorScene_startup_inline__P16989(s) { +function microcode_isLedColor__P5931(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43634,33 +48680,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_CursorScene__C3826_v6_2_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 3; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_CursorScene__C3826_VT)) failedCast(s.tmp_0.arg0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.moveCursor; - s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (182 <= s.arg0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 <= 187); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_startup_inline__P16989.info = {"start":1633,"length":38,"line":61,"column":8,"endLine":61,"endColumn":46,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} +microcode_isLedColor__P5931.info = {"start":10799,"length":183,"line":349,"column":4,"endLine":354,"endColumn":5,"fileName":"tiles.ts","functionName":"isLedColor","argumentNames":["tidEnum"]} -function user_interface_base_CursorScene_startup_inline__P16989_mk(s) { +function microcode_isLedColor__P5931_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_startup_inline__P16989, depth: s.depth + 1, + parent: s, fn: microcode_isLedColor__P5931, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function user_interface_base_CursorScene_startup_inline__P16996(s) { +function microcode_isCarModifier__P5933(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43670,33 +48724,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_CursorScene__C3826_v6_2_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_CursorScene__C3826_VT)) failedCast(s.tmp_0.arg0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.moveCursor; - s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (190 <= s.arg0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 <= 203); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_startup_inline__P16996.info = {"start":1776,"length":35,"line":66,"column":8,"endLine":66,"endColumn":43,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} +microcode_isCarModifier__P5933.info = {"start":11227,"length":152,"line":364,"column":4,"endLine":368,"endColumn":5,"fileName":"tiles.ts","functionName":"isCarModifier","argumentNames":["tidEnum"]} -function user_interface_base_CursorScene_startup_inline__P16996_mk(s) { +function microcode_isCarModifier__P5933_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_startup_inline__P16996, depth: s.depth + 1, + parent: s, fn: microcode_isCarModifier__P5933, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function user_interface_base_CursorScene_startup_inline__P17003(s) { +function microcode_isEmoji__P5929(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43705,34 +48767,42 @@ while (true) { if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; switch (step) { case 0: - - s.tmp_0 = user_interface_base_CursorScene__C3826_v6_2_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 1; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_CursorScene__C3826_VT)) failedCast(s.tmp_0.arg0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.moveCursor; - s.pc = 1; return s.tmp_0; + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (163 <= s.arg0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 <= 172); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_startup_inline__P17003.info = {"start":1918,"length":37,"line":71,"column":8,"endLine":71,"endColumn":45,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} +microcode_isEmoji__P5929.info = {"start":10518,"length":108,"line":338,"column":4,"endLine":340,"endColumn":5,"fileName":"tiles.ts","functionName":"isEmoji","argumentNames":["tidEnum"]} -function user_interface_base_CursorScene_startup_inline__P17003_mk(s) { +function microcode_isEmoji__P5929_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_startup_inline__P17003, depth: s.depth + 1, + parent: s, fn: microcode_isEmoji__P5929, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function user_interface_base_CursorScene_startup_inline__P17010(s) { +function microcode_isTimespan__P5928(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43742,33 +48812,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_CursorScene__C3826_v6_2_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 2; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_CursorScene__C3826_VT)) failedCast(s.tmp_0.arg0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.moveCursor; - s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (83 <= s.arg0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 <= 86); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_startup_inline__P17010.info = {"start":2062,"length":37,"line":76,"column":8,"endLine":76,"endColumn":45,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} +microcode_isTimespan__P5928.info = {"start":10331,"length":181,"line":331,"column":4,"endLine":336,"endColumn":5,"fileName":"tiles.ts","functionName":"isTimespan","argumentNames":["tidEnum"]} -function user_interface_base_CursorScene_startup_inline__P17010_mk(s) { +function microcode_isTimespan__P5928_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_startup_inline__P17010, depth: s.depth + 1, + parent: s, fn: microcode_isTimespan__P5928, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function click_inline__P17014(s) { +function microcode_isLineEvent__P5926(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43778,30 +48856,41 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Cursor_click__P3739_mk(s); - r0 = s.caps[0].fields["cursor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 831; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = (102 <= s.arg0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; + r0 = (s.arg0 <= 107); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -click_inline__P17014.info = {"start":2144,"length":25,"line":80,"column":20,"endLine":80,"endColumn":45,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} +microcode_isLineEvent__P5926.info = {"start":9501,"length":110,"line":300,"column":4,"endLine":302,"endColumn":5,"fileName":"tiles.ts","functionName":"isLineEvent","argumentNames":["tidEnum"]} -function click_inline__P17014_mk(s) { +function microcode_isLineEvent__P5926_mk(s) { checkStack(s.depth); return { - parent: s, fn: click_inline__P17014, depth: s.depth + 1, + parent: s, fn: microcode_isLineEvent__P5926, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, } } - -function user_interface_base_CursorScene_startup_inline__P17034(s) { +function microcode_mergeConstraints__P5896(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43811,30 +48900,93 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_CursorScene_back__P3833_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 834; s.pc = 1; return s.tmp_0; + s.key___18627 = undefined; + s.unnamed56___U1 = undefined; + s.unnamed57___U2 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = pxsim_numops_toBoolDecr(s.arg0); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 7; continue; } case 1: + case 2: + s.key___18627 = (undefined); + r0 = pxsim_pxtrt.keysOf(s.arg0); + s.unnamed56___U1 = (r0); + s.unnamed57___U2 = (0); + case 3: + s.tmp_0 = r0 = s.unnamed57___U2; + r0 = pxsim_Array__length(s.unnamed56___U1); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 6; continue; } + r0 = pxsim_Array__getAt(s.unnamed56___U1, s.unnamed57___U2); + s.key___18627 = (r0); + r0 = (s.key___18627 == "only"); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 4; continue; } + s.tmp_3 = r0 = s.arg1; + s.tmp_4 = r0 = s.key___18627; + r0 = pxsim_pxtrt.mapGetGeneric(s.arg0, s.key___18627); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_3, s.tmp_4, s.tmp_5); + { step = 5; continue; } + case 4: + s.tmp_0 = r0 = s.arg1; + s.tmp_1 = r0 = s.key___18627; + s.tmp_3 = helpers_arrayConcat__P2142_mk(s); + r0 = pxsim_pxtrt.mapGetGeneric(s.arg1, s.key___18627); + s.tmp_3.arg0 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.arg0, s.key___18627); + s.tmp_3.arg1 = r0; + s.callLocIdx = 1149; s.pc = 8; return s.tmp_3; + case 8: r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_0, s.tmp_1, s.tmp_2); + case 5: + r0 = (s.unnamed57___U2 + 1); + s.unnamed57___U2 = (r0); + { step = 3; continue; } + case 6: + s.unnamed56___U1 = (undefined); + case 7: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_startup_inline__P17034.info = {"start":2506,"length":17,"line":94,"column":8,"endLine":94,"endColumn":25,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} +microcode_mergeConstraints__P5896.info = {"start":338,"length":255,"line":12,"column":4,"endLine":18,"endColumn":5,"fileName":"language.ts","functionName":"mergeConstraints","argumentNames":["src","dst"]} -function user_interface_base_CursorScene_startup_inline__P17034_mk(s) { +function microcode_mergeConstraints__P5896_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_startup_inline__P17034, depth: s.depth + 1, + parent: s, fn: microcode_mergeConstraints__P5896, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + key___18627: undefined, + unnamed56___U1: undefined, + unnamed57___U2: undefined, + arg0: undefined, + arg1: undefined, } } - -function user_interface_base_RowNavigator_constructor__P3781(s) { +function microcode_getConstraints__P4424(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43844,39 +48996,490 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tid___18647 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_0 = r0 = s.arg0; + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1352; s.pc = 45; return s.tmp_0; + case 45: + r0 = s.retval; + s.tid___18647 = (r0); + s.tmp_1 = microcode_isComparisonOperator__P4414_mk(s); + s.tmp_1.arg0 = s.tid___18647; + s.callLocIdx = 1353; s.pc = 46; return s.tmp_1; + case 46: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + s.tmp_4 = microcode_getFilterMath__P5942_mk(s); + s.callLocIdx = 1354; s.pc = 47; return s.tmp_4; + case 47: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "allow", s.tmp_3); r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["buttonGroups"] = (s.tmp_1); - r0 = (s.arg0).fields["row"] = (0); - r0 = (s.arg0).fields["col"] = (0); + s.tmp_5 = r0; + r0 = pxsim_Array__push(s.tmp_5, disallow_inline__P18655); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "disallow", s.tmp_5); + r0 = s.tmp_2; + { step = 44; continue; } + case 1: + case 2: + s.tmp_6 = r0 = s.tid___18647; + r0 = pxsim_pxtcore.switch_eq(11, s.tmp_6); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(12, s.tmp_6); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(10, s.tmp_6); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(19, s.tmp_6); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(20, s.tmp_6); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(21, s.tmp_6); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(17, s.tmp_6); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(23, s.tmp_6); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(25, s.tmp_6); + if (r0) { step = 11; continue; } + r0 = pxsim_pxtcore.switch_eq(22, s.tmp_6); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq(15, s.tmp_6); + if (r0) { step = 13; continue; } + r0 = pxsim_pxtcore.switch_eq(27, s.tmp_6); + if (r0) { step = 14; continue; } + r0 = pxsim_pxtcore.switch_eq(29, s.tmp_6); + if (r0) { step = 15; continue; } + r0 = pxsim_pxtcore.switch_eq(28, s.tmp_6); + if (r0) { step = 16; continue; } + r0 = pxsim_pxtcore.switch_eq(16, s.tmp_6); + if (r0) { step = 17; continue; } + r0 = pxsim_pxtcore.switch_eq(30, s.tmp_6); + if (r0) { step = 18; continue; } + r0 = pxsim_pxtcore.switch_eq(18, s.tmp_6); + if (r0) { step = 19; continue; } + r0 = pxsim_pxtcore.switch_eq(24, s.tmp_6); + if (r0) { step = 20; continue; } + r0 = pxsim_pxtcore.switch_eq(26, s.tmp_6); + if (r0) { step = 21; continue; } + r0 = pxsim_pxtcore.switch_eq(14, s.tmp_6); + if (r0) { step = 22; continue; } + r0 = pxsim_pxtcore.switch_eq(13, s.tmp_6); + if (r0) { step = 23; continue; } + r0 = pxsim_pxtcore.switch_eq(44, s.tmp_6); + if (r0) { step = 24; continue; } + r0 = pxsim_pxtcore.switch_eq(41, s.tmp_6); + if (r0) { step = 25; continue; } + r0 = pxsim_pxtcore.switch_eq(43, s.tmp_6); + if (r0) { step = 26; continue; } + r0 = pxsim_pxtcore.switch_eq(45, s.tmp_6); + if (r0) { step = 27; continue; } + r0 = pxsim_pxtcore.switch_eq(51, s.tmp_6); + if (r0) { step = 28; continue; } + r0 = pxsim_pxtcore.switch_eq(48, s.tmp_6); + if (r0) { step = 29; continue; } + r0 = pxsim_pxtcore.switch_eq(49, s.tmp_6); + if (r0) { step = 30; continue; } + r0 = pxsim_pxtcore.switch_eq(50, s.tmp_6); + if (r0) { step = 31; continue; } + r0 = pxsim_pxtcore.switch_eq(47, s.tmp_6); + if (r0) { step = 34; continue; } + r0 = pxsim_pxtcore.switch_eq(53, s.tmp_6); + if (r0) { step = 35; continue; } + r0 = pxsim_pxtcore.switch_eq(177, s.tmp_6); + if (r0) { step = 36; continue; } + r0 = pxsim_pxtcore.switch_eq(46, s.tmp_6); + if (r0) { step = 37; continue; } + r0 = pxsim_pxtcore.switch_eq(178, s.tmp_6); + if (r0) { step = 38; continue; } + r0 = pxsim_pxtcore.switch_eq(40, s.tmp_6); + if (r0) { step = 39; continue; } + r0 = pxsim_pxtcore.switch_eq(52, s.tmp_6); + if (r0) { step = 40; continue; } + r0 = pxsim_pxtcore.switch_eq(54, s.tmp_6); + if (r0) { step = 41; continue; } + r0 = pxsim_pxtcore.switch_eq(55, s.tmp_6); + if (r0) { step = 42; continue; } + r0 = s.tmp_6; + { step = 43; continue; } + case 3: + case 4: + r0 = pxsim_Array__mk(); + s.tmp_7 = r0; + r0 = pxsim_Array__push(s.tmp_7, "press_event"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_8 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "only", s.tmp_7); + r0 = s.tmp_8; + { step = 44; continue; } + case 5: + r0 = pxsim_Array__mk(); + s.tmp_9 = r0; + r0 = pxsim_Array__push(s.tmp_9, "timespan"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_10 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "only", s.tmp_9); + r0 = s.tmp_10; + { step = 44; continue; } + case 6: + r0 = pxsim_pxtrt.mkMap(); + s.tmp_11 = r0; + s.tmp_13 = microcode_getFilterMath__P5942_mk(s); + s.callLocIdx = 1356; s.pc = 48; return s.tmp_13; + case 48: + r0 = s.retval; + s.tmp_12 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "allow", s.tmp_12); + r0 = pxsim_Array__mk(); + s.tmp_14 = r0; + r0 = pxsim_Array__push(s.tmp_14, 95); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "disallow", s.tmp_14); + r0 = s.tmp_11; + { step = 44; continue; } + case 7: + r0 = pxsim_pxtrt.mkMap(); + s.tmp_15 = r0; + s.tmp_17 = microcode_getFilterMath__P5942_mk(s); + s.callLocIdx = 1357; s.pc = 49; return s.tmp_17; + case 49: + r0 = s.retval; + s.tmp_16 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "allow", s.tmp_16); + r0 = pxsim_Array__mk(); + s.tmp_18 = r0; + r0 = pxsim_Array__push(s.tmp_18, 96); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "disallow", s.tmp_18); + r0 = s.tmp_15; + { step = 44; continue; } + case 8: + r0 = pxsim_pxtrt.mkMap(); + s.tmp_19 = r0; + s.tmp_21 = microcode_getFilterMath__P5942_mk(s); + s.callLocIdx = 1358; s.pc = 50; return s.tmp_21; + case 50: + r0 = s.retval; + s.tmp_20 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_19, "allow", s.tmp_20); + r0 = pxsim_Array__mk(); + s.tmp_22 = r0; + r0 = pxsim_Array__push(s.tmp_22, 97); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_19, "disallow", s.tmp_22); + r0 = s.tmp_19; + { step = 44; continue; } + case 9: + r0 = pxsim_pxtrt.mkMap(); + s.tmp_23 = r0; + s.tmp_25 = microcode_getFilterMath__P5942_mk(s); + s.callLocIdx = 1359; s.pc = 51; return s.tmp_25; + case 51: + r0 = s.retval; + s.tmp_24 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_23, "allow", s.tmp_24); + r0 = pxsim_Array__mk(); + s.tmp_26 = r0; + r0 = pxsim_Array__push(s.tmp_26, 17); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_23, "provides", s.tmp_26); + r0 = s.tmp_23; + { step = 44; continue; } + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + r0 = pxsim_Array__mk(); + s.tmp_27 = r0; + r0 = pxsim_Array__push(s.tmp_27, "up_down_event"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_28 = r0; + s.tmp_30 = helpers_arrayConcat__P2142_mk(s); + s.tmp_31 = microcode_getFilterMath__P5942_mk(s); + s.callLocIdx = 1360; s.pc = 53; return s.tmp_31; + case 53: + r0 = s.retval; + s.tmp_30.arg0 = r0; + s.tmp_30.arg1 = s.tmp_27; + s.callLocIdx = 1361; s.pc = 52; return s.tmp_30; + case 52: + r0 = s.retval; + s.tmp_29 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_28, "allow", s.tmp_29); + r0 = s.tmp_28; + { step = 44; continue; } + case 18: + r0 = pxsim_Array__mk(); + s.tmp_32 = r0; + r0 = pxsim_Array__push(s.tmp_32, "on_off_event"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_33 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_33, "only", s.tmp_32); + r0 = s.tmp_33; + { step = 44; continue; } + case 19: + r0 = pxsim_Array__mk(); + s.tmp_34 = r0; + r0 = pxsim_Array__push(s.tmp_34, 87); + r0 = pxsim_Array__push(s.tmp_34, 88); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_35 = r0; + s.tmp_37 = helpers_arrayConcat__P2142_mk(s); + s.tmp_38 = microcode_getFilterMath__P5942_mk(s); + s.callLocIdx = 1362; s.pc = 55; return s.tmp_38; + case 55: + r0 = s.retval; + s.tmp_37.arg0 = r0; + s.tmp_37.arg1 = s.tmp_34; + s.callLocIdx = 1363; s.pc = 54; return s.tmp_37; + case 54: + r0 = s.retval; + s.tmp_36 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_35, "allow", s.tmp_36); + r0 = s.tmp_35; + { step = 44; continue; } + case 20: + r0 = pxsim_Array__mk(); + s.tmp_39 = r0; + r0 = pxsim_Array__push(s.tmp_39, "rotary_event"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_40 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_40, "only", s.tmp_39); + r0 = s.tmp_40; + { step = 44; continue; } + case 21: + r0 = pxsim_Array__mk(); + s.tmp_41 = r0; + r0 = pxsim_Array__push(s.tmp_41, "line"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_42 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_42, "only", s.tmp_41); + r0 = s.tmp_42; + { step = 44; continue; } + case 22: + r0 = pxsim_Array__mk(); + s.tmp_43 = r0; + r0 = pxsim_Array__push(s.tmp_43, "timespan"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_44 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_44, "only", s.tmp_43); + r0 = s.tmp_44; + { step = 44; continue; } + case 23: + r0 = pxsim_Array__mk(); + s.tmp_45 = r0; + r0 = pxsim_Array__push(s.tmp_45, "accel_event"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_46 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_46, "only", s.tmp_45); + r0 = s.tmp_46; + { step = 44; continue; } + case 24: + r0 = pxsim_Array__mk(); + s.tmp_47 = r0; + r0 = pxsim_Array__push(s.tmp_47, "icon_editor"); + r0 = pxsim_Array__push(s.tmp_47, "loop"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_48 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_48, "only", s.tmp_47); + r0 = s.tmp_48; + { step = 44; continue; } + case 25: + r0 = pxsim_Array__mk(); + s.tmp_49 = r0; + r0 = pxsim_Array__push(s.tmp_49, "sound_emoji"); + r0 = pxsim_Array__push(s.tmp_49, "loop"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_50 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_50, "only", s.tmp_49); + r0 = s.tmp_50; + { step = 44; continue; } + case 26: + r0 = pxsim_Array__mk(); + s.tmp_51 = r0; + r0 = pxsim_Array__push(s.tmp_51, "melody_editor"); + r0 = pxsim_Array__push(s.tmp_51, "loop"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_52 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_52, "only", s.tmp_51); + r0 = s.tmp_52; + { step = 44; continue; } + case 27: + case 28: + case 29: + case 30: + case 31: + r0 = pxsim_numops_toBoolDecr(globals.microcodeClassic___4785); + if (!r0) { step = 32; continue; } + r0 = pxsim_Array__mk(); + s.tmp_53 = r0; + r0 = pxsim_Array__push(s.tmp_53, "variable"); + r0 = pxsim_Array__push(s.tmp_53, "constant"); + r0 = s.tmp_53; + { step = 33; continue; } + case 32: + r0 = pxsim_Array__mk(); + s.tmp_54 = r0; + r0 = pxsim_Array__push(s.tmp_54, "variable"); + r0 = pxsim_Array__push(s.tmp_54, "maths"); + r0 = pxsim_Array__push(s.tmp_54, "decimal_editor"); + r0 = s.tmp_54; + case 33: + // jmp value (already in r0) + s.tmp_55 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_56 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_56, "only", s.tmp_55); + r0 = s.tmp_56; + { step = 44; continue; } + case 34: + r0 = pxsim_Array__mk(); + s.tmp_57 = r0; + r0 = pxsim_Array__push(s.tmp_57, "rgb_led"); + r0 = pxsim_Array__push(s.tmp_57, "loop"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_58 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_58, "only", s.tmp_57); + r0 = s.tmp_58; + { step = 44; continue; } + case 35: + case 36: + case 37: + case 38: + r0 = pxsim_Array__mk(); + s.tmp_59 = r0; + r0 = pxsim_Array__push(s.tmp_59, "pos_int_editor"); + r0 = pxsim_Array__push(s.tmp_59, 212); + r0 = pxsim_Array__push(s.tmp_59, 210); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_60 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_60, "only", s.tmp_59); + r0 = s.tmp_60; + { step = 44; continue; } + case 39: + r0 = pxsim_Array__mk(); + s.tmp_61 = r0; + r0 = pxsim_Array__push(s.tmp_61, "page"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_62 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_62, "only", s.tmp_61); + r0 = s.tmp_62; + { step = 44; continue; } + case 40: + r0 = pxsim_Array__mk(); + s.tmp_63 = r0; + r0 = pxsim_Array__push(s.tmp_63, "car"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_64 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_64, "only", s.tmp_63); + r0 = s.tmp_64; + { step = 44; continue; } + case 41: + case 42: + r0 = pxsim_Array__mk(); + s.tmp_65 = r0; + r0 = pxsim_Array__push(s.tmp_65, "on_off"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_66 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_66, "only", s.tmp_65); + r0 = s.tmp_66; + { step = 44; continue; } + case 43: r0 = undefined; + case 44: return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_constructor__P3781.info = {"start":1931,"length":112,"line":49,"column":8,"endLine":53,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["this"]} +microcode_getConstraints__P4424.info = {"start":19661,"length":4100,"line":614,"column":4,"endLine":723,"endColumn":5,"fileName":"tiles.ts","functionName":"getConstraints","argumentNames":["tile"]} -function user_interface_base_RowNavigator_constructor__P3781_mk(s) { +function microcode_getConstraints__P4424_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_constructor__P3781, depth: s.depth + 1, + parent: s, fn: microcode_getConstraints__P4424, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tmp_23: undefined, + tmp_24: undefined, + tmp_25: undefined, + tmp_26: undefined, + tmp_27: undefined, + tmp_28: undefined, + tmp_29: undefined, + tmp_30: undefined, + tmp_31: undefined, + tmp_32: undefined, + tmp_33: undefined, + tmp_34: undefined, + tmp_35: undefined, + tmp_36: undefined, + tmp_37: undefined, + tmp_38: undefined, + tmp_39: undefined, + tmp_40: undefined, + tmp_41: undefined, + tmp_42: undefined, + tmp_43: undefined, + tmp_44: undefined, + tmp_45: undefined, + tmp_46: undefined, + tmp_47: undefined, + tmp_48: undefined, + tmp_49: undefined, + tmp_50: undefined, + tmp_51: undefined, + tmp_52: undefined, + tmp_53: undefined, + tmp_54: undefined, + tmp_55: undefined, + tmp_56: undefined, + tmp_57: undefined, + tmp_58: undefined, + tmp_59: undefined, + tmp_60: undefined, + tmp_61: undefined, + tmp_62: undefined, + tmp_63: undefined, + tmp_64: undefined, + tmp_65: undefined, + tmp_66: undefined, + tid___18647: undefined, arg0: undefined, } } - -function user_interface_base_Picker_constructor__P3755(s) { +function disallow_inline__P18655(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43888,52 +49491,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Picker__C3748_VT)) failedCast(r0, user_interface_base_Picker__C3748_VT); - r0 = (s.arg0).fields["cursor"] = (s.arg1); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 706; s.pc = 1; return s.tmp_1; + s.tmp_1 = microcode_getKindTid__P4432_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1355; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); - r0 = (s.arg0).fields["group"] = (undefined); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_PickerNavigator__C3803_VT); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_PickerNavigator_constructor__P3804_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.arg0; - s.callLocIdx = 707; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - r0 = (s.arg0).fields["navigator"] = (s.tmp_0); - r0 = undefined; + r0 = (s.tmp_0 == 3); return leave(s, r0) default: oops() } } } -user_interface_base_Picker_constructor__P3755.info = {"start":4351,"length":175,"line":132,"column":8,"endLine":136,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":["this","cursor"]} +disallow_inline__P18655.info = {"start":19902,"length":54,"line":620,"column":20,"endLine":620,"endColumn":74,"fileName":"tiles.ts","functionName":"inline","argumentNames":["tid"]} -function user_interface_base_Picker_constructor__P3755_mk(s) { +function disallow_inline__P18655_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Picker_constructor__P3755, depth: s.depth + 1, + parent: s, fn: disallow_inline__P18655, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Cursor_constructor__P3730(s) { +function microcode_getFilterMath__P5942(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -43943,65 +49528,33 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - r0 = (s.arg0).fields["visible"] = (true); - r0 = (s.arg0).fields["resetOutlineColourOnMove"] = (false); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 613; s.pc = 1; return s.tmp_1; + r0 = pxsim_numops_toBoolDecr(globals.microcodeClassic___4785); + if (!r0) { step = 1; continue; } + r0 = globals.only5___5940; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = (s.arg0).fields["xfrm"] = (s.tmp_0); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["cancelHandlerStack"] = (s.tmp_1); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = 0; - s.callLocIdx = 614; s.pc = 2; return s.tmp_1; + r0 = globals.filterMath___5941; case 2: - r0 = s.retval; - r0 = (s.arg0).fields["moveDest"] = (s.tmp_0); - r0 = (s.arg0).fields["borderThickness"] = (3); - s.tmp_0 = user_interface_base_Cursor_setSize__P3734_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = undefined; - s.callLocIdx = 615; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = (s.arg0).fields["cursorOutlineColour"] = (9); - r0 = undefined; + // jmp value (already in r0) + s.tmp_0 = r0; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_constructor__P3730.info = {"start":2113,"length":236,"line":60,"column":4,"endLine":68,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"inline","argumentNames":["this"]} +microcode_getFilterMath__P5942.info = {"start":19570,"length":85,"line":610,"column":4,"endLine":612,"endColumn":5,"fileName":"tiles.ts","functionName":"getFilterMath","argumentNames":[]} -function user_interface_base_Cursor_constructor__P3730_mk(s) { +function microcode_getFilterMath__P5942_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_constructor__P3730, depth: s.depth + 1, + parent: s, fn: microcode_getFilterMath__P5942, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, } } - -function user_interface_base_CursorScene_back__P3833(s) { +function microcode_mkConstraints__P5903(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44011,59 +49564,49 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); - s.tmp_3 = user_interface_base_Cursor_cancel__P3740_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 839; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + s.c___18748 = undefined; + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_4 = user_interface_base_CursorScene__C3826_v6_2_mk(s); - s.tmp_4.arg0 = s.arg0; - s.tmp_4.arg1 = 4; - if (!checkSubtype(s.tmp_4.arg0, user_interface_base_CursorScene__C3826_VT)) failedCast(s.tmp_4.arg0, user_interface_base_CursorScene__C3826_VT); - s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.moveCursor; - s.pc = 4; return s.tmp_4; - case 4: - r0 = s.retval; - case 1: - case 2: - r0 = undefined; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "provides", s.tmp_1); + r0 = pxsim_Array__mk(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "only", s.tmp_2); + r0 = pxsim_Array__mk(); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "requires", s.tmp_3); + r0 = pxsim_Array__mk(); + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "allow", s.tmp_4); + r0 = pxsim_Array__mk(); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "disallow", s.tmp_5); + s.c___18748 = (s.tmp_0); + r0 = s.c___18748; return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_back__P3833.info = {"start":2883,"length":79,"line":108,"column":4,"endLine":110,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"back","argumentNames":["this"]} +microcode_mkConstraints__P5903.info = {"start":12495,"length":228,"line":383,"column":4,"endLine":392,"endColumn":5,"fileName":"language.ts","functionName":"mkConstraints","argumentNames":[]} -function user_interface_base_CursorScene_back__P3833_mk(s) { +function microcode_mkConstraints__P5903_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_back__P3833, depth: s.depth + 1, + parent: s, fn: microcode_mkConstraints__P5903, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - arg0: undefined, + tmp_5: undefined, + c___18748: undefined, } } - -function user_interface_base_Cursor_cancel__P3740(s) { +function microcode_isTerminal__P4418(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44073,48 +49616,141 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tid___18757 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - r0 = s.arg0.fields["cancelHandlerStack"]; - s.tmp_1 = r0; - r0 = pxsim_Array__length(s.tmp_1); + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1326; s.pc = 20; return s.tmp_0; + case 20: + r0 = s.retval; + s.tid___18757 = (r0); + s.tmp_1 = microcode_classicTerminal__P5934_mk(s); + s.tmp_1.arg0 = s.tid___18757; + s.callLocIdx = 1327; s.pc = 21; return s.tmp_1; + case 21: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_2 = lambda_1_mk(s); - r0 = s.arg0.fields["cancelHandlerStack"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["cancelHandlerStack"]; + r0 = true; + { step = 19; continue; } + case 1: + case 2: + s.tmp_3 = microcode_isPage__P5930_mk(s); + s.tmp_3.arg0 = s.tid___18757; + s.callLocIdx = 1328; s.pc = 22; return s.tmp_3; + case 22: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + r0 = true; + { step = 19; continue; } + case 3: + case 4: + s.tmp_7 = microcode_isFilter__P4410_mk(s); + s.tmp_7.arg0 = s.tid___18757; + s.callLocIdx = 1329; s.pc = 23; return s.tmp_7; + case 23: + r0 = s.retval; s.tmp_6 = r0; - r0 = pxsim_Array__length(s.tmp_6); + r0 = pxsim_numops_toBoolDecr(s.tmp_6); s.tmp_5 = r0; - r0 = (s.tmp_5 - 1); + r0 = pxsim_Boolean__bang(s.tmp_5); s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_3, s.tmp_4); - s.tmp_2.argL = r0; - setupLambda(s.tmp_2, s.tmp_2.argL); - s.callLocIdx = 650; s.pc = 4; return s.tmp_2; - case 4: + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 5; continue; } + r0 = false; + { step = 19; continue; } + case 5: + case 6: + s.tmp_9 = microcode_isConstant__P4415_mk(s); + s.tmp_9.arg0 = s.tid___18757; + s.callLocIdx = 1330; s.pc = 24; return s.tmp_9; + case 24: r0 = s.retval; - r0 = true; - { step = 3; continue; } - case 1: - case 2: + s.tmp_8 = r0; + r0 = pxsim_numops_toBool(s.tmp_8); + if (!r0) { step = 7; continue; } + r0 = s.tmp_8; + { step = 8; continue; } + case 7: + s.tmp_10 = microcode_isTimespan__P5928_mk(s); + s.tmp_10.arg0 = s.tid___18757; + s.callLocIdx = 1331; s.pc = 25; return s.tmp_10; + case 25: + r0 = s.retval; + case 8: + // jmp value (already in r0) + s.tmp_11 = r0; + r0 = pxsim_numops_toBool(s.tmp_11); + if (!r0) { step = 9; continue; } + r0 = s.tmp_11; + { step = 10; continue; } + case 9: + s.tmp_12 = microcode_isVariable__P5927_mk(s); + s.tmp_12.arg0 = s.tid___18757; + s.callLocIdx = 1332; s.pc = 26; return s.tmp_12; + case 26: + r0 = s.retval; + case 10: + // jmp value (already in r0) + s.tmp_13 = r0; + r0 = pxsim_numops_toBool(s.tmp_13); + if (!r0) { step = 11; continue; } + r0 = s.tmp_13; + { step = 12; continue; } + case 11: + s.tmp_14 = microcode_isMathOperator__P4413_mk(s); + s.tmp_14.arg0 = s.tid___18757; + s.callLocIdx = 1333; s.pc = 27; return s.tmp_14; + case 27: + r0 = s.retval; + case 12: + // jmp value (already in r0) + s.tmp_15 = r0; + r0 = pxsim_numops_toBool(s.tmp_15); + if (!r0) { step = 13; continue; } + r0 = s.tmp_15; + { step = 14; continue; } + case 13: + s.tmp_16 = microcode_isComparisonOperator__P4414_mk(s); + s.tmp_16.arg0 = s.tid___18757; + s.callLocIdx = 1334; s.pc = 28; return s.tmp_16; + case 28: + r0 = s.retval; + case 14: + // jmp value (already in r0) + s.tmp_17 = r0; + r0 = pxsim_numops_toBool(s.tmp_17); + if (!r0) { step = 15; continue; } + r0 = s.tmp_17; + { step = 16; continue; } + case 15: + r0 = (s.tid___18757 == 255); + case 16: + // jmp value (already in r0) + s.tmp_18 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_18); + if (!r0) { step = 17; continue; } r0 = false; - case 3: + { step = 19; continue; } + case 17: + case 18: + r0 = true; + case 19: return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_cancel__P3740.info = {"start":4945,"length":193,"line":173,"column":4,"endLine":179,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"cancel","argumentNames":["this"]} +microcode_isTerminal__P4418.info = {"start":12142,"length":686,"line":389,"column":4,"endLine":408,"endColumn":5,"fileName":"tiles.ts","functionName":"isTerminal","argumentNames":["tile"]} -function user_interface_base_Cursor_cancel__P3740_mk(s) { +function microcode_isTerminal__P4418_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_cancel__P3740, depth: s.depth + 1, + parent: s, fn: microcode_isTerminal__P4418, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -44123,14 +49759,26 @@ function user_interface_base_Cursor_cancel__P3740_mk(s) { tmp_4: undefined, tmp_5: undefined, tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tid___18757: undefined, arg0: undefined, } } - -function user_interface_base_Cursor_click__P3739(s) { +function microcode_classicTerminal__P5934(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44140,87 +49788,163 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.target___17121 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - s.tmp_0 = if_getCurrent_1_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "getCurrent"), 1); - s.callLocIdx = 645; s.pc = 6; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["getCurrent"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["getCurrent"], 1); s.callLocIdx = 645; s.pc = 6; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 645; s.pc = 6; return s.tmp_0;; } - else { s.callLocIdx = 645; s.pc = 6; return s.tmp_0; } - } - case 6: - r0 = s.retval; - s.target___17121 = (r0); - s.tmp_0 = r0 = s.target___17121; + s.tmp_0 = r0 = globals.microcodeClassic___4785; r0 = pxsim_numops_toBool(s.tmp_0); if (r0) { step = 1; continue; } r0 = s.tmp_0; - { step = 2; continue; } + { step = 26; continue; } case 1: - s.tmp_1 = user_interface_base_Button_clickable__P3682_mk(s); - s.tmp_1.arg0 = s.target___17121; - s.callLocIdx = 646; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; + r0 = (s.arg0 == 25); + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = s.tmp_1; + { step = 3; continue; } case 2: + r0 = (s.arg0 == 23); + case 3: // jmp value (already in r0) s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 3; continue; } - s.tmp_3 = user_interface_base_Button_toggleSelected__P3680_mk(s); - s.tmp_3.arg0 = s.target___17121; - s.callLocIdx = 647; s.pc = 8; return s.tmp_3; - case 8: - r0 = s.retval; - s.tmp_0 = user_interface_base_Button_click__P3683_mk(s); - s.tmp_0.arg0 = s.target___17121; - s.callLocIdx = 648; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - s.tmp_0 = user_interface_base_profile__P3843_mk(s); - s.callLocIdx = 649; s.pc = 10; return s.tmp_0; - case 10: - r0 = s.retval; - r0 = true; + r0 = pxsim_numops_toBool(s.tmp_2); + if (!r0) { step = 4; continue; } + r0 = s.tmp_2; { step = 5; continue; } - case 3: case 4: - r0 = false; + r0 = (s.arg0 == 40); case 5: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (!r0) { step = 6; continue; } + r0 = s.tmp_3; + { step = 7; continue; } + case 6: + r0 = (s.arg0 == 54); + case 7: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (!r0) { step = 8; continue; } + r0 = s.tmp_4; + { step = 9; continue; } + case 8: + r0 = (s.arg0 == 15); + case 9: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBool(s.tmp_5); + if (!r0) { step = 10; continue; } + r0 = s.tmp_5; + { step = 11; continue; } + case 10: + r0 = (s.arg0 == 27); + case 11: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBool(s.tmp_6); + if (!r0) { step = 12; continue; } + r0 = s.tmp_6; + { step = 13; continue; } + case 12: + r0 = (s.arg0 == 18); + case 13: + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = pxsim_numops_toBool(s.tmp_7); + if (!r0) { step = 14; continue; } + r0 = s.tmp_7; + { step = 15; continue; } + case 14: + r0 = (s.arg0 == 22); + case 15: + // jmp value (already in r0) + s.tmp_8 = r0; + r0 = pxsim_numops_toBool(s.tmp_8); + if (!r0) { step = 16; continue; } + r0 = s.tmp_8; + { step = 17; continue; } + case 16: + r0 = (s.arg0 == 26); + case 17: + // jmp value (already in r0) + s.tmp_9 = r0; + r0 = pxsim_numops_toBool(s.tmp_9); + if (!r0) { step = 18; continue; } + r0 = s.tmp_9; + { step = 19; continue; } + case 18: + r0 = (s.arg0 == 29); + case 19: + // jmp value (already in r0) + s.tmp_10 = r0; + r0 = pxsim_numops_toBool(s.tmp_10); + if (!r0) { step = 20; continue; } + r0 = s.tmp_10; + { step = 21; continue; } + case 20: + r0 = (s.arg0 == 30); + case 21: + // jmp value (already in r0) + s.tmp_11 = r0; + r0 = pxsim_numops_toBool(s.tmp_11); + if (!r0) { step = 22; continue; } + r0 = s.tmp_11; + { step = 23; continue; } + case 22: + r0 = (s.arg0 == 55); + case 23: + // jmp value (already in r0) + s.tmp_12 = r0; + r0 = pxsim_numops_toBool(s.tmp_12); + if (!r0) { step = 24; continue; } + r0 = s.tmp_12; + { step = 25; continue; } + case 24: + r0 = (s.arg0 == 28); + case 25: + // jmp value (already in r0) + s.tmp_13 = r0; + r0 = s.tmp_13; + case 26: + // jmp value (already in r0) + s.tmp_14 = r0; + r0 = s.tmp_14; return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_click__P3739.info = {"start":4669,"length":270,"line":162,"column":4,"endLine":171,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"click","argumentNames":["this"]} +microcode_classicTerminal__P5934.info = {"start":11385,"length":751,"line":370,"column":4,"endLine":387,"endColumn":5,"fileName":"tiles.ts","functionName":"classicTerminal","argumentNames":["tid"]} -function user_interface_base_Cursor_click__P3739_mk(s) { +function microcode_classicTerminal__P5934_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_click__P3739, depth: s.depth + 1, + parent: s, fn: microcode_classicTerminal__P5934, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - target___17121: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, arg0: undefined, } } - -function user_interface_base_Button_click__P3683(s) { +function microcode_priority__P4423(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44230,69 +49954,365 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tid___18843 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - s.tmp_3 = user_interface_base_Button_clickable__P3682_mk(s); - s.tmp_3.arg0 = s.arg0; - s.callLocIdx = 576; s.pc = 8; return s.tmp_3; - case 8: + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1344; s.pc = 67; return s.tmp_0; + case 67: + r0 = s.retval; + s.tid___18843 = (r0); + s.tmp_1 = microcode_isSensorEvent__P5924_mk(s); + s.tmp_1.arg0 = s.tid___18843; + s.callLocIdx = 1345; s.pc = 68; return s.tmp_1; + case 68: r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - { step = 7; continue; } + s.tmp_2 = microcode_isSensorEvent__P5924_mk(s); + s.tmp_2.arg0 = s.tid___18843; + s.callLocIdx = 1346; s.pc = 69; return s.tmp_2; + case 69: + r0 = s.retval; + { step = 66; continue; } case 1: case 2: - r0 = s.arg0.fields["onClick"]; - s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (r0) { step = 3; continue; } - r0 = s.tmp_4; - { step = 4; continue; } - case 3: - r0 = s.arg0.fields["onClick"]; + s.tmp_4 = microcode_isFilter__P4410_mk(s); + s.tmp_4.arg0 = s.tid___18843; + s.callLocIdx = 1347; s.pc = 70; return s.tmp_4; + case 70: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 22; continue; } + s.tmp_6 = microcode_isConstant__P4415_mk(s); + s.tmp_6.arg0 = s.tid___18843; + s.callLocIdx = 1348; s.pc = 71; return s.tmp_6; + case 71: + r0 = s.retval; s.tmp_5 = r0; - r0 = (s.tmp_5 != null); + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 3; continue; } + s.tmp_7 = microcode_getParam__P4433_mk(s); + s.tmp_7.arg0 = s.tid___18843; + s.callLocIdx = 1349; s.pc = 72; return s.tmp_7; + case 72: + r0 = s.retval; + { step = 66; continue; } + case 3: case 4: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 5; continue; } - s.tmp_7 = if_onClick_2_mk(s); - s.tmp_7.arg0 = s.arg0; - s.tmp_7.arg1 = s.arg0; - if (!s.tmp_7.arg0.vtable.iface) { - setupLambda(s.tmp_7, pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "onClick"), 2); - s.callLocIdx = 577; s.pc = 9; return s.tmp_7; - } else { - s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["onClick"]; - if (s.tmp_7.fn == null) { setupLambda(s.tmp_7, s.tmp_7.arg0.fields["onClick"], 2); s.callLocIdx = 577; s.pc = 9; return s.tmp_7; } - else if (s.tmp_7.fn.isGetter) { s.tmp_7.stage2Call = true; s.callLocIdx = 577; s.pc = 9; return s.tmp_7;; } - else { s.callLocIdx = 577; s.pc = 9; return s.tmp_7; } - } - case 9: + s.tmp_9 = microcode_isLineEvent__P5926_mk(s); + s.tmp_9.arg0 = s.tid___18843; + s.callLocIdx = 1350; s.pc = 73; return s.tmp_9; + case 73: r0 = s.retval; + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); + if (!r0) { step = 7; continue; } + r0 = (s.tid___18843 == 104); + s.tmp_10 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_10); + if (!r0) { step = 5; continue; } + r0 = 101; + { step = 66; continue; } + { step = 6; continue; } case 5: + r0 = s.tid___18843; + { step = 66; continue; } case 6: case 7: - r0 = undefined; + case 8: + s.tmp_11 = r0 = s.tid___18843; + r0 = pxsim_pxtcore.switch_eq(255, s.tmp_11); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(254, s.tmp_11); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(73, s.tmp_11); + if (r0) { step = 11; continue; } + r0 = pxsim_pxtcore.switch_eq(74, s.tmp_11); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq(77, s.tmp_11); + if (r0) { step = 13; continue; } + r0 = pxsim_pxtcore.switch_eq(70, s.tmp_11); + if (r0) { step = 14; continue; } + r0 = pxsim_pxtcore.switch_eq(71, s.tmp_11); + if (r0) { step = 15; continue; } + r0 = pxsim_pxtcore.switch_eq(72, s.tmp_11); + if (r0) { step = 16; continue; } + r0 = pxsim_pxtcore.switch_eq(83, s.tmp_11); + if (r0) { step = 17; continue; } + r0 = pxsim_pxtcore.switch_eq(84, s.tmp_11); + if (r0) { step = 18; continue; } + r0 = pxsim_pxtcore.switch_eq(86, s.tmp_11); + if (r0) { step = 19; continue; } + r0 = pxsim_pxtcore.switch_eq(85, s.tmp_11); + if (r0) { step = 20; continue; } + r0 = s.tmp_11; + { step = 21; continue; } + case 9: + case 10: + r0 = -1; + { step = 66; continue; } + case 11: + r0 = 0; + { step = 66; continue; } + case 12: + r0 = 1; + { step = 66; continue; } + case 13: + r0 = 2; + { step = 66; continue; } + case 14: + r0 = 3; + { step = 66; continue; } + case 15: + r0 = 4; + { step = 66; continue; } + case 16: + r0 = 5; + { step = 66; continue; } + case 17: + r0 = 10; + { step = 66; continue; } + case 18: + r0 = 20; + { step = 66; continue; } + case 19: + r0 = 30; + { step = 66; continue; } + case 20: + r0 = 40; + { step = 66; continue; } + case 21: + r0 = s.tid___18843; + { step = 66; continue; } + { step = 27; continue; } + case 22: + s.tmp_13 = microcode_isModifier__P4412_mk(s); + s.tmp_13.arg0 = s.tid___18843; + s.callLocIdx = 1351; s.pc = 74; return s.tmp_13; + case 74: + r0 = s.retval; + s.tmp_12 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_12); + if (!r0) { step = 25; continue; } + r0 = (s.tid___18843 == 178); + s.tmp_14 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_14); + if (!r0) { step = 23; continue; } + r0 = 1000; + { step = 66; continue; } + case 23: + case 24: + r0 = s.tid___18843; + { step = 66; continue; } + case 25: + case 26: + case 27: + s.tmp_15 = r0 = s.tid___18843; + r0 = pxsim_pxtcore.switch_eq(11, s.tmp_15); + if (r0) { step = 28; continue; } + r0 = pxsim_pxtcore.switch_eq(12, s.tmp_15); + if (r0) { step = 29; continue; } + r0 = pxsim_pxtcore.switch_eq(13, s.tmp_15); + if (r0) { step = 30; continue; } + r0 = pxsim_pxtcore.switch_eq(18, s.tmp_15); + if (r0) { step = 31; continue; } + r0 = pxsim_pxtcore.switch_eq(16, s.tmp_15); + if (r0) { step = 32; continue; } + r0 = pxsim_pxtcore.switch_eq(27, s.tmp_15); + if (r0) { step = 33; continue; } + r0 = pxsim_pxtcore.switch_eq(22, s.tmp_15); + if (r0) { step = 34; continue; } + r0 = pxsim_pxtcore.switch_eq(17, s.tmp_15); + if (r0) { step = 35; continue; } + r0 = pxsim_pxtcore.switch_eq(14, s.tmp_15); + if (r0) { step = 36; continue; } + r0 = pxsim_pxtcore.switch_eq(10, s.tmp_15); + if (r0) { step = 37; continue; } + r0 = pxsim_pxtcore.switch_eq(19, s.tmp_15); + if (r0) { step = 38; continue; } + r0 = pxsim_pxtcore.switch_eq(20, s.tmp_15); + if (r0) { step = 39; continue; } + r0 = pxsim_pxtcore.switch_eq(21, s.tmp_15); + if (r0) { step = 40; continue; } + r0 = pxsim_pxtcore.switch_eq(25, s.tmp_15); + if (r0) { step = 41; continue; } + r0 = pxsim_pxtcore.switch_eq(26, s.tmp_15); + if (r0) { step = 42; continue; } + r0 = pxsim_pxtcore.switch_eq(23, s.tmp_15); + if (r0) { step = 43; continue; } + r0 = pxsim_pxtcore.switch_eq(24, s.tmp_15); + if (r0) { step = 44; continue; } + r0 = pxsim_pxtcore.switch_eq(15, s.tmp_15); + if (r0) { step = 45; continue; } + r0 = pxsim_pxtcore.switch_eq(24, s.tmp_15); + if (r0) { step = 46; continue; } + r0 = pxsim_pxtcore.switch_eq(30, s.tmp_15); + if (r0) { step = 47; continue; } + r0 = pxsim_pxtcore.switch_eq(29, s.tmp_15); + if (r0) { step = 48; continue; } + r0 = pxsim_pxtcore.switch_eq(28, s.tmp_15); + if (r0) { step = 49; continue; } + r0 = pxsim_pxtcore.switch_eq(44, s.tmp_15); + if (r0) { step = 50; continue; } + r0 = pxsim_pxtcore.switch_eq(51, s.tmp_15); + if (r0) { step = 51; continue; } + r0 = pxsim_pxtcore.switch_eq(41, s.tmp_15); + if (r0) { step = 52; continue; } + r0 = pxsim_pxtcore.switch_eq(43, s.tmp_15); + if (r0) { step = 53; continue; } + r0 = pxsim_pxtcore.switch_eq(45, s.tmp_15); + if (r0) { step = 54; continue; } + r0 = pxsim_pxtcore.switch_eq(46, s.tmp_15); + if (r0) { step = 55; continue; } + r0 = pxsim_pxtcore.switch_eq(40, s.tmp_15); + if (r0) { step = 56; continue; } + r0 = pxsim_pxtcore.switch_eq(48, s.tmp_15); + if (r0) { step = 57; continue; } + r0 = pxsim_pxtcore.switch_eq(49, s.tmp_15); + if (r0) { step = 58; continue; } + r0 = pxsim_pxtcore.switch_eq(50, s.tmp_15); + if (r0) { step = 59; continue; } + r0 = pxsim_pxtcore.switch_eq(52, s.tmp_15); + if (r0) { step = 60; continue; } + r0 = pxsim_pxtcore.switch_eq(47, s.tmp_15); + if (r0) { step = 61; continue; } + r0 = pxsim_pxtcore.switch_eq(55, s.tmp_15); + if (r0) { step = 62; continue; } + r0 = pxsim_pxtcore.switch_eq(53, s.tmp_15); + if (r0) { step = 63; continue; } + r0 = pxsim_pxtcore.switch_eq(54, s.tmp_15); + if (r0) { step = 64; continue; } + r0 = s.tmp_15; + { step = 65; continue; } + case 28: + r0 = 9; + { step = 66; continue; } + case 29: + r0 = 10; + { step = 66; continue; } + case 30: + r0 = 20; + { step = 66; continue; } + case 31: + r0 = 30; + { step = 66; continue; } + case 32: + r0 = 40; + { step = 66; continue; } + case 33: + r0 = 50; + { step = 66; continue; } + case 34: + r0 = 60; + { step = 66; continue; } + case 35: + r0 = 100; + { step = 66; continue; } + case 36: + r0 = 110; + { step = 66; continue; } + case 37: + r0 = 108; + { step = 66; continue; } + case 38: + r0 = 200; + { step = 66; continue; } + case 39: + r0 = 201; + { step = 66; continue; } + case 40: + r0 = 202; + { step = 66; continue; } + case 41: + r0 = 300; + { step = 66; continue; } + case 42: + r0 = 301; + { step = 66; continue; } + case 43: + r0 = 500; + { step = 66; continue; } + case 44: + r0 = 501; + { step = 66; continue; } + case 45: + r0 = 502; + { step = 66; continue; } + case 46: + r0 = 503; + { step = 66; continue; } + case 47: + r0 = 504; + { step = 66; continue; } + case 48: + r0 = 505; + { step = 66; continue; } + case 49: + r0 = 506; + { step = 66; continue; } + case 50: + r0 = 10; + { step = 66; continue; } + case 51: + r0 = 15; + { step = 66; continue; } + case 52: + r0 = 20; + { step = 66; continue; } + case 53: + r0 = 22; + { step = 66; continue; } + case 54: + r0 = 100; + { step = 66; continue; } + case 55: + r0 = 105; + { step = 66; continue; } + case 56: + r0 = 110; + { step = 66; continue; } + case 57: + r0 = 200; + { step = 66; continue; } + case 58: + r0 = 201; + { step = 66; continue; } + case 59: + r0 = 202; + { step = 66; continue; } + case 60: + r0 = 500; + { step = 66; continue; } + case 61: + r0 = 600; + { step = 66; continue; } + case 62: + r0 = 601; + { step = 66; continue; } + case 63: + r0 = 602; + { step = 66; continue; } + case 64: + r0 = 603; + { step = 66; continue; } + case 65: + r0 = 1000; + case 66: return leave(s, r0) default: oops() } } } -user_interface_base_Button_click__P3683.info = {"start":9338,"length":161,"line":366,"column":4,"endLine":373,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"click","argumentNames":["this"]} +microcode_priority__P4423.info = {"start":14910,"length":4313,"line":468,"column":4,"endLine":593,"endColumn":5,"fileName":"tiles.ts","functionName":"priority","argumentNames":["tile"]} -function user_interface_base_Button_click__P3683_mk(s) { +function microcode_priority__P4423_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_click__P3683, depth: s.depth + 1, + parent: s, fn: microcode_priority__P4423, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -44302,14 +50322,22 @@ function user_interface_base_Button_click__P3683_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tid___18843: undefined, arg0: undefined, } } - -function user_interface_base_Button_toggleSelected__P3680(s) { +function microcode_isSensorEvent__P5924(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44323,39 +50351,46 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["selected"]; - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["selected"] = (s.tmp_1); - r0 = undefined; + r0 = pxsim_pxtcore.switch_eq(100, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(87, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(101, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(88, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = s.tmp_0; + { step = 5; continue; } + case 1: + case 2: + r0 = -10; + { step = 6; continue; } + case 3: + case 4: + r0 = -9; + { step = 6; continue; } + case 5: + r0 = 0; + case 6: return leave(s, r0) default: oops() } } } -user_interface_base_Button_toggleSelected__P3680.info = {"start":8703,"length":74,"line":340,"column":4,"endLine":342,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"toggleSelected","argumentNames":["this"]} +microcode_isSensorEvent__P5924.info = {"start":8910,"length":294,"line":279,"column":4,"endLine":289,"endColumn":5,"fileName":"tiles.ts","functionName":"isSensorEvent","argumentNames":["tid"]} -function user_interface_base_Button_toggleSelected__P3680_mk(s) { +function microcode_isSensorEvent__P5924_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_toggleSelected__P3680, depth: s.depth + 1, + parent: s, fn: microcode_isSensorEvent__P5924, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, } } - -function user_interface_base_Button_clickable__P3682(s) { +function microcode_isVisible__P4419(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44365,92 +50400,95 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tid___18937 = undefined; + s.ext___18960 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - r0 = s.arg0.fields["icon"]; - r0 = r0.fields["invisible"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1335; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.tid___18937 = (r0); + r0 = (s.tid___18937 == 42); s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } + if (!r0) { step = 1; continue; } r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = s.arg0.fields["pressable"]; + r0 = (s.tid___18937 == 89); case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = s.tmp_1; + { step = 4; continue; } + case 3: + r0 = (s.tid___18937 == 25); + case 4: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); + if (!r0) { step = 5; continue; } + r0 = s.tmp_2; + { step = 6; continue; } + case 5: + r0 = (s.tid___18937 == 26); + case 6: // jmp value (already in r0) s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (!r0) { step = 7; continue; } r0 = s.tmp_3; + { step = 8; continue; } + case 7: + r0 = (s.tid___18937 == 52); + case 8: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 9; continue; } + r0 = false; + { step = 11; continue; } + case 9: + case 10: + s.tmp_5 = microcode_jdExternalClass__P4436_mk(s); + s.tmp_5.arg0 = s.arg0; + s.callLocIdx = 1336; s.pc = 13; return s.tmp_5; + case 13: + r0 = s.retval; + s.ext___18960 = (r0); + r0 = (s.ext___18960 == undefined); + case 11: return leave(s, r0) default: oops() } } } -user_interface_base_Button_clickable__P3682.info = {"start":9177,"length":72,"line":359,"column":4,"endLine":361,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"clickable","argumentNames":["this"]} +microcode_isVisible__P4419.info = {"start":12834,"length":523,"line":410,"column":4,"endLine":425,"endColumn":5,"fileName":"tiles.ts","functionName":"isVisible","argumentNames":["tile"]} -function user_interface_base_Button_clickable__P3682_mk(s) { +function microcode_isVisible__P4419_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_clickable__P3682, depth: s.depth + 1, + parent: s, fn: microcode_isVisible__P4419, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tid___18937: undefined, + ext___18960: undefined, arg0: undefined, } } - -function user_interface_base_ButtonBase_visible__P3660(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - r0 = s.arg0.fields["icon"]; - r0 = r0.fields["invisible"]; - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_Boolean__bang(s.tmp_0); - return leave(s, r0) - default: oops() -} } } -user_interface_base_ButtonBase_visible__P3660.info = {"start":3532,"length":58,"line":157,"column":4,"endLine":159,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"visible","argumentNames":["this"]} - -function user_interface_base_ButtonBase_visible__P3660_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: user_interface_base_ButtonBase_visible__P3660, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - arg0: undefined, -} } - - - - - -function user_interface_base_CursorScene_moveCursor__P3831(s) { +function microcode_jdExternalClass__P4436(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44460,126 +50498,100 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.e___17171 = undefined; + s.tid___18968 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); - r0 = pxsim_pxtcore.beginTry(1); - s.tmp_0 = user_interface_base_CursorScene_moveTo__P5298_mk(s); + s.tmp_0 = microcode_getTid__P4194_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_1 = user_interface_base_Cursor_move__P3738_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.arg1; - s.callLocIdx = 816; s.pc = 13; return s.tmp_1; - case 13: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 817; s.pc = 12; return s.tmp_0; - case 12: + s.callLocIdx = 1386; s.pc = 15; return s.tmp_0; + case 15: r0 = s.retval; - r0 = pxsim_pxtcore.endTry(); - { step = 10; continue; } - case 1: - r0 = pxsim_pxtcore.getThrownValue(); - s.e___17171 = (r0); - r0 = (s.arg1 === 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + s.tid___18968 = (r0); + s.tmp_0 = r0 = s.tid___18968; + r0 = pxsim_pxtcore.switch_eq(75, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(76, s.tmp_0); if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(23, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(15, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(24, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(47, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(53, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(55, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(54, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(28, s.tmp_0); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(29, s.tmp_0); + if (r0) { step = 11; continue; } + r0 = pxsim_pxtcore.switch_eq(30, s.tmp_0); + if (r0) { step = 12; continue; } r0 = s.tmp_0; - { step = 3; continue; } + { step = 13; continue; } + case 1: case 2: - s.tmp_2 = if_kind_1_mk(s); - s.tmp_2.arg0 = s.e___17171; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "kind"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["kind"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["kind"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 818; s.pc = 14; return s.tmp_2; } - } - case 14: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 === globals.BACK_BUTTON_ERROR_KIND___3775); + r0 = 343122531; + { step = 14; continue; } case 3: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 4; continue; } - s.tmp_4 = user_interface_base_CursorScene_back__P3833_mk(s); - s.tmp_4.arg0 = s.arg0; - s.callLocIdx = 819; s.pc = 15; return s.tmp_4; - case 15: - r0 = s.retval; - { step = 9; continue; } + r0 = 522667846; + { step = 14; continue; } case 4: - r0 = (s.arg1 === 1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 5; continue; } - r0 = s.tmp_0; - { step = 6; continue; } + r0 = 400333340; + { step = 14; continue; } case 5: - s.tmp_2 = if_kind_1_mk(s); - s.tmp_2.arg0 = s.e___17171; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "kind"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["kind"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["kind"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 820; s.pc = 16; return s.tmp_2; } - } - case 16: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 === globals.FORWARD_BUTTON_ERROR_KIND___3776); + r0 = 284830153; + { step = 14; continue; } case 6: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 7; continue; } - { step = 11; continue; } - { step = 8; continue; } + r0 = 369743088; + { step = 14; continue; } case 7: - r0 = pxsim_pxtcore.throwValue(s.e___17171); case 8: + r0 = 318542083; + { step = 14; continue; } case 9: + r0 = 406840918; + { step = 14; continue; } case 10: + r0 = 491430835; + { step = 14; continue; } case 11: + r0 = 337275786; + { step = 14; continue; } + case 12: + r0 = 309087410; + { step = 14; continue; } + case 13: r0 = undefined; + { step = 14; continue; } + r0 = undefined; + case 14: return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_moveCursor__P3831.info = {"start":758,"length":366,"line":26,"column":4,"endLine":39,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"moveCursor","argumentNames":["this","dir"]} +microcode_jdExternalClass__P4436.info = {"start":33468,"length":1344,"line":980,"column":4,"endLine":1011,"endColumn":5,"fileName":"tiles.ts","functionName":"jdExternalClass","argumentNames":["tile"]} -function user_interface_base_CursorScene_moveCursor__P3831_mk(s) { +function microcode_jdExternalClass__P4436_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_moveCursor__P3831, depth: s.depth + 1, + parent: s, fn: microcode_jdExternalClass__P4436, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - e___17171: undefined, + tid___18968: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Cursor_move__P3738(s) { +function helpers_arraySort__P2134(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44594,34 +50606,46 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Cursor__C3718_VT)) failedCast(r0, user_interface_base_Cursor__C3718_VT); - s.tmp_0 = if_move_2_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "move"), 2); - s.callLocIdx = 644; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["move"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["move"], 2); s.callLocIdx = 644; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 644; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 644; s.pc = 1; return s.tmp_0; } - } + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = pxsim_Array__length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_2 > 1); + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 3; continue; } + s.arg1 = (helpers_arraySort_inline__P19006); + case 3: + case 4: + s.tmp_0 = helpers_sortHelper__P4816_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 3; s.pc = 5; return s.tmp_0; + case 5: r0 = s.retval; return leave(s, r0) default: oops() } } } -user_interface_base_Cursor_move__P3738.info = {"start":4501,"length":81,"line":154,"column":4,"endLine":156,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"move","argumentNames":["this","dir"]} +helpers_arraySort__P2134.info = {"start":5663,"length":859,"line":207,"column":4,"endLine":227,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arraySort","argumentNames":["arr","callbackfn"]} -function user_interface_base_Cursor_move__P3738_mk(s) { +function helpers_arraySort__P2134_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Cursor_move__P3738, depth: s.depth + 1, + parent: s, fn: helpers_arraySort__P2134, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, arg1: undefined, } } @@ -44629,8 +50653,7 @@ function user_interface_base_Cursor_move__P3738_mk(s) { - -function user_interface_base_CursorScene_moveTo__P5298(s) { +function helpers_arraySort_inline__P19006(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44640,60 +50663,133 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.aIsUndef___19009 = undefined; + s.bIsUndef___19013 = undefined; + s.aIsNull___19024 = undefined; + s.bIsNull___19028 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 3; continue; } + r0 = (s.arg0 === undefined); + s.aIsUndef___19009 = (r0); + r0 = (s.arg1 === undefined); + s.bIsUndef___19013 = (r0); + s.tmp_0 = r0 = s.aIsUndef___19009; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = s.bIsUndef___19013; case 2: - s.tmp_2 = user_interface_base_Cursor_moveTo__P3731_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_2.arg0 = r0; - s.tmp_3 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.arg1.fields["xfrm_"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 822; s.pc = 5; return s.tmp_3; + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = 0; + { step = 17; continue; } + { step = 8; continue; } + case 3: + r0 = pxsim_numops_toBoolDecr(s.aIsUndef___19009); + if (!r0) { step = 4; continue; } + r0 = 1; + { step = 17; continue; } + { step = 7; continue; } + case 4: + r0 = pxsim_numops_toBoolDecr(s.bIsUndef___19013); + if (!r0) { step = 5; continue; } + r0 = -1; + { step = 17; continue; } case 5: - r0 = s.retval; - s.tmp_2.arg1 = r0; - r0 = s.arg1.fields["_ariaId"]; - s.tmp_2.arg2 = r0; - s.tmp_4 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_4.arg0 = s.arg1; - s.callLocIdx = 824; s.pc = 6; return s.tmp_4; case 6: + case 7: + case 8: + r0 = (s.arg0 === null); + s.aIsNull___19024 = (r0); + r0 = (s.arg1 === null); + s.bIsNull___19028 = (r0); + s.tmp_0 = r0 = s.aIsNull___19024; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 9; continue; } + r0 = s.tmp_0; + { step = 10; continue; } + case 9: + r0 = s.bIsNull___19028; + case 10: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 11; continue; } + r0 = 0; + { step = 17; continue; } + { step = 16; continue; } + case 11: + r0 = pxsim_numops_toBoolDecr(s.aIsNull___19024); + if (!r0) { step = 12; continue; } + r0 = 1; + { step = 17; continue; } + { step = 15; continue; } + case 12: + r0 = pxsim_numops_toBoolDecr(s.bIsNull___19028); + if (!r0) { step = 13; continue; } + r0 = -1; + { step = 17; continue; } + case 13: + case 14: + case 15: + case 16: + if ((s.arg0) && (s.arg0).vtable) { + setupResume(s, 18); + pxsim_String__stringConv(s.arg0); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg0) + ""; } + case 18: r0 = s.retval; - s.tmp_2.arg3 = r0; - s.callLocIdx = 825; s.pc = 4; return s.tmp_2; - case 4: + s.tmp_3 = r0; + r0 = pxsim_String_.mkEmpty(); + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); + s.tmp_2 = r0; + if ((s.arg1) && (s.arg1).vtable) { + setupResume(s, 19); + pxsim_String__stringConv(s.arg1); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg1) + ""; } + case 19: r0 = s.retval; - case 3: - r0 = undefined; + s.tmp_6 = r0; + r0 = pxsim_String_.mkEmpty(); + s.tmp_7 = r0; + r0 = pxsim_String__concat(s.tmp_6, s.tmp_7); + s.tmp_5 = r0; + r0 = pxsim_String_.compare(s.tmp_2, s.tmp_5); + case 17: return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_moveTo__P5298.info = {"start":1130,"length":175,"line":41,"column":4,"endLine":48,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"moveTo","argumentNames":["this","target"]} +helpers_arraySort_inline__P19006.info = {"start":5826,"length":636,"line":209,"column":25,"endLine":224,"endColumn":13,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"inline","argumentNames":["a","b"]} -function user_interface_base_CursorScene_moveTo__P5298_mk(s) { +function helpers_arraySort_inline__P19006_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_moveTo__P5298, depth: s.depth + 1, + parent: s, fn: helpers_arraySort_inline__P19006, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + aIsUndef___19009: undefined, + bIsUndef___19013: undefined, + aIsNull___19024: undefined, + bIsNull___19028: undefined, arg0: undefined, arg1: undefined, } } @@ -44701,8 +50797,7 @@ function user_interface_base_CursorScene_moveTo__P5298_mk(s) { - -function controller_Button_toString__P3251(s) { +function helpers_sortHelper__P4816(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44712,73 +50807,113 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.len___19063 = undefined; + s.i___19066 = undefined; + s.j___19072 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, controller_Button__C3246_VT)) failedCast(r0, controller_Button__C3246_VT); - r0 = s.arg0.fields["_pressed"]; + r0 = pxsim_Array__length(s.arg0); + s.tmp_1 = r0; + r0 = (s.tmp_1 <= 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = "down"; + r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = "up"; + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); case 2: // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.arg0.fields["id"]; - s.tmp_5 = r0; - if ((s.tmp_5) && (s.tmp_5).vtable) { - setupResume(s, 3); - pxsim_String__stringConv(s.tmp_5); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_5) + ""; } + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 3; continue; } + r0 = s.arg0; + { step = 11; continue; } case 3: + case 4: + r0 = pxsim_Array__length(s.arg0); + s.len___19063 = (r0); + s.i___19066 = (0); + case 5: + s.tmp_1 = r0 = s.i___19066; + r0 = (s.len___19063 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + r0 = (s.i___19066 + 1); + s.j___19072 = (r0); + case 6: + r0 = (s.j___19072 < s.len___19063); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + s.tmp_3 = lambda_3_mk(s); + s.tmp_3.argL = s.arg1; + r0 = pxsim_Array__getAt(s.arg0, s.i___19066); + s.tmp_3.arg0 = r0; + r0 = pxsim_Array__getAt(s.arg0, s.j___19072); + s.tmp_3.arg1 = r0; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 1; s.pc = 12; return s.tmp_3; + case 12: r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat("btn ", s.tmp_4); - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_3, " "); s.tmp_2 = r0; - if ((s.tmp_1) && (s.tmp_1).vtable) { - setupResume(s, 4); - pxsim_String__stringConv(s.tmp_1); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_1) + ""; } - case 4: + r0 = (s.tmp_2 > 0); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 7; continue; } + s.tmp_4 = helpers_swap__P4815_mk(s); + s.tmp_4.arg0 = s.arg0; + s.tmp_4.arg1 = s.i___19066; + s.tmp_4.arg2 = s.j___19072; + s.callLocIdx = 2; s.pc = 13; return s.tmp_4; + case 13: r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_String__concat(s.tmp_2, s.tmp_6); + case 7: + case 8: + r0 = (s.j___19072 + 1); + s.j___19072 = (r0); + { step = 6; continue; } + case 9: + r0 = (s.i___19066 + 1); + s.i___19066 = (r0); + { step = 5; continue; } + case 10: + r0 = s.arg0; + case 11: return leave(s, r0) default: oops() } } } -controller_Button_toString__P3251.info = {"start":2155,"length":100,"line":90,"column":8,"endLine":92,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"toString","argumentNames":["this"]} +helpers_sortHelper__P4816.info = {"start":5176,"length":481,"line":191,"column":4,"endLine":205,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"sortHelper","argumentNames":["arr","callbackfn"]} -function controller_Button_toString__P3251_mk(s) { +function helpers_sortHelper__P4816_mk(s) { checkStack(s.depth); return { - parent: s, fn: controller_Button_toString__P3251, depth: s.depth + 1, + parent: s, fn: helpers_sortHelper__P4816, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, + len___19063: undefined, + i___19066: undefined, + j___19072: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_Vec2_toString__P3435(s) { +function helpers_swap__P4815(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44788,66 +50923,45 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.temp___19101 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Vec2__C3411_VT)) failedCast(r0, user_interface_base_Vec2__C3411_VT); - r0 = s.arg0.fields["x_"]; - s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 1); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 1: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat("Vec2(x:", s.tmp_3); + r0 = pxsim_Array__getAt(s.arg0, s.arg1); + s.temp___19101 = (r0); + s.tmp_0 = r0 = s.arg0; + s.tmp_1 = r0 = s.arg1; + r0 = pxsim_Array__getAt(s.arg0, s.arg2); s.tmp_2 = r0; - r0 = pxsim_String__concat(s.tmp_2, ",y:"); - s.tmp_1 = r0; - r0 = s.arg0.fields["y_"]; - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 2); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 2: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat(s.tmp_1, s.tmp_5); - s.tmp_0 = r0; - r0 = pxsim_String__concat(s.tmp_0, ")"); + r0 = pxsim_Array_.setAt(s.tmp_0, s.tmp_1, s.tmp_2); + r0 = pxsim_Array_.setAt(s.arg0, s.arg2, s.temp___19101); + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Vec2_toString__P3435.info = {"start":3367,"length":88,"line":134,"column":8,"endLine":136,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"toString","argumentNames":["this"]} +helpers_swap__P4815.info = {"start":5030,"length":140,"line":185,"column":4,"endLine":189,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"swap","argumentNames":["arr","i","j"]} -function user_interface_base_Vec2_toString__P3435_mk(s) { +function helpers_swap__P4815_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Vec2_toString__P3435, depth: s.depth + 1, + parent: s, fn: helpers_swap__P4815, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, + temp___19101: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function user_interface_base_Bounds_toString__P3393(s) { +function microcode_RuleDefn_updateAt__P4208(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -44857,122 +50971,82 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tiles___19117 = undefined; + s.oldTile___19122 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Bounds__C3363_VT)) failedCast(r0, user_interface_base_Bounds__C3363_VT); - r0 = s.arg0.fields["left"]; - s.tmp_12 = r0; - if ((s.tmp_12) && (s.tmp_12).vtable) { - setupResume(s, 1); - pxsim_String__stringConv(s.tmp_12); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_12) + ""; } - case 1: + if (!checkSubtype(r0, microcode_RuleDefn__C4196_VT)) failedCast(r0, microcode_RuleDefn__C4196_VT); + s.tmp_1 = microcode_RuleDefn_getRuleRep__P4203_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1205; s.pc = 7; return s.tmp_1; + case 7: r0 = s.retval; - s.tmp_11 = r0; - r0 = pxsim_String__concat("Bounds(l:", s.tmp_11); - s.tmp_10 = r0; - r0 = pxsim_String__concat(s.tmp_10, ",t:"); - s.tmp_9 = r0; - r0 = s.arg0.fields["top"]; - s.tmp_14 = r0; - if ((s.tmp_14) && (s.tmp_14).vtable) { - setupResume(s, 2); - pxsim_String__stringConv(s.tmp_14); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_14) + ""; } + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg1); + s.tiles___19117 = (r0); + r0 = pxsim_Array__getAt(s.tiles___19117, s.arg2); + s.oldTile___19122 = (r0); + r0 = pxsim_Array_.setAt(s.tiles___19117, s.arg2, s.arg3); + r0 = (s.oldTile___19122 != s.arg3); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = (s.oldTile___19122 == 177); + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 1; continue; } + r0 = s.tmp_1; + { step = 2; continue; } + case 1: + r0 = (s.arg3 == 177); case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + s.tmp_3 = helpers_arraySplice__P2129_mk(s); + s.tmp_3.arg0 = s.tiles___19117; + r0 = (s.arg2 + 1); + s.tmp_3.arg1 = r0; + r0 = pxsim_Array__length(s.tiles___19117); + s.tmp_4 = r0; + r0 = (s.arg2 + 1); + s.tmp_5 = r0; + r0 = (s.tmp_4 - s.tmp_5); + s.tmp_3.arg2 = r0; + s.callLocIdx = 1206; s.pc = 8; return s.tmp_3; + case 8: r0 = s.retval; - s.tmp_13 = r0; - r0 = pxsim_String__concat(s.tmp_9, s.tmp_13); - s.tmp_8 = r0; - r0 = pxsim_String__concat(s.tmp_8, ",w:"); - s.tmp_7 = r0; - r0 = s.arg0.fields["width"]; - s.tmp_16 = r0; - if ((s.tmp_16) && (s.tmp_16).vtable) { - setupResume(s, 3); - pxsim_String__stringConv(s.tmp_16); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_16) + ""; } case 3: - r0 = s.retval; - s.tmp_15 = r0; - r0 = pxsim_String__concat(s.tmp_7, s.tmp_15); - s.tmp_6 = r0; - r0 = pxsim_String__concat(s.tmp_6, ",h:"); - s.tmp_5 = r0; - r0 = s.arg0.fields["height"]; - s.tmp_18 = r0; - if ((s.tmp_18) && (s.tmp_18).vtable) { - setupResume(s, 4); - pxsim_String__stringConv(s.tmp_18); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_18) + ""; } case 4: - r0 = s.retval; - s.tmp_17 = r0; - r0 = pxsim_String__concat(s.tmp_5, s.tmp_17); - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_4, ",r:"); - s.tmp_3 = r0; - r0 = s.arg0.fields["left"]; - s.tmp_22 = r0; - r0 = s.arg0.fields["width"]; - s.tmp_23 = r0; - r0 = (s.tmp_22 + s.tmp_23); - s.tmp_21 = r0; - r0 = (s.tmp_21 - 1); - s.tmp_20 = r0; - if ((s.tmp_20) && (s.tmp_20).vtable) { - setupResume(s, 5); - pxsim_String__stringConv(s.tmp_20); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_20) + ""; } case 5: - r0 = s.retval; - s.tmp_19 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_19); - s.tmp_2 = r0; - r0 = pxsim_String__concat(s.tmp_2, ",b:"); - s.tmp_1 = r0; - r0 = s.arg0.fields["top"]; - s.tmp_27 = r0; - r0 = s.arg0.fields["height"]; - s.tmp_28 = r0; - r0 = (s.tmp_27 + s.tmp_28); - s.tmp_26 = r0; - r0 = (s.tmp_26 - 1); - s.tmp_25 = r0; - if ((s.tmp_25) && (s.tmp_25).vtable) { - setupResume(s, 6); - pxsim_String__stringConv(s.tmp_25); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_25) + ""; } case 6: + s.tmp_0 = microcode_RuleDefn_fixup__P4205_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1207; s.pc = 9; return s.tmp_0; + case 9: r0 = s.retval; - s.tmp_24 = r0; - r0 = pxsim_String__concat(s.tmp_1, s.tmp_24); - s.tmp_0 = r0; - r0 = pxsim_String__concat(s.tmp_0, ")"); + s.tmp_0 = microcode_RuleDefn_deleteIncompatibleTiles__P5902_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1208; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Bounds_toString__P3393.info = {"start":5978,"length":153,"line":201,"column":8,"endLine":203,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"toString","argumentNames":["this"]} +microcode_RuleDefn_updateAt__P4208.info = {"start":6461,"length":614,"line":200,"column":8,"endLine":214,"endColumn":9,"fileName":"language.ts","functionName":"updateAt","argumentNames":["this","name","index","tile"]} -function user_interface_base_Bounds_toString__P3393_mk(s) { +function microcode_RuleDefn_updateAt__P4208_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Bounds_toString__P3393, depth: s.depth + 1, + parent: s, fn: microcode_RuleDefn_updateAt__P4208, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -44980,37 +51054,18 @@ function user_interface_base_Bounds_toString__P3393_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, - tmp_27: undefined, - tmp_28: undefined, + tiles___19117: undefined, + oldTile___19122: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function user_interface_base_RowNavigator_initialCursor__P3793(s) { +function microcode_Editor_stopProgram__P4473(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45020,79 +51075,64 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.rows___17277 = undefined; - s.cols___17291 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_0 = r0; - r0 = pxsim_Array__length(s.tmp_0); - s.rows___17277 = (r0); - case 1: - r0 = (s.arg1 < 0); + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = (globals.theInterpreter___5944 != undefined); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = (s.arg1 + s.rows___17277); - s.tmp_1 = r0; - r0 = (s.tmp_1 % s.rows___17277); - s.arg1 = (r0); - { step = 1; continue; } - case 2: - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.arg1); - s.tmp_0 = r0; - r0 = pxsim_Array__length(s.tmp_0); - s.cols___17291 = (r0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_stopProgram__P4450_mk(s); + s.callLocIdx = 1512; s.pc = 3; return s.tmp_1; case 3: - r0 = (s.arg2 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = (s.arg2 + s.cols___17291); - s.tmp_1 = r0; - r0 = (s.tmp_1 % s.cols___17291); - s.arg2 = (r0); - { step = 3; continue; } + r0 = s.retval; + s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3629_mk(s); + r0 = s.arg0.fields["runBtn"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = globals.run___4177; + s.callLocIdx = 1513; s.pc = 4; return s.tmp_0; case 4: - r0 = (s.arg0).fields["row"] = (s.arg1); - r0 = (s.arg0).fields["col"] = (s.arg2); - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.arg1); - s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.arg2); + r0 = s.retval; + s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3629_mk(s); + r0 = s.arg0.fields["stopBtn"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = globals.stopDisabled___4180; + s.callLocIdx = 1514; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = (s.arg0).fields["dirty"] = (true); + s.tmp_0 = basic_showIcon__P2425_mk(s); + s.tmp_0.arg0 = 3; + s.tmp_0.arg1 = 100; + s.callLocIdx = 1515; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + r0 = pxsim.basic.clearScreen(); + case 1: + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_initialCursor__P3793.info = {"start":6482,"length":380,"line":199,"column":8,"endLine":207,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"initialCursor","argumentNames":["this","row","col"]} +microcode_Editor_stopProgram__P4473.info = {"start":10750,"length":348,"line":310,"column":8,"endLine":319,"endColumn":9,"fileName":"editor.ts","functionName":"stopProgram","argumentNames":["this"]} -function user_interface_base_RowNavigator_initialCursor__P3793_mk(s) { +function microcode_Editor_stopProgram__P4473_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_initialCursor__P3793, depth: s.depth + 1, + parent: s, fn: microcode_Editor_stopProgram__P4473, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - rows___17277: undefined, - cols___17291: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function user_interface_base_RowNavigator_getCurrent__P3792(s) { +function basic_showIcon__P2425(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45102,43 +51142,45 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.res___19172 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); - s.tmp_0 = r0; - r0 = s.arg0.fields["col"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_3); + s.tmp_0 = images_iconImage__P2429_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 32; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + s.res___19172 = (r0); + setupResume(s, 2); + pxsim_ImageMethods.showImage(s.res___19172, 0, s.arg1); + checkResumeConsumed(); + return; + case 2: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_getCurrent__P3792.info = {"start":5903,"length":96,"line":181,"column":8,"endLine":183,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getCurrent","argumentNames":["this"]} +basic_showIcon__P2425.info = {"start":5073,"length":141,"line":189,"column":4,"endLine":192,"endColumn":5,"fileName":"pxt_modules/core/icons.ts","functionName":"showIcon","argumentNames":["icon","interval"]} -function user_interface_base_RowNavigator_getCurrent__P3792_mk(s) { +function basic_showIcon__P2425_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_getCurrent__P3792, depth: s.depth + 1, + parent: s, fn: basic_showIcon__P2425, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, + res___19172: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_RowNavigator_move__P3790(s) { +function images_iconImage__P2429(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45148,283 +51190,241 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btn___17425 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_0 = user_interface_base_RowNavigator_makeGood__P5286_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 778; s.pc = 24; return s.tmp_0; - case 24: - r0 = s.retval; - s.tmp_0 = r0 = s.arg1; + s.tmp_0 = r0 = s.arg0; r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); if (r0) { step = 1; continue; } r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(6, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(7, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(8, s.tmp_0); if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(9, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(10, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(11, s.tmp_0); + if (r0) { step = 10; continue; } + r0 = pxsim_pxtcore.switch_eq(12, s.tmp_0); + if (r0) { step = 11; continue; } + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); + if (r0) { step = 13; continue; } + r0 = pxsim_pxtcore.switch_eq(33, s.tmp_0); + if (r0) { step = 14; continue; } + r0 = pxsim_pxtcore.switch_eq(34, s.tmp_0); + if (r0) { step = 15; continue; } + r0 = pxsim_pxtcore.switch_eq(35, s.tmp_0); + if (r0) { step = 16; continue; } + r0 = pxsim_pxtcore.switch_eq(36, s.tmp_0); if (r0) { step = 17; continue; } + r0 = pxsim_pxtcore.switch_eq(37, s.tmp_0); + if (r0) { step = 18; continue; } + r0 = pxsim_pxtcore.switch_eq(38, s.tmp_0); + if (r0) { step = 19; continue; } + r0 = pxsim_pxtcore.switch_eq(39, s.tmp_0); + if (r0) { step = 20; continue; } + r0 = pxsim_pxtcore.switch_eq(40, s.tmp_0); + if (r0) { step = 21; continue; } + r0 = pxsim_pxtcore.switch_eq(13, s.tmp_0); + if (r0) { step = 22; continue; } + r0 = pxsim_pxtcore.switch_eq(14, s.tmp_0); + if (r0) { step = 23; continue; } + r0 = pxsim_pxtcore.switch_eq(15, s.tmp_0); + if (r0) { step = 24; continue; } + r0 = pxsim_pxtcore.switch_eq(16, s.tmp_0); + if (r0) { step = 25; continue; } + r0 = pxsim_pxtcore.switch_eq(17, s.tmp_0); + if (r0) { step = 26; continue; } + r0 = pxsim_pxtcore.switch_eq(18, s.tmp_0); + if (r0) { step = 27; continue; } + r0 = pxsim_pxtcore.switch_eq(19, s.tmp_0); + if (r0) { step = 28; continue; } + r0 = pxsim_pxtcore.switch_eq(20, s.tmp_0); + if (r0) { step = 29; continue; } + r0 = pxsim_pxtcore.switch_eq(21, s.tmp_0); + if (r0) { step = 30; continue; } + r0 = pxsim_pxtcore.switch_eq(22, s.tmp_0); + if (r0) { step = 31; continue; } + r0 = pxsim_pxtcore.switch_eq(23, s.tmp_0); + if (r0) { step = 32; continue; } + r0 = pxsim_pxtcore.switch_eq(24, s.tmp_0); + if (r0) { step = 33; continue; } + r0 = pxsim_pxtcore.switch_eq(25, s.tmp_0); + if (r0) { step = 34; continue; } + r0 = pxsim_pxtcore.switch_eq(26, s.tmp_0); + if (r0) { step = 35; continue; } + r0 = pxsim_pxtcore.switch_eq(27, s.tmp_0); + if (r0) { step = 36; continue; } + r0 = pxsim_pxtcore.switch_eq(28, s.tmp_0); + if (r0) { step = 37; continue; } + r0 = pxsim_pxtcore.switch_eq(30, s.tmp_0); + if (r0) { step = 38; continue; } + r0 = pxsim_pxtcore.switch_eq(29, s.tmp_0); + if (r0) { step = 39; continue; } + r0 = pxsim_pxtcore.switch_eq(31, s.tmp_0); + if (r0) { step = 40; continue; } + r0 = pxsim_pxtcore.switch_eq(32, s.tmp_0); + if (r0) { step = 41; continue; } r0 = s.tmp_0; - { step = 22; continue; } + { step = 42; continue; } case 1: - r0 = s.arg0.fields["row"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 == 0); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 2; continue; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_NavigationError__C3777_VT); - s.tmp_3 = r0; - s.tmp_4 = user_interface_base_NavigationError_constructor__P3779_mk(s); - s.tmp_4.arg0 = s.tmp_3; - s.tmp_4.arg1 = globals.BACK_BUTTON_ERROR_KIND___3775; - s.callLocIdx = 779; s.pc = 25; return s.tmp_4; - case 25: - r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.tmp_3); + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,255,0,255,0,255,255,255,255,255,255,255,255,255,255,0,255,255,255,0,0,0,255,0,0,0])); + { step = 43; continue; } case 2: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,255,0,255,0,0,255,255,255,0,0,0,255,0,0,0,0,0,0,0,0])); + { step = 43; continue; } case 3: - s.tmp_5 = r0 = s.arg0; - r0 = s.tmp_5.fields["row"]; - s.tmp_7 = r0; - r0 = (s.tmp_7 - 1); - s.tmp_6 = r0; - r0 = (s.tmp_5).fields["row"] = (s.tmp_6); - s.tmp_0 = user_interface_base_RowNavigator_makeGood__P5286_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 780; s.pc = 26; return s.tmp_0; - case 26: - r0 = s.retval; - { step = 22; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,255,0,255,255,255,0,0])); + { step = 43; continue; } case 4: - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 == s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_NavigationError__C3777_VT); - s.tmp_5 = r0; - s.tmp_6 = user_interface_base_NavigationError_constructor__P3779_mk(s); - s.tmp_6.arg0 = s.tmp_5; - s.tmp_6.arg1 = globals.FORWARD_BUTTON_ERROR_KIND___3776; - s.callLocIdx = 781; s.pc = 27; return s.tmp_6; - case 27: - r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.tmp_5); + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,255,255,255,0,255,0,0,0,255,0])); + { step = 43; continue; } case 5: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,255,0,255,0,255,0,255,0,255,0])); + { step = 43; continue; } case 6: - s.tmp_7 = r0 = s.arg0; - r0 = s.tmp_7.fields["row"]; - s.tmp_9 = r0; - r0 = (s.tmp_9 + 1); - s.tmp_8 = r0; - r0 = (s.tmp_7).fields["row"] = (s.tmp_8); - s.tmp_0 = user_interface_base_RowNavigator_makeGood__P5286_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 782; s.pc = 28; return s.tmp_0; - case 28: - r0 = s.retval; - { step = 22; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,0,0,0,255,0,255,0,255,0,0,0,0,0,0,255,255,255,255,255,255,0,255,0,255,0])); + { step = 43; continue; } case 7: - r0 = s.arg0.fields["col"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 10; continue; } - r0 = s.arg0.fields["row"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 > 0); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 8; continue; } - s.tmp_4 = r0 = s.arg0; - r0 = s.tmp_4.fields["row"]; - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["row"] = (s.tmp_5); - { step = 9; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,255,255,0,255,255,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0])); + { step = 43; continue; } case 8: - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["row"] = (s.tmp_1); + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,255,0,255,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,255,0,0,0])); + { step = 43; continue; } case 9: - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_4 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["col"] = (s.tmp_1); - { step = 11; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,0,0,0,255,0,0,0,0,0,255,255,255,255,255,0,0,0,255,255,0,0,0,255,255,0])); + { step = 43; continue; } case 10: - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["col"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["col"] = (s.tmp_1); + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,255,255,255,255,255,255,0,255,255,0,0,0,0,0,0,255,0,255,0,0,255,255,255,0,0])); + { step = 43; continue; } case 11: - { step = 22; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,255,0,255,255,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0])); + { step = 43; continue; } case 12: - r0 = s.arg0.fields["col"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_5 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); - s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 == s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - r0 = s.arg0.fields["row"]; - s.tmp_8 = r0; - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_11 = r0; - r0 = pxsim_Array__length(s.tmp_11); - s.tmp_10 = r0; - r0 = (s.tmp_10 - 1); - s.tmp_9 = r0; - r0 = (s.tmp_8 < s.tmp_9); - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 13; continue; } - s.tmp_12 = r0 = s.arg0; - r0 = s.tmp_12.fields["row"]; - s.tmp_14 = r0; - r0 = (s.tmp_14 + 1); - s.tmp_13 = r0; - r0 = (s.tmp_12).fields["row"] = (s.tmp_13); - { step = 14; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,255,0,0,0,255,0,0,0,0])); + { step = 43; continue; } case 13: - r0 = (s.arg0).fields["row"] = (0); + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,0,0,0,255,0,255,0,255,0,0,0,255,0,0,0,255,0,255,0,255,0,0,0,255,0])); + { step = 43; continue; } case 14: - r0 = (s.arg0).fields["col"] = (-1); + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,255,255,255,255,255,0,0,0,0,0,0])); + { step = 43; continue; } case 15: - case 16: - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["col"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["col"] = (s.tmp_1); - { step = 22; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,0,0,0,0,255,255,0,0,0,255,0,255,0,0,255,0,0,255,0,255,255,255,255,255,0])); + { step = 43; continue; } + case 16: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,0])); + { step = 43; continue; } case 17: - r0 = s.arg0.fields["col"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 > 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 18; continue; } - r0 = (s.arg0).fields["col"] = (0); - { step = 21; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,255,0,0,0,255,0,255,0,255,0,0,0,255,0,255,0,255,0,0,0,255,0,0,0])); + { step = 43; continue; } case 18: - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 > 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 19; continue; } - s.tmp_2 = r0 = s.arg0; - r0 = s.tmp_2.fields["row"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 - 1); - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["row"] = (s.tmp_3); - { step = 20; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0])); + { step = 43; continue; } case 19: - r0 = undefined; - { step = 23; continue; } + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,255,255,255,255,255,0,0,0,255,255,0,0,0,255,255,0,0,0,255,255,255,255,255,255,0])); + { step = 43; continue; } case 20: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,255,255,255,0,0,255,0,255,0,0,255,255,255,0,0,0,0,0,0,0])); + { step = 43; continue; } case 21: + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,255,0,0,255,255,255,0,255,0,0,0,255,0,0,255,255,0,255,0,255,255,0,0,255,0])); + { step = 43; continue; } case 22: - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); - s.tmp_0 = r0; - r0 = s.arg0.fields["col"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_3); - s.btn___17425 = (r0); - s.tmp_0 = user_interface_base_RowNavigator__C3780_v5_2_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.btn___17425; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_RowNavigator__C3780_VT)) failedCast(s.tmp_0.arg0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; - s.pc = 29; return s.tmp_0; - case 29: - r0 = s.retval; - r0 = s.btn___17425; + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,255,0,255,255,255,255,255,255,255,0,255,255,255,0,0,255,255,255,0,0,255,255,255,0,0])); + { step = 43; continue; } case 23: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,255,255,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,255,0,255,0,0])); + { step = 43; continue; } + case 24: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,255,255,0,0,255,255,255,0,0,0,255,255,255,255,0,255,255,255,0,0,0,0,0,0,0])); + { step = 43; continue; } + case 25: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,255,0,0,0,255,255,255,0,255,255,255,255,255,0,255,255,255,0,0,255,0,255,0,0])); + { step = 43; continue; } + case 26: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,255,255,255,0,255,255,255,255,255,0,255,0,255,0,0,0,0,0,0,0])); + { step = 43; continue; } + case 27: + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,255,0,255,255,255,255,255,255,255,0,0,255,0,0,255,255,255,255,255,255,255,0,255,255,0])); + { step = 43; continue; } + case 28: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,255,0,0,255,255,255,255,255,0,0,255,0,0,0,255,0,255,0,255,0,0,0,255,0])); + { step = 43; continue; } + case 29: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,255,255,255,0,255,0,255,0,255,255,255,255,255,255,255,255,255,255,255,255,0,255,0,255,0])); + { step = 43; continue; } + case 30: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,255,255,255,0,0,0,255,0,0,0])); + { step = 43; continue; } + case 31: + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,255,255,0,0,255,0,255,0,0])); + { step = 43; continue; } + case 32: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,255,255,255,0,255,0,255,0,255,255,255,255,255,255,0,255,255,255,0,0,255,255,255,0,0])); + { step = 43; continue; } + case 33: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,255,255,255,0,255,255,255,255,255,0,0,255,0,0,255,0,255,0,0,255,255,255,0,0,0])); + { step = 43; continue; } + case 34: + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,255,0,0,0,255,255,0,255,255,0,255,0,255,0,0,255,255,255,0,0,0,0,0,0,0])); + { step = 43; continue; } + case 35: + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,0,255,0,0,255,0,255,0,0,255,255,255,255,0,255,255,0,255,0,255,255,255,255,0,0])); + { step = 43; continue; } + case 36: + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,0,0,0,255,255,0,0,0,255,255,255,255,255,255,0,255,255,255,0,0,0,255,0,0,0])); + { step = 43; continue; } + case 37: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,255,255,255,0,0,255,255,255,0,0,0])); + { step = 43; continue; } + case 38: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,255,0,0,0,0,255,255,0,0,0,255,0,255,255,255,255,0,0,255,255,255,0,0,0])); + { step = 43; continue; } + case 39: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,255,0,0,0,0,255,255,0,0,0,255,0,255,255,255,255,0,0,255,255,255,0,0,0])); + { step = 43; continue; } + case 40: + r0 = pxsim.images.createImage(new pxsim.Image(5, [255,0,255,0,255,255,0,255,0,255,255,255,255,255,255,0,0,255,0,0,0,0,255,0,0,0])); + { step = 43; continue; } + case 41: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,255,0,0,0,255,255,255,0,255,255,0,255,255,0,255,255,255,0,0,0,255,0,0,0])); + { step = 43; continue; } + case 42: + r0 = pxsim.images.createImage(new pxsim.Image(5, [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])); + { step = 43; continue; } + r0 = undefined; + case 43: return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_move__P3790.info = {"start":3636,"length":2072,"line":114,"column":8,"endLine":171,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"move","argumentNames":["this","dir"]} +images_iconImage__P2429.info = {"start":9143,"length":13595,"line":284,"column":4,"endLine":547,"endColumn":5,"fileName":"pxt_modules/core/icons.ts","functionName":"iconImage","argumentNames":["i"]} -function user_interface_base_RowNavigator_move__P3790_mk(s) { +function images_iconImage__P2429_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_move__P3790, depth: s.depth + 1, + parent: s, fn: images_iconImage__P2429, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - btn___17425: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_RowNavigator_reportAria__P5285(s) { +function microcode_stopProgram__P4450(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45434,44 +51434,34 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - r0 = pxsim_numops_toBoolDecr(s.arg1); + r0 = pxsim_numops_toBoolDecr(globals.theInterpreter___5944); if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_Button_reportAria__P3676_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = true; - s.callLocIdx = 783; s.pc = 3; return s.tmp_0; + s.tmp_0 = microcode_Interpreter_stop__P4764_mk(s); + s.tmp_0.arg0 = globals.theInterpreter___5944; + s.callLocIdx = 1406; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; case 1: case 2: + globals.theInterpreter___5944 = (undefined); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_reportAria__P5285.info = {"start":5806,"length":87,"line":177,"column":8,"endLine":179,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"reportAria","argumentNames":["this","btn"]} +microcode_stopProgram__P4450.info = {"start":2347,"length":122,"line":81,"column":4,"endLine":84,"endColumn":5,"fileName":"app.ts","functionName":"stopProgram","argumentNames":[]} -function user_interface_base_RowNavigator_reportAria__P5285_mk(s) { +function microcode_stopProgram__P4450_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_reportAria__P5285, depth: s.depth + 1, + parent: s, fn: microcode_stopProgram__P4450, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, - arg1: undefined, } } - -function user_interface_base_NavigationError_constructor__P3779(s) { +function microcode_RuleEditor_getSuggestions__P5984(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45484,31 +51474,39 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_NavigationError__C3777_VT)) failedCast(r0, user_interface_base_NavigationError__C3777_VT); - r0 = (s.arg0).fields["kind"] = (s.arg1); - r0 = undefined; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + s.tmp_0 = microcode_Language_getTileSuggestions__P4227_mk(s); + r0 = s.arg0.fields["ruledef"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = s.arg2; + s.callLocIdx = 1682; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; return leave(s, r0) default: oops() } } } -user_interface_base_NavigationError_constructor__P3779.info = {"start":1256,"length":66,"line":30,"column":8,"endLine":32,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["this","kind"]} +microcode_RuleEditor_getSuggestions__P5984.info = {"start":13667,"length":137,"line":371,"column":8,"endLine":373,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"getSuggestions","argumentNames":["this","name","index"]} -function user_interface_base_NavigationError_constructor__P3779_mk(s) { +function microcode_RuleEditor_getSuggestions__P5984_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_NavigationError_constructor__P3779, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_getSuggestions__P5984, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function user_interface_base_RowNavigator_makeGood__P5286(s) { +function microcode_RuleEditor_needsWhenInsert__P5972(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45523,65 +51521,95 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["buttonGroups"]; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = s.arg0.fields["ruledef"]; s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_3, "sensors"); s.tmp_2 = r0; - r0 = (s.tmp_1 >= s.tmp_2); + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_4 = r0 = s.arg0; - r0 = s.arg0.fields["buttonGroups"]; + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_5 = microcode_RuleEditor_getSuggestions__P5984_mk(s); + s.tmp_5.arg0 = s.arg0; + s.tmp_5.arg1 = "filters"; + r0 = s.arg0.fields["ruledef"]; s.tmp_7 = r0; - r0 = pxsim_Array__length(s.tmp_7); + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_7, "filters"); s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["row"] = (s.tmp_5); - case 1: - case 2: - r0 = s.arg0.fields["col"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["buttonGroups"]; + r0 = pxsim_Array__length(s.tmp_6); + s.tmp_5.arg2 = r0; + s.callLocIdx = 1609; s.pc = 7; return s.tmp_5; + case 7: + r0 = s.retval; s.tmp_4 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 >= s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_6 = r0 = s.arg0; - r0 = s.arg0.fields["buttonGroups"]; + r0 = pxsim_Array__length(s.tmp_4); + case 2: + // jmp value (already in r0) + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); + if (!r0) { step = 5; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_9 = r0; + r0 = pxsim_pxtrt.mkMap(); s.tmp_10 = r0; - r0 = s.arg0.fields["row"]; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "parent", s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "style", globals.Transparent___3614); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "icon", "when_insertion_point"); + r0 = s.arg0.fields["ruledef"]; + s.tmp_14 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_14, "sensors"); + s.tmp_13 = r0; + r0 = pxsim_Array__length(s.tmp_13); + s.tmp_12 = r0; + r0 = (s.tmp_12 == 0); s.tmp_11 = r0; - r0 = pxsim_Array__getAt(s.tmp_10, s.tmp_11); - s.tmp_9 = r0; - r0 = pxsim_Array__length(s.tmp_9); - s.tmp_8 = r0; - r0 = (s.tmp_8 - 1); - s.tmp_7 = r0; - r0 = (s.tmp_6).fields["col"] = (s.tmp_7); + r0 = pxsim_numops_toBoolDecr(s.tmp_11); + if (!r0) { step = 3; continue; } + r0 = "when"; + { step = 4; continue; } case 3: + r0 = undefined; case 4: + // jmp value (already in r0) + s.tmp_15 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "ariaId", s.tmp_15); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "x", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "y", 0); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P19341); + s.tmp_16 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_16, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "onClick", s.tmp_16); + s.tmp_17 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_17.arg0 = s.tmp_9; + s.tmp_17.arg1 = s.tmp_10; + s.callLocIdx = 1611; s.pc = 8; return s.tmp_17; + case 8: + r0 = s.retval; + r0 = (s.arg0).fields["whenInsertBtn"] = (s.tmp_9); + { step = 6; continue; } + case 5: + s.tmp_0 = microcode_RuleEditor_destroyWhenInsertButton__P5971_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1612; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + case 6: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_makeGood__P5286.info = {"start":6113,"length":272,"line":188,"column":8,"endLine":193,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"makeGood","argumentNames":["this"]} +microcode_RuleEditor_needsWhenInsert__P5972.info = {"start":2261,"length":800,"line":70,"column":8,"endLine":91,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"needsWhenInsert","argumentNames":["this"]} -function user_interface_base_RowNavigator_makeGood__P5286_mk(s) { +function microcode_RuleEditor_needsWhenInsert__P5972_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_makeGood__P5286, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_needsWhenInsert__P5972, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -45595,14 +51623,19 @@ function user_interface_base_RowNavigator_makeGood__P5286_mk(s) { tmp_9: undefined, tmp_10: undefined, tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, arg0: undefined, } } - -function user_interface_base_RowNavigator_drawComponents__P3788(s) { +function onClick_inline__P19341(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45612,39 +51645,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = user_interface_base_RowNavigator_drawComponents_inline__P17480; - s.callLocIdx = 777; s.pc = 1; return s.tmp_0; + s.tmp_0 = microcode_RuleEditor_showWhenInsertMenu__P5982_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1610; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_drawComponents__P3788.info = {"start":2817,"length":148,"line":89,"column":8,"endLine":93,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"drawComponents","argumentNames":["this"]} +onClick_inline__P19341.info = {"start":2918,"length":31,"line":86,"column":29,"endLine":86,"endColumn":60,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_RowNavigator_drawComponents__P3788_mk(s) { +function onClick_inline__P19341_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_drawComponents__P3788, depth: s.depth + 1, + parent: s, fn: onClick_inline__P19341, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, } } - -function user_interface_base_RowNavigator_drawComponents_inline__P17480(s) { +function microcode_RuleEditor_destroyWhenInsertButton__P5971(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45658,32 +51681,27 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = user_interface_base_RowNavigator_drawComponents_inline__P17484; - s.callLocIdx = 776; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = (s.arg0).fields["whenInsertBtn"] = (undefined); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_drawComponents_inline__P17480.info = {"start":2881,"length":73,"line":90,"column":38,"endLine":92,"endColumn":13,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["row"]} +microcode_RuleEditor_destroyWhenInsertButton__P5971.info = {"start":2163,"length":88,"line":66,"column":8,"endLine":68,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"destroyWhenInsertButton","argumentNames":["this"]} -function user_interface_base_RowNavigator_drawComponents_inline__P17480_mk(s) { +function microcode_RuleEditor_destroyWhenInsertButton__P5971_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_drawComponents_inline__P17480, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_destroyWhenInsertButton__P5971, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, } } - -function user_interface_base_RowNavigator_drawComponents_inline__P17484(s) { +function microcode_RuleEditor_showWhenInsertMenu__P5982(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45697,33 +51715,58 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = user_interface_base_Button__C3665_v0_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3665_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; - s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["sensors"]; + s.tmp_1 = r0; + r0 = pxsim_Array__length(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = microcode_RuleEditor_editTile__P5980_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = "filters"; + r0 = s.arg0.fields["ruledef"]; + r0 = r0.fields["filters"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2.arg2 = r0; + s.callLocIdx = 1678; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + { step = 2; continue; } case 1: + s.tmp_0 = microcode_RuleEditor_editTile__P5980_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = "sensors"; + s.tmp_0.arg2 = 0; + s.callLocIdx = 1679; s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_drawComponents_inline__P17484.info = {"start":2918,"length":21,"line":91,"column":28,"endLine":91,"endColumn":49,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["btn"]} +microcode_RuleEditor_showWhenInsertMenu__P5982.info = {"start":13169,"length":236,"line":355,"column":8,"endLine":361,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"showWhenInsertMenu","argumentNames":["this"]} -function user_interface_base_RowNavigator_drawComponents_inline__P17484_mk(s) { +function microcode_RuleEditor_showWhenInsertMenu__P5982_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_drawComponents_inline__P17484, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_showWhenInsertMenu__P5982, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function user_interface_base_RowNavigator_setBtns__P3785(s) { +function microcode_RuleEditor_processSection__P5976(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45733,34 +51776,52 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.tiles___19362 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - r0 = (s.arg0).fields["buttonGroups"] = (s.arg1); - r0 = undefined; + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = pxsim_pxtrt.mapGetGeneric(s.arg2, s.arg1); + s.tiles___19362 = (r0); + r0 = pxsim_pxtcore_mkAction(2, microcode_RuleEditor_processSection_inline__P19368); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_1.arg0 = s.tiles___19362; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1626; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = pxsim_Array__length(s.tiles___19362); + s.tmp_0 = r0; + r0 = (s.tmp_0 > 0); return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_setBtns__P3785.info = {"start":2255,"length":81,"line":67,"column":8,"endLine":69,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"setBtns","argumentNames":["this","btns"]} +microcode_RuleEditor_processSection__P5976.info = {"start":4393,"length":602,"line":134,"column":8,"endLine":149,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"processSection","argumentNames":["this","name","rule"]} -function user_interface_base_RowNavigator_setBtns__P3785_mk(s) { +function microcode_RuleEditor_processSection__P5976_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_setBtns__P3785, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_processSection__P5976, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tiles___19362: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function user_interface_base_PickerNavigator_move__P3819(s) { +function microcode_RuleEditor_processSection_inline__P19368(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -45770,275 +51831,81 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.button___19371 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0 = r0 = s.arg1; - r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); - if (r0) { step = 17; continue; } - r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); - if (r0) { step = 24; continue; } - r0 = s.tmp_0; - { step = 31; continue; } - case 1: - r0 = s.arg0.fields["row"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 == -1); - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 2; continue; } - r0 = s.tmp_1; - { step = 5; continue; } - case 2: - r0 = s.arg0.fields["deleteButton"]; - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - s.tmp_4 = r0; - r0 = pxsim_Boolean__bang(s.tmp_4); - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (r0) { step = 3; continue; } - r0 = s.tmp_3; - { step = 4; continue; } - case 3: - r0 = s.arg0.fields["row"]; - s.tmp_6 = r0; - r0 = (s.tmp_6 == 0); - case 4: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = s.tmp_7; - case 5: - // jmp value (already in r0) - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 6; continue; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_NavigationError__C3777_VT); - s.tmp_9 = r0; - s.tmp_10 = user_interface_base_NavigationError_constructor__P3779_mk(s); - s.tmp_10.arg0 = s.tmp_9; - s.tmp_10.arg1 = globals.BACK_BUTTON_ERROR_KIND___3775; - s.callLocIdx = 804; s.pc = 32; return s.tmp_10; - case 32: - r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.tmp_9); - case 6: - case 7: - r0 = s.arg0.fields["row"]; - s.tmp_12 = r0; - r0 = (s.tmp_12 > 0); - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 8; continue; } - s.tmp_13 = r0 = s.arg0; - r0 = s.tmp_13.fields["row"]; - s.tmp_15 = r0; - r0 = (s.tmp_15 - 1); - s.tmp_14 = r0; - r0 = (s.tmp_13).fields["row"] = (s.tmp_14); - { step = 11; continue; } - case 8: - r0 = s.arg0.fields["deleteButton"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = (s.arg0).fields["row"] = (-1); - case 9: - case 10: - case 11: - { step = 31; continue; } - case 12: - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - s.tmp_4 = user_interface_base_PickerNavigator_height__P5290_mk(s); - s.tmp_4.arg0 = s.arg0; - s.callLocIdx = 805; s.pc = 33; return s.tmp_4; - case 33: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - s.tmp_5 = r0 = s.arg0; - r0 = s.tmp_5.fields["row"]; - s.tmp_7 = r0; - r0 = (s.tmp_7 + 1); - s.tmp_6 = r0; - r0 = (s.tmp_5).fields["row"] = (s.tmp_6); - r0 = s.arg0.fields["col"]; + r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - s.tmp_3 = user_interface_base_PickerNavigator_currentRowWidth__P5291_mk(s); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.caps[0]); + s.tmp_3 = microcode_buttonStyle__P4422_mk(s); s.tmp_3.arg0 = s.arg0; - s.callLocIdx = 806; s.pc = 34; return s.tmp_3; - case 34: - r0 = s.retval; - s.tmp_2 = r0; - r0 = (s.tmp_1 >= s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - s.tmp_4 = r0 = s.arg0; - s.tmp_7 = user_interface_base_PickerNavigator_currentRowWidth__P5291_mk(s); - s.tmp_7.arg0 = s.arg0; - s.callLocIdx = 807; s.pc = 35; return s.tmp_7; - case 35: - r0 = s.retval; - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["col"] = (s.tmp_5); - case 13: - case 14: - { step = 16; continue; } - case 15: - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_NavigationError__C3777_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_NavigationError_constructor__P3779_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = globals.FORWARD_BUTTON_ERROR_KIND___3776; - s.callLocIdx = 808; s.pc = 36; return s.tmp_1; - case 36: - r0 = s.retval; - r0 = pxsim_pxtcore.throwValue(s.tmp_0); - case 16: - { step = 31; continue; } - case 17: - r0 = s.arg0.fields["col"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 > 0); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 18; continue; } - s.tmp_4 = r0 = s.arg0; - r0 = s.tmp_4.fields["col"]; - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["col"] = (s.tmp_5); - { step = 23; continue; } - case 18: - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 > 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 19; continue; } - s.tmp_2 = r0 = s.arg0; - r0 = s.tmp_2.fields["row"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 - 1); - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["row"] = (s.tmp_3); - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["col"] = (s.tmp_1); - { step = 22; continue; } - case 19: - r0 = s.arg0.fields["deleteButton"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 20; continue; } - r0 = (s.arg0).fields["row"] = (-1); - case 20: - case 21: - case 22: - case 23: - { step = 31; continue; } - case 24: - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 == -1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 25; continue; } - r0 = (s.arg0).fields["row"] = (0); - r0 = (s.arg0).fields["col"] = (0); - { step = 30; continue; } - case 25: - r0 = s.arg0.fields["col"]; - s.tmp_1 = r0; - s.tmp_4 = user_interface_base_PickerNavigator_currentRowWidth__P5291_mk(s); - s.tmp_4.arg0 = s.arg0; - s.callLocIdx = 810; s.pc = 37; return s.tmp_4; - case 37: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 26; continue; } - s.tmp_5 = r0 = s.arg0; - r0 = s.tmp_5.fields["col"]; - s.tmp_7 = r0; - r0 = (s.tmp_7 + 1); - s.tmp_6 = r0; - r0 = (s.tmp_5).fields["col"] = (s.tmp_6); - { step = 29; continue; } - case 26: - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - s.tmp_4 = user_interface_base_PickerNavigator_height__P5290_mk(s); - s.tmp_4.arg0 = s.arg0; - s.callLocIdx = 811; s.pc = 38; return s.tmp_4; - case 38: + s.callLocIdx = 1620; s.pc = 1; return s.tmp_3; + case 1: r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 27; continue; } - s.tmp_5 = r0 = s.arg0; - r0 = s.tmp_5.fields["row"]; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", s.tmp_2); + s.tmp_5 = microcode_getIcon__P4195_mk(s); + s.tmp_5.arg0 = s.arg0; + s.callLocIdx = 1621; s.pc = 2; return s.tmp_5; + case 2: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_4); + s.tmp_8 = microcode_getTid__P4194_mk(s); + s.tmp_8.arg0 = s.arg0; + s.callLocIdx = 1622; s.pc = 3; return s.tmp_8; + case 3: + r0 = s.retval; s.tmp_7 = r0; - r0 = (s.tmp_7 + 1); - s.tmp_6 = r0; - r0 = (s.tmp_5).fields["row"] = (s.tmp_6); - r0 = (s.arg0).fields["col"] = (0); - case 27: - case 28: - case 29: - case 30: - case 31: - s.tmp_0 = user_interface_base_PickerNavigator__C3803_v0_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; - s.pc = 39; return s.tmp_0; - case 39: + r0 = pxsim_numops.toString(s.tmp_7); + s.tmp_10 = r0; + if ((s.tmp_10) && (s.tmp_10).vtable) { + setupResume(s, 4); + pxsim_String__stringConv(s.tmp_10); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_10) + ""; } + case 4: r0 = s.retval; - s.tmp_0 = user_interface_base_PickerNavigator_getCurrent__P3817_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 812; s.pc = 40; return s.tmp_0; - case 40: + s.tmp_9 = r0; + r0 = pxsim_String__concat("T", s.tmp_9); + s.tmp_6 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", s.tmp_6); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 0); + r0 = pxsim_pxtcore_mkAction(3, onClick_inline__P19381); + s.tmp_11 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_11, 0, s.caps[0]); + r0 = pxsim_pxtrt_stclo(s.tmp_11, 1, s.caps[1]); + r0 = pxsim_pxtrt_stclo(s.tmp_11, 2, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_11); + s.tmp_12 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_12.arg0 = s.tmp_0; + s.tmp_12.arg1 = s.tmp_1; + s.callLocIdx = 1625; s.pc = 5; return s.tmp_12; + case 5: r0 = s.retval; + s.button___19371 = (s.tmp_0); + r0 = s.caps[0].fields["ruleButtons"]; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.caps[1]); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.button___19371); + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_move__P3819.info = {"start":13449,"length":1709,"line":440,"column":8,"endLine":482,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"move","argumentNames":["this","dir"]} +microcode_RuleEditor_processSection_inline__P19368.info = {"start":4510,"length":438,"line":136,"column":26,"endLine":147,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["tile","index"]} -function user_interface_base_PickerNavigator_move__P3819_mk(s) { +function microcode_RuleEditor_processSection_inline__P19368_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_move__P3819, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_processSection_inline__P19368, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -46053,9 +51920,7 @@ function user_interface_base_PickerNavigator_move__P3819_mk(s) { tmp_10: undefined, tmp_11: undefined, tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, + button___19371: undefined, arg0: undefined, arg1: undefined, } } @@ -46063,8 +51928,41 @@ function user_interface_base_PickerNavigator_move__P3819_mk(s) { +function onClick_inline__P19381(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = microcode_RuleEditor_editTile__P5980_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = s.caps[1]; + s.tmp_0.arg2 = s.caps[2]; + s.callLocIdx = 1624; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +onClick_inline__P19381.info = {"start":4830,"length":32,"line":144,"column":29,"endLine":144,"endColumn":61,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} + +function onClick_inline__P19381_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: onClick_inline__P19381, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + -function user_interface_base_PickerNavigator_currentRowWidth__P5291(s) { +function microcode_buttonStyle__P4422(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46078,90 +51976,42 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0 = control_assert__P2486_mk(s); - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 >= 0); - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = "row out of bounds"; - s.callLocIdx = 794; s.pc = 3; return s.tmp_0; + s.tmp_1 = microcode_getFieldEditor__P4542_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 1343; s.pc = 3; return s.tmp_1; case 3: r0 = s.retval; - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - s.tmp_4 = user_interface_base_PickerNavigator_height__P5290_mk(s); - s.tmp_4.arg0 = s.arg0; - s.callLocIdx = 795; s.pc = 4; return s.tmp_4; - case 4: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; + r0 = globals.Transparent___3614; { step = 2; continue; } case 1: - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["group"]; - r0 = r0.fields["defs"]; - s.tmp_6 = r0; - r0 = pxsim_Array__length(s.tmp_6); - s.tmp_5 = r0; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - s.tmp_8 = r0; - s.tmp_11 = user_interface_base_PickerNavigator_height__P5290_mk(s); - s.tmp_11.arg0 = s.arg0; - s.callLocIdx = 799; s.pc = 5; return s.tmp_11; - case 5: - r0 = s.retval; - s.tmp_10 = r0; - r0 = (s.tmp_10 - 1); - s.tmp_9 = r0; - r0 = (s.tmp_8 * s.tmp_9); - s.tmp_7 = r0; - r0 = (s.tmp_5 - s.tmp_7); + r0 = globals.FlatWhite___3611; case 2: // jmp value (already in r0) - s.tmp_12 = r0; - r0 = s.tmp_12; + s.tmp_2 = r0; + r0 = s.tmp_2; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_currentRowWidth__P5291.info = {"start":11582,"length":242,"line":379,"column":8,"endLine":384,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"currentRowWidth","argumentNames":["this"]} +microcode_buttonStyle__P4422.info = {"start":14732,"length":172,"line":462,"column":4,"endLine":466,"endColumn":5,"fileName":"tiles.ts","functionName":"buttonStyle","argumentNames":["tile"]} -function user_interface_base_PickerNavigator_currentRowWidth__P5291_mk(s) { +function microcode_buttonStyle__P4422_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_currentRowWidth__P5291, depth: s.depth + 1, + parent: s, fn: microcode_buttonStyle__P4422, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, arg0: undefined, } } - -function user_interface_base_PickerNavigator_getCurrent__P3817(s) { +function microcode_RuleEditor_destroyProgramTiles__P5975(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46171,68 +52021,104 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.index___17630 = undefined; + s.changed___19400 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 == -1); + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = pxsim_pxtrt.mklocRef(); + s.changed___19400 = (r0); + r0 = pxsim_pxtrt_stlocRef(s.changed___19400, false); + r0 = pxsim_pxtcore_mkAction(2, microcode_RuleEditor_destroyProgramTiles_inline__P19403); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.changed___19400); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = microcode_repNames__P5970_mk(s); + s.callLocIdx = 1617; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1618; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + r0 = pxsim_pxtrt_ldlocRef(s.changed___19400); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["deleteButton"]; - { step = 5; continue; } - { step = 4; continue; } + s.tmp_1 = microcode_Editor_changed__P4462_mk(s); + r0 = s.arg0.fields["editor"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1619; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; case 1: - r0 = s.arg0.fields["row"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - s.tmp_4 = r0; - r0 = (s.tmp_3 * s.tmp_4); - s.tmp_2 = r0; - r0 = s.arg0.fields["col"]; - s.tmp_5 = r0; - r0 = (s.tmp_2 + s.tmp_5); - s.index___17630 = (r0); - s.tmp_1 = r0 = s.index___17630; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["group"]; - r0 = r0.fields["defs"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); + case 2: + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_RuleEditor_destroyProgramTiles__P5975.info = {"start":4008,"length":375,"line":122,"column":8,"endLine":132,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"destroyProgramTiles","argumentNames":["this"]} + +function microcode_RuleEditor_destroyProgramTiles__P5975_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_RuleEditor_destroyProgramTiles__P5975, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + changed___19400: undefined, + arg0: undefined, +} } + + + + +function microcode_RuleEditor_destroyProgramTiles_inline__P19403(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.caps[0].fields["ruleButtons"]; s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_2, s.arg0); + s.tmp_1 = r0; + r0 = pxsim_Array__length(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_4 = user_interface_base_PickerGroup_getButtonAtIndex__P5274_mk(s); - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["group"]; - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = s.index___17630; - s.callLocIdx = 803; s.pc = 6; return s.tmp_4; - case 6: - r0 = s.retval; - { step = 5; continue; } + if (!r0) { step = 1; continue; } + r0 = s.caps[0].fields["ruleButtons"]; + s.tmp_3 = r0; + s.tmp_4 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_3, s.tmp_4, s.tmp_5); + r0 = pxsim_pxtrt_stlocRef(s.caps[1], true); + case 1: case 2: - case 3: - case 4: r0 = undefined; - case 5: return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_getCurrent__P3817.info = {"start":12387,"length":401,"line":409,"column":8,"endLine":419,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getCurrent","argumentNames":["this"]} +microcode_RuleEditor_destroyProgramTiles_inline__P19403.info = {"start":4103,"length":177,"line":124,"column":31,"endLine":129,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["name"]} -function user_interface_base_PickerNavigator_getCurrent__P3817_mk(s) { +function microcode_RuleEditor_destroyProgramTiles_inline__P19403_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_getCurrent__P3817, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_destroyProgramTiles_inline__P19403, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -46240,15 +52126,13 @@ function user_interface_base_PickerNavigator_getCurrent__P3817_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - index___17630: undefined, arg0: undefined, } } - -function user_interface_base_PickerNavigator_drawComponents__P3816(s) { +function microcode_RuleEditor_showRuleHandleMenu__P5978(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46258,31 +52142,108 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.btns___19420 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", "plus"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ariaId", "add_rule"); + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "delete"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "ariaId", "delete_rule"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); + s.btns___19420 = (s.tmp_1); + r0 = s.arg0.fields["index"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "rule_up"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "ariaId", "rule_up"); + r0 = pxsim_Array__push(s.btns___19420, s.tmp_2); + case 1: + case 2: + r0 = s.arg0.fields["index"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["page"]; + r0 = r0.fields["ruleEditors"]; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 2); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim_pxtrt.mkMap(); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "icon", "rule_down"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "ariaId", "rule_down"); + r0 = pxsim_Array__push(s.btns___19420, s.tmp_5); + case 3: + case 4: + s.tmp_0 = user_interface_base_Picker_setGroup__P3729_mk(s); + r0 = s.arg0.fields["editor"]; + r0 = r0.fields["picker"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.btns___19420; + s.callLocIdx = 1634; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P19448); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.btns___19420); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_0); + s.tmp_2 = user_interface_base_Picker_show__P3731_mk(s); + r0 = s.arg0.fields["editor"]; + r0 = r0.fields["picker"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_1; + s.tmp_2.arg2 = true; + s.callLocIdx = 1637; s.pc = 6; return s.tmp_2; + case 6: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_drawComponents__P3816.info = {"start":12350,"length":27,"line":407,"column":8,"endLine":407,"endColumn":35,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"drawComponents","argumentNames":["this"]} +microcode_RuleEditor_showRuleHandleMenu__P5978.info = {"start":5427,"length":1022,"line":163,"column":8,"endLine":194,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"showRuleHandleMenu","argumentNames":["this"]} -function user_interface_base_PickerNavigator_drawComponents__P3816_mk(s) { +function microcode_RuleEditor_showRuleHandleMenu__P5978_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_drawComponents__P3816, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_showRuleHandleMenu__P5978, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + btns___19420: undefined, arg0: undefined, } } - -function user_interface_base_PickerNavigator_initialCursor__P3812(s) { +function onClick_inline__P19448(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46292,60 +52253,49 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btn___17657 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = (s.arg0).fields["row"] = (s.arg1); - r0 = (s.arg0).fields["col"] = (s.arg2); - s.tmp_0 = user_interface_base_PickerNavigator_getCurrent__P3817_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 800; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - s.btn___17657 = (r0); - r0 = pxsim_numops_toBoolDecr(s.btn___17657); - if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_PickerNavigator__C3803_v0_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; - s.pc = 5; return s.tmp_0; - case 5: + s.tmp_0 = microcode_RuleEditor_handleRuleHandleMenuSelection__P5981_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_1 = if_icon_1_mk(s); + r0 = pxsim_Array__getAt(s.caps[1], s.arg0); + s.tmp_1.arg0 = r0; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "icon"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["icon"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["icon"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1635; s.pc = 2; return s.tmp_1; } + } + case 2: r0 = s.retval; - r0 = undefined; - { step = 3; continue; } + s.tmp_0.arg1 = r0; + s.callLocIdx = 1636; s.pc = 1; return s.tmp_0; case 1: - case 2: + r0 = s.retval; r0 = undefined; - case 3: return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_initialCursor__P3812.info = {"start":11834,"length":311,"line":386,"column":8,"endLine":395,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"initialCursor","argumentNames":["this","row","col"]} +onClick_inline__P19448.info = {"start":6286,"length":137,"line":189,"column":25,"endLine":192,"endColumn":21,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["index"]} -function user_interface_base_PickerNavigator_initialCursor__P3812_mk(s) { +function onClick_inline__P19448_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_initialCursor__P3812, depth: s.depth + 1, + parent: s, fn: onClick_inline__P19448, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - btn___17657: undefined, + tmp_1: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function user_interface_base_PickerNavigator_height__P5290(s) { +function microcode_RuleEditor_handleRuleHandleMenuSelection__P5981(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46357,44 +52307,93 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["group"]; - r0 = r0.fields["defs"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["width"]; - s.tmp_3 = r0; - r0 = (s.tmp_1 / s.tmp_3); + if (!checkSubtype(r0, microcode_RuleEditor__C4496_VT)) failedCast(r0, microcode_RuleEditor__C4496_VT); + r0 = (s.arg1 === "plus"); s.tmp_0 = r0; - r0 = pxsim.Math_.ceil(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_PageEditor_insertRuleAt__P4492_mk(s); + r0 = s.arg0.fields["page"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1674; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + { step = 8; continue; } + case 1: + r0 = (s.arg1 === "delete"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = microcode_PageEditor_deleteRuleAt__P4491_mk(s); + r0 = s.arg0.fields["page"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1675; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + { step = 7; continue; } + case 2: + r0 = (s.arg1 === "rule_up"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = microcode_PageEditor_moveRuleAt__P4490_mk(s); + r0 = s.arg0.fields["page"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = true; + s.callLocIdx = 1676; s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + { step = 6; continue; } + case 3: + r0 = (s.arg1 === "rule_down"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_1 = microcode_PageEditor_moveRuleAt__P4490_mk(s); + r0 = s.arg0.fields["page"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["index"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = false; + s.callLocIdx = 1677; s.pc = 12; return s.tmp_1; + case 12: + r0 = s.retval; + case 4: + case 5: + case 6: + case 7: + case 8: + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_height__P5290.info = {"start":11489,"length":83,"line":375,"column":8,"endLine":377,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"height","argumentNames":["this"]} +microcode_RuleEditor_handleRuleHandleMenuSelection__P5981.info = {"start":12688,"length":471,"line":343,"column":8,"endLine":353,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"handleRuleHandleMenuSelection","argumentNames":["this","iconId"]} -function user_interface_base_PickerNavigator_height__P5290_mk(s) { +function microcode_RuleEditor_handleRuleHandleMenuSelection__P5981_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_height__P5290, depth: s.depth + 1, + parent: s, fn: microcode_RuleEditor_handleRuleHandleMenuSelection__P5981, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_PickerNavigator_setBtns__P3808(s) { +function microcode_PageEditor_moveRuleAt__P4490(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46404,33 +52403,97 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.delta___19490 = undefined; + s.deleted___19495 = undefined; + s.rule___19508 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + s.tmp_0 = microcode_Editor_stopProgram__P4473_mk(s); + r0 = s.arg0.fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1584; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(s.arg2); + if (!r0) { step = 1; continue; } + r0 = -1; + { step = 2; continue; } + case 1: + r0 = 1; + case 2: + // jmp value (already in r0) + s.tmp_0 = r0; + s.delta___19490 = (s.tmp_0); + s.tmp_0 = microcode_PageDefn_deleteRuleAt__P4215_mk(s); + r0 = s.arg0.fields["pagedef"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 1585; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.deleted___19495 = (r0); + s.tmp_0 = microcode_PageDefn_insertRuleAt__P4216_mk(s); + r0 = s.arg0.fields["pagedef"]; + s.tmp_0.arg0 = r0; + r0 = (s.arg1 + s.delta___19490); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.deleted___19495; + s.callLocIdx = 1586; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.arg1); + s.rule___19508 = (r0); + s.tmp_0 = helpers_arraySplice__P2129_mk(s); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = 1; + s.callLocIdx = 1587; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_0 = r0; + r0 = (s.arg1 + s.delta___19490); + s.tmp_1 = r0; + r0 = pxsim_Array_.insertAt(s.tmp_0, s.tmp_1, s.rule___19508); + s.tmp_0 = microcode_PageEditor_reassignIndices__P5967_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1588; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_setBtns__P3808.info = {"start":11054,"length":36,"line":362,"column":8,"endLine":362,"endColumn":44,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"setBtns","argumentNames":["this","btns"]} +microcode_PageEditor_moveRuleAt__P4490.info = {"start":20001,"length":447,"line":608,"column":8,"endLine":619,"endColumn":9,"fileName":"editor.ts","functionName":"moveRuleAt","argumentNames":["this","index","up"]} -function user_interface_base_PickerNavigator_setBtns__P3808_mk(s) { +function microcode_PageEditor_moveRuleAt__P4490_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_setBtns__P3808, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_moveRuleAt__P4490, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + delta___19490: undefined, + deleted___19495: undefined, + rule___19508: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function microcode_SamplesGallery_draw__P4476(s) { +function microcode_PageEditor_reassignIndices__P5967(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46445,38 +52508,38 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_SamplesGallery__C4470_VT)) failedCast(r0, microcode_SamplesGallery__C4470_VT); - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - s.tmp_0.arg0 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - s.tmp_0.arg1 = globals.user_interface_base_Screen_TOP_EDGE___3445; - s.tmp_0.arg2 = globals.user_interface_base_Screen_WIDTH___3439; - s.tmp_0.arg3 = globals.user_interface_base_Screen_HEIGHT___3440; - s.tmp_0.arg4 = 12; - s.callLocIdx = 1642; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["sampleButtons"]; + r0 = s.arg0.fields["ruleEditors"]; s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = microcode_SamplesGallery_draw_inline__P17681; - s.callLocIdx = 1643; s.pc = 2; return s.tmp_0; - case 2: + s.tmp_0.arg1 = microcode_PageEditor_reassignIndices_inline__P19530; + s.callLocIdx = 1581; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - s.tmp_0 = user_interface_base_CursorScene_draw__P3837_mk(s); + s.tmp_0 = microcode_PageEditor_changed__P4489_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1644; s.pc = 3; return s.tmp_0; + s.callLocIdx = 1582; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = s.arg0.fields["editor"]; + s.tmp_0 = r0; + r0 = (s.tmp_0).fields["programChanged"] = (true); + s.tmp_0 = microcode_Editor_saveAndCompileProgram__P4467_mk(s); + r0 = s.arg0.fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1583; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_SamplesGallery_draw__P4476.info = {"start":2255,"length":288,"line":66,"column":23,"endLine":76,"endColumn":9,"fileName":"gallery.ts","functionName":"draw","argumentNames":["this"]} +microcode_PageEditor_reassignIndices__P5967.info = {"start":19757,"length":234,"line":601,"column":8,"endLine":606,"endColumn":9,"fileName":"editor.ts","functionName":"reassignIndices","argumentNames":["this"]} -function microcode_SamplesGallery_draw__P4476_mk(s) { +function microcode_PageEditor_reassignIndices__P5967_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_SamplesGallery_draw__P4476, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_reassignIndices__P5967, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -46485,8 +52548,7 @@ function microcode_SamplesGallery_draw__P4476_mk(s) { - -function microcode_SamplesGallery_draw_inline__P17681(s) { +function microcode_PageEditor_reassignIndices_inline__P19530(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46498,35 +52560,31 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = user_interface_base_Button__C3665_v0_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3665_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; - s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; + s.tmp_0 = r0 = s.arg1; + r0 = (s.arg0).fields["index"] = (s.tmp_0); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_SamplesGallery_draw_inline__P17681.info = {"start":2494,"length":13,"line":74,"column":39,"endLine":74,"endColumn":52,"fileName":"gallery.ts","functionName":"inline","argumentNames":["s"]} +microcode_PageEditor_reassignIndices_inline__P19530.info = {"start":19822,"length":37,"line":602,"column":37,"endLine":602,"endColumn":74,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule","index"]} -function microcode_SamplesGallery_draw_inline__P17681_mk(s) { +function microcode_PageEditor_reassignIndices_inline__P19530_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_SamplesGallery_draw_inline__P17681, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_reassignIndices_inline__P19530, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_SamplesGallery_activate__P4475(s) { +function microcode_PageDefn_insertRuleAt__P4216(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46536,43 +52594,87 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.insertRule___19554 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_SamplesGallery__C4470_VT)) failedCast(r0, microcode_SamplesGallery__C4470_VT); - s.tmp_0 = user_interface_base_CursorScene_activate__P3835_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1640; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_PageDefn__C4211_VT)) failedCast(r0, microcode_PageDefn__C4211_VT); + r0 = (s.arg1 >= 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - s.tmp_0 = user_interface_base_Scene_backgroundColor__P3689_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 15; - s.callLocIdx = 1641; s.pc = 2; return s.tmp_0; + s.tmp_1 = r0 = s.arg1; + r0 = s.arg0.fields["rules"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 5; continue; } + r0 = pxsim_numops_toBoolDecr(s.arg2); + if (!r0) { step = 3; continue; } + r0 = s.arg2; + { step = 4; continue; } + case 3: + r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleDefn__C4196_VT); + s.tmp_5 = r0; + s.tmp_6 = microcode_RuleDefn_constructor__P4201_mk(s); + s.tmp_6.arg0 = s.tmp_5; + s.callLocIdx = 1255; s.pc = 8; return s.tmp_6; + case 8: r0 = s.retval; + r0 = s.tmp_5; + case 4: + // jmp value (already in r0) + s.tmp_7 = r0; + s.insertRule___19554 = (s.tmp_7); + r0 = s.arg0.fields["rules"]; + s.tmp_0 = r0; + r0 = pxsim_Array_.insertAt(s.tmp_0, s.arg1, s.insertRule___19554); + r0 = s.insertRule___19554; + { step = 7; continue; } + case 5: + case 6: r0 = undefined; + case 7: return leave(s, r0) default: oops() } } } -microcode_SamplesGallery_activate__P4475.info = {"start":2141,"length":89,"line":61,"column":23,"endLine":64,"endColumn":9,"fileName":"gallery.ts","functionName":"activate","argumentNames":["this"]} +microcode_PageDefn_insertRuleAt__P4216.info = {"start":10203,"length":326,"line":307,"column":8,"endLine":314,"endColumn":9,"fileName":"language.ts","functionName":"insertRuleAt","argumentNames":["this","index","newRule"]} -function microcode_SamplesGallery_activate__P4475_mk(s) { +function microcode_PageDefn_insertRuleAt__P4216_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_SamplesGallery_activate__P4475, depth: s.depth + 1, + parent: s, fn: microcode_PageDefn_insertRuleAt__P4216, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + insertRule___19554: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_SamplesGallery_moveCursor__P4474(s) { +function microcode_PageDefn_deleteRuleAt__P4215(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46582,53 +52684,67 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.deleted___19578 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_SamplesGallery__C4470_VT)) failedCast(r0, microcode_SamplesGallery__C4470_VT); - r0 = (s.arg1 == 4); + if (!checkSubtype(r0, microcode_PageDefn__C4211_VT)) failedCast(r0, microcode_PageDefn__C4211_VT); + r0 = (s.arg1 >= 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = if_popScene_1_mk(s); - r0 = s.arg0.fields["app"]; - s.tmp_1.arg0 = r0; - if (!s.tmp_1.arg0.vtable.iface) { - setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "popScene"), 1); - s.callLocIdx = 1638; s.pc = 3; return s.tmp_1; - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["popScene"]; - if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["popScene"], 1); s.callLocIdx = 1638; s.pc = 3; return s.tmp_1; } - else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 1638; s.pc = 3; return s.tmp_1;; } - else { s.callLocIdx = 1638; s.pc = 3; return s.tmp_1; } - } - case 3: - r0 = s.retval; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; { step = 2; continue; } case 1: - s.tmp_0 = user_interface_base_CursorScene_moveCursor__P3831_mk(s); - s.tmp_0.arg0 = s.arg0; + s.tmp_1 = r0 = s.arg1; + r0 = s.arg0.fields["rules"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 3; continue; } + r0 = s.arg0.fields["rules"]; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.arg1); + s.deleted___19578 = (r0); + s.tmp_0 = helpers_arraySplice__P2129_mk(s); + r0 = s.arg0.fields["rules"]; + s.tmp_0.arg0 = r0; s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 1639; s.pc = 4; return s.tmp_0; - case 4: + s.tmp_0.arg2 = 1; + s.callLocIdx = 1254; s.pc = 6; return s.tmp_0; + case 6: r0 = s.retval; - case 2: + r0 = s.deleted___19578; + { step = 5; continue; } + case 3: + case 4: r0 = undefined; + case 5: return leave(s, r0) default: oops() } } } -microcode_SamplesGallery_moveCursor__P4474.info = {"start":1822,"length":295,"line":52,"column":8,"endLine":60,"endColumn":9,"fileName":"gallery.ts","functionName":"moveCursor","argumentNames":["this","dir"]} +microcode_PageDefn_deleteRuleAt__P4215.info = {"start":9920,"length":273,"line":298,"column":8,"endLine":305,"endColumn":9,"fileName":"language.ts","functionName":"deleteRuleAt","argumentNames":["this","index"]} -function microcode_SamplesGallery_moveCursor__P4474_mk(s) { +function microcode_PageDefn_deleteRuleAt__P4215_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_SamplesGallery_moveCursor__P4474, depth: s.depth + 1, + parent: s, fn: microcode_PageDefn_deleteRuleAt__P4215, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + deleted___19578: undefined, arg0: undefined, arg1: undefined, } } @@ -46636,8 +52752,7 @@ function microcode_SamplesGallery_moveCursor__P4474_mk(s) { - -function microcode_SamplesGallery_startup__P4473(s) { +function microcode_PageEditor_deleteRuleAt__P4491(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46647,111 +52762,59 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.x___17701 = undefined; - s.y___17704 = undefined; - s.rowButtons___17710 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_SamplesGallery__C4470_VT)) failedCast(r0, microcode_SamplesGallery__C4470_VT); - s.tmp_0 = user_interface_base_CursorScene_startup__P3832_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1626; s.pc = 3; return s.tmp_0; - case 3: + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + s.tmp_0 = microcode_Editor_stopProgram__P4473_mk(s); + r0 = s.arg0.fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1589; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - r0 = pxsim_pxtrt.mklocRef(); - s.x___17701 = (r0); - r0 = pxsim_pxtrt_stlocRef(s.x___17701, -72); - r0 = pxsim_pxtrt.mklocRef(); - s.y___17704 = (r0); - r0 = pxsim_pxtrt_stlocRef(s.y___17704, -55); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["sampleButtons"] = (s.tmp_1); - r0 = pxsim_pxtrt.mklocRef(); - s.rowButtons___17710 = (r0); - s.tmp_0 = r0 = s.rowButtons___17710; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - r0 = pxsim_pxtcore_mkAction(4, microcode_SamplesGallery_startup_inline__P17722); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.x___17701); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.y___17704); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 3, s.rowButtons___17710); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = helpers_arrayFilter__P2139_mk(s); - s.tmp_3 = microcode_samples__P4468_mk(s); - s.tmp_3.arg0 = true; - s.callLocIdx = 1627; s.pc = 6; return s.tmp_3; - case 6: + s.tmp_0 = microcode_PageDefn_deleteRuleAt__P4215_mk(s); + r0 = s.arg0.fields["pagedef"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 1590; s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = forEach_inline__P17715; - s.callLocIdx = 1628; s.pc = 5; return s.tmp_2; - case 5: + s.tmp_0 = helpers_arraySplice__P2129_mk(s); + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = 1; + s.callLocIdx = 1591; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1636; s.pc = 4; return s.tmp_1; + s.tmp_0 = microcode_PageEditor_reassignIndices__P5967_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1592; s.pc = 4; return s.tmp_0; case 4: r0 = s.retval; - r0 = pxsim_pxtrt_ldlocRef(s.rowButtons___17710); - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 > 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = if_addRow_2_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_3.arg0 = r0; - r0 = pxsim_pxtrt_ldlocRef(s.rowButtons___17710); - s.tmp_3.arg1 = r0; - if (!s.tmp_3.arg0.vtable.iface) { - setupLambda(s.tmp_3, pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "addRow"), 2); - s.callLocIdx = 1637; s.pc = 7; return s.tmp_3; - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["addRow"]; - if (s.tmp_3.fn == null) { setupLambda(s.tmp_3, s.tmp_3.arg0.fields["addRow"], 2); s.callLocIdx = 1637; s.pc = 7; return s.tmp_3; } - else if (s.tmp_3.fn.isGetter) { s.tmp_3.stage2Call = true; s.callLocIdx = 1637; s.pc = 7; return s.tmp_3;; } - else { s.callLocIdx = 1637; s.pc = 7; return s.tmp_3; } - } - case 7: - r0 = s.retval; - case 1: - case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_SamplesGallery_startup__P4473.info = {"start":510,"length":1302,"line":16,"column":23,"endLine":50,"endColumn":9,"fileName":"gallery.ts","functionName":"startup","argumentNames":["this"]} +microcode_PageEditor_deleteRuleAt__P4491.info = {"start":20458,"length":210,"line":621,"column":8,"endLine":626,"endColumn":9,"fileName":"editor.ts","functionName":"deleteRuleAt","argumentNames":["this","index"]} -function microcode_SamplesGallery_startup__P4473_mk(s) { +function microcode_PageEditor_deleteRuleAt__P4491_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_SamplesGallery_startup__P4473, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_deleteRuleAt__P4491, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - x___17701: undefined, - y___17704: undefined, - rowButtons___17710: undefined, arg0: undefined, + arg1: undefined, } } - -function forEach_inline__P17715(s) { +function microcode_PageEditor_insertRuleAt__P4492(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46761,41 +52824,76 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.newRule___19608 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0.fields["icon"]; - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + s.tmp_0 = microcode_Editor_stopProgram__P4473_mk(s); + r0 = s.arg0.fields["editor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1593; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = microcode_PageDefn_insertRuleAt__P4216_mk(s); + r0 = s.arg0.fields["pagedef"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = undefined; + s.callLocIdx = 1594; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.newRule___19608 = (r0); + r0 = pxsim_numops_toBoolDecr(s.newRule___19608); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleEditor__C4496_VT); s.tmp_0 = r0; - r0 = pxsim_Boolean__bang(s.tmp_0); + s.tmp_1 = microcode_RuleEditor_constructor__P4506_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.arg0.fields["editor"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.arg0; + s.tmp_1.arg3 = s.newRule___19608; + s.tmp_1.arg4 = s.arg1; + s.callLocIdx = 1595; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + r0 = s.arg0.fields["ruleEditors"]; + s.tmp_2 = r0; + r0 = pxsim_Array_.insertAt(s.tmp_2, s.arg1, s.tmp_0); + s.tmp_0 = microcode_PageEditor_reassignIndices__P5967_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1596; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + case 1: + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -forEach_inline__P17715.info = {"start":728,"length":23,"line":24,"column":24,"endLine":24,"endColumn":47,"fileName":"gallery.ts","functionName":"inline","argumentNames":["sample"]} +microcode_PageEditor_insertRuleAt__P4492.info = {"start":20678,"length":394,"line":628,"column":8,"endLine":638,"endColumn":9,"fileName":"editor.ts","functionName":"insertRuleAt","argumentNames":["this","index"]} -function forEach_inline__P17715_mk(s) { +function microcode_PageEditor_insertRuleAt__P4492_mk(s) { checkStack(s.depth); return { - parent: s, fn: forEach_inline__P17715, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_insertRuleAt__P4492, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, + newRule___19608: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_SamplesGallery_startup_inline__P17722(s) { +function user_interface_base_Button_constructor__P3650(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46805,104 +52903,376 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btn___17724 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + s.tmp_2 = if_x_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "x"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["x"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["x"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 541; s.pc = 17; return s.tmp_2; } + } + case 17: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", null); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.Transparent___3641); - r0 = s.arg0.fields["icon"]; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_2); - r0 = s.arg0.fields["ariaId"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", s.tmp_3); - r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); - s.tmp_5 = r0; - r0 = (s.tmp_5 + 16); + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = if_x_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "x"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["x"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["x"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 542; s.pc = 18; return s.tmp_3; } + } + case 18: + r0 = s.retval; + { step = 2; continue; } + case 1: + r0 = 0; + case 2: + // jmp value (already in r0) s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.tmp_4); - r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); - s.tmp_7 = r0; - r0 = (s.tmp_7 + 16); + s.tmp_7 = if_y_1_mk(s); + s.tmp_7.arg0 = s.arg1; + if (!s.tmp_7.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "y"); + } else { + s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["y"]; + if (s.tmp_7.fn == null) { s.retval = s.tmp_7.arg0.fields["y"]; } + else if (!s.tmp_7.fn.isGetter) { s.retval = bind(s.tmp_7); } + else { s.callLocIdx = 543; s.pc = 19; return s.tmp_7; } + } + case 19: + r0 = s.retval; s.tmp_6 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", s.tmp_6); - r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P17740); - s.tmp_8 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_8, 0, s.caps[2]); - r0 = pxsim_pxtrt_stclo(s.tmp_8, 1, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_8); - s.tmp_9 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_9.arg0 = s.tmp_0; - s.tmp_9.arg1 = s.tmp_1; - s.callLocIdx = 1634; s.pc = 3; return s.tmp_9; + r0 = (s.tmp_6 != null); + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 3; continue; } + s.tmp_8 = if_y_1_mk(s); + s.tmp_8.arg0 = s.arg1; + if (!s.tmp_8.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "y"); + } else { + s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["y"]; + if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["y"]; } + else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } + else { s.callLocIdx = 544; s.pc = 20; return s.tmp_8; } + } + case 20: + r0 = s.retval; + { step = 4; continue; } case 3: + r0 = 0; + case 4: + // jmp value (already in r0) + s.tmp_9 = r0; + s.tmp_11 = if_style_1_mk(s); + s.tmp_11.arg0 = s.arg1; + if (!s.tmp_11.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_11.arg0, "style"); + } else { + s.tmp_11.fn = s.tmp_11.arg0.vtable.iface["style"]; + if (s.tmp_11.fn == null) { s.retval = s.tmp_11.arg0.fields["style"]; } + else if (!s.tmp_11.fn.isGetter) { s.retval = bind(s.tmp_11); } + else { s.callLocIdx = 545; s.pc = 21; return s.tmp_11; } + } + case 21: r0 = s.retval; - s.btn___17724 = (s.tmp_0); - r0 = s.caps[2].fields["sampleButtons"]; - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.btn___17724); - r0 = pxsim_pxtrt_ldlocRef(s.caps[3]); + s.tmp_10 = r0; + r0 = pxsim_numops_toBool(s.tmp_10); + if (!r0) { step = 5; continue; } + r0 = s.tmp_10; + { step = 6; continue; } + case 5: + r0 = globals.Transparent___3614; + case 6: + // jmp value (already in r0) + s.tmp_12 = r0; + s.tmp_14 = if_parent_1_mk(s); + s.tmp_14.arg0 = s.arg1; + if (!s.tmp_14.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_14.arg0, "parent"); + } else { + s.tmp_14.fn = s.tmp_14.arg0.vtable.iface["parent"]; + if (s.tmp_14.fn == null) { s.retval = s.tmp_14.arg0.fields["parent"]; } + else if (!s.tmp_14.fn.isGetter) { s.retval = bind(s.tmp_14); } + else { s.callLocIdx = 546; s.pc = 22; return s.tmp_14; } + } + case 22: + r0 = s.retval; + s.tmp_13 = r0; + r0 = pxsim_numops_toBool(s.tmp_13); + if (r0) { step = 7; continue; } + r0 = s.tmp_13; + { step = 8; continue; } + case 7: + s.tmp_15 = if_xfrm_1_mk(s); + s.tmp_16 = if_parent_1_mk(s); + s.tmp_16.arg0 = s.arg1; + if (!s.tmp_16.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_16.arg0, "parent"); + } else { + s.tmp_16.fn = s.tmp_16.arg0.vtable.iface["parent"]; + if (s.tmp_16.fn == null) { s.retval = s.tmp_16.arg0.fields["parent"]; } + else if (!s.tmp_16.fn.isGetter) { s.retval = bind(s.tmp_16); } + else { s.callLocIdx = 547; s.pc = 24; return s.tmp_16; } + } + case 24: + r0 = s.retval; + s.tmp_15.arg0 = r0; + if (!s.tmp_15.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_15.arg0, "xfrm"); + } else { + s.tmp_15.fn = s.tmp_15.arg0.vtable.iface["xfrm"]; + if (s.tmp_15.fn == null) { s.retval = s.tmp_15.arg0.fields["xfrm"]; } + else if (!s.tmp_15.fn.isGetter) { s.retval = bind(s.tmp_15); } + else { s.callLocIdx = 548; s.pc = 23; return s.tmp_15; } + } + case 23: + r0 = s.retval; + case 8: + // jmp value (already in r0) + s.tmp_17 = r0; + s.tmp_18 = user_interface_base_ButtonBase_constructor__P3623_mk(s); + s.tmp_18.arg0 = s.arg0; + s.tmp_18.arg1 = s.tmp_4; + s.tmp_18.arg2 = s.tmp_9; + s.tmp_18.arg3 = s.tmp_12; + s.tmp_18.arg4 = s.tmp_17; + s.callLocIdx = 549; s.pc = 25; return s.tmp_18; + case 25: + r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_icon_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "icon"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["icon"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["icon"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 550; s.pc = 26; return s.tmp_2; } + } + case 26: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["iconId"] = (s.tmp_1); + s.tmp_2 = if_ariaId_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "ariaId"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["ariaId"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["ariaId"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 551; s.pc = 27; return s.tmp_2; } + } + case 27: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.btn___17724); - s.tmp_0 = r0 = s.caps[0]; - r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); - s.tmp_2 = r0; - r0 = (s.tmp_2 + 38); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + s.tmp_3 = if_ariaId_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "ariaId"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["ariaId"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["ariaId"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 552; s.pc = 28; return s.tmp_3; } + } + case 28: + r0 = s.retval; + { step = 10; continue; } + case 9: + r0 = pxsim_String_.mkEmpty(); + case 10: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["_ariaId"] = (s.tmp_4); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_onClick_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onClick"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onClick"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onClick"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 553; s.pc = 29; return s.tmp_2; } + } + case 29: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + r0 = (s.tmp_0).fields["onClick"] = (s.tmp_1); + s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3629_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = user_interface_base_Button_image___P5246_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 554; s.pc = 31; return s.tmp_1; + case 31: + r0 = s.retval; + s.tmp_0.arg1 = r0; + s.callLocIdx = 555; s.pc = 30; return s.tmp_0; + case 30: + r0 = s.retval; + s.tmp_1 = if_flipIcon_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "flipIcon"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["flipIcon"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["flipIcon"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 556; s.pc = 32; return s.tmp_1; } + } + case 32: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + r0 = s.arg0.fields["icon"]; s.tmp_2 = r0; - r0 = (s.tmp_2 + 32); + r0 = s.arg0.fields["icon"]; + r0 = r0.fields["image"]; + s.tmp_4 = r0; + r0 = pxsim.BitmapMethods.clone(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["image"] = (s.tmp_3); + r0 = s.arg0.fields["icon"]; + r0 = r0.fields["image"]; + s.tmp_0 = r0; + r0 = pxsim.BitmapMethods.flipY(s.tmp_0); + case 11: + case 12: + r0 = (s.arg0).fields["selected"] = (false); + r0 = (s.arg0).fields["pressable"] = (true); + s.tmp_2 = if_dynamicBoundaryColorsOn_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "dynamicBoundaryColorsOn"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["dynamicBoundaryColorsOn"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["dynamicBoundaryColorsOn"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 557; s.pc = 33; return s.tmp_2; } + } + case 33: + r0 = s.retval; s.tmp_1 = r0; - r0 = (s.tmp_1 > 75); + r0 = (s.tmp_1 == null); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = if_addRow_2_mk(s); - r0 = s.caps[2].fields["navigator"]; - s.tmp_3.arg0 = r0; - r0 = pxsim_pxtrt_ldlocRef(s.caps[3]); - s.tmp_3.arg1 = r0; + if (!r0) { step = 13; continue; } + s.tmp_3 = if_dynamicBoundaryColorsOn_2_mk(s); + s.tmp_3.arg0 = s.arg1; + s.tmp_3.arg1 = false; if (!s.tmp_3.arg0.vtable.iface) { - setupLambda(s.tmp_3, pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "addRow"), 2); - s.callLocIdx = 1635; s.pc = 4; return s.tmp_3; + s.retval = pxsim_pxtrt.mapSetByString(s.tmp_3.arg0, "dynamicBoundaryColorsOn", s.tmp_3.arg1); } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["addRow"]; - if (s.tmp_3.fn == null) { setupLambda(s.tmp_3, s.tmp_3.arg0.fields["addRow"], 2); s.callLocIdx = 1635; s.pc = 4; return s.tmp_3; } - else if (s.tmp_3.fn.isGetter) { s.tmp_3.stage2Call = true; s.callLocIdx = 1635; s.pc = 4; return s.tmp_3;; } - else { s.callLocIdx = 1635; s.pc = 4; return s.tmp_3; } + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["set/dynamicBoundaryColorsOn"]; + if (s.tmp_3.fn === null) { s.tmp_3.arg0.fields["dynamicBoundaryColorsOn"] = s.tmp_3.arg1; } + else if (s.tmp_3.fn === undefined) { failedCast(s.tmp_3.arg0) } + else { s.callLocIdx = 558; s.pc = 34; return s.tmp_3; } } - case 4: + case 34: + r0 = s.retval; + { step = 14; continue; } + case 13: + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_dynamicBoundaryColorsOn_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "dynamicBoundaryColorsOn"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["dynamicBoundaryColorsOn"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["dynamicBoundaryColorsOn"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 559; s.pc = 35; return s.tmp_2; } + } + case 35: r0 = s.retval; - s.tmp_0 = r0 = s.caps[3]; - r0 = pxsim_Array__mk(); s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - s.tmp_0 = r0 = s.caps[1]; - r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); - s.tmp_2 = r0; - r0 = (s.tmp_2 + 38); + r0 = (s.tmp_0).fields["dynamicBoundaryColorsOn"] = (s.tmp_1); + r0 = (s.arg0).fields["boundaryColor"] = (2); + case 14: + s.tmp_2 = if_boundaryColor_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "boundaryColor"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["boundaryColor"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["boundaryColor"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 560; s.pc = 36; return s.tmp_2; } + } + case 36: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + r0 = (s.arg0).fields["dynamicBoundaryColorsOn"] = (true); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_boundaryColor_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "boundaryColor"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["boundaryColor"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["boundaryColor"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 561; s.pc = 37; return s.tmp_2; } + } + case 37: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["boundaryColor"] = (s.tmp_1); + case 15: + case 16: + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_state_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "state"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["state"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["state"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 562; s.pc = 38; return s.tmp_2; } + } + case 38: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - r0 = pxsim_pxtrt_stlocRef(s.caps[0], -72); - case 1: - case 2: + r0 = (s.tmp_0).fields["state"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_SamplesGallery_startup_inline__P17722.info = {"start":778,"length":950,"line":25,"column":25,"endLine":48,"endColumn":17,"fileName":"gallery.ts","functionName":"inline","argumentNames":["sample"]} +user_interface_base_Button_constructor__P3650.info = {"start":6784,"length":1759,"line":276,"column":4,"endLine":330,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"inline","argumentNames":["this","opts"]} -function microcode_SamplesGallery_startup_inline__P17722_mk(s) { +function user_interface_base_Button_constructor__P3650_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_SamplesGallery_startup_inline__P17722, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_constructor__P3650, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -46914,15 +53284,23 @@ function microcode_SamplesGallery_startup_inline__P17722_mk(s) { tmp_7: undefined, tmp_8: undefined, tmp_9: undefined, - btn___17724: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, arg0: undefined, + arg1: undefined, } } - -function onClick_inline__P17740(s) { +function user_interface_base_Button_image___P5246(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -46932,86 +53310,74 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = if_save_3_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4287; - s.tmp_1 = microcode_Sample_source__P4466_mk(s); - s.tmp_1.arg0 = s.caps[1]; - s.callLocIdx = 1629; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg2 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "save"), 3); - s.callLocIdx = 1630; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["save"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["save"], 3); s.callLocIdx = 1630; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1630; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1630; s.pc = 1; return s.tmp_0; } + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + r0 = s.arg0.fields["iconId"]; + s.tmp_2 = r0; + r0 = pxsim_pxtcore.typeOf(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 == "string"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = s.arg0.fields["iconId"]; + s.tmp_4 = r0; + r0 = pxsim_pxtcore.typeOf(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 == "number"); + case 2: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 3; continue; } + s.tmp_6 = lambda_3_mk(s); + s.tmp_6.argL = globals.getIcon___3461; + r0 = s.arg0.fields["iconId"]; + s.tmp_6.arg0 = r0; + s.tmp_6.arg1 = false; + setupLambda(s.tmp_6, s.tmp_6.argL); + s.callLocIdx = 563; s.pc = 5; return s.tmp_6; + case 5: r0 = s.retval; - s.tmp_0 = if_popScene_1_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); - s.callLocIdx = 1631; s.pc = 3; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1631; s.pc = 3; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1631; s.pc = 3; return s.tmp_0;; } - else { s.callLocIdx = 1631; s.pc = 3; return s.tmp_0; } - } + { step = 4; continue; } case 3: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(microcode_Editor__C4301_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_Editor_constructor__P4307_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.caps[0].fields["app"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1632; s.pc = 4; return s.tmp_1; + r0 = s.arg0.fields["iconId"]; case 4: - r0 = s.retval; - s.tmp_2 = if_pushScene_2_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - if (!s.tmp_2.arg0.vtable.iface) { - setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); - s.callLocIdx = 1633; s.pc = 5; return s.tmp_2; - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1633; s.pc = 5; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1633; s.pc = 5; return s.tmp_2;; } - else { s.callLocIdx = 1633; s.pc = 5; return s.tmp_2; } - } - case 5: - r0 = s.retval; - r0 = undefined; + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = s.tmp_7; return leave(s, r0) default: oops() } } } -onClick_inline__P17740.info = {"start":1123,"length":222,"line":33,"column":33,"endLine":37,"endColumn":25,"fileName":"gallery.ts","functionName":"inline","argumentNames":[]} +user_interface_base_Button_image___P5246.info = {"start":8801,"length":162,"line":344,"column":4,"endLine":348,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"image_","argumentNames":["this"]} -function onClick_inline__P17740_mk(s) { +function user_interface_base_Button_image___P5246_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P17740, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_image___P5246, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + arg0: undefined, } } - -function microcode_Sample_source__P4466(s) { +function microcode_PageEditor_xfrm__P4483(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47026,33 +53392,26 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Sample__C4464_VT)) failedCast(r0, microcode_Sample__C4464_VT); - s.tmp_0 = Buffer_fromBase64__P2796_mk(s); - r0 = s.arg0.fields["b64"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1610; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + if (!checkSubtype(r0, microcode_PageEditor__C4481_VT)) failedCast(r0, microcode_PageEditor__C4481_VT); + r0 = s.arg0.fields["xfrm_"]; return leaveAccessor(s, r0) default: oops() } } } -microcode_Sample_source__P4466.info = {"start":260,"length":71,"line":9,"column":8,"endLine":11,"endColumn":9,"fileName":"samples.ts","functionName":"source","argumentNames":["this"]} -microcode_Sample_source__P4466.isGetter = true; +microcode_PageEditor_xfrm__P4483.info = {"start":16869,"length":59,"line":511,"column":8,"endLine":513,"endColumn":9,"fileName":"editor.ts","functionName":"xfrm","argumentNames":["this"]} +microcode_PageEditor_xfrm__P4483.isGetter = true; -function microcode_Sample_source__P4466_mk(s) { +function microcode_PageEditor_xfrm__P4483_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Sample_source__P4466, depth: s.depth + 1, + parent: s, fn: microcode_PageEditor_xfrm__P4483, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, } } - -function Buffer_fromBase64__P2796(s) { +function microcode_getIcon__P4195(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47062,49 +53421,79 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.sz___17800 = undefined; - s.res___17805 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = Buffer_fromBase64Core__P4910_mk(s); - s.tmp_0.arg0 = null; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 79; s.pc = 1; return s.tmp_0; - case 1: + r0 = s.arg0; + r0 = checkSubtype(r0, microcode_ModifierEditor__C4543_VT); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_ModifierEditor__C4543_v1_1_mk(s); + s.tmp_1.arg0 = s.arg0; + if (!checkSubtype(s.tmp_1.arg0, microcode_ModifierEditor__C4543_VT)) failedCast(s.tmp_1.arg0, microcode_ModifierEditor__C4543_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.getIcon; + s.pc = 4; return s.tmp_1; + case 4: r0 = s.retval; - s.sz___17800 = (r0); - r0 = pxsim.control.createBuffer(s.sz___17800); - s.res___17805 = (r0); - s.tmp_0 = Buffer_fromBase64Core__P4910_mk(s); - s.tmp_0.arg0 = s.res___17805; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 80; s.pc = 2; return s.tmp_0; + { step = 3; continue; } + case 1: case 2: - r0 = s.retval; - r0 = s.res___17805; + r0 = s.arg0; + case 3: return leave(s, r0) default: oops() } } } -Buffer_fromBase64__P2796.info = {"start":9796,"length":175,"line":344,"column":4,"endLine":349,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"fromBase64","argumentNames":["b64"]} +microcode_getIcon__P4195.info = {"start":1828,"length":129,"line":63,"column":4,"endLine":66,"endColumn":5,"fileName":"language.ts","functionName":"getIcon","argumentNames":["tile"]} -function Buffer_fromBase64__P2796_mk(s) { +function microcode_getIcon__P4195_mk(s) { checkStack(s.depth); return { - parent: s, fn: Buffer_fromBase64__P2796, depth: s.depth + 1, + parent: s, fn: microcode_getIcon__P4195, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - sz___17800: undefined, - res___17805: undefined, + tmp_1: undefined, arg0: undefined, } } +function microcode_ModifierEditor_getIcon__P4548(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_ModifierEditor__C4543_VT)) failedCast(r0, microcode_ModifierEditor__C4543_VT); + r0 = null; + return leave(s, r0) + default: oops() +} } } +microcode_ModifierEditor_getIcon__P4548.info = {"start":1219,"length":71,"line":45,"column":8,"endLine":47,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getIcon","argumentNames":["this"]} + +function microcode_ModifierEditor_getIcon__P4548_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_ModifierEditor_getIcon__P4548, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + -function Buffer_fromBase64Core__P4910(s) { + +function user_interface_base_Button_setIcon__P3654(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47114,192 +53503,60 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___17815 = undefined; - s.dp___17818 = undefined; - s.i___17819 = undefined; - s.x0___17824 = undefined; - s.x1___17830 = undefined; - s.x2___17838 = undefined; - s.x3___17846 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_String_.length(s.arg1); - s.len___17815 = (r0); - s.dp___17818 = (0); - s.i___17819 = (0); - case 1: - r0 = (s.i___17819 < s.len___17815); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 20; continue; } - s.tmp_1 = Buffer_b64Idx__P4909_mk(s); - r0 = pxsim_String_.charAt(s.arg1, s.i___17819); - s.tmp_1.arg0 = r0; - s.callLocIdx = 75; s.pc = 21; return s.tmp_1; - case 21: - r0 = s.retval; - s.x0___17824 = (r0); - s.tmp_0 = Buffer_b64Idx__P4909_mk(s); - s.tmp_1 = r0 = s.arg1; - r0 = (s.i___17819 + 1); - s.tmp_2 = r0; - r0 = pxsim_String_.charAt(s.tmp_1, s.tmp_2); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + r0 = (s.arg0).fields["iconId"] = (s.arg1); + r0 = pxsim_numops_toBoolDecr(s.arg2); + if (!r0) { step = 1; continue; } + s.tmp_0 = user_interface_base_Sprite_setImage__P3454_mk(s); + r0 = s.arg0.fields["icon"]; s.tmp_0.arg0 = r0; - s.callLocIdx = 76; s.pc = 22; return s.tmp_0; - case 22: + s.tmp_0.arg1 = s.arg2; + s.callLocIdx = 564; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - s.x1___17830 = (r0); - s.tmp_0 = Buffer_b64Idx__P4909_mk(s); - s.tmp_1 = r0 = s.arg1; - r0 = (s.i___17819 + 2); - s.tmp_2 = r0; - r0 = pxsim_String_.charAt(s.tmp_1, s.tmp_2); - s.tmp_0.arg0 = r0; - s.callLocIdx = 77; s.pc = 23; return s.tmp_0; - case 23: + { step = 2; continue; } + case 1: + s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3629_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = user_interface_base_Button_image___P5246_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 565; s.pc = 5; return s.tmp_1; + case 5: r0 = s.retval; - s.x2___17838 = (r0); - s.tmp_0 = Buffer_b64Idx__P4909_mk(s); - s.tmp_1 = r0 = s.arg1; - r0 = (s.i___17819 + 3); - s.tmp_2 = r0; - r0 = pxsim_String_.charAt(s.tmp_1, s.tmp_2); - s.tmp_0.arg0 = r0; - s.callLocIdx = 78; s.pc = 24; return s.tmp_0; - case 24: + s.tmp_0.arg1 = r0; + s.callLocIdx = 566; s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; - s.x3___17846 = (r0); - r0 = (s.x0___17824 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } case 2: - r0 = (s.x1___17830 < 0); - case 3: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_pxtcore.throwValue("Invalid Base64"); - case 4: - case 5: - r0 = pxsim_numops_toBoolDecr(s.arg0); - if (!r0) { step = 6; continue; } - s.tmp_2 = r0 = s.arg0; - s.tmp_3 = r0 = s.dp___17818; - r0 = (s.x0___17824 << 2); - s.tmp_5 = r0; - r0 = (s.x1___17830 >> 4); - s.tmp_6 = r0; - r0 = (s.tmp_5 | s.tmp_6); - s.tmp_4 = r0; - r0 = pxsim.BufferMethods.setByte(s.tmp_2, s.tmp_3, s.tmp_4); - case 6: - case 7: - r0 = (s.dp___17818 + 1); - s.dp___17818 = (r0); - r0 = (s.x2___17838 >= 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - if (!r0) { step = 8; continue; } - s.tmp_1 = r0 = s.arg0; - s.tmp_2 = r0 = s.dp___17818; - r0 = (s.x1___17830 << 4); - s.tmp_4 = r0; - r0 = (s.x2___17838 >> 2); - s.tmp_5 = r0; - r0 = (s.tmp_4 | s.tmp_5); - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.setByte(s.tmp_1, s.tmp_2, s.tmp_3); - case 8: - case 9: - r0 = (s.dp___17818 + 1); - s.dp___17818 = (r0); - r0 = (s.x3___17846 >= 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 12; continue; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - if (!r0) { step = 10; continue; } - s.tmp_1 = r0 = s.arg0; - s.tmp_2 = r0 = s.dp___17818; - r0 = (s.x2___17838 << 6); - s.tmp_4 = r0; - r0 = (s.tmp_4 | s.x3___17846); - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.setByte(s.tmp_1, s.tmp_2, s.tmp_3); - case 10: - case 11: - r0 = (s.dp___17818 + 1); - s.dp___17818 = (r0); - case 12: - case 13: - { step = 19; continue; } - case 14: - r0 = (s.x3___17846 >= 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 15; continue; } - r0 = s.tmp_0; - { step = 16; continue; } - case 15: - r0 = (s.i___17819 + 4); - s.tmp_1 = r0; - r0 = (s.tmp_1 < s.len___17815); - case 16: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 17; continue; } - r0 = pxsim_pxtcore.throwValue("Invalid Base64"); - case 17: - case 18: - case 19: - r0 = (s.i___17819 + 4); - s.i___17819 = (r0); - { step = 1; continue; } - case 20: - r0 = s.dp___17818; + r0 = undefined; return leave(s, r0) default: oops() } } } -Buffer_fromBase64Core__P4910.info = {"start":8837,"length":884,"line":312,"column":4,"endLine":339,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"fromBase64Core","argumentNames":["trg","b64"]} +user_interface_base_Button_setIcon__P3654.info = {"start":8969,"length":170,"line":350,"column":4,"endLine":354,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"setIcon","argumentNames":["this","iconId","img"]} -function Buffer_fromBase64Core__P4910_mk(s) { +function user_interface_base_Button_setIcon__P3654_mk(s) { checkStack(s.depth); return { - parent: s, fn: Buffer_fromBase64Core__P4910, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_setIcon__P3654, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - len___17815: undefined, - dp___17818: undefined, - i___17819: undefined, - x0___17824: undefined, - x1___17830: undefined, - x2___17838: undefined, - x3___17846: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } - -function Buffer_b64Idx__P4909(s) { +function user_interface_base_Sprite_setImage__P3454(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47309,78 +53566,33 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___17924 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 === undefined); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 == "="); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = -1; - { step = 11; continue; } - case 3: - case 4: - r0 = (s.arg0 == "-"); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 5; continue; } - r0 = 62; - { step = 11; continue; } - case 5: - case 6: - r0 = (s.arg0 == "_"); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 7; continue; } - r0 = 63; - { step = 11; continue; } - case 7: - case 8: - r0 = pxsim_String_.indexOf(globals._b64___2782, s.arg0, undefined); - s.r___17924 = (r0); - r0 = (s.r___17924 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = pxsim_pxtcore.throwValue("Invalid Base64"); - case 9: - case 10: - r0 = s.r___17924; - case 11: + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Sprite__C3444_VT)) failedCast(r0, user_interface_base_Sprite__C3444_VT); + r0 = (s.arg0).fields["image"] = (s.arg1); + r0 = undefined; return leave(s, r0) default: oops() } } } -Buffer_b64Idx__P4909.info = {"start":8539,"length":292,"line":299,"column":4,"endLine":310,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"b64Idx","argumentNames":["c"]} +user_interface_base_Sprite_setImage__P3454.info = {"start":1323,"length":69,"line":46,"column":8,"endLine":48,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"setImage","argumentNames":["this","img"]} -function Buffer_b64Idx__P4909_mk(s) { +function user_interface_base_Sprite_setImage__P3454_mk(s) { checkStack(s.depth); return { - parent: s, fn: Buffer_b64Idx__P4909, depth: s.depth + 1, + parent: s, fn: user_interface_base_Sprite_setImage__P3454, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - r___17924: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_samples__P4468(s) { +function microcode_Editor_startup__P4471(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47390,77 +53602,398 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.s___17934 = undefined; - s.r___17937 = undefined; + s.makeOnEvent___19775 = undefined; + s.buf___19905 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_rawSamples__P4467_mk(s); - s.callLocIdx = 1614; s.pc = 1; return s.tmp_0; - case 1: + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = microcode_stopProgram__P4450_mk(s); + s.callLocIdx = 1466; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, makeOnEvent_inline__P19776); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.makeOnEvent___19775 = (s.tmp_0); + s.tmp_0 = user_interface_base_Scene_startup__P3664_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1469; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.makeOnEvent___19775; + r0 = globals.right___3243.fields["id"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 3; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1470; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.makeOnEvent___19775; + r0 = globals.left___3241.fields["id"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 2; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1471; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.makeOnEvent___19775; + r0 = globals.up___3242.fields["id"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 0; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1472; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = s.makeOnEvent___19775; + r0 = globals.down___3244.fields["id"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 1; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1473; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_Editor_startup_inline__P19806); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.menu___3245.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 1475; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Placeable__C3380_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Placeable_constructor__P3382_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = undefined; + s.callLocIdx = 1476; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + r0 = (s.arg0).fields["hudroot"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = 0; + s.tmp_1.arg2 = globals.user_interface_base_Screen_TOP_EDGE___3418; + s.callLocIdx = 1478; s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + s.tmp_2 = user_interface_base_Affine_localPos__P3327_mk(s); + r0 = s.arg0.fields["hudroot"]; + s.tmp_3 = r0; + r0 = s.tmp_3.fields["xfrm_"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + s.callLocIdx = 1479; s.pc = 12; return s.tmp_2; + case 12: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Placeable__C3380_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Placeable_constructor__P3382_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = undefined; + s.callLocIdx = 1480; s.pc = 13; return s.tmp_1; + case 13: + r0 = s.retval; + r0 = (s.arg0).fields["scrollroot"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + r0 = (globals.user_interface_base_Screen_TOP_EDGE___3418 + 17); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 2); + s.tmp_1.arg2 = r0; + s.callLocIdx = 1482; s.pc = 14; return s.tmp_1; + case 14: + r0 = s.retval; + s.tmp_3 = user_interface_base_Affine_localPos__P3327_mk(s); + r0 = s.arg0.fields["scrollroot"]; + s.tmp_4 = r0; + r0 = s.tmp_4.fields["xfrm_"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.tmp_0; + s.callLocIdx = 1483; s.pc = 15; return s.tmp_3; + case 15: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Cursor__C3691_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Cursor_constructor__P3703_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1484; s.pc = 16; return s.tmp_1; + case 16: + r0 = s.retval; + r0 = (s.arg0).fields["cursor"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Picker__C3721_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Picker_constructor__P3728_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.arg0.fields["cursor"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1485; s.pc = 17; return s.tmp_1; + case 17: + r0 = s.retval; + r0 = (s.arg0).fields["picker"] = (s.tmp_0); + r0 = (s.arg0).fields["currPage"] = (0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["hudroot"]; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.BorderedPurple___3612); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", globals.disk___4062); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", "disk"); + r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3416 + 12); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.tmp_3); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 8); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P19860); + s.tmp_4 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_4, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_4); + s.tmp_5 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_5.arg0 = s.tmp_0; + s.tmp_5.arg1 = s.tmp_1; + s.callLocIdx = 1487; s.pc = 18; return s.tmp_5; + case 18: + r0 = s.retval; + r0 = (s.arg0).fields["diskBtn"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["hudroot"]; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.BorderedPurple___3612); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", globals.run___4177); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", "run"); + r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3416 + 32); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.tmp_3); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 8); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P19873); + s.tmp_4 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_4, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_4); + s.tmp_5 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_5.arg0 = s.tmp_0; + s.tmp_5.arg1 = s.tmp_1; + s.callLocIdx = 1489; s.pc = 19; return s.tmp_5; + case 19: + r0 = s.retval; + r0 = (s.arg0).fields["runBtn"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["hudroot"]; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.BorderedPurple___3612); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", globals.stopDisabled___4180); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", "stop"); + r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3416 + 52); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.tmp_3); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 8); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P19886); + s.tmp_4 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_4, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_4); + s.tmp_5 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_5.arg0 = s.tmp_0; + s.tmp_5.arg1 = s.tmp_1; + s.callLocIdx = 1491; s.pc = 20; return s.tmp_5; + case 20: + r0 = s.retval; + r0 = (s.arg0).fields["stopBtn"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["hudroot"]; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.BorderedPurple___3612); + s.tmp_4 = microcode_getIcon__P4195_mk(s); + s.tmp_6 = microcode_PAGE_IDS__P4219_mk(s); + s.callLocIdx = 1492; s.pc = 22; return s.tmp_6; + case 22: + r0 = s.retval; + s.tmp_5 = r0; + r0 = s.arg0.fields["currPage"]; + s.tmp_7 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_7); + s.tmp_4.arg0 = r0; + s.callLocIdx = 1493; s.pc = 21; return s.tmp_4; + case 21: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_3); + r0 = (globals.user_interface_base_Screen_RIGHT_EDGE___3417 - 12); + s.tmp_8 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.tmp_8); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 8); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P19902); + s.tmp_9 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_9, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_9); + s.tmp_10 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_10.arg0 = s.tmp_0; + s.tmp_10.arg1 = s.tmp_1; + s.callLocIdx = 1495; s.pc = 23; return s.tmp_10; + case 23: + r0 = s.retval; + r0 = (s.arg0).fields["pageBtn"] = (s.tmp_0); + s.tmp_0 = microcode_Editor_stopProgram__P4473_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1496; s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + s.tmp_0 = if_load_2_mk(s); + r0 = s.arg0.fields["app"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4438; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "load"), 2); + s.callLocIdx = 1497; s.pc = 25; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["load"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["load"], 2); s.callLocIdx = 1497; s.pc = 25; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1497; s.pc = 25; return s.tmp_0;; } + else { s.callLocIdx = 1497; s.pc = 25; return s.tmp_0; } + } + case 25: + r0 = s.retval; + s.buf___19905 = (r0); + r0 = pxsim_numops_toBoolDecr(s.buf___19905); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkClassInstance(microcode_BufferReader__C4627_VT); + s.tmp_2 = r0; + s.tmp_3 = microcode_BufferReader_constructor__P4628_mk(s); + s.tmp_3.arg0 = s.tmp_2; + s.tmp_4 = microcode_Sample_source__P4608_mk(s); + s.tmp_6 = microcode_samples__P4610_mk(s); + s.tmp_6.arg0 = true; + s.callLocIdx = 1498; s.pc = 28; return s.tmp_6; + case 28: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, 1); + s.tmp_4.arg0 = r0; + s.callLocIdx = 1499; s.pc = 27; return s.tmp_4; + case 27: r0 = s.retval; - s.s___17934 = (r0); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "s", s.s___17934); - s.r___17937 = (s.tmp_0); - s.tmp_0 = microcode_rawWebAppSamples__P5834_mk(s); - s.tmp_0.arg0 = s.r___17937; - s.callLocIdx = 1615; s.pc = 2; return s.tmp_0; - case 2: + s.tmp_3.arg1 = r0; + s.tmp_3.arg2 = 0; + s.callLocIdx = 1500; s.pc = 26; return s.tmp_3; + case 26: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, map_inline__P17947); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arrayMap__P2135_mk(s); - s.tmp_2 = helpers_arrayFilter__P2139_mk(s); - s.tmp_3 = if_s_1_mk(s); - s.tmp_3.arg0 = s.r___17937; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "s"); + s.tmp_7 = r0 = s.arg0; + s.tmp_9 = microcode_ProgramDefn_fromBuffer__P4225_mk(s); + s.tmp_9.arg0 = s.tmp_2; + s.callLocIdx = 1501; s.pc = 29; return s.tmp_9; + case 29: + r0 = s.retval; + s.tmp_8 = r0; + r0 = (s.tmp_7).fields["progdef"] = (s.tmp_8); + s.tmp_0 = if_save_3_mk(s); + r0 = s.arg0.fields["app"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4438; + s.tmp_1 = microcode_ProgramDefn_toBuffer__P4224_mk(s); + r0 = s.arg0.fields["progdef"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 1502; s.pc = 31; return s.tmp_1; + case 31: + r0 = s.retval; + s.tmp_0.arg2 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "save"), 3); + s.callLocIdx = 1503; s.pc = 30; return s.tmp_0; } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["s"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["s"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1616; s.pc = 5; return s.tmp_3; } + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["save"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["save"], 3); s.callLocIdx = 1503; s.pc = 30; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1503; s.pc = 30; return s.tmp_0;; } + else { s.callLocIdx = 1503; s.pc = 30; return s.tmp_0; } } - case 5: + case 30: r0 = s.retval; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - s.callLocIdx = 1618; s.pc = 4; return s.tmp_2; - case 4: + { step = 2; continue; } + case 1: + r0 = pxsim_pxtcore_mkClassInstance(microcode_BufferReader__C4627_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_BufferReader_constructor__P4628_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.buf___19905; + s.tmp_1.arg2 = 0; + s.callLocIdx = 1504; s.pc = 32; return s.tmp_1; + case 32: r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = microcode_samples_inline__P17956; - s.callLocIdx = 1624; s.pc = 3; return s.tmp_1; - case 3: + s.tmp_2 = r0 = s.arg0; + s.tmp_4 = microcode_ProgramDefn_fromBuffer__P4225_mk(s); + s.tmp_4.arg0 = s.tmp_0; + s.callLocIdx = 1505; s.pc = 33; return s.tmp_4; + case 33: r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["progdef"] = (s.tmp_3); + case 2: + s.tmp_0 = microcode_Editor_configureP1Keys__P5955_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1506; s.pc = 34; return s.tmp_0; + case 34: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_samples__P4468.info = {"start":7975,"length":359,"line":232,"column":4,"endLine":242,"endColumn":5,"fileName":"samples.ts","functionName":"samples","argumentNames":["withIcon"]} +microcode_Editor_startup__P4471.info = {"start":7354,"length":3103,"line":219,"column":23,"endLine":299,"endColumn":9,"fileName":"editor.ts","functionName":"startup","argumentNames":["this"]} -function microcode_samples__P4468_mk(s) { +function microcode_Editor_startup__P4471_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_samples__P4468, depth: s.depth + 1, + parent: s, fn: microcode_Editor_startup__P4471, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - s___17934: undefined, - r___17937: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + makeOnEvent___19775: undefined, + buf___19905: undefined, arg0: undefined, } } - -function map_inline__P17947(s) { +function makeOnEvent_inline__P19776(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47470,69 +54003,44 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.icon___17949 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = if_icon_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "icon"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["icon"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["icon"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1617; s.pc = 3; return s.tmp_0; } - } - case 3: - r0 = s.retval; - s.icon___17949 = (r0); - r0 = pxsim_numops_toBoolDecr(s.caps[0]); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = pxsim_pxtcore_mkAction(2, makeOnEvent_inline__P19782); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + s.tmp_1.arg1 = s.arg0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 1468; s.pc = 1; return s.tmp_1; case 1: - r0 = pxsim_numops_toBoolDecr(s.icon___17949); - s.tmp_4 = r0; - r0 = pxsim_Boolean__bang(s.tmp_4); - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - case 2: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = s.tmp_5; + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -map_inline__P17947.info = {"start":8155,"length":33,"line":237,"column":20,"endLine":237,"endColumn":53,"fileName":"samples.ts","functionName":"inline","argumentNames":["map.inline"]} +makeOnEvent_inline__P19776.info = {"start":7424,"length":182,"line":221,"column":32,"endLine":225,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["id","dir"]} -function map_inline__P17947_mk(s) { +function makeOnEvent_inline__P19776_mk(s) { checkStack(s.depth); return { - parent: s, fn: map_inline__P17947, depth: s.depth + 1, + parent: s, fn: makeOnEvent_inline__P19776, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - icon___17949: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_samples_inline__P17956(s) { +function makeOnEvent_inline__P19782(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47542,104 +54050,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.label___17958 = undefined; - s.ariaId___17959 = undefined; - s.icon___17960 = undefined; - s.b64___17961 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = if_label_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "label"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["label"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["label"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1619; s.pc = 1; return s.tmp_0; } - } + s.tmp_0 = microcode_Editor_scrollAndMove__P5953_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = s.caps[1]; + s.tmp_0.arg2 = false; + s.callLocIdx = 1467; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.label___17958 = (r0); - s.tmp_1 = if_ariaId_1_mk(s); - s.tmp_1.arg0 = s.arg0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "ariaId"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["ariaId"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["ariaId"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1620; s.pc = 2; return s.tmp_1; } - } - case 2: - r0 = s.retval; - s.ariaId___17959 = (r0); - s.tmp_2 = if_icon_1_mk(s); - s.tmp_2.arg0 = s.arg0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "icon"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["icon"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["icon"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1621; s.pc = 3; return s.tmp_2; } - } - case 3: - r0 = s.retval; - s.icon___17960 = (r0); - s.tmp_3 = if_b64_1_mk(s); - s.tmp_3.arg0 = s.arg0; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "b64"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["b64"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["b64"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1622; s.pc = 4; return s.tmp_3; } - } - case 4: - r0 = s.retval; - s.b64___17961 = (r0); - r0 = pxsim_pxtcore_mkClassInstance(microcode_Sample__C4464_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_Sample_constructor__P4465_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.label___17958; - s.tmp_1.arg2 = s.ariaId___17959; - s.tmp_1.arg3 = s.icon___17960; - s.tmp_1.arg4 = s.b64___17961; - s.callLocIdx = 1623; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - r0 = s.tmp_0; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_samples_inline__P17956.info = {"start":8224,"length":90,"line":239,"column":16,"endLine":240,"endColumn":56,"fileName":"samples.ts","functionName":"inline","argumentNames":["microcode.samples.inline"]} +makeOnEvent_inline__P19782.info = {"start":7525,"length":49,"line":222,"column":67,"endLine":223,"endColumn":43,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} -function microcode_samples_inline__P17956_mk(s) { +function makeOnEvent_inline__P19782_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_samples_inline__P17956, depth: s.depth + 1, + parent: s, fn: makeOnEvent_inline__P19782, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - label___17958: undefined, - ariaId___17959: undefined, - icon___17960: undefined, - b64___17961: undefined, - arg0: undefined, } } - -function microcode_Sample_constructor__P4465(s) { +function microcode_Editor_startup_inline__P19806(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47649,43 +54084,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Sample__C4464_VT)) failedCast(r0, microcode_Sample__C4464_VT); - r0 = (s.arg0).fields["label"] = (s.arg1); - r0 = (s.arg0).fields["ariaId"] = (s.arg2); - r0 = (s.arg0).fields["icon"] = (s.arg3); - r0 = (s.arg0).fields["b64"] = (s.arg4); + s.tmp_0 = microcode_Editor_runProgram__P4472_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1474; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Sample_constructor__P4465.info = {"start":56,"length":194,"line":2,"column":8,"endLine":7,"endColumn":12,"fileName":"samples.ts","functionName":"inline","argumentNames":["this","label","ariaId","icon","b64"]} +microcode_Editor_startup_inline__P19806.info = {"start":8002,"length":23,"line":235,"column":16,"endLine":235,"endColumn":39,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} -function microcode_Sample_constructor__P4465_mk(s) { +function microcode_Editor_startup_inline__P19806_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Sample_constructor__P4465, depth: s.depth + 1, + parent: s, fn: microcode_Editor_startup_inline__P19806, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, + tmp_0: undefined, } } - -function microcode_rawWebAppSamples__P5834(s) { +function onClick_inline__P19860(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -47695,334 +54116,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "label", "first program"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "b64", "JfiSPgtJLKBAgegAC0kpowEBAQEBAA=="); - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "label", "flashing heart"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "ariaId", "N2"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "b64", "JfiSPg4soKpGRQCgQDkCAA4powEBAQEBAA=="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "flashing_heart"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "label", "counter"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "ariaId", "N14"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "b64", "JfiSPgtJMK2bEzOtEymlAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_3); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "label", "times table"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "b64", "JfiSPg1aMbGenxQwrgtJMK2uEzOtEymlAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_4); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_5 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "label", "double counter"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "b64", "JfiSPgoppAozrQtJMK2bEzOtC0oolwEKKaUKM64LSjGumxQzrgtJKJYBAQEBAA=="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_5); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_6 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "label", "pet hamster"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "ariaId", "N4"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "b64", "JfiSPgosoGADBwALTSygQIHoAKBgAwcAsp0LTSmjDVosoEABFwGgYAMHALKdDVoppwEBAQEBAA=="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "icon", "pet_hamster"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_6); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_7 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "label", "head or tail"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "ariaId", "N9"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "b64", "JfiSPg0wsZwNK7N4MTWzeAEAE04soL9+5wATTyygP8b4AQEBAQEBAA=="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "icon", "heads_tails"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_7); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_8 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "label", "rock, paper, scissors"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "ariaId", "N8"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "b64", "JfiSPg1aMLGdDVopqBNOLKAAAAAAoMA5BwATTyygAAAAAKA/xvgBE1AsoAAAAACgc5E1AQEBAQEBAA=="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "icon", "rock_paper_scissors"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_8); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_9 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "label", "hot potato"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "ariaId", "N7"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "b64", "JfiSPg5WVVUolw4soAAQAACgAAAAAAEKLKC/fucACimnAQEBAQA="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "icon", "hot_potato"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_9); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_10 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "label", "clap lights"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "ariaId", "N10"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "b64", "JfiSPgosoP///wEKKaUSVyiXAQosoAAAAAAKKawSVyiWAQEBAQA="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "icon", "clap_lights"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_10); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_11 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "label", "24 7 clap"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "ariaId", "N13"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "b64", "JfiSPgoppQowmwosoEqprQCgjDHPALISVzCtmw5WVFQolxNSUlJSUiiYAQopowozrQ5WViiWAQoppwosoL864ACgvzoHALIOVlYolgEBAQA="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_11); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_12 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "label", "reaction time"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "ariaId", "N6"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "b64", "JfiSPgosoAAIAACgABAAAKAAIAAAsg5WVVVVVVUolwtJKJkLSiiYAQosoP///wEKKaULSSiYC0oomQEKLKBEPEEAoIh4ggCyDlYolgEKLKAEfUQAoII8IgCyDlYolgEBAA=="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "icon", "reaction_time"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_12); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_13 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "label", "chuck a duck"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "ariaId", "N5"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "b64", "JfiSPg1aLKAAEAAADVotmxFOLKDmeAcAEU4ppQEBAQEBAA=="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "icon", "teleport_duck"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_13); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_14 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_14, "label", "zombie detector"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_14, "b64", "JfiSPg4soAAQAACgQAEFAKARABABoAAAAAARTiiXC00omAEOLKCEEEAAoEopoAAOVCmmDlYolgEOLKC/OuAAoL86BwAOLZsBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_14); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_15 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "label", "firefly"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "ariaId", "N11"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "b64", "JfiSPgosoAAQAAARMK2bDlMwrZsTUFIolw5UVFQolwEKLQowmwosoP/v/wEKKaUOUyiWAQEBAQA="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "icon", "firefly"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_15); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_16 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "label", "railroad crossing"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "ariaId", "N12"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "b64", "JfiSPgo3zAtJNZsLSS+2u7ILSjWfC0ovuLuyC00vvLIBAQEBAQA="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "icon", "railroad_crossing"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_16); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_17 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_17, "label", "moves"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_17, "b64", "JfiSPg1cLKAnpXQADVssoCml9AANXSygIYTwAA1eLKAnnZQADVosoC889AABAQEBAQA="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_17); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_18 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_18, "label", "coins"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_18, "b64", "JfiSPgtJMJsLSjCtmxNQLKAecugBE1EsoC88dAATUiygvdbaAQEBAQEBAA=="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_18); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_19 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_19, "label", "inchworm"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_19, "b64", "JfiSPgo1mw5TUyiXAQo1nw5TUyiWAQEBAQA="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_19); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_20 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_20, "label", "head guess"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_20, "b64", "JfiSPgoppQowsZ0KMZsNXDCxnQ1bMLGdDVsxrpsOVlZWViiXE04soOZ5BwATTyygL4TwAKAvvZQAoJ8QQgCyE1AsoCeldACgL6X0AKAvtPQAsgEKM64KKaMOVlYolgEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_20); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_21 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "label", "battery charger prank"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "b64", "JfiSPgosoE4p5QCgTimlALINWiiXAQosoE4p5QCgTinnAKBOOecAoM455wCyDlYolgEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_21); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_22 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_22, "label", "green light red light"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_22, "b64", "JfiSPgtNKJcRTyiYCiyg5VMnAKDkEwcAoPQXhwCyCimlAQowmw4trQtJMJsLSjCcE04soOVTJwCg5BMHAKD0F4cAshNPLKBRERUBAQ1aKacNWiygvzrgAKC/OgcAshFOKJYBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_22); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_23 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_23, "label", "crooked head or tail"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_23, "b64", "JfiSPg0wsZ0NKagTTiygv37nABNPLKA/xvgBE1AsoD/G+AEBAQEBAQA="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_23); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_24 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_24, "label", "step counter"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_24, "b64", "JfiSPg1aMK2bEzOtEymlAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_24); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_25 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_25, "label", "clap counter"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_25, "b64", "JfiSPhJXMK2bEzOtAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_25); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_26 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "label", "random counter"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "b64", "JfiSPgtJMJuxnwtJMRMzrQtKMa6bFF8soECB6AABAQEBAQA="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_26); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_27 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_27, "label", "slider levels"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_27, "b64", "JfiSPhdOM5sXTzOcF1AznRdRM54XUjOfAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_27); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_28 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_28, "label", "light levels"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_28, "b64", "JfiSPg9OM5sPTzOcD1AznQ9RM54PUjOfAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_28); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_29 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_29, "label", "magnet levels"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_29, "b64", "JfiSPhZOM5sWTzOcFlAznRZRM54WUjOfAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_29); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_30 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_30, "label", "count turns"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_30, "b64", "JfiSPhhiMK2bGGMxrpsTM60UM64BAQEBAQA="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_30); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_31 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_31, "label", "key demo"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_31, "b64", "JfiSPgosoAAQAAALSyygQIHoAAtMLKBAARcBAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_31); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_32 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "label", "robot shake"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "b64", "JfiSPgounQ1cNL4NWzTCDV00wMINXjTBwgEBAQEBAA=="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_32); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_33 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_33, "label", "robot wake"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_33, "b64", "JfiSPgounRI0wMDAwgEBAQEBAA=="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_33); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_34 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_34, "label", "robot avoid wall"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_34, "b64", "JfiSPgounQo0vhlPNMC+AQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_34); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_35 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_35, "label", "robot line follow"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_35, "b64", "JfiSPgoumxpoNL4aZjTAGmc0wRpqNMQaazTFGmk0wgEBAQEBAA=="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_35); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_36 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_36, "label", "robot showcase"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_36, "b64", "JfiSPgoumwtJNL7IC0o0wsYZTzTEvgEBAQEBAA=="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_36); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_37 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_37, "label", "robot drift tester"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_37, "b64", "JfiSPgoumwtJNL7IC0o0w8cSNMLGAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_37); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_38 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "label", "more water please!"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "b64", "JfiSPhxONswcUDbNAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_38); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_39 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_39, "label", "don't stand too close to me!"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_39, "b64", "JfiSPh1OL7YdUC+6HVIvtwEBAQEBAA=="); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_39); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_40 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_40, "label", "start/stop servo"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_40, "b64", "JfiSPgtJN8wMSjfNAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_40); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_41 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_41, "label", "move off the line"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_41, "b64", "JfiSPh5uN8webzfNAQEBAQEA"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_41); - s.tmp_42 = if_s_2_mk(s); - s.tmp_42.arg0 = s.arg0; - s.tmp_43 = helpers_arrayConcat__P2142_mk(s); - s.tmp_44 = if_s_1_mk(s); - s.tmp_44.arg0 = s.arg0; - if (!s.tmp_44.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_44.arg0, "s"); - } else { - s.tmp_44.fn = s.tmp_44.arg0.vtable.iface["s"]; - if (s.tmp_44.fn == null) { s.retval = s.tmp_44.arg0.fields["s"]; } - else if (!s.tmp_44.fn.isGetter) { s.retval = bind(s.tmp_44); } - else { s.callLocIdx = 1611; s.pc = 3; return s.tmp_44; } - } - case 3: - r0 = s.retval; - s.tmp_43.arg0 = r0; - s.tmp_43.arg1 = s.tmp_1; - s.callLocIdx = 1612; s.pc = 2; return s.tmp_43; - case 2: - r0 = s.retval; - s.tmp_42.arg1 = r0; - if (!s.tmp_42.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapSetByString(s.tmp_42.arg0, "s", s.tmp_42.arg1); - } else { - s.tmp_42.fn = s.tmp_42.arg0.vtable.iface["set/s"]; - if (s.tmp_42.fn === null) { s.tmp_42.arg0.fields["s"] = s.tmp_42.arg1; } - else if (s.tmp_42.fn === undefined) { failedCast(s.tmp_42.arg0) } - else { s.callLocIdx = 1613; s.pc = 1; return s.tmp_42; } - } + s.tmp_0 = microcode_Editor_pickDiskSLot__P5950_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1486; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_rawWebAppSamples__P5834.info = {"start":527,"length":6938,"line":23,"column":4,"endLine":212,"endColumn":5,"fileName":"samples.ts","functionName":"rawWebAppSamples","argumentNames":["r"]} +onClick_inline__P19860.info = {"start":8772,"length":25,"line":254,"column":25,"endLine":254,"endColumn":50,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} -function microcode_rawWebAppSamples__P5834_mk(s) { +function onClick_inline__P19860_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_rawWebAppSamples__P5834, depth: s.depth + 1, + parent: s, fn: onClick_inline__P19860, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, - tmp_27: undefined, - tmp_28: undefined, - tmp_29: undefined, - tmp_30: undefined, - tmp_31: undefined, - tmp_32: undefined, - tmp_33: undefined, - tmp_34: undefined, - tmp_35: undefined, - tmp_36: undefined, - tmp_37: undefined, - tmp_38: undefined, - tmp_39: undefined, - tmp_40: undefined, - tmp_41: undefined, - tmp_42: undefined, - tmp_43: undefined, - tmp_44: undefined, - arg0: undefined, } } - -function microcode_rawSamples__P4467(s) { +function onClick_inline__P19873(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48031,47 +54147,30 @@ while (true) { if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; switch (step) { case 0: - - s.s___17978 = undefined; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "label", "new program"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ariaId", "N1"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "b64", "JfiSPgEBAQEBAA=="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", "new_program"); - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "label", "smiley buttons"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "ariaId", "N3"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "b64", "JfiSPgtJLKB7g+gAoBtEBwALSSmkC0osoHsDFwGgewPwAQtKKacBAQEBAQA="); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "smiley_buttons"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); - s.s___17978 = (s.tmp_1); - r0 = s.s___17978; + + s.tmp_0 = microcode_Editor_runProgram__P4472_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1488; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_rawSamples__P4467.info = {"start":7471,"length":498,"line":214,"column":4,"endLine":230,"endColumn":5,"fileName":"samples.ts","functionName":"rawSamples","argumentNames":[]} +onClick_inline__P19873.info = {"start":9097,"length":63,"line":263,"column":25,"endLine":265,"endColumn":17,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} -function microcode_rawSamples__P4467_mk(s) { +function onClick_inline__P19873_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_rawSamples__P4467, depth: s.depth + 1, + parent: s, fn: onClick_inline__P19873, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - s___17978: undefined, } } - -function microcode_Editor_draw__P4324(s) { +function onClick_inline__P19886(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48081,109 +54180,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = s.arg0.fields["dirty"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.tmp_2 = user_interface_base_Screen_image__P3451_mk(s); - s.callLocIdx = 1268; s.pc = 7; return s.tmp_2; - case 7: - r0 = s.retval; - s.tmp_1 = r0; - r0 = s.arg0.fields["color_"]; - s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.fill(s.tmp_1, s.tmp_3); - r0 = s.arg0.fields["backgroundCaptured_"]; - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - s.tmp_5 = r0; - r0 = pxsim_Boolean__bang(s.tmp_5); - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_7 = microcode_Editor_drawBackground__P5778_mk(s); - s.tmp_7.arg0 = s.arg0; - s.callLocIdx = 1271; s.pc = 8; return s.tmp_7; - case 8: - r0 = s.retval; - s.tmp_0 = microcode_Editor_drawEditor__P5777_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1272; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - s.tmp_0 = microcode_Editor_drawNav__P5779_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1273; s.pc = 10; return s.tmp_0; - case 10: - r0 = s.retval; + s.tmp_0 = microcode_Editor_stopProgram__P4473_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1490; s.pc = 1; return s.tmp_0; case 1: - case 2: - s.tmp_0 = user_interface_base_Picker_draw__P3760_mk(s); - r0 = s.arg0.fields["picker"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1274; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - r0 = s.arg0.fields["rendering"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_3 = user_interface_base_Cursor_draw__P3743_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 1275; s.pc = 12; return s.tmp_3; - case 12: r0 = s.retval; - case 3: - case 4: - r0 = (s.arg0).fields["dirty"] = (false); - case 5: - case 6: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_draw__P4324.info = {"start":15664,"length":425,"line":468,"column":8,"endLine":480,"endColumn":9,"fileName":"editor.ts","functionName":"draw","argumentNames":["this"]} +onClick_inline__P19886.info = {"start":9471,"length":64,"line":274,"column":25,"endLine":276,"endColumn":17,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} -function microcode_Editor_draw__P4324_mk(s) { +function onClick_inline__P19886_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_draw__P4324, depth: s.depth + 1, + parent: s, fn: onClick_inline__P19886, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - arg0: undefined, } } - -function microcode_Editor_drawNav__P5779(s) { +function onClick_inline__P19902(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48193,61 +54212,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = s.arg0.fields["rendering"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = user_interface_base_Button__C3665_v0_1_mk(s); - r0 = s.arg0.fields["diskBtn"]; - s.tmp_3.arg0 = r0; - if (!checkSubtype(s.tmp_3.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_3.arg0, user_interface_base_Button__C3665_VT); - s.tmp_3.fn = s.tmp_3.arg0.vtable.methods.draw; - s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; + s.tmp_0 = microcode_Editor_pickPage__P5951_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1494; s.pc = 1; return s.tmp_0; case 1: - case 2: - s.tmp_0 = user_interface_base_Button__C3665_v0_1_mk(s); - r0 = s.arg0.fields["pageBtn"]; - s.tmp_0.arg0 = r0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3665_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; - s.pc = 4; return s.tmp_0; - case 4: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_drawNav__P5779.info = {"start":16645,"length":561,"line":500,"column":8,"endLine":512,"endColumn":9,"fileName":"editor.ts","functionName":"drawNav","argumentNames":["this"]} +onClick_inline__P19902.info = {"start":9830,"length":21,"line":284,"column":25,"endLine":284,"endColumn":46,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} -function microcode_Editor_drawNav__P5779_mk(s) { +function onClick_inline__P19902_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_drawNav__P5779, depth: s.depth + 1, + parent: s, fn: onClick_inline__P19902, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, } } - -function microcode_Editor_drawEditor__P5777(s) { +function microcode_Editor_configureP1Keys__P5955(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48257,45 +54244,59 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.forward___19936 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = s.arg0.fields["pageEditor"]; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = pxsim_pxtcore_mkAction(1, forward_inline__P19937); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_PageEditor_draw__P4338_mk(s); - r0 = s.arg0.fields["pageEditor"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1276; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.forward___19936 = (s.tmp_0); + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.A___3239.fields["id"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.forward___19936; + s.tmp_0.arg3 = 16; + s.callLocIdx = 1517; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microcode_Editor_configureP1Keys_inline__P19952); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.B___3240.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 1519; s.pc = 2; return s.tmp_1; case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_drawEditor__P5777.info = {"start":16099,"length":128,"line":482,"column":8,"endLine":485,"endColumn":9,"fileName":"editor.ts","functionName":"drawEditor","argumentNames":["this"]} +microcode_Editor_configureP1Keys__P5955.info = {"start":11108,"length":461,"line":321,"column":8,"endLine":336,"endColumn":9,"fileName":"editor.ts","functionName":"configureP1Keys","argumentNames":["this"]} -function microcode_Editor_drawEditor__P5777_mk(s) { +function microcode_Editor_configureP1Keys__P5955_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_drawEditor__P5777, depth: s.depth + 1, + parent: s, fn: microcode_Editor_configureP1Keys__P5955, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + forward___19936: undefined, arg0: undefined, } } - -function microcode_PageEditor_draw__P4338(s) { +function forward_inline__P19937(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48305,39 +54306,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleEditors"]; + s.tmp_0 = user_interface_base_Cursor_click__P3712_mk(s); + r0 = s.caps[0].fields["cursor"]; s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = microcode_PageEditor_draw_inline__P18035; - s.callLocIdx = 1324; s.pc = 1; return s.tmp_0; + s.callLocIdx = 1516; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + r0 = (s.caps[0]).fields["dirty"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_draw__P4338.info = {"start":21554,"length":116,"line":649,"column":8,"endLine":652,"endColumn":9,"fileName":"editor.ts","functionName":"draw","argumentNames":["this"]} +forward_inline__P19937.info = {"start":11164,"length":91,"line":322,"column":28,"endLine":325,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} -function microcode_PageEditor_draw__P4338_mk(s) { +function forward_inline__P19937_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_draw__P4338, depth: s.depth + 1, + parent: s, fn: forward_inline__P19937, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, } } - -function microcode_PageEditor_draw_inline__P18035(s) { +function microcode_Editor_configureP1Keys_inline__P19952(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48347,35 +54340,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = microcode_RuleEditor_draw__P4357_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1323; s.pc = 1; return s.tmp_0; + s.tmp_0 = microcode_Editor_back__P4474_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1518; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_draw_inline__P18035.info = {"start":21640,"length":19,"line":651,"column":37,"endLine":651,"endColumn":56,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} +microcode_Editor_configureP1Keys_inline__P19952.info = {"start":11528,"length":17,"line":334,"column":16,"endLine":334,"endColumn":33,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} -function microcode_PageEditor_draw_inline__P18035_mk(s) { +function microcode_Editor_configureP1Keys_inline__P19952_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_draw_inline__P18035, depth: s.depth + 1, + parent: s, fn: microcode_Editor_configureP1Keys_inline__P19952, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, } } - -function microcode_RuleEditor_draw__P4357(s) { +function microcode_Editor_back__P4474(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48385,106 +54372,162 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.target___19984 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - s.tmp_1 = microcode_RuleEditor_isOffScreen__P4356_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1487; s.pc = 8; return s.tmp_1; - case 8: + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_3 = user_interface_base_Cursor_cancel__P3713_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 1521; s.pc = 9; return s.tmp_3; + case 9: r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 7; continue; } - case 1: - case 2: - s.tmp_2 = microcode_RuleEditor_drawBackground__P5800_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1488; s.pc = 9; return s.tmp_2; - case 9: - r0 = s.retval; - s.tmp_0 = user_interface_base_Button__C3665_v0_1_mk(s); - r0 = s.arg0.fields["handleBtn"]; - s.tmp_0.arg0 = r0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3665_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; - s.pc = 10; return s.tmp_0; + if (!r0) { step = 7; continue; } + s.tmp_6 = user_interface_base_RowNavigator__C3753_v1_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_6.arg0 = r0; + if (!checkSubtype(s.tmp_6.arg0, user_interface_base_RowNavigator__C3753_VT)) failedCast(s.tmp_6.arg0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_6.fn = s.tmp_6.arg0.vtable.methods.getRow; + s.pc = 10; return s.tmp_6; case 10: r0 = s.retval; - r0 = s.arg0.fields["whenInsertBtn"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + s.tmp_5 = r0; + r0 = (s.tmp_5 == 0); + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); if (!r0) { step = 3; continue; } - s.tmp_1 = user_interface_base_Button__C3665_v0_1_mk(s); - r0 = s.arg0.fields["whenInsertBtn"]; - s.tmp_1.arg0 = r0; - if (!checkSubtype(s.tmp_1.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_1.arg0, user_interface_base_Button__C3665_VT); - s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.draw; - s.pc = 11; return s.tmp_1; + r0 = s.arg0.fields["currPage"]; + s.tmp_8 = r0; + r0 = (s.tmp_8 > 0); + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + if (!r0) { step = 1; continue; } + s.tmp_9 = microcode_Editor_prevPage__P5957_mk(s); + s.tmp_9.arg0 = s.arg0; + s.tmp_9.arg1 = 0; + s.tmp_9.arg2 = -1; + s.callLocIdx = 1522; s.pc = 11; return s.tmp_9; case 11: r0 = s.retval; - case 3: - case 4: - s.tmp_0 = user_interface_base_Sprite_draw__P3485_mk(s); - r0 = s.arg0.fields["arrow"]; + { step = 2; continue; } + case 1: + s.tmp_0 = if_popScene_1_mk(s); + r0 = s.arg0.fields["app"]; s.tmp_0.arg0 = r0; - s.callLocIdx = 1489; s.pc = 12; return s.tmp_0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); + s.callLocIdx = 1523; s.pc = 12; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1523; s.pc = 12; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1523; s.pc = 12; return s.tmp_0;; } + else { s.callLocIdx = 1523; s.pc = 12; return s.tmp_0; } + } case 12: r0 = s.retval; - r0 = s.arg0.fields["doInsertBtn"]; + r0 = pxsim_pxtcore_mkClassInstance(microcode_Home__C4514_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.tmp_1 = user_interface_base_Button__C3665_v0_1_mk(s); - r0 = s.arg0.fields["doInsertBtn"]; - s.tmp_1.arg0 = r0; - if (!checkSubtype(s.tmp_1.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_1.arg0, user_interface_base_Button__C3665_VT); - s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.draw; - s.pc = 13; return s.tmp_1; + s.tmp_1 = microcode_Home_constructor__P4515_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.arg0.fields["app"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1524; s.pc = 13; return s.tmp_1; case 13: r0 = s.retval; - case 5: - case 6: - r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_draw_inline__P18063); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = microcode_repNames__P5785_mk(s); - s.callLocIdx = 1490; s.pc = 15; return s.tmp_2; - case 15: + s.tmp_2 = if_pushScene_2_mk(s); + r0 = s.arg0.fields["app"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); + s.callLocIdx = 1525; s.pc = 14; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1525; s.pc = 14; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1525; s.pc = 14; return s.tmp_2;; } + else { s.callLocIdx = 1525; s.pc = 14; return s.tmp_2; } + } + case 14: r0 = s.retval; + case 2: + { step = 6; continue; } + case 3: + s.tmp_1 = microcode_RuleRowNavigator_atRuleStart__P4725_mk(s); + r0 = s.arg0.fields["navigator"]; s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1492; s.pc = 14; return s.tmp_1; - case 14: + s.callLocIdx = 1526; s.pc = 15; return s.tmp_1; + case 15: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_2 = user_interface_base_RowNavigator_initialCursor__P3766_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = 0; + s.tmp_2.arg2 = 1; + s.callLocIdx = 1527; s.pc = 16; return s.tmp_2; + case 16: + r0 = s.retval; + s.target___19984 = (r0); + s.tmp_0 = microcode_Editor_moveTo__P5952_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.target___19984; + s.callLocIdx = 1528; s.pc = 17; return s.tmp_0; + case 17: r0 = s.retval; + { step = 5; continue; } + case 4: + s.tmp_0 = microcode_Editor_scrollAndMove__P5953_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = 4; + s.tmp_0.arg2 = false; + s.callLocIdx = 1529; s.pc = 18; return s.tmp_0; + case 18: + r0 = s.retval; + case 5: + case 6: case 7: + case 8: + r0 = (s.arg0).fields["dirty"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_draw__P4357.info = {"start":17841,"length":607,"line":503,"column":8,"endLine":519,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"draw","argumentNames":["this"]} +microcode_Editor_back__P4474.info = {"start":12081,"length":682,"line":355,"column":8,"endLine":372,"endColumn":9,"fileName":"editor.ts","functionName":"back","argumentNames":["this"]} -function microcode_RuleEditor_draw__P4357_mk(s) { +function microcode_Editor_back__P4474_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_draw__P4357, depth: s.depth + 1, + parent: s, fn: microcode_Editor_back__P4474, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + target___19984: undefined, arg0: undefined, } } - -function microcode_RuleEditor_draw_inline__P18063(s) { +function microcode_RuleRowNavigator_atRuleStart__P4725(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48494,80 +54537,49 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.buttons___18065 = undefined; - s.i___18070 = undefined; - s.btn___18076 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.caps[0].fields["ruleButtons"]; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleRowNavigator__C4720_VT)) failedCast(r0, microcode_RuleRowNavigator__C4720_VT); + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 >= 1); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg0); - s.buttons___18065 = (r0); - s.i___18070 = (0); + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - s.tmp_1 = r0 = s.i___18070; - r0 = pxsim_Array__length(s.buttons___18065); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.buttons___18065, s.i___18070); - s.btn___18076 = (r0); - s.tmp_3 = user_interface_base_ButtonBase_isOffScreenX__P3663_mk(s); - s.tmp_3.arg0 = s.btn___18076; - s.callLocIdx = 1491; s.pc = 5; return s.tmp_3; - case 5: - r0 = s.retval; + r0 = s.arg0.fields["col"]; s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_4 = user_interface_base_Button__C3665_v0_1_mk(s); - s.tmp_4.arg0 = s.btn___18076; - if (!checkSubtype(s.tmp_4.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_4.arg0, user_interface_base_Button__C3665_VT); - s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.draw; - s.pc = 6; return s.tmp_4; - case 6: - r0 = s.retval; + r0 = (s.tmp_2 == 0); case 2: - case 3: - r0 = (s.i___18070 + 1); - s.i___18070 = (r0); - { step = 1; continue; } - case 4: - r0 = undefined; + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_draw_inline__P18063.info = {"start":18183,"length":254,"line":512,"column":31,"endLine":518,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["name"]} +microcode_RuleRowNavigator_atRuleStart__P4725.info = {"start":743,"length":82,"line":29,"column":8,"endLine":31,"endColumn":9,"fileName":"navigator.ts","functionName":"atRuleStart","argumentNames":["this"]} -function microcode_RuleEditor_draw_inline__P18063_mk(s) { +function microcode_RuleRowNavigator_atRuleStart__P4725_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_draw_inline__P18063, depth: s.depth + 1, + parent: s, fn: microcode_RuleRowNavigator_atRuleStart__P4725, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - buttons___18065: undefined, - i___18070: undefined, - btn___18076: undefined, arg0: undefined, } } - -function user_interface_base_ButtonBase_isOffScreenX__P3663(s) { +function microcode_Editor_prevPage__P5957(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48579,35 +54591,65 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = user_interface_base_Sprite_isOffScreenX__P3484_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 526; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = microcode_Editor_switchToPage__P4468_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = s.arg0.fields["currPage"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["progdef"]; + r0 = r0.fields["pages"]; + s.tmp_5 = r0; + r0 = pxsim_Array__length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1 = r0; + r0 = s.arg0.fields["progdef"]; + r0 = r0.fields["pages"]; + s.tmp_7 = r0; + r0 = pxsim_Array__length(s.tmp_7); + s.tmp_6 = r0; + r0 = (s.tmp_1 % s.tmp_6); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.arg1; + s.tmp_0.arg3 = s.arg2; + s.callLocIdx = 1520; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_isOffScreenX__P3663.info = {"start":3656,"length":69,"line":164,"column":4,"endLine":166,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"isOffScreenX","argumentNames":["this"]} +microcode_Editor_prevPage__P5957.info = {"start":11806,"length":265,"line":346,"column":8,"endLine":353,"endColumn":9,"fileName":"editor.ts","functionName":"prevPage","argumentNames":["this","startRow","startCol"]} -function user_interface_base_ButtonBase_isOffScreenX__P3663_mk(s) { +function microcode_Editor_prevPage__P5957_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_isOffScreenX__P3663, depth: s.depth + 1, + parent: s, fn: microcode_Editor_prevPage__P5957, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function user_interface_base_Sprite_isOffScreenX__P3484(s) { +function user_interface_base_Cursor_cancel__P3713(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48617,61 +54659,48 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.p___18094 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - s.tmp_0 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 478; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.p___18094 = (r0); - r0 = s.p___18094.fields["x_"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_5 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + r0 = s.arg0.fields["cancelHandlerStack"]; s.tmp_1 = r0; - r0 = (s.tmp_1 < globals.user_interface_base_Screen_LEFT_EDGE___3443); + r0 = pxsim_Array__length(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = s.p___18094.fields["x_"]; - s.tmp_7 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_10 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_10); - s.tmp_9 = r0; - r0 = (s.tmp_9 >> 1); - s.tmp_8 = r0; - r0 = (s.tmp_7 - s.tmp_8); + s.tmp_2 = lambda_1_mk(s); + r0 = s.arg0.fields["cancelHandlerStack"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["cancelHandlerStack"]; s.tmp_6 = r0; - r0 = (s.tmp_6 > globals.user_interface_base_Screen_RIGHT_EDGE___3444); + r0 = pxsim_Array__length(s.tmp_6); + s.tmp_5 = r0; + r0 = (s.tmp_5 - 1); + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, s.tmp_4); + s.tmp_2.argL = r0; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 642; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; + r0 = true; + { step = 3; continue; } + case 1: case 2: - // jmp value (already in r0) - s.tmp_11 = r0; - r0 = s.tmp_11; + r0 = false; + case 3: return leave(s, r0) default: oops() } } } -user_interface_base_Sprite_isOffScreenX__P3484.info = {"start":1593,"length":240,"line":58,"column":8,"endLine":64,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"isOffScreenX","argumentNames":["this"]} +user_interface_base_Cursor_cancel__P3713.info = {"start":4945,"length":193,"line":173,"column":4,"endLine":179,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"cancel","argumentNames":["this"]} -function user_interface_base_Sprite_isOffScreenX__P3484_mk(s) { +function user_interface_base_Cursor_cancel__P3713_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_isOffScreenX__P3484, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_cancel__P3713, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -48680,20 +54709,13 @@ function user_interface_base_Sprite_isOffScreenX__P3484_mk(s) { tmp_4: undefined, tmp_5: undefined, tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - p___18094: undefined, arg0: undefined, } } - -function microcode_repNames__P5785(s) { +function user_interface_base_Cursor_click__P3712(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48703,31 +54725,86 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_Array__mk(); - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, "sensors"); - r0 = pxsim_Array__push(s.tmp_0, "filters"); - r0 = pxsim_Array__push(s.tmp_0, "actuators"); - r0 = pxsim_Array__push(s.tmp_0, "modifiers"); + s.target___20035 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + s.tmp_0 = if_getCurrent_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "getCurrent"), 1); + s.callLocIdx = 637; s.pc = 6; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["getCurrent"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["getCurrent"], 1); s.callLocIdx = 637; s.pc = 6; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 637; s.pc = 6; return s.tmp_0;; } + else { s.callLocIdx = 637; s.pc = 6; return s.tmp_0; } + } + case 6: + r0 = s.retval; + s.target___20035 = (r0); + s.tmp_0 = r0 = s.target___20035; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } r0 = s.tmp_0; + { step = 2; continue; } + case 1: + s.tmp_1 = user_interface_base_Button_clickable__P3655_mk(s); + s.tmp_1.arg0 = s.target___20035; + s.callLocIdx = 638; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + s.tmp_3 = user_interface_base_Button_toggleSelected__P3653_mk(s); + s.tmp_3.arg0 = s.target___20035; + s.callLocIdx = 639; s.pc = 8; return s.tmp_3; + case 8: + r0 = s.retval; + s.tmp_0 = user_interface_base_Button_click__P3656_mk(s); + s.tmp_0.arg0 = s.target___20035; + s.callLocIdx = 640; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + s.tmp_0 = user_interface_base_profile__P3816_mk(s); + s.callLocIdx = 641; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + r0 = true; + { step = 5; continue; } + case 3: + case 4: + r0 = false; + case 5: return leave(s, r0) default: oops() } } } -microcode_repNames__P5785.info = {"start":712,"length":91,"line":16,"column":4,"endLine":18,"endColumn":5,"fileName":"ruleeditor.ts","functionName":"repNames","argumentNames":[]} +user_interface_base_Cursor_click__P3712.info = {"start":4669,"length":270,"line":162,"column":4,"endLine":171,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"click","argumentNames":["this"]} -function microcode_repNames__P5785_mk(s) { +function user_interface_base_Cursor_click__P3712_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_repNames__P5785, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_click__P3712, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + target___20035: undefined, + arg0: undefined, } } - -function microcode_RuleEditor_drawBackground__P5800(s) { +function user_interface_base_Button_click__P3656(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48742,55 +54819,80 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - s.tmp_0 = user_interface_base_Screen_fillBoundsXfrm__P3463_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["bounds"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = 11; - s.callLocIdx = 1494; s.pc = 1; return s.tmp_0; - case 1: + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + s.tmp_3 = user_interface_base_Button_clickable__P3655_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 568; s.pc = 8; return s.tmp_3; + case 8: r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_fillBoundsXfrm__P3463_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["whenBounds"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = 13; - s.callLocIdx = 1496; s.pc = 2; return s.tmp_0; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 7; continue; } + case 1: case 2: - r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_outlineBoundsXfrm__P3465_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["bounds"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = 1; - s.tmp_0.arg3 = 12; - s.callLocIdx = 1498; s.pc = 3; return s.tmp_0; + r0 = s.arg0.fields["onClick"]; + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (r0) { step = 3; continue; } + r0 = s.tmp_4; + { step = 4; continue; } case 3: + r0 = s.arg0.fields["onClick"]; + s.tmp_5 = r0; + r0 = (s.tmp_5 != null); + case 4: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 5; continue; } + s.tmp_7 = if_onClick_2_mk(s); + s.tmp_7.arg0 = s.arg0; + s.tmp_7.arg1 = s.arg0; + if (!s.tmp_7.arg0.vtable.iface) { + setupLambda(s.tmp_7, pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "onClick"), 2); + s.callLocIdx = 569; s.pc = 9; return s.tmp_7; + } else { + s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["onClick"]; + if (s.tmp_7.fn == null) { setupLambda(s.tmp_7, s.tmp_7.arg0.fields["onClick"], 2); s.callLocIdx = 569; s.pc = 9; return s.tmp_7; } + else if (s.tmp_7.fn.isGetter) { s.tmp_7.stage2Call = true; s.callLocIdx = 569; s.pc = 9; return s.tmp_7;; } + else { s.callLocIdx = 569; s.pc = 9; return s.tmp_7; } + } + case 9: r0 = s.retval; + case 5: + case 6: + case 7: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_drawBackground__P5800.info = {"start":18458,"length":272,"line":521,"column":8,"endLine":526,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"drawBackground","argumentNames":["this"]} +user_interface_base_Button_click__P3656.info = {"start":9356,"length":161,"line":366,"column":4,"endLine":373,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"click","argumentNames":["this"]} -function microcode_RuleEditor_drawBackground__P5800_mk(s) { +function user_interface_base_Button_click__P3656_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_drawBackground__P5800, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_click__P3656, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, } } - -function microcode_RuleEditor_xfrm__P4350(s) { +function user_interface_base_Button_toggleSelected__P3653(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48805,27 +54907,37 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = s.arg0.fields["xfrm_"]; - return leaveAccessor(s, r0) + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["selected"]; + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["selected"] = (s.tmp_1); + r0 = undefined; + return leave(s, r0) default: oops() } } } -microcode_RuleEditor_xfrm__P4350.info = {"start":1215,"length":59,"line":33,"column":8,"endLine":35,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"xfrm","argumentNames":["this"]} -microcode_RuleEditor_xfrm__P4350.isGetter = true; +user_interface_base_Button_toggleSelected__P3653.info = {"start":8721,"length":74,"line":340,"column":4,"endLine":342,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"toggleSelected","argumentNames":["this"]} -function microcode_RuleEditor_xfrm__P4350_mk(s) { +function user_interface_base_Button_toggleSelected__P3653_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_xfrm__P4350, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_toggleSelected__P3653, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function microcode_RuleEditor_isOffScreen__P4356(s) { +function user_interface_base_Button_clickable__P3655(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48835,82 +54947,50 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.y___18135 = undefined; - s.b___18139 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - s.tmp_1 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1484; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0 = r0; - r0 = s.tmp_0.fields["y_"]; - s.y___18135 = (r0); - r0 = s.arg0.fields["bounds"]; - s.b___18139 = (r0); - r0 = s.b___18139.fields["top"]; + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + r0 = s.arg0.fields["icon"]; + r0 = r0.fields["invisible"]; s.tmp_2 = r0; - r0 = (s.y___18135 + s.tmp_2); + r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; - r0 = (s.tmp_1 > globals.user_interface_base_Screen_BOTTOM_EDGE___3446); + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } + if (r0) { step = 1; continue; } r0 = s.tmp_0; { step = 2; continue; } case 1: - s.tmp_4 = r0 = s.y___18135; - r0 = s.b___18139.fields["top"]; - s.tmp_7 = r0; - r0 = s.b___18139.fields["height"]; - s.tmp_8 = r0; - r0 = (s.tmp_7 + s.tmp_8); - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = (s.tmp_4 + s.tmp_5); - s.tmp_3 = r0; - r0 = (s.tmp_3 < globals.user_interface_base_Screen_TOP_EDGE___3445); + r0 = s.arg0.fields["pressable"]; case 2: // jmp value (already in r0) - s.tmp_9 = r0; - r0 = s.tmp_9; + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_isOffScreen__P4356.info = {"start":17604,"length":227,"line":495,"column":8,"endLine":501,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"isOffScreen","argumentNames":["this"]} +user_interface_base_Button_clickable__P3655.info = {"start":9195,"length":72,"line":359,"column":4,"endLine":361,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"clickable","argumentNames":["this"]} -function microcode_RuleEditor_isOffScreen__P4356_mk(s) { +function user_interface_base_Button_clickable__P3655_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_isOffScreen__P4356, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_clickable__P3655, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - y___18135: undefined, - b___18139: undefined, arg0: undefined, } } - -function microcode_Editor_drawBackground__P5778(s) { +function user_interface_base_ButtonBase_visible__P3633(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48920,62 +55000,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.x___18159 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = r0 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - r0 = s.arg0.fields["currPage"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 << 4); + if (!checkSubtype(r0, user_interface_base_ButtonBase__C3621_VT)) failedCast(r0, user_interface_base_ButtonBase__C3621_VT); + r0 = s.arg0.fields["icon"]; + r0 = r0.fields["invisible"]; s.tmp_1 = r0; - r0 = (s.tmp_0 - s.tmp_1); - s.x___18159 = (r0); - case 1: - r0 = (s.x___18159 < globals.user_interface_base_Screen_RIGHT_EDGE___3444); + r0 = pxsim_numops_toBoolDecr(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = user_interface_base_Screen_drawTransparentImage__P3454_mk(s); - s.tmp_1.arg0 = globals.editorBackground___3885; - s.tmp_1.arg1 = s.x___18159; - s.tmp_1.arg2 = globals.user_interface_base_Screen_TOP_EDGE___3445; - s.callLocIdx = 1277; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0 = r0 = s.x___18159; - r0 = pxsim.BitmapMethods.width(globals.editorBackground___3885); - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.x___18159 = (r0); - { step = 1; continue; } - case 2: - r0 = undefined; + r0 = pxsim_Boolean__bang(s.tmp_0); return leave(s, r0) default: oops() } } } -microcode_Editor_drawBackground__P5778.info = {"start":16237,"length":398,"line":487,"column":8,"endLine":498,"endColumn":9,"fileName":"editor.ts","functionName":"drawBackground","argumentNames":["this"]} +user_interface_base_ButtonBase_visible__P3633.info = {"start":3532,"length":58,"line":157,"column":4,"endLine":159,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"visible","argumentNames":["this"]} -function microcode_Editor_drawBackground__P5778_mk(s) { +function user_interface_base_ButtonBase_visible__P3633_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_drawBackground__P5778, depth: s.depth + 1, + parent: s, fn: user_interface_base_ButtonBase_visible__P3633, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - x___18159: undefined, arg0: undefined, } } - -function user_interface_base_Scene_backgroundCaptured__P3697(s) { +function microcode_samples__P4610(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -48985,44 +55040,76 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.s___20078 = undefined; + s.r___20081 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); - r0 = s.arg0.fields["backgroundCaptured_"]; - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); + s.tmp_0 = microcode_rawSamples__P4609_mk(s); + s.callLocIdx = 1908; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + s.s___20078 = (r0); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_Boolean__bang(s.tmp_0); - return leaveAccessor(s, r0) + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "s", s.s___20078); + s.r___20081 = (s.tmp_0); + s.tmp_0 = microcode_rawWebAppSamples__P6029_mk(s); + s.tmp_0.arg0 = s.r___20081; + s.callLocIdx = 1909; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, map_inline__P20091); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); + s.tmp_2 = helpers_arrayFilter__P2139_mk(s); + s.tmp_3 = if_s_1_mk(s); + s.tmp_3.arg0 = s.r___20081; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "s"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["s"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["s"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1910; s.pc = 5; return s.tmp_3; } + } + case 5: + r0 = s.retval; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + s.callLocIdx = 1912; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = microcode_samples_inline__P20100; + s.callLocIdx = 1918; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + return leave(s, r0) default: oops() } } } -user_interface_base_Scene_backgroundCaptured__P3697.info = {"start":1874,"length":82,"line":66,"column":8,"endLine":68,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"backgroundCaptured","argumentNames":["this"]} -user_interface_base_Scene_backgroundCaptured__P3697.isGetter = true; +microcode_samples__P4610.info = {"start":7975,"length":359,"line":232,"column":4,"endLine":242,"endColumn":5,"fileName":"samples.ts","functionName":"samples","argumentNames":["withIcon"]} -function user_interface_base_Scene_backgroundCaptured__P3697_mk(s) { +function microcode_samples__P4610_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_backgroundCaptured__P3697, depth: s.depth + 1, + parent: s, fn: microcode_samples__P4610, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + s___20078: undefined, + r___20081: undefined, arg0: undefined, } } - -function microcode_Editor_update__P4323(s) { +function map_inline__P20091(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49032,63 +55119,68 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.icon___20093 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = s.arg0.fields["pageEditor"]; + s.tmp_0 = if_icon_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "icon"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["icon"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["icon"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 1911; s.pc = 3; return s.tmp_0; } + } + case 3: + r0 = s.retval; + s.icon___20093 = (r0); + r0 = pxsim_numops_toBoolDecr(s.caps[0]); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBool(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_PageEditor_update__P4337_mk(s); - r0 = s.arg0.fields["pageEditor"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1265; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; + r0 = s.tmp_0; + { step = 2; continue; } case 1: + r0 = pxsim_numops_toBoolDecr(s.icon___20093); + s.tmp_4 = r0; + r0 = pxsim_Boolean__bang(s.tmp_4); + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); case 2: - r0 = s.arg0.fields["_changed"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = (s.arg0).fields["_changed"] = (false); - s.tmp_0 = microcode_Editor_rebuildNavigator__P5776_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1266; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - case 3: - case 4: - s.tmp_0 = user_interface_base_Cursor_update__P3742_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1267; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - r0 = undefined; + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = s.tmp_5; return leave(s, r0) default: oops() } } } -microcode_Editor_update__P4323.info = {"start":15344,"length":310,"line":456,"column":8,"endLine":466,"endColumn":9,"fileName":"editor.ts","functionName":"update","argumentNames":["this"]} +map_inline__P20091.info = {"start":8155,"length":33,"line":237,"column":20,"endLine":237,"endColumn":53,"fileName":"samples.ts","functionName":"inline","argumentNames":["map.inline"]} -function microcode_Editor_update__P4323_mk(s) { +function map_inline__P20091_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_update__P4323, depth: s.depth + 1, + parent: s, fn: map_inline__P20091, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + icon___20093: undefined, arg0: undefined, } } - -function microcode_Editor_rebuildNavigator__P5776(s) { +function microcode_samples_inline__P20100(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49098,99 +55190,103 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.label___20102 = undefined; + s.ariaId___20103 = undefined; + s.icon___20104 = undefined; + s.b64___20105 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["visible"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 5; continue; } + s.tmp_0 = if_label_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "label"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["label"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["label"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 1913; s.pc = 1; return s.tmp_0; } + } case 1: + r0 = s.retval; + s.label___20102 = (r0); + s.tmp_1 = if_ariaId_1_mk(s); + s.tmp_1.arg0 = s.arg0; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "ariaId"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["ariaId"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["ariaId"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1914; s.pc = 2; return s.tmp_1; } + } case 2: - r0 = s.arg0.fields["navigator"]; - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - s.tmp_2 = microcode_RuleRowNavigator__C4578_v0_1_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_2.arg0 = r0; - if (!checkSubtype(s.tmp_2.arg0, microcode_RuleRowNavigator__C4578_VT)) failedCast(s.tmp_2.arg0, microcode_RuleRowNavigator__C4578_VT); - s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.clear; - s.pc = 6; return s.tmp_2; - case 6: r0 = s.retval; - { step = 4; continue; } + s.ariaId___20103 = (r0); + s.tmp_2 = if_icon_1_mk(s); + s.tmp_2.arg0 = s.arg0; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "icon"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["icon"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["icon"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1915; s.pc = 3; return s.tmp_2; } + } case 3: - r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleRowNavigator__C4578_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_RuleRowNavigator_constructor__P4579_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1263; s.pc = 7; return s.tmp_1; - case 7: r0 = s.retval; - r0 = (s.arg0).fields["navigator"] = (s.tmp_0); + s.icon___20104 = (r0); + s.tmp_3 = if_b64_1_mk(s); + s.tmp_3.arg0 = s.arg0; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "b64"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["b64"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["b64"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1916; s.pc = 4; return s.tmp_3; } + } case 4: - r0 = pxsim_Array__mk(); - s.tmp_0 = r0; - r0 = s.arg0.fields["diskBtn"]; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); - r0 = s.arg0.fields["pageBtn"]; - s.tmp_2 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_2); - r0 = pxsim_Array__mk(); - s.tmp_3 = r0; - r0 = pxsim_Array__push(s.tmp_3, s.tmp_0); - s.tmp_4 = user_interface_base_RowNavigator__C3780_v2_2_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = s.tmp_3; - if (!checkSubtype(s.tmp_4.arg0, user_interface_base_RowNavigator__C3780_VT)) failedCast(s.tmp_4.arg0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.setBtns; - s.pc = 8; return s.tmp_4; - case 8: - r0 = s.retval; - s.tmp_0 = microcode_PageEditor_addToNavigator__P4332_mk(s); - r0 = s.arg0.fields["pageEditor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1264; s.pc = 9; return s.tmp_0; - case 9: r0 = s.retval; - r0 = s.arg0.fields["cursor"]; + s.b64___20105 = (r0); + r0 = pxsim_pxtcore_mkClassInstance(microcode_Sample__C4606_VT); s.tmp_0 = r0; - r0 = s.arg0.fields["navigator"]; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); + s.tmp_1 = microcode_Sample_constructor__P4607_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.label___20102; + s.tmp_1.arg2 = s.ariaId___20103; + s.tmp_1.arg3 = s.icon___20104; + s.tmp_1.arg4 = s.b64___20105; + s.callLocIdx = 1917; s.pc = 5; return s.tmp_1; case 5: - r0 = undefined; + r0 = s.retval; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_Editor_rebuildNavigator__P5776.info = {"start":14953,"length":381,"line":442,"column":8,"endLine":454,"endColumn":9,"fileName":"editor.ts","functionName":"rebuildNavigator","argumentNames":["this"]} +microcode_samples_inline__P20100.info = {"start":8224,"length":90,"line":239,"column":16,"endLine":240,"endColumn":56,"fileName":"samples.ts","functionName":"inline","argumentNames":["microcode.samples.inline"]} -function microcode_Editor_rebuildNavigator__P5776_mk(s) { +function microcode_samples_inline__P20100_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_rebuildNavigator__P5776, depth: s.depth + 1, + parent: s, fn: microcode_samples_inline__P20100, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, + label___20102: undefined, + ariaId___20103: undefined, + icon___20104: undefined, + b64___20105: undefined, arg0: undefined, } } - -function microcode_PageEditor_addToNavigator__P4332(s) { +function microcode_Sample_constructor__P4607(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49202,41 +55298,40 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - r0 = pxsim_pxtcore_mkAction(1, microcode_PageEditor_addToNavigator_inline__P18233); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1304; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; + if (!checkSubtype(r0, microcode_Sample__C4606_VT)) failedCast(r0, microcode_Sample__C4606_VT); + r0 = (s.arg0).fields["label"] = (s.arg1); + r0 = (s.arg0).fields["ariaId"] = (s.arg2); + r0 = (s.arg0).fields["icon"] = (s.arg3); + r0 = (s.arg0).fields["b64"] = (s.arg4); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_addToNavigator__P4332.info = {"start":19932,"length":219,"line":597,"column":8,"endLine":602,"endColumn":9,"fileName":"editor.ts","functionName":"addToNavigator","argumentNames":["this"]} +microcode_Sample_constructor__P4607.info = {"start":56,"length":194,"line":2,"column":8,"endLine":7,"endColumn":12,"fileName":"samples.ts","functionName":"inline","argumentNames":["this","label","ariaId","icon","b64"]} -function microcode_PageEditor_addToNavigator__P4332_mk(s) { +function microcode_Sample_constructor__P4607_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_addToNavigator__P4332, depth: s.depth + 1, + parent: s, fn: microcode_Sample_constructor__P4607, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, } } - -function microcode_PageEditor_addToNavigator_inline__P18233(s) { +function microcode_rawWebAppSamples__P6029(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49250,48 +55345,329 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleRowNavigator_addRule__P4581_mk(s); - r0 = s.caps[0].fields["editor"]; - r0 = r0.fields["navigator"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["ruledef"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1301; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.tmp_0 = microcode_Editor_addButtons__P4322_mk(s); - r0 = s.caps[0].fields["editor"]; - s.tmp_0.arg0 = r0; - s.tmp_1 = microcode_RuleEditor_getRuleButtons__P4352_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1302; s.pc = 3; return s.tmp_1; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "label", "first program"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "b64", "JfiSPgtJLKBAgegAC0kpowEBAQEBAA=="); + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "label", "flashing heart"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "ariaId", "N2"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "b64", "JfiSPg4soKpGRQCgQDkCAA4powEBAQEBAA=="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "flashing_heart"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "label", "counter"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "ariaId", "N14"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "b64", "JfiSPgtJMK2bEzOtEymlAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_3); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "label", "times table"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "b64", "JfiSPg1aMbGenxQwrgtJMK2uEzOtEymlAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_4); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "label", "double counter"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "b64", "JfiSPgoppAozrQtJMK2bEzOtC0oolwEKKaUKM64LSjGumxQzrgtJKJYBAQEBAA=="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_5); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_6 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "label", "pet hamster"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "ariaId", "N4"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "b64", "JfiSPgosoGADBwALTSygQIHoAKBgAwcAsp0LTSmjDVosoEABFwGgYAMHALKdDVoppwEBAQEBAA=="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "icon", "pet_hamster"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_6); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_7 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "label", "head or tail"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "ariaId", "N9"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "b64", "JfiSPg0wsZwNK7N4MTWzeAEAE04soL9+5wATTyygP8b4AQEBAQEBAA=="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "icon", "heads_tails"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_7); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_8 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "label", "rock, paper, scissors"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "ariaId", "N8"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "b64", "JfiSPg1aMLGdDVopqBNOLKAAAAAAoMA5BwATTyygAAAAAKA/xvgBE1AsoAAAAACgc5E1AQEBAQEBAA=="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "icon", "rock_paper_scissors"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_8); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_9 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "label", "hot potato"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "ariaId", "N7"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "b64", "JfiSPg5WVVUolw4soAAQAACgAAAAAAEKLKC/fucACimnAQEBAQA="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "icon", "hot_potato"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_9); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_10 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "label", "clap lights"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "ariaId", "N10"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "b64", "JfiSPgosoP///wEKKaUSVyiXAQosoAAAAAAKKawSVyiWAQEBAQA="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "icon", "clap_lights"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_10); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_11 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "label", "24 7 clap"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "ariaId", "N13"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "b64", "JfiSPgoppQowmwosoEqprQCgjDHPALISVzCtmw5WVFQolxNSUlJSUiiYAQopowozrQ5WViiWAQoppwosoL864ACgvzoHALIOVlYolgEBAQA="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_11); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_12 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "label", "reaction time"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "ariaId", "N6"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "b64", "JfiSPgosoAAIAACgABAAAKAAIAAAsg5WVVVVVVUolwtJKJkLSiiYAQosoP///wEKKaULSSiYC0oomQEKLKBEPEEAoIh4ggCyDlYolgEKLKAEfUQAoII8IgCyDlYolgEBAA=="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "icon", "reaction_time"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_12); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_13 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "label", "chuck a duck"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "ariaId", "N5"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "b64", "JfiSPg1aLKAAEAAADVotmxFOLKDmeAcAEU4ppQEBAQEBAA=="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "icon", "teleport_duck"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_13); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_14 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_14, "label", "zombie detector"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_14, "b64", "JfiSPg4soAAQAACgQAEFAKARABABoAAAAAARTiiXC00omAEOLKCEEEAAoEopoAAOVCmmDlYolgEOLKC/OuAAoL86BwAOLZsBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_14); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_15 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "label", "firefly"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "ariaId", "N11"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "b64", "JfiSPgosoAAQAAARMK2bDlMwrZsTUFIolw5UVFQolwEKLQowmwosoP/v/wEKKaUOUyiWAQEBAQA="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "icon", "firefly"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_15); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_16 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "label", "railroad crossing"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "ariaId", "N12"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "b64", "JfiSPgo3zAtJNZsLSS+2u7ILSjWfC0ovuLuyC00vvLIBAQEBAQA="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "icon", "railroad_crossing"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_16); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_17 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_17, "label", "moves"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_17, "b64", "JfiSPg1cLKAnpXQADVssoCml9AANXSygIYTwAA1eLKAnnZQADVosoC889AABAQEBAQA="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_17); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_18 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_18, "label", "coins"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_18, "b64", "JfiSPgtJMJsLSjCtmxNQLKAecugBE1EsoC88dAATUiygvdbaAQEBAQEBAA=="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_18); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_19 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_19, "label", "inchworm"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_19, "b64", "JfiSPgo1mw5TUyiXAQo1nw5TUyiWAQEBAQA="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_19); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_20 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_20, "label", "head guess"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_20, "b64", "JfiSPgoppQowsZ0KMZsNXDCxnQ1bMLGdDVsxrpsOVlZWViiXE04soOZ5BwATTyygL4TwAKAvvZQAoJ8QQgCyE1AsoCeldACgL6X0AKAvtPQAsgEKM64KKaMOVlYolgEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_20); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_21 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "label", "battery charger prank"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_21, "b64", "JfiSPgosoE4p5QCgTimlALINWiiXAQosoE4p5QCgTinnAKBOOecAoM455wCyDlYolgEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_21); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_22 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_22, "label", "green light red light"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_22, "b64", "JfiSPgtNKJcRTyiYCiyg5VMnAKDkEwcAoPQXhwCyCimlAQowmw4trQtJMJsLSjCcE04soOVTJwCg5BMHAKD0F4cAshNPLKBRERUBAQ1aKacNWiygvzrgAKC/OgcAshFOKJYBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_22); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_23 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_23, "label", "crooked head or tail"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_23, "b64", "JfiSPg0wsZ0NKagTTiygv37nABNPLKA/xvgBE1AsoD/G+AEBAQEBAQA="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_23); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_24 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_24, "label", "step counter"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_24, "b64", "JfiSPg1aMK2bEzOtEymlAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_24); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_25 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_25, "label", "clap counter"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_25, "b64", "JfiSPhJXMK2bEzOtAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_25); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_26 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "label", "random counter"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_26, "b64", "JfiSPgtJMJuxnwtJMRMzrQtKMa6bFF8soECB6AABAQEBAQA="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_26); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_27 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_27, "label", "slider levels"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_27, "b64", "JfiSPhdOM5sXTzOcF1AznRdRM54XUjOfAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_27); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_28 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_28, "label", "light levels"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_28, "b64", "JfiSPg9OM5sPTzOcD1AznQ9RM54PUjOfAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_28); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_29 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_29, "label", "magnet levels"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_29, "b64", "JfiSPhZOM5sWTzOcFlAznRZRM54WUjOfAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_29); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_30 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_30, "label", "count turns"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_30, "b64", "JfiSPhhiMK2bGGMxrpsTM60UM64BAQEBAQA="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_30); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_31 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_31, "label", "key demo"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_31, "b64", "JfiSPgosoAAQAAALSyygQIHoAAtMLKBAARcBAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_31); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_32 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "label", "robot shake"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "b64", "JfiSPgounQ1cNL4NWzTCDV00wMINXjTBwgEBAQEBAA=="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_32); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_33 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_33, "label", "robot wake"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_33, "b64", "JfiSPgounRI0wMDAwgEBAQEBAA=="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_33); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_34 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_34, "label", "robot avoid wall"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_34, "b64", "JfiSPgounQo0vhlPNMC+AQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_34); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_35 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_35, "label", "robot line follow"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_35, "b64", "JfiSPgoumxpoNL4aZjTAGmc0wRpqNMQaazTFGmk0wgEBAQEBAA=="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_35); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_36 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_36, "label", "robot showcase"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_36, "b64", "JfiSPgoumwtJNL7IC0o0wsYZTzTEvgEBAQEBAA=="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_36); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_37 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_37, "label", "robot drift tester"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_37, "b64", "JfiSPgoumwtJNL7IC0o0w8cSNMLGAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_37); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_38 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "label", "more water please!"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "b64", "JfiSPhxONswcUDbNAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_38); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_39 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_39, "label", "don't stand too close to me!"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_39, "b64", "JfiSPh1OL7YdUC+6HVIvtwEBAQEBAA=="); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_39); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_40 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_40, "label", "start/stop servo"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_40, "b64", "JfiSPgtJN8wMSjfNAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_40); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_41 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_41, "label", "move off the line"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_41, "b64", "JfiSPh5uN8webzfNAQEBAQEA"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_41); + s.tmp_42 = if_s_2_mk(s); + s.tmp_42.arg0 = s.arg0; + s.tmp_43 = helpers_arrayConcat__P2142_mk(s); + s.tmp_44 = if_s_1_mk(s); + s.tmp_44.arg0 = s.arg0; + if (!s.tmp_44.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_44.arg0, "s"); + } else { + s.tmp_44.fn = s.tmp_44.arg0.vtable.iface["s"]; + if (s.tmp_44.fn == null) { s.retval = s.tmp_44.arg0.fields["s"]; } + else if (!s.tmp_44.fn.isGetter) { s.retval = bind(s.tmp_44); } + else { s.callLocIdx = 1905; s.pc = 3; return s.tmp_44; } + } case 3: r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1303; s.pc = 2; return s.tmp_0; + s.tmp_43.arg0 = r0; + s.tmp_43.arg1 = s.tmp_1; + s.callLocIdx = 1906; s.pc = 2; return s.tmp_43; case 2: + r0 = s.retval; + s.tmp_42.arg1 = r0; + if (!s.tmp_42.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapSetByString(s.tmp_42.arg0, "s", s.tmp_42.arg1); + } else { + s.tmp_42.fn = s.tmp_42.arg0.vtable.iface["set/s"]; + if (s.tmp_42.fn === null) { s.tmp_42.arg0.fields["s"] = s.tmp_42.arg1; } + else if (s.tmp_42.fn === undefined) { failedCast(s.tmp_42.arg0) } + else { s.callLocIdx = 1907; s.pc = 1; return s.tmp_42; } + } + case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_addToNavigator_inline__P18233.info = {"start":19995,"length":145,"line":598,"column":37,"endLine":601,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} +microcode_rawWebAppSamples__P6029.info = {"start":527,"length":6938,"line":23,"column":4,"endLine":212,"endColumn":5,"fileName":"samples.ts","functionName":"rawWebAppSamples","argumentNames":["r"]} -function microcode_PageEditor_addToNavigator_inline__P18233_mk(s) { +function microcode_rawWebAppSamples__P6029_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_addToNavigator_inline__P18233, depth: s.depth + 1, + parent: s, fn: microcode_rawWebAppSamples__P6029, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tmp_23: undefined, + tmp_24: undefined, + tmp_25: undefined, + tmp_26: undefined, + tmp_27: undefined, + tmp_28: undefined, + tmp_29: undefined, + tmp_30: undefined, + tmp_31: undefined, + tmp_32: undefined, + tmp_33: undefined, + tmp_34: undefined, + tmp_35: undefined, + tmp_36: undefined, + tmp_37: undefined, + tmp_38: undefined, + tmp_39: undefined, + tmp_40: undefined, + tmp_41: undefined, + tmp_42: undefined, + tmp_43: undefined, + tmp_44: undefined, arg0: undefined, } } - -function microcode_RuleEditor_getRuleButtons__P4352(s) { +function microcode_rawSamples__P4609(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49301,279 +55677,45 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btns___18249 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = pxsim_Array__mk(); - s.btns___18249 = (r0); - r0 = s.arg0.fields["handleBtn"]; - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.btns___18249, s.tmp_0); - r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_getRuleButtons_inline__P18261); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btns___18249); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = if_sensors_1_mk(s); - r0 = s.arg0.fields["ruleButtons"]; - s.tmp_2.arg0 = r0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "sensors"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["sensors"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["sensors"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1405; s.pc = 6; return s.tmp_2; } - } - case 6: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1406; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_getRuleButtons_inline__P18272); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btns___18249); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = if_filters_1_mk(s); - r0 = s.arg0.fields["ruleButtons"]; - s.tmp_2.arg0 = r0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "filters"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["filters"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["filters"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1407; s.pc = 8; return s.tmp_2; } - } - case 8: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1408; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; - r0 = s.arg0.fields["whenInsertBtn"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["whenInsertBtn"]; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.btns___18249, s.tmp_1); - case 1: - case 2: - r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_getRuleButtons_inline__P18290); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btns___18249); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = if_actuators_1_mk(s); - r0 = s.arg0.fields["ruleButtons"]; - s.tmp_2.arg0 = r0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "actuators"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["actuators"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["actuators"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1409; s.pc = 10; return s.tmp_2; } - } - case 10: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1410; s.pc = 9; return s.tmp_1; - case 9: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_getRuleButtons_inline__P18301); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btns___18249); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = if_modifiers_1_mk(s); - r0 = s.arg0.fields["ruleButtons"]; - s.tmp_2.arg0 = r0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "modifiers"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["modifiers"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["modifiers"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1411; s.pc = 12; return s.tmp_2; } - } - case 12: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1412; s.pc = 11; return s.tmp_1; - case 11: - r0 = s.retval; - r0 = s.arg0.fields["doInsertBtn"]; + s.s___20125 = undefined; + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = s.arg0.fields["doInsertBtn"]; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "label", "new program"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ariaId", "N1"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "b64", "JfiSPgEBAQEBAA=="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", "new_program"); + r0 = pxsim_Array__mk(); s.tmp_1 = r0; - r0 = pxsim_Array__push(s.btns___18249, s.tmp_1); - case 3: - case 4: - r0 = s.btns___18249; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "label", "smiley buttons"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "ariaId", "N3"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "b64", "JfiSPgtJLKB7g+gAoBtEBwALSSmkC0osoHsDFwGgewPwAQtKKacBAQEBAQA="); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "smiley_buttons"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); + s.s___20125 = (s.tmp_1); + r0 = s.s___20125; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_getRuleButtons__P4352.info = {"start":13215,"length":581,"line":363,"column":8,"endLine":378,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"getRuleButtons","argumentNames":["this"]} +microcode_rawSamples__P4609.info = {"start":7471,"length":498,"line":214,"column":4,"endLine":230,"endColumn":5,"fileName":"samples.ts","functionName":"rawSamples","argumentNames":[]} -function microcode_RuleEditor_getRuleButtons__P4352_mk(s) { +function microcode_rawSamples__P4609_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_getRuleButtons__P4352, depth: s.depth + 1, + parent: s, fn: microcode_rawSamples__P4609, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - btns___18249: undefined, - arg0: undefined, -} } - - - - - -function microcode_RuleEditor_getRuleButtons_inline__P18261(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_Array__push(s.caps[0], s.arg0); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_RuleEditor_getRuleButtons_inline__P18261.info = {"start":13416,"length":17,"line":367,"column":45,"endLine":367,"endColumn":62,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} - -function microcode_RuleEditor_getRuleButtons_inline__P18261_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleEditor_getRuleButtons_inline__P18261, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, -} } - - - - - -function microcode_RuleEditor_getRuleButtons_inline__P18272(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_Array__push(s.caps[0], s.arg0); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_RuleEditor_getRuleButtons_inline__P18272.info = {"start":13480,"length":17,"line":368,"column":45,"endLine":368,"endColumn":62,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} - -function microcode_RuleEditor_getRuleButtons_inline__P18272_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleEditor_getRuleButtons_inline__P18272, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, -} } - - - - - -function microcode_RuleEditor_getRuleButtons_inline__P18290(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_Array__push(s.caps[0], s.arg0); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_RuleEditor_getRuleButtons_inline__P18290.info = {"start":13614,"length":17,"line":372,"column":47,"endLine":372,"endColumn":64,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} - -function microcode_RuleEditor_getRuleButtons_inline__P18290_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleEditor_getRuleButtons_inline__P18290, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, -} } - - - - - -function microcode_RuleEditor_getRuleButtons_inline__P18301(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_Array__push(s.caps[0], s.arg0); - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_RuleEditor_getRuleButtons_inline__P18301.info = {"start":13680,"length":17,"line":373,"column":47,"endLine":373,"endColumn":64,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} - -function microcode_RuleEditor_getRuleButtons_inline__P18301_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_RuleEditor_getRuleButtons_inline__P18301, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, + s___20125: undefined, } } - -function microcode_Editor_addButtons__P4322(s) { +function microcode_Sample_source__P4608(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49585,41 +55727,35 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = user_interface_base_RowNavigator__C3780_v3_2_mk(s); - r0 = s.arg0.fields["navigator"]; + if (!checkSubtype(r0, microcode_Sample__C4606_VT)) failedCast(r0, microcode_Sample__C4606_VT); + s.tmp_0 = Buffer_fromBase64__P2796_mk(s); + r0 = s.arg0.fields["b64"]; s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_RowNavigator__C3780_VT)) failedCast(s.tmp_0.arg0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.addRow; - s.pc = 1; return s.tmp_0; + s.callLocIdx = 1904; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = undefined; - return leave(s, r0) + return leaveAccessor(s, r0) default: oops() } } } -microcode_Editor_addButtons__P4322.info = {"start":14858,"length":85,"line":438,"column":8,"endLine":440,"endColumn":9,"fileName":"editor.ts","functionName":"addButtons","argumentNames":["this","btns"]} +microcode_Sample_source__P4608.info = {"start":260,"length":71,"line":9,"column":8,"endLine":11,"endColumn":9,"fileName":"samples.ts","functionName":"source","argumentNames":["this"]} +microcode_Sample_source__P4608.isGetter = true; -function microcode_Editor_addButtons__P4322_mk(s) { +function microcode_Sample_source__P4608_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_addButtons__P4322, depth: s.depth + 1, + parent: s, fn: microcode_Sample_source__P4608, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_RowNavigator_addRow__P3786(s) { +function Buffer_fromBase64__P2796(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49629,37 +55765,48 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.sz___20133 = undefined; + s.res___20138 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.arg1); - r0 = undefined; + s.tmp_0 = Buffer_fromBase64Core__P4922_mk(s); + s.tmp_0.arg0 = null; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 84; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + s.sz___20133 = (r0); + r0 = pxsim.control.createBuffer(s.sz___20133); + s.res___20138 = (r0); + s.tmp_0 = Buffer_fromBase64Core__P4922_mk(s); + s.tmp_0.arg0 = s.res___20138; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 85; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = s.res___20138; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_addRow__P3786.info = {"start":2346,"length":82,"line":71,"column":8,"endLine":73,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"addRow","argumentNames":["this","btns"]} +Buffer_fromBase64__P2796.info = {"start":9796,"length":175,"line":344,"column":4,"endLine":349,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"fromBase64","argumentNames":["b64"]} -function user_interface_base_RowNavigator_addRow__P3786_mk(s) { +function Buffer_fromBase64__P2796_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_addRow__P3786, depth: s.depth + 1, + parent: s, fn: Buffer_fromBase64__P2796, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + sz___20133: undefined, + res___20138: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_RuleRowNavigator_addRule__P4581(s) { +function Buffer_fromBase64Core__P4922(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49669,28 +55816,183 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.len___20148 = undefined; + s.dp___20151 = undefined; + s.i___20152 = undefined; + s.x0___20157 = undefined; + s.x1___20163 = undefined; + s.x2___20171 = undefined; + s.x3___20179 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleRowNavigator__C4578_VT)) failedCast(r0, microcode_RuleRowNavigator__C4578_VT); - r0 = s.arg0.fields["rules"]; + r0 = pxsim_String_.length(s.arg1); + s.len___20148 = (r0); + s.dp___20151 = (0); + s.i___20152 = (0); + case 1: + r0 = (s.i___20152 < s.len___20148); s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.arg1); - r0 = undefined; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 20; continue; } + s.tmp_1 = Buffer_b64Idx__P4921_mk(s); + r0 = pxsim_String_.charAt(s.arg1, s.i___20152); + s.tmp_1.arg0 = r0; + s.callLocIdx = 80; s.pc = 21; return s.tmp_1; + case 21: + r0 = s.retval; + s.x0___20157 = (r0); + s.tmp_0 = Buffer_b64Idx__P4921_mk(s); + s.tmp_1 = r0 = s.arg1; + r0 = (s.i___20152 + 1); + s.tmp_2 = r0; + r0 = pxsim_String_.charAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + s.callLocIdx = 81; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + s.x1___20163 = (r0); + s.tmp_0 = Buffer_b64Idx__P4921_mk(s); + s.tmp_1 = r0 = s.arg1; + r0 = (s.i___20152 + 2); + s.tmp_2 = r0; + r0 = pxsim_String_.charAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + s.callLocIdx = 82; s.pc = 23; return s.tmp_0; + case 23: + r0 = s.retval; + s.x2___20171 = (r0); + s.tmp_0 = Buffer_b64Idx__P4921_mk(s); + s.tmp_1 = r0 = s.arg1; + r0 = (s.i___20152 + 3); + s.tmp_2 = r0; + r0 = pxsim_String_.charAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + s.callLocIdx = 83; s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + s.x3___20179 = (r0); + r0 = (s.x0___20157 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + r0 = (s.x1___20163 < 0); + case 3: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + r0 = pxsim_pxtcore.throwValue("Invalid Base64"); + case 4: + case 5: + r0 = pxsim_numops_toBoolDecr(s.arg0); + if (!r0) { step = 6; continue; } + s.tmp_2 = r0 = s.arg0; + s.tmp_3 = r0 = s.dp___20151; + r0 = (s.x0___20157 << 2); + s.tmp_5 = r0; + r0 = (s.x1___20163 >> 4); + s.tmp_6 = r0; + r0 = (s.tmp_5 | s.tmp_6); + s.tmp_4 = r0; + r0 = pxsim.BufferMethods.setByte(s.tmp_2, s.tmp_3, s.tmp_4); + case 6: + case 7: + r0 = (s.dp___20151 + 1); + s.dp___20151 = (r0); + r0 = (s.x2___20171 >= 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 14; continue; } + r0 = pxsim_numops_toBoolDecr(s.arg0); + if (!r0) { step = 8; continue; } + s.tmp_1 = r0 = s.arg0; + s.tmp_2 = r0 = s.dp___20151; + r0 = (s.x1___20163 << 4); + s.tmp_4 = r0; + r0 = (s.x2___20171 >> 2); + s.tmp_5 = r0; + r0 = (s.tmp_4 | s.tmp_5); + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.setByte(s.tmp_1, s.tmp_2, s.tmp_3); + case 8: + case 9: + r0 = (s.dp___20151 + 1); + s.dp___20151 = (r0); + r0 = (s.x3___20179 >= 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 12; continue; } + r0 = pxsim_numops_toBoolDecr(s.arg0); + if (!r0) { step = 10; continue; } + s.tmp_1 = r0 = s.arg0; + s.tmp_2 = r0 = s.dp___20151; + r0 = (s.x2___20171 << 6); + s.tmp_4 = r0; + r0 = (s.tmp_4 | s.x3___20179); + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.setByte(s.tmp_1, s.tmp_2, s.tmp_3); + case 10: + case 11: + r0 = (s.dp___20151 + 1); + s.dp___20151 = (r0); + case 12: + case 13: + { step = 19; continue; } + case 14: + r0 = (s.x3___20179 >= 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 15; continue; } + r0 = s.tmp_0; + { step = 16; continue; } + case 15: + r0 = (s.i___20152 + 4); + s.tmp_1 = r0; + r0 = (s.tmp_1 < s.len___20148); + case 16: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 17; continue; } + r0 = pxsim_pxtcore.throwValue("Invalid Base64"); + case 17: + case 18: + case 19: + r0 = (s.i___20152 + 4); + s.i___20152 = (r0); + { step = 1; continue; } + case 20: + r0 = s.dp___20151; return leave(s, r0) default: oops() } } } -microcode_RuleRowNavigator_addRule__P4581.info = {"start":578,"length":76,"line":21,"column":8,"endLine":23,"endColumn":9,"fileName":"navigator.ts","functionName":"addRule","argumentNames":["this","rule"]} +Buffer_fromBase64Core__P4922.info = {"start":8837,"length":884,"line":312,"column":4,"endLine":339,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"fromBase64Core","argumentNames":["trg","b64"]} -function microcode_RuleRowNavigator_addRule__P4581_mk(s) { +function Buffer_fromBase64Core__P4922_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleRowNavigator_addRule__P4581, depth: s.depth + 1, + parent: s, fn: Buffer_fromBase64Core__P4922, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + len___20148: undefined, + dp___20151: undefined, + i___20152: undefined, + x0___20157: undefined, + x1___20163: undefined, + x2___20171: undefined, + x3___20179: undefined, arg0: undefined, arg1: undefined, } } @@ -49698,8 +56000,7 @@ function microcode_RuleRowNavigator_addRule__P4581_mk(s) { - -function microcode_RuleRowNavigator_constructor__P4579(s) { +function Buffer_b64Idx__P4921(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49709,42 +56010,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.r___20257 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleRowNavigator__C4578_VT)) failedCast(r0, microcode_RuleRowNavigator__C4578_VT); - s.tmp_0 = user_interface_base_RowNavigator_constructor__P3781_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1651; s.pc = 1; return s.tmp_0; + r0 = (s.arg0 === undefined); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); + r0 = (s.arg0 == "="); + case 2: + // jmp value (already in r0) s.tmp_1 = r0; - r0 = (s.tmp_0).fields["rules"] = (s.tmp_1); - r0 = undefined; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = -1; + { step = 11; continue; } + case 3: + case 4: + r0 = (s.arg0 == "-"); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 5; continue; } + r0 = 62; + { step = 11; continue; } + case 5: + case 6: + r0 = (s.arg0 == "_"); + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 7; continue; } + r0 = 63; + { step = 11; continue; } + case 7: + case 8: + r0 = pxsim_String_.indexOf(globals._b64___2782, s.arg0, undefined); + s.r___20257 = (r0); + r0 = (s.r___20257 < 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = pxsim_pxtcore.throwValue("Invalid Base64"); + case 9: + case 10: + r0 = s.r___20257; + case 11: return leave(s, r0) default: oops() } } } -microcode_RuleRowNavigator_constructor__P4579.info = {"start":381,"length":73,"line":10,"column":8,"endLine":13,"endColumn":9,"fileName":"navigator.ts","functionName":"inline","argumentNames":["this"]} +Buffer_b64Idx__P4921.info = {"start":8539,"length":292,"line":299,"column":4,"endLine":310,"endColumn":5,"fileName":"pxt_modules/core/buffer.ts","functionName":"b64Idx","argumentNames":["c"]} -function microcode_RuleRowNavigator_constructor__P4579_mk(s) { +function Buffer_b64Idx__P4921_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleRowNavigator_constructor__P4579, depth: s.depth + 1, + parent: s, fn: Buffer_b64Idx__P4921, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + r___20257: undefined, arg0: undefined, } } - -function microcode_RuleRowNavigator_clear__P4580(s) { +function microcode_Editor_pickPage__P5951(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49754,42 +56090,67 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.btns___20267 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleRowNavigator__C4578_VT)) failedCast(r0, microcode_RuleRowNavigator__C4578_VT); - s.tmp_0 = user_interface_base_RowNavigator_clear__P3782_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1652; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = helpers_arrayMap__P2135_mk(s); + s.tmp_1 = microcode_PAGE_IDS__P4219_mk(s); + s.callLocIdx = 1419; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = btns_inline__P20269; + s.callLocIdx = 1421; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); + s.btns___20267 = (r0); + s.tmp_0 = user_interface_base_Picker_setGroup__P3729_mk(s); + r0 = s.arg0.fields["picker"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.btns___20267; + s.callLocIdx = 1422; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P20282); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["rules"] = (s.tmp_1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_0); + s.tmp_2 = user_interface_base_Picker_show__P3731_mk(s); + r0 = s.arg0.fields["picker"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_1; + s.tmp_2.arg2 = true; + s.callLocIdx = 1424; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleRowNavigator_clear__P4580.info = {"start":488,"length":80,"line":16,"column":8,"endLine":19,"endColumn":9,"fileName":"navigator.ts","functionName":"clear","argumentNames":["this"]} +microcode_Editor_pickPage__P5951.info = {"start":3781,"length":397,"line":115,"column":8,"endLine":127,"endColumn":9,"fileName":"editor.ts","functionName":"pickPage","argumentNames":["this"]} -function microcode_RuleRowNavigator_clear__P4580_mk(s) { +function microcode_Editor_pickPage__P5951_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleRowNavigator_clear__P4580, depth: s.depth + 1, + parent: s, fn: microcode_Editor_pickPage__P5951, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + btns___20267: undefined, arg0: undefined, } } - -function user_interface_base_RowNavigator_clear__P3782(s) { +function btns_inline__P20269(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49803,33 +56164,36 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + s.tmp_2 = microcode_getIcon__P4195_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1420; s.pc = 1; return s.tmp_2; + case 1: + r0 = s.retval; s.tmp_1 = r0; - r0 = (s.tmp_0).fields["buttonGroups"] = (s.tmp_1); - r0 = undefined; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", s.tmp_1); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_clear__P3782.info = {"start":2053,"length":61,"line":55,"column":8,"endLine":57,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"clear","argumentNames":["this"]} +btns_inline__P20269.info = {"start":3861,"length":121,"line":116,"column":59,"endLine":120,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["pageId"]} -function user_interface_base_RowNavigator_clear__P3782_mk(s) { +function btns_inline__P20269_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_clear__P3782, depth: s.depth + 1, + parent: s, fn: btns_inline__P20269, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, arg0: undefined, } } - -function microcode_PageEditor_update__P4337(s) { +function onClick_inline__P20282(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49843,25 +56207,24 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = microcode_PageEditor_update_inline__P18354; - s.callLocIdx = 1322; s.pc = 1; return s.tmp_0; + s.tmp_0 = microcode_Editor_switchToPage__P4468_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = s.arg0; + s.tmp_0.arg2 = 1; + s.tmp_0.arg3 = 1; + s.callLocIdx = 1423; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_update__P4337.info = {"start":21464,"length":80,"line":645,"column":8,"endLine":647,"endColumn":9,"fileName":"editor.ts","functionName":"update","argumentNames":["this"]} +onClick_inline__P20282.info = {"start":4079,"length":73,"line":123,"column":25,"endLine":125,"endColumn":17,"fileName":"editor.ts","functionName":"inline","argumentNames":["index"]} -function microcode_PageEditor_update__P4337_mk(s) { +function onClick_inline__P20282_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_update__P4337, depth: s.depth + 1, + parent: s, fn: onClick_inline__P20282, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -49870,8 +56233,7 @@ function microcode_PageEditor_update__P4337_mk(s) { - -function microcode_PageEditor_update_inline__P18354(s) { +function microcode_Editor_pickDiskSLot__P5950(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49881,35 +56243,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.btns___20287 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleEditor_update__P4354_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1321; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + s.tmp_0 = helpers_arrayMap__P2135_mk(s); + s.tmp_1 = microcode_diskSlots__P4453_mk(s); + s.callLocIdx = 1411; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = btns_inline__P20289; + s.callLocIdx = 1412; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.btns___20287 = (r0); + s.tmp_0 = user_interface_base_Picker_setGroup__P3729_mk(s); + r0 = s.arg0.fields["picker"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.btns___20287; + s.callLocIdx = 1413; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + s.tmp_2 = accessibility_ariaToTooltip__P3492_mk(s); + s.tmp_2.arg0 = "disk"; + s.callLocIdx = 1414; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); + r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P20302); + s.tmp_3 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_3, 1, s.btns___20287); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_3); + s.tmp_4 = user_interface_base_Picker_show__P3731_mk(s); + r0 = s.arg0.fields["picker"]; + s.tmp_4.arg0 = r0; + s.tmp_4.arg1 = s.tmp_0; + s.tmp_4.arg2 = true; + s.callLocIdx = 1418; s.pc = 5; return s.tmp_4; + case 5: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_update_inline__P18354.info = {"start":21512,"length":21,"line":646,"column":37,"endLine":646,"endColumn":58,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} +microcode_Editor_pickDiskSLot__P5950.info = {"start":3300,"length":471,"line":100,"column":8,"endLine":113,"endColumn":9,"fileName":"editor.ts","functionName":"pickDiskSLot","argumentNames":["this"]} -function microcode_PageEditor_update_inline__P18354_mk(s) { +function microcode_Editor_pickDiskSLot__P5950_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_update_inline__P18354, depth: s.depth + 1, + parent: s, fn: microcode_Editor_pickDiskSLot__P5950, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + btns___20287: undefined, arg0: undefined, } } - -function microcode_RuleEditor_update__P4354(s) { +function btns_inline__P20289(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49923,61 +56327,28 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = s.arg0.fields["queuedCursorMove"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = s.arg0.fields["queuedCursorMove"]; - s.tmp_1 = r0; - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_1); - if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(3, s.tmp_1); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(2, s.tmp_1); - if (r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 4; continue; } - case 1: - r0 = globals.right___3270.fields["id"]; - s.tmp_2 = r0; - r0 = pxsim.control.raiseEvent(2049, s.tmp_2, 1); - case 2: - r0 = globals.right___3270.fields["id"]; - s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2049, s.tmp_0, 1); - { step = 4; continue; } - case 3: - r0 = globals.left___3268.fields["id"]; + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2049, s.tmp_0, 1); - case 4: - r0 = (s.arg0).fields["queuedCursorMove"] = (undefined); - case 5: - case 6: - r0 = undefined; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", s.arg0); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_update__P4354.info = {"start":13886,"length":1003,"line":384,"column":8,"endLine":410,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"update","argumentNames":["this"]} +btns_inline__P20289.info = {"start":3385,"length":98,"line":101,"column":60,"endLine":105,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["slot"]} -function microcode_RuleEditor_update__P4354_mk(s) { +function btns_inline__P20289_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_update__P4354, depth: s.depth + 1, + parent: s, fn: btns_inline__P20289, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, } } - -function microcode_Editor_activate__P4321(s) { +function onClick_inline__P20302(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -49991,87 +56362,62 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = user_interface_base_Scene_activate__P3693_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1258; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = user_interface_base_Button_setIcon__P3681_mk(s); - r0 = s.arg0.fields["pageBtn"]; + s.tmp_0 = if_save_3_mk(s); + r0 = s.caps[0].fields["app"]; s.tmp_0.arg0 = r0; - s.tmp_3 = microcode_PAGE_IDS__P4066_mk(s); - s.callLocIdx = 1259; s.pc = 5; return s.tmp_3; - case 5: - r0 = s.retval; - s.tmp_2 = r0; - r0 = s.arg0.fields["currPage"]; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_4); - s.tmp_1 = r0; - r0 = pxsim_numops.toString(s.tmp_1); - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 6); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 6: + s.tmp_1 = if_icon_1_mk(s); + r0 = pxsim_Array__getAt(s.caps[1], s.arg0); + s.tmp_1.arg0 = r0; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "icon"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["icon"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["icon"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1415; s.pc = 2; return s.tmp_1; } + } + case 2: r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat("T", s.tmp_5); s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = undefined; - s.callLocIdx = 1261; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - r0 = s.arg0.fields["pageEditor"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = microcode_Editor_switchToPage__P4314_mk(s); - s.tmp_3.arg0 = s.arg0; - r0 = s.arg0.fields["currPage"]; - s.tmp_3.arg1 = r0; - s.tmp_3.arg2 = 1; - s.tmp_3.arg3 = 1; - s.callLocIdx = 1262; s.pc = 7; return s.tmp_3; - case 7: + s.tmp_2 = microcode_ProgramDefn_toBuffer__P4224_mk(s); + r0 = s.caps[0].fields["progdef"]; + s.tmp_2.arg0 = r0; + s.callLocIdx = 1416; s.pc = 3; return s.tmp_2; + case 3: r0 = s.retval; + s.tmp_0.arg2 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "save"), 3); + s.callLocIdx = 1417; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["save"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["save"], 3); s.callLocIdx = 1417; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1417; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1417; s.pc = 1; return s.tmp_0; } + } case 1: - case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_activate__P4321.info = {"start":14581,"length":267,"line":429,"column":23,"endLine":436,"endColumn":9,"fileName":"editor.ts","functionName":"activate","argumentNames":["this"]} +onClick_inline__P20302.info = {"start":3640,"length":105,"line":109,"column":25,"endLine":111,"endColumn":17,"fileName":"editor.ts","functionName":"inline","argumentNames":["index"]} -function microcode_Editor_activate__P4321_mk(s) { +function onClick_inline__P20302_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_activate__P4321, depth: s.depth + 1, + parent: s, fn: onClick_inline__P20302, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, arg0: undefined, } } - -function microcode_Editor_switchToPage__P4314(s) { +function microcode_diskSlots__P4453(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50081,145 +56427,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = (s.arg1 < 0); + r0 = pxsim_Array__mk(); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } + r0 = pxsim_Array__push(s.tmp_0, "disk1"); + r0 = pxsim_Array__push(s.tmp_0, "disk2"); + r0 = pxsim_Array__push(s.tmp_0, "disk3"); r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_1 = r0 = s.arg1; - r0 = s.arg0.fields["progdef"]; - r0 = r0.fields["pages"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 >= s.tmp_2); - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 3; continue; } - { step = 5; continue; } - case 3: - case 4: - r0 = (s.arg0).fields["currPage"] = (s.arg1); - s.tmp_0 = user_interface_base_Button_setIcon__P3681_mk(s); - r0 = s.arg0.fields["pageBtn"]; - s.tmp_0.arg0 = r0; - s.tmp_1 = microcode_getIcon__P4042_mk(s); - s.tmp_3 = microcode_PAGE_IDS__P4066_mk(s); - s.callLocIdx = 1153; s.pc = 8; return s.tmp_3; - case 8: - r0 = s.retval; - s.tmp_2 = r0; - r0 = s.arg0.fields["currPage"]; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_4); - s.tmp_1.arg0 = r0; - s.callLocIdx = 1154; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = undefined; - s.callLocIdx = 1155; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(microcode_PageEditor__C4325_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_PageEditor_constructor__P4328_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.arg0; - r0 = s.arg0.fields["scrollroot"]; - s.tmp_1.arg2 = r0; - r0 = s.arg0.fields["progdef"]; - r0 = r0.fields["pages"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["currPage"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); - s.tmp_1.arg3 = r0; - s.callLocIdx = 1156; s.pc = 9; return s.tmp_1; - case 9: - r0 = s.retval; - r0 = (s.arg0).fields["pageEditor"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - r0 = (globals.user_interface_base_Screen_TOP_EDGE___3445 + 17); - s.tmp_2 = r0; - r0 = (s.tmp_2 + 2); - s.tmp_1.arg2 = r0; - s.callLocIdx = 1158; s.pc = 10; return s.tmp_1; - case 10: - r0 = s.retval; - s.tmp_3 = user_interface_base_Affine_localPos__P3354_mk(s); - r0 = s.arg0.fields["scrollroot"]; - s.tmp_4 = r0; - r0 = s.tmp_4.fields["xfrm_"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.tmp_0; - s.callLocIdx = 1159; s.pc = 11; return s.tmp_3; - case 11: - r0 = s.retval; - s.tmp_0 = microcode_Editor_rebuildNavigator__P5776_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1160; s.pc = 12; return s.tmp_0; - case 12: - r0 = s.retval; - s.tmp_0 = microcode_Editor_snapCursorTo__P4315_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_1 = user_interface_base_RowNavigator_initialCursor__P3793_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.arg2; - s.tmp_1.arg2 = s.arg3; - s.callLocIdx = 1161; s.pc = 14; return s.tmp_1; - case 14: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1162; s.pc = 13; return s.tmp_0; - case 13: - r0 = s.retval; - case 5: - r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_switchToPage__P4314.info = {"start":4407,"length":727,"line":139,"column":8,"endLine":156,"endColumn":9,"fileName":"editor.ts","functionName":"switchToPage","argumentNames":["this","index","startRow","startCol"]} +microcode_diskSlots__P4453.info = {"start":960,"length":78,"line":19,"column":4,"endLine":21,"endColumn":5,"fileName":"editor.ts","functionName":"diskSlots","argumentNames":[]} -function microcode_Editor_switchToPage__P4314_mk(s) { +function microcode_diskSlots__P4453_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_switchToPage__P4314, depth: s.depth + 1, + parent: s, fn: microcode_diskSlots__P4453, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function microcode_Editor_snapCursorTo__P4315(s) { +function user_interface_base_Picker_constructor__P3728(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50229,60 +56459,45 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___18464 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.arg1.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1164; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, user_interface_base_Picker__C3721_VT)) failedCast(r0, user_interface_base_Picker__C3721_VT); + r0 = (s.arg0).fields["cursor"] = (s.arg1); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 698; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - s.w___18464 = (r0); - s.tmp_0 = user_interface_base_Cursor_snapTo__P3733_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_0.arg0 = r0; - r0 = s.w___18464.fields["x_"]; - s.tmp_0.arg1 = r0; - r0 = s.w___18464.fields["y_"]; - s.tmp_0.arg2 = r0; - r0 = s.arg1.fields["_ariaId"]; - s.tmp_0.arg3 = r0; - s.tmp_1 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_1.arg0 = s.arg1; - s.callLocIdx = 1168; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0.arg4 = r0; - s.callLocIdx = 1169; s.pc = 2; return s.tmp_0; + r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); + r0 = (s.arg0).fields["group"] = (undefined); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_PickerNavigator_constructor__P3777_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.arg0; + s.callLocIdx = 699; s.pc = 2; return s.tmp_1; case 2: r0 = s.retval; - s.tmp_0 = user_interface_base_Button_reportAria__P3676_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = true; - s.callLocIdx = 1170; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - r0 = (s.arg0).fields["dirty"] = (true); + r0 = (s.arg0).fields["navigator"] = (s.tmp_0); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_snapCursorTo__P4315.info = {"start":5144,"length":212,"line":158,"column":8,"endLine":163,"endColumn":9,"fileName":"editor.ts","functionName":"snapCursorTo","argumentNames":["this","btn"]} +user_interface_base_Picker_constructor__P3728.info = {"start":4351,"length":175,"line":132,"column":8,"endLine":136,"endColumn":9,"fileName":"pxt_modules/user-interface-base/picker.ts","functionName":"inline","argumentNames":["this","cursor"]} -function microcode_Editor_snapCursorTo__P4315_mk(s) { +function user_interface_base_Picker_constructor__P3728_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_snapCursorTo__P4315, depth: s.depth + 1, + parent: s, fn: user_interface_base_Picker_constructor__P3728, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - w___18464: undefined, arg0: undefined, arg1: undefined, } } @@ -50290,8 +56505,7 @@ function microcode_Editor_snapCursorTo__P4315_mk(s) { - -function user_interface_base_Placeable_xfrm__P3408(s) { +function user_interface_base_Cursor_constructor__P3703(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50306,27 +56520,59 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Placeable__C3407_VT)) failedCast(r0, user_interface_base_Placeable__C3407_VT); - r0 = s.arg0.fields["xfrm_"]; - return leaveAccessor(s, r0) + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + r0 = (s.arg0).fields["visible"] = (true); + r0 = (s.arg0).fields["resetOutlineColourOnMove"] = (false); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 605; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = (s.arg0).fields["xfrm"] = (s.tmp_0); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["cancelHandlerStack"] = (s.tmp_1); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3384_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Vec2_constructor__P3389_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = 0; + s.tmp_1.arg2 = 0; + s.callLocIdx = 606; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + r0 = (s.arg0).fields["moveDest"] = (s.tmp_0); + r0 = (s.arg0).fields["borderThickness"] = (3); + s.tmp_0 = user_interface_base_Cursor_setSize__P3707_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = undefined; + s.callLocIdx = 607; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = (s.arg0).fields["cursorOutlineColour"] = (9); + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Placeable_xfrm__P3408.info = {"start":414,"length":59,"line":18,"column":8,"endLine":20,"endColumn":9,"fileName":"pxt_modules/user-interface-base/component.ts","functionName":"xfrm","argumentNames":["this"]} -user_interface_base_Placeable_xfrm__P3408.isGetter = true; +user_interface_base_Cursor_constructor__P3703.info = {"start":2113,"length":236,"line":60,"column":4,"endLine":68,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"inline","argumentNames":["this"]} -function user_interface_base_Placeable_xfrm__P3408_mk(s) { +function user_interface_base_Cursor_constructor__P3703_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Placeable_xfrm__P3408, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_constructor__P3703, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function user_interface_base_Affine_localPos__P3354(s) { +function user_interface_base_Placeable_constructor__P3382(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50342,26 +56588,58 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Affine__C3351_VT)) failedCast(r0, user_interface_base_Affine__C3351_VT); - s.tmp_0 = user_interface_base_Vec2_copyFrom__P3418_mk(s); - r0 = s.arg0.fields["localPos_"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 303; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, user_interface_base_Placeable__C3380_VT)) failedCast(r0, user_interface_base_Placeable__C3380_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3324_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Affine_constructor__P3331_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 346; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: + s.tmp_1 = if_xfrm_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "xfrm"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["xfrm"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["xfrm"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 347; s.pc = 4; return s.tmp_1; } + } + case 4: + r0 = s.retval; + case 2: + // jmp value (already in r0) + s.tmp_2 = r0; + s.tmp_3 = user_interface_base_Affine_parent__P3329_mk(s); + r0 = s.arg0.fields["xfrm_"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = s.tmp_2; + s.callLocIdx = 348; s.pc = 5; return s.tmp_3; + case 5: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Affine_localPos__P3354.info = {"start":787,"length":79,"line":22,"column":8,"endLine":24,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"localPos","argumentNames":["this","v"]} +user_interface_base_Placeable_constructor__P3382.info = {"start":482,"length":136,"line":21,"column":8,"endLine":24,"endColumn":9,"fileName":"pxt_modules/user-interface-base/component.ts","functionName":"inline","argumentNames":["this","parent"]} -function user_interface_base_Affine_localPos__P3354_mk(s) { +function user_interface_base_Placeable_constructor__P3382_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Affine_localPos__P3354, depth: s.depth + 1, + parent: s, fn: user_interface_base_Placeable_constructor__P3382, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, arg1: undefined, } } @@ -50369,8 +56647,7 @@ function user_interface_base_Affine_localPos__P3354_mk(s) { - -function microcode_PageEditor_constructor__P4328(s) { +function microcode_Editor_scrollAndMove__P5953(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50380,94 +56657,126 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.target___20362 = undefined; + s.e___20370 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - r0 = (s.arg0).fields["editor"] = (s.arg1); - r0 = (s.arg0).fields["pagedef"] = (s.arg3); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1278; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); - s.tmp_0 = user_interface_base_Affine_parent__P3356_mk(s); - r0 = s.arg0.fields["xfrm_"]; + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = pxsim_pxtcore.beginTry(1); + s.tmp_0 = user_interface_base_Cursor_move__P3711_mk(s); + r0 = s.arg0.fields["cursor"]; s.tmp_0.arg0 = r0; - s.tmp_1 = if_xfrm_1_mk(s); - s.tmp_1.arg0 = s.arg2; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "xfrm"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["xfrm"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["xfrm"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1279; s.pc = 3; return s.tmp_1; } - } - case 3: + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 1448; s.pc = 11; return s.tmp_0; + case 11: r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1280; s.pc = 2; return s.tmp_0; - case 2: + s.target___20362 = (r0); + s.tmp_0 = microcode_Editor_scrollAndMoveButton__P5954_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.target___20362; + s.callLocIdx = 1449; s.pc = 12; return s.tmp_0; + case 12: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(2, microcode_PageEditor_inline__P18511); + r0 = pxsim_pxtcore.endTry(); + { step = 10; continue; } + case 1: + r0 = pxsim_pxtcore.getThrownValue(); + s.e___20370 = (r0); + r0 = (s.arg1 === 0); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg0); - s.tmp_1 = r0 = s.arg0; - s.tmp_3 = helpers_arrayMap__P2135_mk(s); - r0 = s.arg3.fields["rules"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.tmp_0; - s.callLocIdx = 1282; s.pc = 4; return s.tmp_3; - case 4: + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + s.tmp_2 = if_kind_1_mk(s); + s.tmp_2.arg0 = s.e___20370; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "kind"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["kind"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["kind"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1450; s.pc = 13; return s.tmp_2; } + } + case 13: r0 = s.retval; - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["ruleEditors"] = (s.tmp_2); - s.tmp_0 = microcode_PageEditor_ensureFinalEmptyRule__P5780_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1283; s.pc = 5; return s.tmp_0; + s.tmp_1 = r0; + r0 = (s.tmp_1 === globals.BACK_BUTTON_ERROR_KIND___3748); + case 3: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 4; continue; } + { step = 9; continue; } + case 4: + r0 = (s.arg1 == 1); + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (r0) { step = 5; continue; } + r0 = s.tmp_4; + { step = 6; continue; } case 5: + s.tmp_6 = if_kind_1_mk(s); + s.tmp_6.arg0 = s.e___20370; + if (!s.tmp_6.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "kind"); + } else { + s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["kind"]; + if (s.tmp_6.fn == null) { s.retval = s.tmp_6.arg0.fields["kind"]; } + else if (!s.tmp_6.fn.isGetter) { s.retval = bind(s.tmp_6); } + else { s.callLocIdx = 1451; s.pc = 14; return s.tmp_6; } + } + case 14: r0 = s.retval; - s.tmp_0 = microcode_PageEditor_layout__P4331_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1284; s.pc = 6; return s.tmp_0; + s.tmp_5 = r0; + r0 = (s.tmp_5 == globals.FORWARD_BUTTON_ERROR_KIND___3749); case 6: - r0 = s.retval; + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + if (!r0) { step = 7; continue; } + { step = 8; continue; } + case 7: + r0 = pxsim_pxtcore.throwValue(s.e___20370); + case 8: + case 9: + case 10: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_constructor__P4328.info = {"start":17480,"length":433,"line":524,"column":8,"endLine":536,"endColumn":9,"fileName":"editor.ts","functionName":"inline","argumentNames":["this","editor","parent","pagedef"]} +microcode_Editor_scrollAndMove__P5953.info = {"start":5661,"length":599,"line":172,"column":8,"endLine":186,"endColumn":9,"fileName":"editor.ts","functionName":"scrollAndMove","argumentNames":["this","dir","skipBack"]} -function microcode_PageEditor_constructor__P4328_mk(s) { +function microcode_Editor_scrollAndMove__P5953_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_constructor__P4328, depth: s.depth + 1, + parent: s, fn: microcode_Editor_scrollAndMove__P5953, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + target___20362: undefined, + e___20370: undefined, arg0: undefined, arg1: undefined, arg2: undefined, - arg3: undefined, } } - -function microcode_PageEditor_inline__P18511(s) { +function user_interface_base_Cursor_move__P3711(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50482,30 +56791,34 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleEditor__C4340_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_RuleEditor_constructor__P4351_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.caps[0]; - s.tmp_1.arg2 = s.caps[1]; - s.tmp_1.arg3 = s.arg0; - s.tmp_1.arg4 = s.arg1; - s.callLocIdx = 1281; s.pc = 1; return s.tmp_1; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Cursor__C3691_VT)) failedCast(r0, user_interface_base_Cursor__C3691_VT); + s.tmp_0 = if_move_2_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "move"), 2); + s.callLocIdx = 636; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["move"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["move"], 2); s.callLocIdx = 636; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 636; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 636; s.pc = 1; return s.tmp_0; } + } case 1: r0 = s.retval; - r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_PageEditor_inline__P18511.info = {"start":17759,"length":64,"line":532,"column":16,"endLine":532,"endColumn":80,"fileName":"editor.ts","functionName":"inline","argumentNames":["ruledef","index"]} +user_interface_base_Cursor_move__P3711.info = {"start":4501,"length":81,"line":154,"column":4,"endLine":156,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursor.ts","functionName":"move","argumentNames":["this","dir"]} -function microcode_PageEditor_inline__P18511_mk(s) { +function user_interface_base_Cursor_move__P3711_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_inline__P18511, depth: s.depth + 1, + parent: s, fn: user_interface_base_Cursor_move__P3711, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, arg1: undefined, } } @@ -50513,8 +56826,7 @@ function microcode_PageEditor_inline__P18511_mk(s) { - -function microcode_PageEditor_layout__P4331(s) { +function microcode_IconFieldEditor_fromBuffer__P4571(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50524,99 +56836,124 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.left___18532 = undefined; - s.top___18534 = undefined; - s.maxRuleWidth___18575 = undefined; + s.buf___20400 = undefined; + s.img___20405 = undefined; + s.index___20408 = undefined; + s.byte___20412 = undefined; + s.bit___20415 = undefined; + s.col___20418 = undefined; + s.row___20421 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + if (!checkSubtype(r0, microcode_IconFieldEditor__C4565_VT)) failedCast(r0, microcode_IconFieldEditor__C4565_VT); + s.tmp_0 = microcode_BufferReader_readBuffer__P4633_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = 4; + s.callLocIdx = 1834; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.buf___20400 = (r0); + r0 = pxsim.bitmaps.create(5, 5); + s.img___20405 = (r0); + s.index___20408 = (0); + case 1: + r0 = (s.index___20408 < 25); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 3; continue; } - case 1: + if (!r0) { step = 2; continue; } + r0 = (s.index___20408 >> 3); + s.byte___20412 = (r0); + r0 = (s.index___20408 & 7); + s.bit___20415 = (r0); + r0 = (s.index___20408 % 5); + s.col___20418 = (r0); + r0 = pxsim.Math_.idiv(s.index___20408, 5); + s.row___20421 = (r0); + s.tmp_0 = r0 = s.img___20405; + s.tmp_1 = r0 = s.col___20418; + s.tmp_2 = r0 = s.row___20421; + r0 = pxsim.BufferMethods.getByte(s.buf___20400, s.byte___20412); + s.tmp_5 = r0; + r0 = (s.tmp_5 >> s.bit___20415); + s.tmp_4 = r0; + r0 = (s.tmp_4 & 1); + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, s.tmp_2, s.tmp_3); + r0 = (s.index___20408 + 1); + s.index___20408 = (r0); + { step = 1; continue; } case 2: - s.tmp_3 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = microcode_PageEditor_layout_inline__P18528; - s.callLocIdx = 1290; s.pc = 4; return s.tmp_3; - case 4: - r0 = s.retval; - s.left___18532 = (globals.microcode_PageEditor_MARGIN___4329); - r0 = pxsim_pxtrt.mklocRef(); - s.top___18534 = (r0); - r0 = pxsim_pxtrt_stlocRef(s.top___18534, globals.microcode_PageEditor_MARGIN___4329); - r0 = pxsim_pxtcore_mkAction(3, microcode_PageEditor_layout_inline__P18539); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.top___18534); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.left___18532); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1297; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - r0 = pxsim_pxtrt.mklocRef(); - s.maxRuleWidth___18575 = (r0); - r0 = pxsim_pxtrt_stlocRef(s.maxRuleWidth___18575, 0); - r0 = pxsim_pxtcore_mkAction(1, microcode_PageEditor_layout_inline__P18579); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.maxRuleWidth___18575); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1299; s.pc = 6; return s.tmp_1; - case 6: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_PageEditor_layout_inline__P18590); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.maxRuleWidth___18575); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1300; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; - case 3: - r0 = undefined; + r0 = s.img___20405; + return leave(s, r0) + default: oops() +} } } +microcode_IconFieldEditor_fromBuffer__P4571.info = {"start":4497,"length":437,"line":160,"column":8,"endLine":171,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"fromBuffer","argumentNames":["this","br"]} + +function microcode_IconFieldEditor_fromBuffer__P4571_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_IconFieldEditor_fromBuffer__P4571, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + buf___20400: undefined, + img___20405: undefined, + index___20408: undefined, + byte___20412: undefined, + bit___20415: undefined, + col___20418: undefined, + row___20421: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_IconFieldEditor_clone__P4567(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_IconFieldEditor__C4565_VT)) failedCast(r0, microcode_IconFieldEditor__C4565_VT); + r0 = pxsim.BitmapMethods.clone(s.arg1); return leave(s, r0) default: oops() } } } -microcode_PageEditor_layout__P4331.info = {"start":18976,"length":946,"line":571,"column":8,"endLine":595,"endColumn":9,"fileName":"editor.ts","functionName":"layout","argumentNames":["this"]} +microcode_IconFieldEditor_clone__P4567.info = {"start":3708,"length":61,"line":134,"column":8,"endLine":136,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"clone","argumentNames":["this","img"]} -function microcode_PageEditor_layout__P4331_mk(s) { +function microcode_IconFieldEditor_clone__P4567_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_layout__P4331, depth: s.depth + 1, + parent: s, fn: microcode_IconFieldEditor_clone__P4567, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - left___18532: undefined, - top___18534: undefined, - maxRuleWidth___18575: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_PageEditor_layout_inline__P18528(s) { +function microcode_IconFieldEditor_init__P4566(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50630,31 +56967,26 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleEditor_layout__P4355_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1289; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_IconFieldEditor__C4565_VT)) failedCast(r0, microcode_IconFieldEditor__C4565_VT); + r0 = pxsim.bitmaps.ofBuffer(_hex20447); return leave(s, r0) default: oops() } } } -microcode_PageEditor_layout_inline__P18528.info = {"start":19073,"length":53,"line":573,"column":37,"endLine":575,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} +microcode_IconFieldEditor_init__P4566.info = {"start":3556,"length":143,"line":125,"column":8,"endLine":133,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"init","argumentNames":["this"]} -function microcode_PageEditor_layout_inline__P18528_mk(s) { +function microcode_IconFieldEditor_init__P4566_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_layout_inline__P18528, depth: s.depth + 1, + parent: s, fn: microcode_IconFieldEditor_init__P4566, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, } } - -function microcode_PageEditor_layout_inline__P18539(s) { +function microcode_MelodyFieldEditor_fromBuffer__P4590(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50664,85 +56996,116 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.buf___20450 = undefined; + s.tempo___20455 = undefined; + s.notes___20458 = undefined; + s.i___20459 = undefined; + s.byte___20464 = undefined; + s.bit___20467 = undefined; + s.note___20472 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - s.tmp_0 = r0 = s.caps[1]; - r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); - s.tmp_2 = r0; - r0 = s.caps[0].fields["ruleEditors"]; - s.tmp_5 = r0; - r0 = (s.arg1 - 1); - s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); - r0 = r0.fields["bounds"]; - r0 = r0.fields["height"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - s.tmp_0 = r0 = s.caps[1]; - r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); - s.tmp_2 = r0; - r0 = s.arg0.fields["bounds"]; - r0 = r0.fields["height"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4584_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4584_VT); + s.tmp_0 = microcode_BufferReader_readBuffer__P4633_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = 3; + s.callLocIdx = 1848; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.buf___20450 = (r0); + r0 = pxsim.BufferMethods.getByte(s.buf___20450, 0); + s.tempo___20455 = (r0); + r0 = pxsim_String_.mkEmpty(); + s.notes___20458 = (r0); + s.i___20459 = (0); + case 1: + r0 = (s.i___20459 < 4); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + r0 = (s.i___20459 >> 1); + s.byte___20464 = (r0); + r0 = (s.i___20459 & 1); + s.tmp_0 = r0; + r0 = (s.tmp_0 << 2); + s.bit___20467 = (r0); + s.tmp_2 = r0 = s.buf___20450; + r0 = (s.byte___20464 + 1); s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - s.tmp_0 = r0 = s.caps[1]; - r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); - s.tmp_2 = r0; - r0 = (s.tmp_2 + globals.microcode_PageEditor_RULE_MARGIN___4330); + r0 = pxsim.BufferMethods.getByte(s.tmp_2, s.tmp_3); s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - case 1: + r0 = (s.tmp_1 >> s.bit___20467); + s.tmp_0 = r0; + r0 = (s.tmp_0 & 15); + s.note___20472 = (r0); + r0 = (s.note___20472 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = "."; + { step = 3; continue; } case 2: - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - r0 = s.arg0.fields["xfrm_"]; + r0 = (s.note___20472 - 1); s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.caps[2]; - s.callLocIdx = 1293; s.pc = 3; return s.tmp_0; + r0 = pxsim_numops.toString(s.tmp_1); case 3: + // jmp value (already in r0) + s.tmp_2 = r0; + if ((s.notes___20458) && (s.notes___20458).vtable) { + setupResume(s, 6); + pxsim_String__stringConv(s.notes___20458); + checkResumeConsumed(); + return; + } else { s.retval = (s.notes___20458) + ""; } + case 6: r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_y__P3415_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1296; s.pc = 4; return s.tmp_0; - case 4: + s.tmp_3 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 7); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 7: r0 = s.retval; - r0 = undefined; + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); + s.notes___20458 = (r0); + r0 = (s.i___20459 + 1); + s.i___20459 = (r0); + { step = 1; continue; } + case 4: + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "tempo", s.tempo___20455); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "notes", s.notes___20458); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_PageEditor_layout_inline__P18539.info = {"start":19246,"length":341,"line":578,"column":37,"endLine":586,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule","index"]} +microcode_MelodyFieldEditor_fromBuffer__P4590.info = {"start":7247,"length":491,"line":247,"column":8,"endLine":259,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"fromBuffer","argumentNames":["this","br"]} -function microcode_PageEditor_layout_inline__P18539_mk(s) { +function microcode_MelodyFieldEditor_fromBuffer__P4590_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_layout_inline__P18539, depth: s.depth + 1, + parent: s, fn: microcode_MelodyFieldEditor_fromBuffer__P4590, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, + buf___20450: undefined, + tempo___20455: undefined, + notes___20458: undefined, + i___20459: undefined, + byte___20464: undefined, + bit___20467: undefined, + note___20472: undefined, arg0: undefined, arg1: undefined, } } @@ -50750,8 +57113,7 @@ function microcode_PageEditor_layout_inline__P18539_mk(s) { - -function microcode_PageEditor_layout_inline__P18579(s) { +function microcode_MelodyFieldEditor_clone__P4586(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50763,42 +57125,73 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = r0 = s.caps[0]; - s.tmp_2 = Math_max__P2159_mk(s); - r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4584_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4584_VT); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + s.tmp_2 = helpers_stringSlice__P2148_mk(s); + s.tmp_3 = if_notes_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "notes"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["notes"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["notes"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1839; s.pc = 2; return s.tmp_3; } + } + case 2: + r0 = s.retval; s.tmp_2.arg0 = r0; - r0 = s.arg0.fields["bounds"]; - r0 = r0.fields["width"]; - s.tmp_2.arg1 = r0; - s.callLocIdx = 1298; s.pc = 1; return s.tmp_2; + s.tmp_2.arg1 = 0; + s.tmp_2.arg2 = undefined; + s.callLocIdx = 1840; s.pc = 1; return s.tmp_2; case 1: r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - r0 = undefined; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "notes", s.tmp_1); + s.tmp_5 = if_tempo_1_mk(s); + s.tmp_5.arg0 = s.arg1; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "tempo"); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["tempo"]; + if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["tempo"]; } + else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } + else { s.callLocIdx = 1841; s.pc = 3; return s.tmp_5; } + } + case 3: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "tempo", s.tmp_4); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_PageEditor_layout_inline__P18579.info = {"start":19704,"length":96,"line":589,"column":37,"endLine":591,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} +microcode_MelodyFieldEditor_clone__P4586.info = {"start":6058,"length":106,"line":213,"column":8,"endLine":215,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"clone","argumentNames":["this","melody"]} -function microcode_PageEditor_layout_inline__P18579_mk(s) { +function microcode_MelodyFieldEditor_clone__P4586_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_layout_inline__P18579, depth: s.depth + 1, + parent: s, fn: microcode_MelodyFieldEditor_clone__P4586, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_PageEditor_layout_inline__P18590(s) { +function microcode_MelodyFieldEditor_init__P4585(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50812,32 +57205,31 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0.fields["bounds"]; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4584_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4584_VT); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["width"] = (s.tmp_1); - r0 = undefined; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "notes", "0240"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "tempo", 120); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_PageEditor_layout_inline__P18590.info = {"start":19839,"length":72,"line":592,"column":37,"endLine":594,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule"]} +microcode_MelodyFieldEditor_init__P4585.info = {"start":5982,"length":67,"line":210,"column":8,"endLine":212,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"init","argumentNames":["this"]} -function microcode_PageEditor_layout_inline__P18590_mk(s) { +function microcode_MelodyFieldEditor_init__P4585_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_layout_inline__P18590, depth: s.depth + 1, + parent: s, fn: microcode_MelodyFieldEditor_init__P4585, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } - -function microcode_RuleEditor_layout__P4355(s) { +function microcode_DigitWidgetEditor_fromBuffer__P4558(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -50847,409 +57239,126 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ruleRep___18597 = undefined; - s.v___18600 = undefined; - s.whenTiles___18608 = undefined; - s.doTiles___18617 = undefined; - s.firstWhenTile___18640 = undefined; - s.lastWhenTile___18643 = undefined; - s.layoutButtons___18678 = undefined; - s.updateSizeFromButtons___18773 = undefined; + s.str___20509 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = s.arg0.fields["ruleButtons"]; - s.ruleRep___18597 = (r0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = 0; - s.callLocIdx = 1414; s.pc = 9; return s.tmp_1; - case 9: + if (!checkSubtype(r0, microcode_DigitWidgetEditor__C4551_VT)) failedCast(r0, microcode_DigitWidgetEditor__C4551_VT); + s.tmp_0 = microcode_BufferReader_readString__P4634_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 1827; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - s.v___18600 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); + s.str___20509 = (r0); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = undefined; - s.callLocIdx = 1415; s.pc = 10; return s.tmp_1; - case 10: - r0 = s.retval; - r0 = (s.arg0).fields["whenBounds"] = (s.tmp_0); - s.tmp_0 = helpers_arrayConcat__P2142_mk(s); - s.tmp_1 = if_sensors_1_mk(s); - s.tmp_1.arg0 = s.ruleRep___18597; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "sensors"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["sensors"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["sensors"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1416; s.pc = 12; return s.tmp_1; } - } - case 12: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_2 = if_filters_1_mk(s); - s.tmp_2.arg0 = s.ruleRep___18597; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "filters"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["filters"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["filters"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1417; s.pc = 13; return s.tmp_2; } - } - case 13: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1418; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - s.whenTiles___18608 = (r0); - s.tmp_0 = helpers_arrayConcat__P2142_mk(s); - s.tmp_1 = if_actuators_1_mk(s); - s.tmp_1.arg0 = s.ruleRep___18597; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "actuators"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["actuators"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["actuators"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1419; s.pc = 15; return s.tmp_1; } - } - case 15: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_2 = if_modifiers_1_mk(s); - s.tmp_2.arg0 = s.ruleRep___18597; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "modifiers"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["modifiers"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["modifiers"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1420; s.pc = 16; return s.tmp_2; } + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "num", s.str___20509); + r0 = s.tmp_0; + return leave(s, r0) + default: oops() +} } } +microcode_DigitWidgetEditor_fromBuffer__P4558.info = {"start":2497,"length":129,"line":91,"column":8,"endLine":94,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"fromBuffer","argumentNames":["this","buf"]} + +function microcode_DigitWidgetEditor_fromBuffer__P4558_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_DigitWidgetEditor_fromBuffer__P4558, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + str___20509: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function microcode_BufferReader_readString__P4634(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.start___20515 = undefined; + s.str___20518 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; } - case 16: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1421; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - s.doTiles___18617 = (r0); - r0 = s.arg0.fields["whenInsertBtn"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["whenInsertBtn"]; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.whenTiles___18608, s.tmp_1); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_BufferReader__C4627_VT)) failedCast(r0, microcode_BufferReader__C4627_VT); + r0 = s.arg0.fields["ptr"]; + s.start___20515 = (r0); + r0 = pxsim_String_.mkEmpty(); + s.str___20518 = (r0); case 1: - case 2: - r0 = s.arg0.fields["doInsertBtn"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = s.arg0.fields["doInsertBtn"]; - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.doTiles___18617, s.tmp_1); - case 3: - case 4: - r0 = pxsim_Array__getAt(s.whenTiles___18608, 0); - s.firstWhenTile___18640 = (r0); - s.tmp_0 = r0 = s.whenTiles___18608; - r0 = pxsim_Array__length(s.whenTiles___18608); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); - s.lastWhenTile___18643 = (r0); - s.tmp_0 = user_interface_base_Affine_localPos__P3354_mk(s); - r0 = s.arg0.fields["handleBtn"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.v___18600; - s.callLocIdx = 1423; s.pc = 17; return s.tmp_0; - case 17: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.v___18600; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - s.tmp_4 = user_interface_base_ButtonBase_width__P3652_mk(s); - r0 = s.arg0.fields["handleBtn"]; - s.tmp_4.arg0 = r0; - s.callLocIdx = 1424; s.pc = 19; return s.tmp_4; - case 19: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1426; s.pc = 18; return s.tmp_0; - case 18: - r0 = s.retval; - r0 = s.arg0.fields["whenBounds"]; - s.tmp_0 = r0; - r0 = s.v___18600.fields["x_"]; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["left"] = (s.tmp_1); - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.v___18600; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - s.tmp_5 = user_interface_base_ButtonBase_width__P3652_mk(s); - s.tmp_5.arg0 = s.firstWhenTile___18640; - s.callLocIdx = 1428; s.pc = 21; return s.tmp_5; - case 21: - r0 = s.retval; - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1430; s.pc = 20; return s.tmp_0; - case 20: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.v___18600; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1432; s.pc = 22; return s.tmp_0; - case 22: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, layoutButtons_inline__P18679); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.v___18600); - s.layoutButtons___18678 = (s.tmp_0); - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.layoutButtons___18678; - s.tmp_0.arg0 = s.whenTiles___18608; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1444; s.pc = 23; return s.tmp_0; - case 23: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.v___18600; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - s.tmp_5 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_5.arg0 = s.lastWhenTile___18643; - s.callLocIdx = 1445; s.pc = 25; return s.tmp_5; - case 25: - r0 = s.retval; - r0 = r0.fields["width"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1447; s.pc = 24; return s.tmp_0; - case 24: - r0 = s.retval; - s.tmp_0 = user_interface_base_Bounds_right__P3369_mk(s); - r0 = s.arg0.fields["whenBounds"]; - s.tmp_0.arg0 = r0; - r0 = s.v___18600.fields["x_"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1449; s.pc = 26; return s.tmp_0; - case 26: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.v___18600; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - s.tmp_5 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["arrow"]; - s.tmp_5.arg0 = r0; - s.callLocIdx = 1450; s.pc = 28; return s.tmp_5; - case 28: - r0 = s.retval; - r0 = r0.fields["width"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1452; s.pc = 27; return s.tmp_0; - case 27: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.v___18600; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1454; s.pc = 29; return s.tmp_0; - case 29: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - r0 = s.arg0.fields["arrow"]; - s.tmp_2 = r0; - r0 = s.tmp_2.fields["xfrm_"]; - s.tmp_1 = r0; - r0 = s.tmp_1.fields["localPos_"]; - s.tmp_0.arg0 = r0; - r0 = s.v___18600.fields["x_"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1458; s.pc = 30; return s.tmp_0; - case 30: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.v___18600; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; + r0 = s.arg0.fields["buf"]; s.tmp_2 = r0; - s.tmp_4 = user_interface_base_Sprite_bounds__P3478_mk(s); - r0 = s.arg0.fields["arrow"]; - s.tmp_4.arg0 = r0; - s.callLocIdx = 1459; s.pc = 32; return s.tmp_4; - case 32: - r0 = s.retval; - r0 = r0.fields["width"]; + r0 = s.arg0.fields["ptr"]; s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1461; s.pc = 31; return s.tmp_0; - case 31: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.v___18600; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 2); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1463; s.pc = 33; return s.tmp_0; - case 33: - r0 = s.retval; - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.layoutButtons___18678; - s.tmp_0.arg0 = s.doTiles___18617; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1464; s.pc = 34; return s.tmp_0; - case 34: - r0 = s.retval; - r0 = s.arg0.fields["doInsertBtn"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.tmp_1 = user_interface_base_Affine_localPos__P3354_mk(s); - r0 = s.arg0.fields["doInsertBtn"]; - s.tmp_2 = r0; - r0 = s.tmp_2.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.v___18600; - s.callLocIdx = 1466; s.pc = 35; return s.tmp_1; - case 35: - r0 = s.retval; - case 5: - case 6: - r0 = (s.arg0).fields["bounds"] = (undefined); - r0 = pxsim_pxtcore_mkAction(1, updateSizeFromButtons_inline__P18774); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.updateSizeFromButtons___18773 = (s.tmp_0); - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.updateSizeFromButtons___18773; - s.tmp_0.arg0 = s.whenTiles___18608; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1478; s.pc = 36; return s.tmp_0; - case 36: - r0 = s.retval; - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.updateSizeFromButtons___18773; - s.tmp_0.arg0 = s.doTiles___18617; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1479; s.pc = 37; return s.tmp_0; - case 37: - r0 = s.retval; - r0 = s.arg0.fields["bounds"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); + r0 = pxsim.BufferMethods.getByte(s.tmp_2, s.tmp_3); s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (s.tmp_1 != 0); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_3 = r0; - s.tmp_4 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_4.arg0 = s.tmp_3; - s.tmp_4.arg1 = undefined; - s.callLocIdx = 1480; s.pc = 38; return s.tmp_4; - case 38: - r0 = s.retval; - r0 = (s.arg0).fields["bounds"] = (s.tmp_3); - { step = 8; continue; } - case 7: - s.tmp_0 = user_interface_base_Bounds_grow__P3382_mk(s); - r0 = s.arg0.fields["bounds"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 1; - s.callLocIdx = 1481; s.pc = 39; return s.tmp_0; - case 39: - r0 = s.retval; - case 8: - r0 = s.arg0.fields["bounds"]; - r0 = r0.fields["width"]; - s.tmp_0 = r0; - r0 = (s.arg0).fields["innerWidth"] = (s.tmp_0); - r0 = s.arg0.fields["bounds"]; - s.tmp_0 = r0; - s.tmp_2 = Math_max__P2159_mk(s); - r0 = s.arg0.fields["bounds"]; - r0 = r0.fields["width"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = globals.user_interface_base_Screen_WIDTH___3439; - s.callLocIdx = 1482; s.pc = 40; return s.tmp_2; - case 40: + if (!r0) { step = 2; continue; } + s.tmp_4 = r0 = s.arg0; + r0 = s.tmp_4.fields["ptr"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 + 1); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["ptr"] = (s.tmp_5); + if ((s.str___20518) && (s.str___20518).vtable) { + setupResume(s, 3); + pxsim_String__stringConv(s.str___20518); + checkResumeConsumed(); + return; + } else { s.retval = (s.str___20518) + ""; } + case 3: r0 = s.retval; + s.tmp_7 = r0; + r0 = s.arg0.fields["buf"]; + s.tmp_11 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_11, s.tmp_6); + s.tmp_10 = r0; + r0 = pxsim_String_.fromCharCode(s.tmp_10); + s.tmp_9 = r0; + if ((s.tmp_9) && (s.tmp_9).vtable) { + setupResume(s, 4); + pxsim_String__stringConv(s.tmp_9); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_9) + ""; } + case 4: + r0 = s.retval; + s.tmp_8 = r0; + r0 = pxsim_String__concat(s.tmp_7, s.tmp_8); + s.str___20518 = (r0); + { step = 1; continue; } + case 2: + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["ptr"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["width"] = (s.tmp_1); - r0 = s.arg0.fields["whenBounds"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["bounds"]; - r0 = r0.fields["left"]; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["left"] = (s.tmp_1); - r0 = s.arg0.fields["whenBounds"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["bounds"]; - r0 = r0.fields["top"]; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["top"] = (s.tmp_1); - r0 = s.arg0.fields["whenBounds"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["bounds"]; - r0 = r0.fields["height"]; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["height"] = (s.tmp_1); - r0 = undefined; + r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); + r0 = s.str___20518; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_layout__P4355.info = {"start":14899,"length":2695,"line":412,"column":8,"endLine":493,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"layout","argumentNames":["this"]} +microcode_BufferReader_readString__P4634.info = {"start":1968,"length":262,"line":74,"column":8,"endLine":82,"endColumn":9,"fileName":"utils.ts","functionName":"readString","argumentNames":["this"]} -function microcode_RuleEditor_layout__P4355_mk(s) { +function microcode_BufferReader_readString__P4634_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_layout__P4355, depth: s.depth + 1, + parent: s, fn: microcode_BufferReader_readString__P4634, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -51257,22 +57366,21 @@ function microcode_RuleEditor_layout__P4355_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - ruleRep___18597: undefined, - v___18600: undefined, - whenTiles___18608: undefined, - doTiles___18617: undefined, - firstWhenTile___18640: undefined, - lastWhenTile___18643: undefined, - layoutButtons___18678: undefined, - updateSizeFromButtons___18773: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + start___20515: undefined, + str___20518: undefined, arg0: undefined, } } - -function layoutButtons_inline__P18679(s) { +function microcode_DigitWidgetEditor_clone__P4554(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51284,39 +57392,94 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(2, layoutButtons_inline__P18683); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_DigitWidgetEditor__C4551_VT)) failedCast(r0, microcode_DigitWidgetEditor__C4551_VT); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.caps[0]); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1443; s.pc = 1; return s.tmp_1; + s.tmp_2 = helpers_stringSlice__P2148_mk(s); + s.tmp_3 = if_num_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "num"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["num"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["num"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1821; s.pc = 2; return s.tmp_3; } + } + case 2: + r0 = s.retval; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = 0; + s.tmp_2.arg2 = undefined; + s.callLocIdx = 1822; s.pc = 1; return s.tmp_2; case 1: r0 = s.retval; - r0 = undefined; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "num", s.tmp_1); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -layoutButtons_inline__P18679.info = {"start":15656,"length":335,"line":432,"column":34,"endLine":441,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["btns"]} +microcode_DigitWidgetEditor_clone__P4554.info = {"start":1714,"length":80,"line":67,"column":8,"endLine":69,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"clone","argumentNames":["this","bn"]} -function layoutButtons_inline__P18679_mk(s) { +function microcode_DigitWidgetEditor_clone__P4554_mk(s) { checkStack(s.depth); return { - parent: s, fn: layoutButtons_inline__P18679, depth: s.depth + 1, + parent: s, fn: microcode_DigitWidgetEditor_clone__P4554, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, + arg1: undefined, } } +function microcode_DigitWidgetEditor_init__P4553(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_DigitWidgetEditor__C4551_VT)) failedCast(r0, microcode_DigitWidgetEditor__C4551_VT); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "num", "10"); + r0 = s.tmp_0; + return leave(s, r0) + default: oops() +} } } +microcode_DigitWidgetEditor_init__P4553.info = {"start":1654,"length":51,"line":64,"column":8,"endLine":66,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"init","argumentNames":["this"]} + +function microcode_DigitWidgetEditor_init__P4553_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_DigitWidgetEditor_init__P4553, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + -function layoutButtons_inline__P18683(s) { +function microcode_IconEditor_getNewInstance__P4577(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51331,86 +57494,42 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_IconEditor__C4572_VT)) failedCast(r0, microcode_IconEditor__C4572_VT); + r0 = pxsim_pxtcore_mkClassInstance(microcode_IconEditor__C4572_VT); + s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.arg1); if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.caps[1]; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - s.tmp_5 = user_interface_base_ButtonBase_width__P3652_mk(s); - s.tmp_6 = r0 = s.caps[0]; - r0 = (s.arg1 - 1); - s.tmp_7 = r0; - r0 = pxsim_Array__getAt(s.tmp_6, s.tmp_7); - s.tmp_5.arg0 = r0; - s.callLocIdx = 1433; s.pc = 4; return s.tmp_5; - case 4: - r0 = s.retval; - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1435; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.caps[1]; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - s.tmp_5 = user_interface_base_ButtonBase_width__P3652_mk(s); - s.tmp_5.arg0 = s.arg0; - s.callLocIdx = 1436; s.pc = 6; return s.tmp_5; - case 6: - r0 = s.retval; - s.tmp_4 = r0; - r0 = (s.tmp_4 >> 1); - s.tmp_3 = r0; - r0 = (s.tmp_2 + s.tmp_3); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1438; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.tmp_0 = user_interface_base_Vec2_x__P3413_mk(s); - s.tmp_1 = r0 = s.caps[1]; - s.tmp_0.arg0 = r0; - r0 = s.tmp_1.fields["x_"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_0.arg1 = r0; - s.callLocIdx = 1440; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; + r0 = s.arg1; + { step = 2; continue; } case 1: + r0 = s.arg0.fields["field"]; + s.tmp_1 = r0; + r0 = pxsim.BitmapMethods.clone(s.tmp_1); case 2: - s.tmp_0 = user_interface_base_Affine_localPos__P3354_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.caps[1]; - s.callLocIdx = 1442; s.pc = 8; return s.tmp_0; - case 8: + // jmp value (already in r0) + s.tmp_2 = r0; + s.tmp_3 = microcode_IconEditor_constructor__P4574_mk(s); + s.tmp_3.arg0 = s.tmp_0; + s.tmp_3.arg1 = s.tmp_2; + s.callLocIdx = 1838; s.pc = 3; return s.tmp_3; + case 3: r0 = s.retval; - r0 = undefined; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -layoutButtons_inline__P18683.info = {"start":15707,"length":269,"line":433,"column":29,"endLine":440,"endColumn":17,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["btn","index"]} +microcode_IconEditor_getNewInstance__P4577.info = {"start":5568,"length":115,"line":194,"column":8,"endLine":196,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNewInstance","argumentNames":["this","field"]} -function layoutButtons_inline__P18683_mk(s) { +function microcode_IconEditor_getNewInstance__P4577_mk(s) { checkStack(s.depth); return { - parent: s, fn: layoutButtons_inline__P18683, depth: s.depth + 1, + parent: s, fn: microcode_IconEditor_getNewInstance__P4577, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, arg0: undefined, arg1: undefined, } } @@ -51418,8 +57537,7 @@ function layoutButtons_inline__P18683_mk(s) { - -function updateSizeFromButtons_inline__P18774(s) { +function microcode_IconEditor_getField__P4575(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51433,36 +57551,26 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(1, updateSizeFromButtons_inline__P18778); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1477; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - r0 = undefined; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_IconEditor__C4572_VT)) failedCast(r0, microcode_IconEditor__C4572_VT); + r0 = s.arg0.fields["field"]; return leave(s, r0) default: oops() } } } -updateSizeFromButtons_inline__P18774.info = {"start":16519,"length":470,"line":463,"column":42,"endLine":475,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["btns"]} +microcode_IconEditor_getField__P4575.info = {"start":5300,"length":52,"line":184,"column":8,"endLine":186,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getField","argumentNames":["this"]} -function updateSizeFromButtons_inline__P18774_mk(s) { +function microcode_IconEditor_getField__P4575_mk(s) { checkStack(s.depth); return { - parent: s, fn: updateSizeFromButtons_inline__P18774, depth: s.depth + 1, + parent: s, fn: microcode_IconEditor_getField__P4575, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } - -function updateSizeFromButtons_inline__P18778(s) { +function microcode_MelodyEditor_getNewInstance__P4596(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51474,90 +57582,93 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.caps[0].fields["bounds"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyEditor__C4591_VT)) failedCast(r0, microcode_MelodyEditor__C4591_VT); + r0 = pxsim_pxtcore_mkClassInstance(microcode_MelodyEditor__C4591_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.arg1); if (!r0) { step = 1; continue; } - s.tmp_3 = r0 = s.caps[0]; - s.tmp_5 = user_interface_base_Bounds_translate__P3385_mk(s); - s.tmp_6 = user_interface_base_Bounds_clone__P3377_mk(s); - s.tmp_7 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_7.arg0 = s.arg0; - s.callLocIdx = 1467; s.pc = 5; return s.tmp_7; - case 5: - r0 = s.retval; - s.tmp_6.arg0 = r0; - s.callLocIdx = 1468; s.pc = 4; return s.tmp_6; - case 4: - r0 = s.retval; - s.tmp_5.arg0 = r0; - r0 = s.arg0.fields["xfrm_"]; - s.tmp_8 = r0; - r0 = s.tmp_8.fields["localPos_"]; - s.tmp_5.arg1 = r0; - s.callLocIdx = 1471; s.pc = 3; return s.tmp_5; - case 3: - r0 = s.retval; - s.tmp_4 = r0; - r0 = (s.tmp_3).fields["bounds"] = (s.tmp_4); + r0 = s.arg1; { step = 2; continue; } case 1: - s.tmp_0 = user_interface_base_Bounds_add__P3388_mk(s); - r0 = s.caps[0].fields["bounds"]; - s.tmp_0.arg0 = r0; - s.tmp_1 = user_interface_base_Bounds_Translate__P3384_mk(s); - s.tmp_2 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1472; s.pc = 8; return s.tmp_2; - case 8: - r0 = s.retval; + s.tmp_1 = microcode_FieldEditor__C5998_v1_2_mk(s); + r0 = s.arg0.fields["fieldEditor"]; s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["xfrm_"]; - s.tmp_3 = r0; - r0 = s.tmp_3.fields["localPos_"]; + r0 = s.arg0.fields["field"]; s.tmp_1.arg1 = r0; - s.callLocIdx = 1475; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1476; s.pc = 6; return s.tmp_0; - case 6: + if (!checkSubtype(s.tmp_1.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_1.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.clone; + s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; case 2: - r0 = undefined; + // jmp value (already in r0) + s.tmp_2 = r0; + s.tmp_3 = microcode_MelodyEditor_constructor__P4593_mk(s); + s.tmp_3.arg0 = s.tmp_0; + s.tmp_3.arg1 = s.tmp_2; + s.callLocIdx = 1852; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -updateSizeFromButtons_inline__P18778.info = {"start":16570,"length":404,"line":464,"column":29,"endLine":474,"endColumn":17,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["btn"]} +microcode_MelodyEditor_getNewInstance__P4596.info = {"start":8419,"length":163,"line":283,"column":8,"endLine":287,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNewInstance","argumentNames":["this","field"]} -function updateSizeFromButtons_inline__P18778_mk(s) { +function microcode_MelodyEditor_getNewInstance__P4596_mk(s) { checkStack(s.depth); return { - parent: s, fn: updateSizeFromButtons_inline__P18778, depth: s.depth + 1, + parent: s, fn: microcode_MelodyEditor_getNewInstance__P4596, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, arg0: undefined, + arg1: undefined, } } +function microcode_MelodyEditor_getField__P4594(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyEditor__C4591_VT)) failedCast(r0, microcode_MelodyEditor__C4591_VT); + r0 = s.arg0.fields["field"]; + return leave(s, r0) + default: oops() +} } } +microcode_MelodyEditor_getField__P4594.info = {"start":8149,"length":52,"line":273,"column":8,"endLine":275,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getField","argumentNames":["this"]} + +function microcode_MelodyEditor_getField__P4594_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MelodyEditor_getField__P4594, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function microcode_PageEditor_ensureFinalEmptyRule__P5780(s) { +function microcode_DigitEditor_getNewInstance__P4563(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51567,78 +57678,54 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ruledefn___18851 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - r0 = s.arg0.fields["ruleEditors"]; + if (!checkSubtype(r0, microcode_DigitEditor__C4559_VT)) failedCast(r0, microcode_DigitEditor__C4559_VT); + r0 = pxsim_pxtcore_mkClassInstance(microcode_DigitEditor__C4559_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.arg1); if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_PageEditor_trimRules__P5781_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1285; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleDefn__C4043_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_RuleDefn_constructor__P4048_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1286; s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - s.ruledefn___18851 = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleEditor__C4340_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_RuleEditor_constructor__P4351_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.arg0.fields["editor"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.arg0; - s.tmp_1.arg3 = s.ruledefn___18851; - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1.arg4 = r0; - s.callLocIdx = 1287; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_3 = r0; - r0 = pxsim_Array__push(s.tmp_3, s.tmp_0); - r0 = s.arg0.fields["pagedef"]; - r0 = r0.fields["rules"]; - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.ruledefn___18851); + r0 = s.arg1; + { step = 2; continue; } case 1: + r0 = s.arg0.fields["field"]; case 2: - r0 = undefined; + // jmp value (already in r0) + s.tmp_1 = r0; + s.tmp_2 = microcode_DigitEditor_constructor__P4560_mk(s); + s.tmp_2.arg0 = s.tmp_0; + s.tmp_2.arg1 = s.tmp_1; + r0 = s.arg0.fields["posInt"]; + s.tmp_2.arg2 = r0; + s.callLocIdx = 1831; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_PageEditor_ensureFinalEmptyRule__P5780.info = {"start":17923,"length":487,"line":538,"column":8,"endLine":552,"endColumn":9,"fileName":"editor.ts","functionName":"ensureFinalEmptyRule","argumentNames":["this"]} +microcode_DigitEditor_getNewInstance__P4563.info = {"start":3300,"length":121,"line":116,"column":8,"endLine":118,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getNewInstance","argumentNames":["this","field"]} -function microcode_PageEditor_ensureFinalEmptyRule__P5780_mk(s) { +function microcode_DigitEditor_getNewInstance__P4563_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_ensureFinalEmptyRule__P5780, depth: s.depth + 1, + parent: s, fn: microcode_DigitEditor_getNewInstance__P4563, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - ruledefn___18851: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_PageEditor_trimRules__P5781(s) { +function microcode_Home_draw__P4518(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51648,88 +57735,222 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.last___18877 = undefined; + s.t___20600 = undefined; + s.dy___20603 = undefined; + s.OFFSET___20616 = undefined; + s.y___20625 = undefined; + s.tagline___20673 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - r0 = s.arg0.fields["ruleEditors"]; + if (!checkSubtype(r0, microcode_Home__C4514_VT)) failedCast(r0, microcode_Home__C4514_VT); + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + s.tmp_0.arg0 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + s.tmp_0.arg1 = globals.user_interface_base_Screen_TOP_EDGE___3418; + s.tmp_0.arg2 = globals.user_interface_base_Screen_WIDTH___3412; + s.tmp_0.arg3 = globals.user_interface_base_Screen_HEIGHT___3413; + s.tmp_0.arg4 = 12; + s.callLocIdx = 1810; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = Math_min__P2160_mk(s); + s.tmp_2.arg0 = 0; + r0 = s.arg0.fields["yOffset"]; s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); + r0 = (s.tmp_3 + 2); + s.tmp_2.arg1 = r0; + s.callLocIdx = 1811; s.pc = 6; return s.tmp_2; + case 6: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (s.tmp_0).fields["yOffset"] = (s.tmp_1); + r0 = pxsim.control.millis(); + s.t___20600 = (r0); + r0 = s.arg0.fields["yOffset"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - { step = 7; continue; } + r0 = pxsim.Math_.idiv(s.t___20600, 800); + s.tmp_3 = r0; + r0 = (s.tmp_3 & 1); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + { step = 2; continue; } case 1: + r0 = 0; case 2: - r0 = s.arg0.fields["ruleEditors"]; + // jmp value (already in r0) s.tmp_4 = r0; - r0 = s.arg0.fields["ruleEditors"]; + s.dy___20603 = (s.tmp_4); + r0 = (globals.user_interface_base_Screen_HEIGHT___3413 >> 1); + s.tmp_1 = r0; + r0 = pxsim.BitmapMethods.height(globals.wordLogo___4048); + s.tmp_2 = r0; + r0 = (s.tmp_1 - s.tmp_2); + s.tmp_0 = r0; + r0 = (s.tmp_0 - 2); + s.OFFSET___20616 = (r0); + r0 = (globals.user_interface_base_Screen_TOP_EDGE___3418 + s.OFFSET___20616); + s.tmp_0 = r0; + r0 = (s.tmp_0 + s.dy___20603); + s.y___20625 = (r0); + s.tmp_0 = user_interface_base_Screen_drawTransparentImage__P3427_mk(s); + s.tmp_0.arg0 = globals.wordLogo___4048; + s.tmp_2 = r0 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + s.tmp_5 = r0 = globals.user_interface_base_Screen_WIDTH___3412; + r0 = pxsim.BitmapMethods.width(globals.wordLogo___4048); + s.tmp_6 = r0; + r0 = (s.tmp_5 - s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 + s.dy___20603); + s.tmp_0.arg1 = r0; + r0 = s.arg0.fields["yOffset"]; s.tmp_7 = r0; - r0 = pxsim_Array__length(s.tmp_7); + r0 = (s.y___20625 + s.tmp_7); + s.tmp_0.arg2 = r0; + s.callLocIdx = 1812; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_drawTransparentImage__P3427_mk(s); + s.tmp_0.arg0 = globals.microbitLogo___3821; + s.tmp_2 = r0 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + s.tmp_5 = r0 = globals.user_interface_base_Screen_WIDTH___3412; + r0 = pxsim.BitmapMethods.width(globals.microbitLogo___3821); s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); - s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); - s.last___18877 = (r0); - case 3: - s.tmp_1 = microcode_RuleEditor_isEmpty__P4353_mk(s); - s.tmp_1.arg0 = s.last___18877; - s.callLocIdx = 1288; s.pc = 8; return s.tmp_1; + r0 = (s.tmp_5 - s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 + s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 + s.dy___20603); + s.tmp_0.arg1 = r0; + s.tmp_9 = r0 = s.y___20625; + r0 = pxsim.BitmapMethods.height(globals.wordLogo___4048); + s.tmp_10 = r0; + r0 = (s.tmp_9 - s.tmp_10); + s.tmp_8 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_11 = r0; + r0 = (s.tmp_8 + s.tmp_11); + s.tmp_7 = r0; + r0 = (s.tmp_7 + 2); + s.tmp_0.arg2 = r0; + s.callLocIdx = 1813; s.pc = 8; return s.tmp_0; case 8: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_2 = r0; - r0 = pxsim_Array_.pop(s.tmp_2); - r0 = s.arg0.fields["pagedef"]; - r0 = r0.fields["rules"]; - s.tmp_0 = r0; - r0 = pxsim_Array_.pop(s.tmp_0); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); + r0 = s.arg0.fields["yOffset"]; s.tmp_2 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_2); s.tmp_1 = r0; r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - { step = 7; continue; } - case 4: - case 5: - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_4 = r0; - r0 = s.arg0.fields["ruleEditors"]; + if (!r0) { step = 3; continue; } + s.tmp_3 = microcode_resolveTooltip__P4733_mk(s); + s.tmp_3.arg0 = "tagline"; + s.callLocIdx = 1814; s.pc = 9; return s.tmp_3; + case 9: + r0 = s.retval; + s.tagline___20673 = (r0); + s.tmp_0 = user_interface_base_Screen_print__P3442_mk(s); + s.tmp_0.arg0 = s.tagline___20673; + s.tmp_3 = r0 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + s.tmp_6 = r0 = globals.user_interface_base_Screen_WIDTH___3412; + r0 = pxsim.BitmapMethods.width(globals.wordLogo___4048); s.tmp_7 = r0; - r0 = pxsim_Array__length(s.tmp_7); - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); + r0 = (s.tmp_6 + s.tmp_7); s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); - s.last___18877 = (r0); - { step = 3; continue; } - case 6: - case 7: + r0 = (s.tmp_5 >> 1); + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 + s.dy___20603); + s.tmp_1 = r0; + s.tmp_10 = if_charWidth_1_mk(s); + s.tmp_10.arg0 = globals.font___3460; + if (!s.tmp_10.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_10.arg0, "charWidth"); + } else { + s.tmp_10.fn = s.tmp_10.arg0.vtable.iface["charWidth"]; + if (s.tmp_10.fn == null) { s.retval = s.tmp_10.arg0.fields["charWidth"]; } + else if (!s.tmp_10.fn.isGetter) { s.retval = bind(s.tmp_10); } + else { s.callLocIdx = 1815; s.pc = 11; return s.tmp_10; } + } + case 11: + r0 = s.retval; + s.tmp_9 = r0; + r0 = pxsim_String_.length(s.tagline___20673); + s.tmp_11 = r0; + r0 = (s.tmp_9 * s.tmp_11); + s.tmp_8 = r0; + r0 = (s.tmp_1 - s.tmp_8); + s.tmp_0.arg1 = r0; + r0 = (globals.user_interface_base_Screen_TOP_EDGE___3418 + s.OFFSET___20616); + s.tmp_15 = r0; + r0 = pxsim.BitmapMethods.height(globals.wordLogo___4048); + s.tmp_16 = r0; + r0 = (s.tmp_15 + s.tmp_16); + s.tmp_14 = r0; + r0 = (s.tmp_14 + s.dy___20603); + s.tmp_13 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_17 = r0; + r0 = (s.tmp_13 + s.tmp_17); + s.tmp_12 = r0; + r0 = (s.tmp_12 + 1); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = 11; + s.tmp_0.arg4 = globals.font___3460; + s.tmp_0.arg5 = undefined; + s.callLocIdx = 1816; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + case 3: + case 4: + s.tmp_0 = if_drawComponents_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "drawComponents"), 1); + s.callLocIdx = 1817; s.pc = 12; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["drawComponents"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["drawComponents"], 1); s.callLocIdx = 1817; s.pc = 12; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1817; s.pc = 12; return s.tmp_0;; } + else { s.callLocIdx = 1817; s.pc = 12; return s.tmp_0; } + } + case 12: + r0 = s.retval; + s.tmp_0 = microcode_Home_drawVersion__P5997_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1818; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + s.tmp_0 = user_interface_base_CursorScene_draw__P3810_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1819; s.pc = 14; return s.tmp_0; + case 14: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_trimRules__P5781.info = {"start":18420,"length":474,"line":554,"column":8,"endLine":567,"endColumn":9,"fileName":"editor.ts","functionName":"trimRules","argumentNames":["this"]} +microcode_Home_draw__P4518.info = {"start":4559,"length":1800,"line":122,"column":8,"endLine":171,"endColumn":9,"fileName":"home.ts","functionName":"draw","argumentNames":["this"]} -function microcode_PageEditor_trimRules__P5781_mk(s) { +function microcode_Home_draw__P4518_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_trimRules__P5781, depth: s.depth + 1, + parent: s, fn: microcode_Home_draw__P4518, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -51739,15 +57960,28 @@ function microcode_PageEditor_trimRules__P5781_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, - last___18877: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + t___20600: undefined, + dy___20603: undefined, + OFFSET___20616: undefined, + y___20625: undefined, + tagline___20673: undefined, arg0: undefined, } } - -function microcode_RuleEditor_isEmpty__P4353(s) { +function microcode_Home_drawVersion__P5997(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51757,37 +57991,89 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.font___20717 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - s.tmp_0 = microcode_RuleDefn_isEmpty__P4051_mk(s); - r0 = s.arg0.fields["ruledef"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1413; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_Home__C4514_VT)) failedCast(r0, microcode_Home__C4514_VT); + s.font___20717 = (globals.font5___3305); + s.tmp_0 = user_interface_base_Screen_print__P3442_mk(s); + s.tmp_0.arg0 = globals.VERSION___4520; + s.tmp_1 = r0 = globals.user_interface_base_Screen_RIGHT_EDGE___3417; + s.tmp_4 = if_charWidth_1_mk(s); + s.tmp_4.arg0 = s.font___20717; + if (!s.tmp_4.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "charWidth"); + } else { + s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["charWidth"]; + if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["charWidth"]; } + else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } + else { s.callLocIdx = 1807; s.pc = 2; return s.tmp_4; } + } + case 2: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String_.length(globals.VERSION___4520); + s.tmp_5 = r0; + r0 = (s.tmp_3 * s.tmp_5); + s.tmp_2 = r0; + r0 = (s.tmp_1 - s.tmp_2); + s.tmp_0.arg1 = r0; + s.tmp_7 = r0 = globals.user_interface_base_Screen_BOTTOM_EDGE___3419; + s.tmp_9 = if_charHeight_1_mk(s); + s.tmp_9.arg0 = s.font___20717; + if (!s.tmp_9.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_9.arg0, "charHeight"); + } else { + s.tmp_9.fn = s.tmp_9.arg0.vtable.iface["charHeight"]; + if (s.tmp_9.fn == null) { s.retval = s.tmp_9.arg0.fields["charHeight"]; } + else if (!s.tmp_9.fn.isGetter) { s.retval = bind(s.tmp_9); } + else { s.callLocIdx = 1808; s.pc = 3; return s.tmp_9; } + } + case 3: + r0 = s.retval; + s.tmp_8 = r0; + r0 = (s.tmp_7 - s.tmp_8); + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = 11; + s.tmp_0.arg4 = s.font___20717; + s.tmp_0.arg5 = undefined; + s.callLocIdx = 1809; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_isEmpty__P4353.info = {"start":13806,"length":70,"line":380,"column":8,"endLine":382,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"isEmpty","argumentNames":["this"]} +microcode_Home_drawVersion__P5997.info = {"start":4177,"length":326,"line":110,"column":8,"endLine":119,"endColumn":9,"fileName":"home.ts","functionName":"drawVersion","argumentNames":["this"]} -function microcode_RuleEditor_isEmpty__P4353_mk(s) { +function microcode_Home_drawVersion__P5997_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_isEmpty__P4353, depth: s.depth + 1, + parent: s, fn: microcode_Home_drawVersion__P5997, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + font___20717: undefined, arg0: undefined, } } - -function microcode_RuleDefn_isEmpty__P4051(s) { +function microcode_Home_activate__P4517(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51801,52 +58087,38 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - r0 = s.arg0.fields["sensors"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 === 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Home__C4514_VT)) failedCast(r0, microcode_Home__C4514_VT); + s.tmp_0 = user_interface_base_CursorScene_activate__P3808_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1805; s.pc = 1; return s.tmp_0; case 1: - r0 = s.arg0.fields["actuators"]; - s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 === 0); + r0 = s.retval; + s.tmp_0 = user_interface_base_Scene_backgroundColor__P3662_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = 15; + s.callLocIdx = 1806; s.pc = 2; return s.tmp_0; case 2: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = s.tmp_5; + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleDefn_isEmpty__P4051.info = {"start":2651,"length":113,"line":95,"column":8,"endLine":97,"endColumn":9,"fileName":"language.ts","functionName":"isEmpty","argumentNames":["this"]} +microcode_Home_activate__P4517.info = {"start":4042,"length":125,"line":104,"column":23,"endLine":108,"endColumn":9,"fileName":"home.ts","functionName":"activate","argumentNames":["this"]} -function microcode_RuleDefn_isEmpty__P4051_mk(s) { +function microcode_Home_activate__P4517_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleDefn_isEmpty__P4051, depth: s.depth + 1, + parent: s, fn: microcode_Home_activate__P4517, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, arg0: undefined, } } - -function microcode_RuleEditor_constructor__P4351(s) { +function microcode_Home_startup__P4516(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51858,123 +58130,187 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = (s.arg0).fields["editor"] = (s.arg1); - r0 = (s.arg0).fields["page"] = (s.arg2); - r0 = (s.arg0).fields["ruledef"] = (s.arg3); - r0 = (s.arg0).fields["index"] = (s.arg4); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1325; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); - s.tmp_0 = user_interface_base_Affine_parent__P3356_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - r0 = s.arg2.fields["xfrm_"]; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1327; s.pc = 2; return s.tmp_0; - case 2: + if (!checkSubtype(r0, microcode_Home__C4514_VT)) failedCast(r0, microcode_Home__C4514_VT); + s.tmp_0 = user_interface_base_CursorScene_startup__P3805_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1778; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); s.tmp_0 = r0; r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", "rule_handle"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", "rule"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.Transparent___3641); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P18939); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", null); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.Transparent___3614); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", "edit_program"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", "C0"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", globals.buttonStart___5989); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 30); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P20752); s.tmp_2 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.arg0); r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_2); - s.tmp_3 = user_interface_base_Button_constructor__P3677_mk(s); + s.tmp_3 = user_interface_base_Button_constructor__P3650_mk(s); s.tmp_3.arg0 = s.tmp_0; s.tmp_3.arg1 = s.tmp_1; - s.callLocIdx = 1329; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; - r0 = (s.arg0).fields["handleBtn"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Sprite__C3471_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.arg0); - s.tmp_3 = microcode_icons_get__P3883_mk(s); - s.tmp_3.arg0 = "rule_arrow"; - s.tmp_3.arg1 = false; - s.callLocIdx = 1330; s.pc = 4; return s.tmp_3; + s.callLocIdx = 1783; s.pc = 4; return s.tmp_3; case 4: r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "img", s.tmp_2); - s.tmp_4 = user_interface_base_Sprite_constructor__P3479_mk(s); - s.tmp_4.arg0 = s.tmp_0; - s.tmp_4.arg1 = s.tmp_1; - s.callLocIdx = 1331; s.pc = 5; return s.tmp_4; + r0 = pxsim_Array__mk(); + s.tmp_4 = r0; + r0 = pxsim_Array__push(s.tmp_4, s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_6 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "parent", null); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "style", globals.Transparent___3614); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "icon", "smiley_buttons"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "ariaId", "C1"); + r0 = (globals.buttonStart___5989 + 40); + s.tmp_7 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "x", s.tmp_7); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "y", 30); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P20771); + s.tmp_8 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_8, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "onClick", s.tmp_8); + s.tmp_9 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_9.arg0 = s.tmp_5; + s.tmp_9.arg1 = s.tmp_6; + s.callLocIdx = 1786; s.pc = 5; return s.tmp_9; case 5: r0 = s.retval; - r0 = (s.arg0).fields["arrow"] = (s.tmp_0); + r0 = pxsim_Array__push(s.tmp_4, s.tmp_5); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_10 = r0; r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "sensors", s.tmp_1); + s.tmp_11 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "parent", null); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "style", globals.Transparent___3614); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "icon", "largeDisk"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "ariaId", "load"); + r0 = (globals.buttonStart___5989 + 80); + s.tmp_12 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "x", s.tmp_12); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "y", 30); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P20787); + s.tmp_13 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_13, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "onClick", s.tmp_13); + s.tmp_14 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_14.arg0 = s.tmp_10; + s.tmp_14.arg1 = s.tmp_11; + s.callLocIdx = 1788; s.pc = 6; return s.tmp_14; + case 6: + r0 = s.retval; + r0 = pxsim_Array__push(s.tmp_4, s.tmp_10); + r0 = pxsim_numops_toBoolDecr(false); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_15 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_16 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "parent", null); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "style", globals.Transparent___3614); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "icon", "largeSettingsGear"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "ariaId", "settings"); + r0 = (globals.buttonStart___5989 + 120); + s.tmp_17 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "x", s.tmp_17); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "y", 30); + r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P20798); + s.tmp_18 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_18, 0, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_16, "onClick", s.tmp_18); + s.tmp_19 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_19.arg0 = s.tmp_15; + s.tmp_19.arg1 = s.tmp_16; + s.callLocIdx = 1791; s.pc = 7; return s.tmp_19; + case 7: + r0 = s.retval; r0 = pxsim_Array__mk(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "filters", s.tmp_2); + s.tmp_20 = r0; + r0 = pxsim_Array__push(s.tmp_20, s.tmp_15); + r0 = s.tmp_20; + { step = 2; continue; } + case 1: r0 = pxsim_Array__mk(); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "actuators", s.tmp_3); + case 2: + // jmp value (already in r0) + s.tmp_21 = r0; r0 = pxsim_Array__mk(); - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "modifiers", s.tmp_4); - r0 = (s.arg0).fields["ruleButtons"] = (s.tmp_0); - s.tmp_0 = microcode_RuleEditor_instantiateProgramTiles__P5792_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1332; s.pc = 6; return s.tmp_0; - case 6: + s.tmp_22 = r0; + s.tmp_24 = helpers_arrayConcat__P2142_mk(s); + s.tmp_24.arg0 = s.tmp_4; + s.tmp_24.arg1 = s.tmp_21; + s.callLocIdx = 1792; s.pc = 8; return s.tmp_24; + case 8: + r0 = s.retval; + s.tmp_23 = r0; + r0 = pxsim_Array__push(s.tmp_22, s.tmp_23); + s.tmp_25 = if_setBtns_2_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_25.arg0 = r0; + s.tmp_25.arg1 = s.tmp_22; + if (!s.tmp_25.arg0.vtable.iface) { + setupLambda(s.tmp_25, pxsim_pxtrt.mapGetByString(s.tmp_25.arg0, "setBtns"), 2); + s.callLocIdx = 1793; s.pc = 9; return s.tmp_25; + } else { + s.tmp_25.fn = s.tmp_25.arg0.vtable.iface["setBtns"]; + if (s.tmp_25.fn == null) { setupLambda(s.tmp_25, s.tmp_25.arg0.fields["setBtns"], 2); s.callLocIdx = 1793; s.pc = 9; return s.tmp_25; } + else if (s.tmp_25.fn.isGetter) { s.tmp_25.stage2Call = true; s.callLocIdx = 1793; s.pc = 9; return s.tmp_25;; } + else { s.callLocIdx = 1793; s.pc = 9; return s.tmp_25; } + } + case 9: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_constructor__P4351.info = {"start":1284,"length":905,"line":37,"column":8,"endLine":65,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["this","editor","page","ruledef","index"]} +microcode_Home_startup__P4516.info = {"start":620,"length":2471,"line":16,"column":23,"endLine":78,"endColumn":9,"fileName":"home.ts","functionName":"startup","argumentNames":["this"]} -function microcode_RuleEditor_constructor__P4351_mk(s) { +function microcode_Home_startup__P4516_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_constructor__P4351, depth: s.depth + 1, + parent: s, fn: microcode_Home_startup__P4516, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tmp_23: undefined, + tmp_24: undefined, + tmp_25: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function onClick_inline__P18939(s) { +function onClick_inline__P20752(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -51984,119 +58320,68 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_RuleEditor_showRuleHandleMenu__P5793_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1328; s.pc = 1; return s.tmp_0; + s.tmp_0 = microcode_stopProgram__P4450_mk(s); + s.callLocIdx = 1779; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -onClick_inline__P18939.info = {"start":1793,"length":31,"line":52,"column":25,"endLine":52,"endColumn":56,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} - -function onClick_inline__P18939_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: onClick_inline__P18939, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, -} } - - - - - -function microcode_RuleEditor_instantiateProgramTiles__P5792(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.rule___18955 = undefined; - s.changed___18960 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - s.tmp_0 = microcode_RuleEditor_destroyProgramTiles__P5790_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1351; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - r0 = s.arg0.fields["ruledef"]; + s.tmp_0 = if_popScene_1_mk(s); + r0 = s.caps[0].fields["app"]; s.tmp_0.arg0 = r0; - s.callLocIdx = 1352; s.pc = 4; return s.tmp_0; - case 4: + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); + s.callLocIdx = 1780; s.pc = 2; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1780; s.pc = 2; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1780; s.pc = 2; return s.tmp_0;; } + else { s.callLocIdx = 1780; s.pc = 2; return s.tmp_0; } + } + case 2: r0 = s.retval; - s.rule___18955 = (r0); - r0 = pxsim_pxtrt.mklocRef(); - s.changed___18960 = (r0); - r0 = pxsim_pxtrt_stlocRef(s.changed___18960, false); - r0 = pxsim_pxtcore_mkAction(3, microcode_RuleEditor_instantiateProgramTiles_inline__P18965); + r0 = pxsim_pxtcore_mkClassInstance(microcode_Editor__C4454_VT); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.changed___18960); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.rule___18955); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = pxsim_pxtrt.keysOf(s.rule___18955); - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1354; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - s.tmp_0 = microcode_RuleEditor_needsWhenInsert__P5787_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1355; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.tmp_0 = microcode_RuleEditor_needsDoInsert__P5789_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1356; s.pc = 7; return s.tmp_0; - case 7: + s.tmp_1 = microcode_Editor_constructor__P4461_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.caps[0].fields["app"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1781; s.pc = 3; return s.tmp_1; + case 3: r0 = s.retval; - r0 = pxsim_pxtrt_ldlocRef(s.changed___18960); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_PageEditor_changed__P4333_mk(s); - r0 = s.arg0.fields["page"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1357; s.pc = 8; return s.tmp_1; - case 8: + s.tmp_2 = if_pushScene_2_mk(s); + r0 = s.caps[0].fields["app"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); + s.callLocIdx = 1782; s.pc = 4; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1782; s.pc = 4; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1782; s.pc = 4; return s.tmp_2;; } + else { s.callLocIdx = 1782; s.pc = 4; return s.tmp_2; } + } + case 4: r0 = s.retval; - case 1: - case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_instantiateProgramTiles__P5792.info = {"start":5041,"length":412,"line":152,"column":8,"endLine":162,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"instantiateProgramTiles","argumentNames":["this"]} +onClick_inline__P20752.info = {"start":1032,"length":192,"line":28,"column":33,"endLine":32,"endColumn":25,"fileName":"home.ts","functionName":"inline","argumentNames":[]} -function microcode_RuleEditor_instantiateProgramTiles__P5792_mk(s) { +function onClick_inline__P20752_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_instantiateProgramTiles__P5792, depth: s.depth + 1, + parent: s, fn: onClick_inline__P20752, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - rule___18955: undefined, - changed___18960: undefined, - arg0: undefined, + tmp_2: undefined, } } - -function microcode_RuleEditor_instantiateProgramTiles_inline__P18965(s) { +function onClick_inline__P20771(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52106,50 +58391,51 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_1 = microcode_RuleEditor_processSection__P5791_mk(s); - s.tmp_1.arg0 = s.caps[1]; - s.tmp_1.arg1 = s.arg0; - s.tmp_1.arg2 = s.caps[2]; - s.callLocIdx = 1353; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(microcode_SamplesGallery__C4612_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + s.tmp_1 = user_interface_base_CursorScene_constructor__P3803_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.caps[0].fields["app"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = undefined; + s.callLocIdx = 1784; s.pc = 1; return s.tmp_1; case 1: - r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + r0 = s.retval; + s.tmp_2 = if_pushScene_2_mk(s); + r0 = s.caps[0].fields["app"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); + s.callLocIdx = 1785; s.pc = 2; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1785; s.pc = 2; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1785; s.pc = 2; return s.tmp_2;; } + else { s.callLocIdx = 1785; s.pc = 2; return s.tmp_2; } + } case 2: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_pxtrt_stlocRef(s.caps[0], s.tmp_2); + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_instantiateProgramTiles_inline__P18965.info = {"start":5237,"length":92,"line":156,"column":38,"endLine":158,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["name"]} +onClick_inline__P20771.info = {"start":1573,"length":161,"line":41,"column":33,"endLine":44,"endColumn":25,"fileName":"home.ts","functionName":"inline","argumentNames":[]} -function microcode_RuleEditor_instantiateProgramTiles_inline__P18965_mk(s) { +function onClick_inline__P20771_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_instantiateProgramTiles_inline__P18965, depth: s.depth + 1, + parent: s, fn: onClick_inline__P20771, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - arg0: undefined, } } - -function microcode_PageEditor_changed__P4333(s) { +function onClick_inline__P20787(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52159,48 +58445,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - s.tmp_0 = microcode_PageEditor_ensureFinalEmptyRule__P5780_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1305; s.pc = 1; return s.tmp_0; + s.tmp_0 = microcode_Home_pickDiskSLot__P5996_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 1787; s.pc = 1; return s.tmp_0; case 1: - r0 = s.retval; - s.tmp_0 = microcode_PageEditor_layout__P4331_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1306; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - s.tmp_0 = microcode_Editor_changed__P4308_mk(s); - r0 = s.arg0.fields["editor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1307; s.pc = 3; return s.tmp_0; - case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_changed__P4333.info = {"start":20161,"length":128,"line":604,"column":8,"endLine":608,"endColumn":9,"fileName":"editor.ts","functionName":"changed","argumentNames":["this"]} +onClick_inline__P20787.info = {"start":2080,"length":81,"line":53,"column":33,"endLine":55,"endColumn":25,"fileName":"home.ts","functionName":"inline","argumentNames":[]} -function microcode_PageEditor_changed__P4333_mk(s) { +function onClick_inline__P20787_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_changed__P4333, depth: s.depth + 1, + parent: s, fn: onClick_inline__P20787, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, } } - -function microcode_Editor_changed__P4308(s) { +function onClick_inline__P20798(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52210,32 +58477,52 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; + s.gcs___20799 = undefined; + r0 = pxsim_pxtcore_mkClassInstance(microcode_MicroCodeSettings__C4788_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_MicroCodeSettings_constructor__P4789_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.caps[0].fields["app"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1789; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + s.gcs___20799 = (s.tmp_0); + s.tmp_0 = if_pushScene_2_mk(s); + r0 = s.caps[0].fields["app"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.gcs___20799; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "pushScene"), 2); + s.callLocIdx = 1790; s.pc = 2; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["pushScene"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["pushScene"], 2); s.callLocIdx = 1790; s.pc = 2; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1790; s.pc = 2; return s.tmp_0;; } + else { s.callLocIdx = 1790; s.pc = 2; return s.tmp_0; } } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = (s.arg0).fields["_changed"] = (true); + case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_changed__P4308.info = {"start":2190,"length":61,"line":63,"column":8,"endLine":65,"endColumn":9,"fileName":"editor.ts","functionName":"changed","argumentNames":["this"]} +onClick_inline__P20798.info = {"start":2686,"length":269,"line":67,"column":43,"endLine":72,"endColumn":35,"fileName":"home.ts","functionName":"inline","argumentNames":[]} -function microcode_Editor_changed__P4308_mk(s) { +function onClick_inline__P20798_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_changed__P4308, depth: s.depth + 1, + parent: s, fn: onClick_inline__P20798, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, + tmp_0: undefined, + tmp_1: undefined, + gcs___20799: undefined, } } - -function microcode_RuleEditor_needsDoInsert__P5789(s) { +function microcode_MicroCodeSettings_constructor__P4789(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52245,100 +58532,90 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.selectMode___20811 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = s.arg0.fields["ruledef"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_3, "actuators"); - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); + if (!checkSubtype(r0, microcode_MicroCodeSettings__C4788_VT)) failedCast(r0, microcode_MicroCodeSettings__C4788_VT); + r0 = (s.arg0).fields["backgroundCaptured_"] = (false); + r0 = pxsim_pxtcore_mkClassInstance(microgui_RadioButtonCollection__C3980_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "alignment", 4); + r0 = pxsim_pxtcore_mkClassInstance(microgui_RadioButton__C3973_VT); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "text", "Classic: 1-5 dots"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_3, "onClick", onClick_inline__P20818); + s.tmp_4 = microgui_RadioButton_constructor__P3975_mk(s); + s.tmp_4.arg0 = s.tmp_2; + s.tmp_4.arg1 = s.tmp_3; + s.callLocIdx = 2186; s.pc = 1; return s.tmp_4; case 1: - s.tmp_5 = microcode_RuleEditor_getSuggestions__P5799_mk(s); - s.tmp_5.arg0 = s.arg0; - s.tmp_5.arg1 = "modifiers"; - r0 = s.arg0.fields["ruledef"]; - s.tmp_7 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_7, "modifiers"); - s.tmp_6 = r0; - r0 = pxsim_Array__length(s.tmp_6); - s.tmp_5.arg2 = r0; - s.callLocIdx = 1337; s.pc = 7; return s.tmp_5; - case 7: r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); + r0 = pxsim_Array__mk(); + s.tmp_5 = r0; + r0 = pxsim_Array__push(s.tmp_5, s.tmp_2); + r0 = pxsim_pxtcore_mkClassInstance(microgui_RadioButton__C3973_VT); + s.tmp_6 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_7 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "text", "Decimal: base 10"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "onClick", onClick_inline__P20822); + s.tmp_8 = microgui_RadioButton_constructor__P3975_mk(s); + s.tmp_8.arg0 = s.tmp_6; + s.tmp_8.arg1 = s.tmp_7; + s.callLocIdx = 2187; s.pc = 2; return s.tmp_8; case 2: - // jmp value (already in r0) - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 5; continue; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); + r0 = s.retval; + r0 = pxsim_Array__push(s.tmp_5, s.tmp_6); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "btns", s.tmp_5); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "isActive", true); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "title", "Select Mode"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "colour", 3); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "xOffset", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "yOffset", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "xScaling", 1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "yScaling", 1); + r0 = pxsim_pxtcore_mkAction(1, backBtn_inline__P20824); s.tmp_9 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_10 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "parent", s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "style", globals.Transparent___3641); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "icon", "do_insertion_point"); - r0 = s.arg0.fields["ruledef"]; - s.tmp_14 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_14, "actuators"); - s.tmp_13 = r0; - r0 = pxsim_Array__length(s.tmp_13); - s.tmp_12 = r0; - r0 = (s.tmp_12 == 0); - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 3; continue; } - r0 = "do"; - { step = 4; continue; } + r0 = pxsim_pxtrt_stclo(s.tmp_9, 0, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "backBtn", s.tmp_9); + s.tmp_10 = microgui_RadioButtonCollection_constructor__P3981_mk(s); + s.tmp_10.arg0 = s.tmp_0; + s.tmp_10.arg1 = s.tmp_1; + s.callLocIdx = 2189; s.pc = 3; return s.tmp_10; case 3: - r0 = undefined; - case 4: - // jmp value (already in r0) - s.tmp_15 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "ariaId", s.tmp_15); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "x", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "y", 0); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P19010); - s.tmp_16 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_16, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "onClick", s.tmp_16); - s.tmp_17 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_17.arg0 = s.tmp_9; - s.tmp_17.arg1 = s.tmp_10; - s.callLocIdx = 1339; s.pc = 8; return s.tmp_17; - case 8: r0 = s.retval; - r0 = (s.arg0).fields["doInsertBtn"] = (s.tmp_9); - { step = 6; continue; } - case 5: - s.tmp_0 = microcode_RuleEditor_destroyDoInsertButton__P5788_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1340; s.pc = 9; return s.tmp_0; - case 9: + s.selectMode___20811 = (s.tmp_0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "app", s.arg1); + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.selectMode___20811); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "components", s.tmp_1); + s.tmp_2 = microgui_GUIComponentScene_constructor__P3987_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.tmp_0; + s.callLocIdx = 2190; s.pc = 4; return s.tmp_2; + case 4: r0 = s.retval; - case 6: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_needsDoInsert__P5789.info = {"start":3201,"length":833,"line":98,"column":8,"endLine":121,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"needsDoInsert","argumentNames":["this"]} +microcode_MicroCodeSettings_constructor__P4789.info = {"start":494,"length":1369,"line":13,"column":8,"endLine":45,"endColumn":9,"fileName":"settings.ts","functionName":"inline","argumentNames":["this","app"]} -function microcode_RuleEditor_needsDoInsert__P5789_mk(s) { +function microcode_MicroCodeSettings_constructor__P4789_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_needsDoInsert__P5789, depth: s.depth + 1, + parent: s, fn: microcode_MicroCodeSettings_constructor__P4789, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -52351,21 +58628,15 @@ function microcode_RuleEditor_needsDoInsert__P5789_mk(s) { tmp_8: undefined, tmp_9: undefined, tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, + selectMode___20811: undefined, arg0: undefined, + arg1: undefined, } } - -function onClick_inline__P19010(s) { +function onClick_inline__P20818(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52375,30 +58646,51 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_RuleEditor_showDoInsertMenu__P5798_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1338; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + globals.microcodeClassic___4785 = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P19010.info = {"start":3895,"length":29,"line":116,"column":29,"endLine":116,"endColumn":58,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} +onClick_inline__P20818.info = {"start":857,"length":85,"line":19,"column":33,"endLine":21,"endColumn":25,"fileName":"settings.ts","functionName":"inline","argumentNames":[]} -function onClick_inline__P19010_mk(s) { +function onClick_inline__P20818_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P19010, depth: s.depth + 1, + parent: s, fn: onClick_inline__P20818, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, } } +function onClick_inline__P20822(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + globals.microcodeClassic___4785 = (false); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +onClick_inline__P20822.info = {"start":1089,"length":86,"line":25,"column":33,"endLine":27,"endColumn":25,"fileName":"settings.ts","functionName":"inline","argumentNames":[]} + +function onClick_inline__P20822_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: onClick_inline__P20822, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, +} } + + + -function microcode_RuleEditor_destroyDoInsertButton__P5788(s) { +function backBtn_inline__P20824(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52408,32 +58700,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; + s.tmp_0 = if_popScene_1_mk(s); + s.tmp_0.arg0 = s.caps[0]; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); + s.callLocIdx = 2188; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 2188; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 2188; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 2188; s.pc = 1; return s.tmp_0; } } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = (s.arg0).fields["doInsertBtn"] = (undefined); + case 1: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_destroyDoInsertButton__P5788.info = {"start":3107,"length":84,"line":94,"column":8,"endLine":96,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"destroyDoInsertButton","argumentNames":["this"]} +backBtn_inline__P20824.info = {"start":1667,"length":60,"line":37,"column":25,"endLine":39,"endColumn":17,"fileName":"settings.ts","functionName":"inline","argumentNames":[]} -function microcode_RuleEditor_destroyDoInsertButton__P5788_mk(s) { +function backBtn_inline__P20824_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_destroyDoInsertButton__P5788, depth: s.depth + 1, + parent: s, fn: backBtn_inline__P20824, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, + tmp_0: undefined, } } - -function microcode_RuleEditor_showDoInsertMenu__P5798(s) { +function microgui_RadioButton_constructor__P3975(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52445,61 +58742,104 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["actuators"]; + if (!checkSubtype(r0, microgui_RadioButton__C3973_VT)) failedCast(r0, microgui_RadioButton__C3973_VT); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_text_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "text"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["text"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["text"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1029; s.pc = 3; return s.tmp_2; } + } + case 3: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_Array__length(s.tmp_1); + r0 = (s.tmp_0).fields["text"] = (s.tmp_1); + r0 = (s.arg0).fields["x"] = (null); + r0 = (s.arg0).fields["y"] = (null); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_onClick_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "onClick"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["onClick"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["onClick"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1030; s.pc = 4; return s.tmp_2; } + } + case 4: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["onClick"] = (s.tmp_1); + r0 = (s.arg0).fields["isSelected"] = (false); + s.tmp_2 = if_colour_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "colour"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["colour"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["colour"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1031; s.pc = 5; return s.tmp_2; } + } + case 5: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 == null); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_2 = microcode_RuleEditor_editTile__P5795_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = "modifiers"; - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["modifiers"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2.arg2 = r0; - s.callLocIdx = 1402; s.pc = 3; return s.tmp_2; - case 3: - r0 = s.retval; + r0 = 15; { step = 2; continue; } case 1: - s.tmp_0 = microcode_RuleEditor_editTile__P5795_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = "actuators"; - s.tmp_0.arg2 = 0; - s.callLocIdx = 1403; s.pc = 4; return s.tmp_0; - case 4: + s.tmp_3 = if_colour_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "colour"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["colour"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["colour"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1032; s.pc = 6; return s.tmp_3; } + } + case 6: r0 = s.retval; case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["textColour"] = (s.tmp_4); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_showDoInsertMenu__P5798.info = {"start":12816,"length":242,"line":351,"column":8,"endLine":357,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"showDoInsertMenu","argumentNames":["this"]} +microgui_RadioButton_constructor__P3975.info = {"start":43404,"length":335,"line":1161,"column":8,"endLine":1168,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":["this","opts"]} -function microcode_RuleEditor_showDoInsertMenu__P5798_mk(s) { +function microgui_RadioButton_constructor__P3975_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_showDoInsertMenu__P5798, depth: s.depth + 1, + parent: s, fn: microgui_RadioButton_constructor__P3975, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_RuleEditor_editTile__P5795(s) { +function microgui_RadioButtonCollection_constructor__P3981(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52509,253 +58849,435 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ruleTiles___19031 = undefined; - s.tileUpdated___19038 = undefined; - s.newFieldEditor___19094 = undefined; - s.suggestions___19146 = undefined; - s.btns___19151 = undefined; - s.theOne___19170 = undefined; - s.onDelete___19186 = undefined; - s.selectedButton___19188 = undefined; - s.tile___19195 = undefined; - s.selected___19206 = undefined; + s.originalWidth___20929 = undefined; + s.originalHeight___20934 = undefined; + s.yBorder___20939 = undefined; + s.ySpacing___20944 = undefined; + s.i___20957 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - s.tmp_1 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - r0 = s.arg0.fields["ruledef"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1362; s.pc = 22; return s.tmp_1; - case 22: + r0 = s.arg0; + if (!checkSubtype(r0, microgui_RadioButtonCollection__C3980_VT)) failedCast(r0, microgui_RadioButtonCollection__C3980_VT); + r0 = (s.arg0).fields["backgroundCaptured_"] = (false); + r0 = (s.arg0).fields["backgroundColour"] = (3); + r0 = (s.arg0).fields["xScaling"] = (1); + r0 = (s.arg0).fields["yScaling"] = (1); + r0 = (s.arg0).fields["xBorder"] = (12); + r0 = (s.arg0).fields["minYBorder"] = (5); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + s.tmp_2 = if_alignment_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "alignment"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["alignment"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["alignment"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1038; s.pc = 15; return s.tmp_2; } + } + case 15: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "alignment", s.tmp_1); + s.tmp_5 = if_xOffset_1_mk(s); + s.tmp_5.arg0 = s.arg1; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "xOffset"); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["xOffset"]; + if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["xOffset"]; } + else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } + else { s.callLocIdx = 1039; s.pc = 16; return s.tmp_5; } + } + case 16: + r0 = s.retval; + s.tmp_4 = r0; + r0 = (s.tmp_4 != null); + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 1; continue; } + s.tmp_6 = if_xOffset_1_mk(s); + s.tmp_6.arg0 = s.arg1; + if (!s.tmp_6.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "xOffset"); + } else { + s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["xOffset"]; + if (s.tmp_6.fn == null) { s.retval = s.tmp_6.arg0.fields["xOffset"]; } + else if (!s.tmp_6.fn.isGetter) { s.retval = bind(s.tmp_6); } + else { s.callLocIdx = 1040; s.pc = 17; return s.tmp_6; } + } + case 17: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg1); - s.ruleTiles___19031 = (r0); - r0 = pxsim_pxtcore_mkAction(4, tileUpdated_inline__P19039); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg2); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.ruleTiles___19031); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 3, s.arg1); - s.tileUpdated___19038 = (s.tmp_0); - r0 = pxsim_pxtcore_mkAction(2, newFieldEditor_inline__P19095); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.tileUpdated___19038); - s.newFieldEditor___19094 = (s.tmp_0); - s.tmp_1 = r0 = s.arg2; - r0 = pxsim_Array__length(s.ruleTiles___19031); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; { step = 2; continue; } case 1: - r0 = pxsim_Array__getAt(s.ruleTiles___19031, s.arg2); - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); + r0 = 0; case 2: // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_7 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "xOffset", s.tmp_7); + s.tmp_10 = if_yOffset_1_mk(s); + s.tmp_10.arg0 = s.arg1; + if (!s.tmp_10.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_10.arg0, "yOffset"); + } else { + s.tmp_10.fn = s.tmp_10.arg0.vtable.iface["yOffset"]; + if (s.tmp_10.fn == null) { s.retval = s.tmp_10.arg0.fields["yOffset"]; } + else if (!s.tmp_10.fn.isGetter) { s.retval = bind(s.tmp_10); } + else { s.callLocIdx = 1041; s.pc = 18; return s.tmp_10; } + } + case 18: + r0 = s.retval; + s.tmp_9 = r0; + r0 = (s.tmp_9 != null); + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); if (!r0) { step = 3; continue; } - s.tmp_4 = lambda_3_mk(s); - s.tmp_4.argL = s.newFieldEditor___19094; - r0 = pxsim_Array__getAt(s.ruleTiles___19031, s.arg2); - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = true; - setupLambda(s.tmp_4, s.tmp_4.argL); - s.callLocIdx = 1377; s.pc = 23; return s.tmp_4; - case 23: + s.tmp_11 = if_yOffset_1_mk(s); + s.tmp_11.arg0 = s.arg1; + if (!s.tmp_11.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_11.arg0, "yOffset"); + } else { + s.tmp_11.fn = s.tmp_11.arg0.vtable.iface["yOffset"]; + if (s.tmp_11.fn == null) { s.retval = s.tmp_11.arg0.fields["yOffset"]; } + else if (!s.tmp_11.fn.isGetter) { s.retval = bind(s.tmp_11); } + else { s.callLocIdx = 1042; s.pc = 19; return s.tmp_11; } + } + case 19: r0 = s.retval; - { step = 21; continue; } + { step = 4; continue; } case 3: + r0 = 0; case 4: - s.tmp_0 = microcode_RuleEditor_getSuggestions__P5799_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = s.arg2; - s.callLocIdx = 1378; s.pc = 24; return s.tmp_0; + // jmp value (already in r0) + s.tmp_12 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "yOffset", s.tmp_12); + s.tmp_14 = if_isActive_1_mk(s); + s.tmp_14.arg0 = s.arg1; + if (!s.tmp_14.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_14.arg0, "isActive"); + } else { + s.tmp_14.fn = s.tmp_14.arg0.vtable.iface["isActive"]; + if (s.tmp_14.fn == null) { s.retval = s.tmp_14.arg0.fields["isActive"]; } + else if (!s.tmp_14.fn.isGetter) { s.retval = bind(s.tmp_14); } + else { s.callLocIdx = 1043; s.pc = 20; return s.tmp_14; } + } + case 20: + r0 = s.retval; + s.tmp_13 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "isActive", s.tmp_13); + s.tmp_16 = if_isHidden_1_mk(s); + s.tmp_16.arg0 = s.arg1; + if (!s.tmp_16.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_16.arg0, "isHidden"); + } else { + s.tmp_16.fn = s.tmp_16.arg0.vtable.iface["isHidden"]; + if (s.tmp_16.fn == null) { s.retval = s.tmp_16.arg0.fields["isHidden"]; } + else if (!s.tmp_16.fn.isGetter) { s.retval = bind(s.tmp_16); } + else { s.callLocIdx = 1044; s.pc = 21; return s.tmp_16; } + } + case 21: + r0 = s.retval; + s.tmp_15 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "isHidden", s.tmp_15); + s.tmp_18 = if_xScaling_1_mk(s); + s.tmp_18.arg0 = s.arg1; + if (!s.tmp_18.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_18.arg0, "xScaling"); + } else { + s.tmp_18.fn = s.tmp_18.arg0.vtable.iface["xScaling"]; + if (s.tmp_18.fn == null) { s.retval = s.tmp_18.arg0.fields["xScaling"]; } + else if (!s.tmp_18.fn.isGetter) { s.retval = bind(s.tmp_18); } + else { s.callLocIdx = 1045; s.pc = 22; return s.tmp_18; } + } + case 22: + r0 = s.retval; + s.tmp_17 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "xScaling", s.tmp_17); + s.tmp_20 = if_yScaling_1_mk(s); + s.tmp_20.arg0 = s.arg1; + if (!s.tmp_20.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_20.arg0, "yScaling"); + } else { + s.tmp_20.fn = s.tmp_20.arg0.vtable.iface["yScaling"]; + if (s.tmp_20.fn == null) { s.retval = s.tmp_20.arg0.fields["yScaling"]; } + else if (!s.tmp_20.fn.isGetter) { s.retval = bind(s.tmp_20); } + else { s.callLocIdx = 1046; s.pc = 23; return s.tmp_20; } + } + case 23: + r0 = s.retval; + s.tmp_19 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "yScaling", s.tmp_19); + s.tmp_22 = if_colour_1_mk(s); + s.tmp_22.arg0 = s.arg1; + if (!s.tmp_22.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_22.arg0, "colour"); + } else { + s.tmp_22.fn = s.tmp_22.arg0.vtable.iface["colour"]; + if (s.tmp_22.fn == null) { s.retval = s.tmp_22.arg0.fields["colour"]; } + else if (!s.tmp_22.fn.isGetter) { s.retval = bind(s.tmp_22); } + else { s.callLocIdx = 1047; s.pc = 24; return s.tmp_22; } + } case 24: r0 = s.retval; - s.suggestions___19146 = (r0); - s.tmp_0 = helpers_arrayMap__P2135_mk(s); - s.tmp_0.arg0 = s.suggestions___19146; - s.tmp_0.arg1 = btns_inline__P19153; - s.callLocIdx = 1382; s.pc = 25; return s.tmp_0; + s.tmp_21 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "colour", s.tmp_21); + s.tmp_24 = if_border_1_mk(s); + s.tmp_24.arg0 = s.arg1; + if (!s.tmp_24.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_24.arg0, "border"); + } else { + s.tmp_24.fn = s.tmp_24.arg0.vtable.iface["border"]; + if (s.tmp_24.fn == null) { s.retval = s.tmp_24.arg0.fields["border"]; } + else if (!s.tmp_24.fn.isGetter) { s.retval = bind(s.tmp_24); } + else { s.callLocIdx = 1048; s.pc = 25; return s.tmp_24; } + } case 25: r0 = s.retval; - s.btns___19151 = (r0); - r0 = pxsim_Array__length(s.suggestions___19146); + s.tmp_23 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "border", s.tmp_23); + s.tmp_25 = microgui_GUIComponentAbstract_constructor__P3931_mk(s); + s.tmp_25.arg0 = s.arg0; + s.tmp_25.arg1 = s.tmp_0; + s.callLocIdx = 1049; s.pc = 26; return s.tmp_25; + case 26: + r0 = s.retval; + s.tmp_2 = if_title_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "title"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["title"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["title"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1050; s.pc = 27; return s.tmp_2; } + } + case 27: + r0 = s.retval; s.tmp_1 = r0; - r0 = (s.tmp_1 == 1); + r0 = (s.tmp_1 != null); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 5; continue; } - r0 = s.tmp_0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_3 = if_title_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "title"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["title"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["title"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1051; s.pc = 28; return s.tmp_3; } + } + case 28: + r0 = s.retval; { step = 6; continue; } case 5: - r0 = pxsim_Array__getAt(s.suggestions___19146, 0); - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); + r0 = pxsim_String_.mkEmpty(); case 6: // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 11; continue; } - r0 = (s.arg2 > 0); - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (r0) { step = 7; continue; } - r0 = s.tmp_3; + s.tmp_4 = r0; + r0 = (s.arg0).fields["title"] = (s.tmp_4); + s.tmp_2 = if_btns_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "btns"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["btns"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["btns"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1052; s.pc = 29; return s.tmp_2; } + } + case 29: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.tmp_3 = if_btns_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "btns"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["btns"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["btns"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1053; s.pc = 30; return s.tmp_3; } + } + case 30: + r0 = s.retval; { step = 8; continue; } case 7: - s.tmp_4 = r0 = s.ruleTiles___19031; - r0 = (s.arg2 - 1); - s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); + r0 = pxsim_Array__mk(); case 8: // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 9; continue; } - s.tmp_7 = r0 = s.ruleTiles___19031; - r0 = (s.arg2 - 1); - s.tmp_8 = r0; - r0 = pxsim_Array__getAt(s.tmp_7, s.tmp_8); - { step = 10; continue; } + s.tmp_4 = r0; + r0 = (s.arg0).fields["btns"] = (s.tmp_4); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["width"]; + s.originalWidth___20929 = (r0); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["height"]; + s.originalHeight___20934 = (r0); + s.tmp_0 = microgui_RadioButtonCollection_autoScale__P5537_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1054; s.pc = 31; return s.tmp_0; + case 31: + r0 = s.retval; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["height"]; + s.tmp_0 = r0; + r0 = (s.tmp_0 * 0.1); + s.yBorder___20939 = (r0); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["height"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 - s.yBorder___20939); + s.tmp_0 = r0; + r0 = s.arg0.fields["btns"]; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = (s.tmp_0 / s.tmp_2); + s.ySpacing___20944 = (r0); + s.i___20957 = (0); case 9: - r0 = pxsim_Array__getAt(s.suggestions___19146, 0); - case 10: - // jmp value (already in r0) + s.tmp_1 = r0 = s.i___20957; + r0 = s.arg0.fields["btns"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + s.tmp_4 = microgui_RadioButton_setPosition__P3977_mk(s); + r0 = s.arg0.fields["btns"]; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.i___20957); + s.tmp_4.arg0 = r0; + r0 = s.arg0.fields["xBorder"]; + s.tmp_7 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["left"]; + s.tmp_8 = r0; + r0 = (s.tmp_7 + s.tmp_8); + s.tmp_6 = r0; + r0 = (s.tmp_6 + s.originalWidth___20929); + s.tmp_4.arg1 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["top"]; + s.tmp_12 = r0; + r0 = (s.yBorder___20939 + s.tmp_12); + s.tmp_11 = r0; + r0 = (s.tmp_11 + s.originalHeight___20934); + s.tmp_10 = r0; + r0 = (s.i___20957 + 1); + s.tmp_14 = r0; + r0 = (s.tmp_14 * s.ySpacing___20944); + s.tmp_13 = r0; + r0 = (s.tmp_10 + s.tmp_13); s.tmp_9 = r0; - s.theOne___19170 = (s.tmp_9); - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.newFieldEditor___19094; - s.tmp_0.arg0 = s.theOne___19170; + r0 = (s.tmp_9 - 3); + s.tmp_4.arg2 = r0; + s.callLocIdx = 1055; s.pc = 32; return s.tmp_4; + case 32: + r0 = s.retval; + s.tmp_0 = microgui_RadioButton_setSelected__P3976_mk(s); + r0 = s.arg0.fields["btns"]; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.i___20957); + s.tmp_0.arg0 = r0; s.tmp_0.arg1 = false; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1383; s.pc = 26; return s.tmp_0; - case 26: + s.callLocIdx = 1056; s.pc = 33; return s.tmp_0; + case 33: r0 = s.retval; - { step = 21; continue; } - case 11: - case 12: - s.onDelete___19186 = (undefined); - s.selectedButton___19188 = (-1); - s.tmp_1 = r0 = s.arg2; - r0 = pxsim_Array__length(s.ruleTiles___19031); + r0 = (s.i___20957 + 1); + s.i___20957 = (r0); + { step = 9; continue; } + case 10: + r0 = s.arg0.fields["btns"]; s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 > 0); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 17; continue; } - r0 = pxsim_Array__getAt(s.ruleTiles___19031, s.arg2); - s.tile___19195 = (r0); - s.tmp_1 = microcode_filterModifierWithDelete__P4263_mk(s); - s.tmp_1.arg0 = s.tile___19195; - s.callLocIdx = 1384; s.pc = 27; return s.tmp_1; - case 27: + if (!r0) { step = 11; continue; } + r0 = (s.arg0).fields["selectedTextBtnIndex"] = (0); + s.tmp_0 = microgui_RadioButton_setSelected__P3976_mk(s); + r0 = s.arg0.fields["btns"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["selectedTextBtnIndex"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = true; + s.callLocIdx = 1057; s.pc = 34; return s.tmp_0; + case 34: + r0 = s.retval; + case 11: + case 12: + s.tmp_1 = if_backBtn_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "backBtn"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["backBtn"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["backBtn"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1058; s.pc = 35; return s.tmp_1; } + } + case 35: r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 13; continue; } - r0 = pxsim_pxtcore_mkAction(1, microcode_RuleEditor_editTile_inline__P19202); - s.tmp_2 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.tileUpdated___19038); - r0 = s.tmp_2; + s.tmp_2 = if_backBtn_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "backBtn"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["backBtn"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["backBtn"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1059; s.pc = 36; return s.tmp_2; } + } + case 36: + r0 = s.retval; { step = 14; continue; } case 13: - r0 = undefined; + r0 = null; case 14: // jmp value (already in r0) s.tmp_3 = r0; - s.onDelete___19186 = (s.tmp_3); - r0 = pxsim_pxtcore_mkAction(1, selected_inline__P19209); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.tile___19195); - s.tmp_1 = r0 = s.btns___19151; - s.tmp_3 = helpers_arrayFind__P2140_mk(s); - s.tmp_3.arg0 = s.btns___19151; - s.tmp_3.arg1 = s.tmp_0; - s.callLocIdx = 1389; s.pc = 28; return s.tmp_3; - case 28: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_Array_.indexOf(s.tmp_1, s.tmp_2, undefined); - s.selected___19206 = (r0); - r0 = (s.selected___19206 >= 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 15; continue; } - s.selectedButton___19188 = (s.selected___19206); - case 15: - case 16: - case 17: - case 18: - r0 = pxsim_Array__length(s.btns___19151); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 19; continue; } - s.tmp_1 = user_interface_base_Picker_setGroup__P3756_mk(s); - r0 = s.arg0.fields["editor"]; - r0 = r0.fields["picker"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.btns___19151; - s.callLocIdx = 1390; s.pc = 29; return s.tmp_1; - case 29: - r0 = s.retval; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - s.tmp_2 = accessibility_ariaToTooltip__P3519_mk(s); - s.tmp_2.arg0 = s.arg1; - s.callLocIdx = 1391; s.pc = 30; return s.tmp_2; - case 30: + r0 = (s.arg0).fields["backBtn"] = (s.tmp_3); + s.tmp_0 = microgui_GUIComponentAbstract_makeActive__P3941_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1060; s.pc = 37; return s.tmp_0; + case 37: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); - r0 = pxsim_pxtcore_mkAction(1, navigator_inline__P19239); - s.tmp_3 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "navigator", s.tmp_3); - r0 = pxsim_pxtcore_mkAction(5, onClick_inline__P19245); - s.tmp_4 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_4, 0, s.suggestions___19146); - r0 = pxsim_pxtrt_stclo(s.tmp_4, 1, s.arg2); - r0 = pxsim_pxtrt_stclo(s.tmp_4, 2, s.ruleTiles___19031); - r0 = pxsim_pxtrt_stclo(s.tmp_4, 3, s.newFieldEditor___19094); - r0 = pxsim_pxtrt_stclo(s.tmp_4, 4, s.tileUpdated___19038); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_4); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onDelete", s.onDelete___19186); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "selected", s.selectedButton___19188); - s.tmp_5 = user_interface_base_Picker_show__P3758_mk(s); - r0 = s.arg0.fields["editor"]; - r0 = r0.fields["picker"]; - s.tmp_5.arg0 = r0; - s.tmp_5.arg1 = s.tmp_0; - s.tmp_5.arg2 = true; - s.callLocIdx = 1395; s.pc = 31; return s.tmp_5; - case 31: + s.tmp_0 = microgui_RadioButtonCollection_setupButtonBindings__P3983_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1061; s.pc = 38; return s.tmp_0; + case 38: r0 = s.retval; - case 19: - case 20: - case 21: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_editTile__P5795.info = {"start":7227,"length":4852,"line":215,"column":8,"endLine":329,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"editTile","argumentNames":["this","name","index"]} +microgui_RadioButtonCollection_constructor__P3981.info = {"start":44809,"length":2036,"line":1214,"column":8,"endLine":1269,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":["this","opts"]} -function microcode_RuleEditor_editTile__P5795_mk(s) { +function microgui_RadioButtonCollection_constructor__P3981_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_editTile__P5795, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_constructor__P3981, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -52767,26 +59289,35 @@ function microcode_RuleEditor_editTile__P5795_mk(s) { tmp_7: undefined, tmp_8: undefined, tmp_9: undefined, - ruleTiles___19031: undefined, - tileUpdated___19038: undefined, - newFieldEditor___19094: undefined, - suggestions___19146: undefined, - btns___19151: undefined, - theOne___19170: undefined, - onDelete___19186: undefined, - selectedButton___19188: undefined, - tile___19195: undefined, - selected___19206: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tmp_23: undefined, + tmp_24: undefined, + tmp_25: undefined, + originalWidth___20929: undefined, + originalHeight___20934: undefined, + yBorder___20939: undefined, + ySpacing___20944: undefined, + i___20957: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function tileUpdated_inline__P19039(s) { +function microgui_RadioButtonCollection_setupButtonBindings__P3983(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52796,141 +59327,91 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.numberAdded___19041 = undefined; - s.deleted___19042 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.numberAdded___19041 = (0); - s.deleted___19042 = (false); - r0 = pxsim_numops_toBoolDecr(s.arg0); - if (!r0) { step = 3; continue; } - s.tmp_1 = r0 = s.caps[0]; - r0 = pxsim_Array__length(s.caps[1]); - s.tmp_2 = r0; - r0 = (s.tmp_1 >= s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = microcode_RuleDefn_push__P4053_mk(s); - r0 = s.caps[2].fields["ruledef"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.arg0; - s.tmp_3.arg2 = s.caps[3]; - s.tmp_3.arg3 = true; - s.callLocIdx = 1363; s.pc = 13; return s.tmp_3; - case 13: - r0 = s.retval; - s.numberAdded___19041 = (r0); - { step = 2; continue; } - case 1: - s.tmp_0 = microcode_RuleDefn_updateAt__P4055_mk(s); - r0 = s.caps[2].fields["ruledef"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.caps[3]; - s.tmp_0.arg2 = s.caps[0]; - s.tmp_0.arg3 = s.arg0; - s.callLocIdx = 1364; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - case 2: - { step = 4; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_RadioButtonCollection__C3980_VT)) failedCast(r0, microgui_RadioButtonCollection__C3980_VT); + s.tmp_0 = microgui_unbindShieldButtons__P5523_mk(s); + s.callLocIdx = 1072; s.pc = 3; return s.tmp_0; case 3: - s.tmp_0 = microcode_RuleDefn_deleteAt__P4054_mk(s); - r0 = s.caps[2].fields["ruledef"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.caps[3]; - s.tmp_0.arg2 = s.caps[0]; - s.callLocIdx = 1365; s.pc = 15; return s.tmp_0; - case 15: r0 = s.retval; - s.deleted___19042 = (r0); + r0 = pxsim_pxtcore_mkAction(1, microgui_RadioButtonCollection_setupButtonBindings_inline__P21027); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.A___3239.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 1074; s.pc = 4; return s.tmp_1; case 4: - s.tmp_0 = microcode_Language_ensureValid__P4075_mk(s); - r0 = s.caps[2].fields["ruledef"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1366; s.pc = 16; return s.tmp_0; - case 16: - r0 = s.retval; - s.tmp_0 = microcode_Editor_saveAndCompileProgram__P4313_mk(s); - r0 = s.caps[2].fields["editor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1367; s.pc = 17; return s.tmp_0; - case 17: - r0 = s.retval; - s.tmp_0 = microcode_RuleEditor_instantiateProgramTiles__P5792_mk(s); - s.tmp_0.arg0 = s.caps[2]; - s.callLocIdx = 1368; s.pc = 18; return s.tmp_0; - case 18: r0 = s.retval; - r0 = (s.numberAdded___19041 == 1); + r0 = s.arg0.fields["backBtn"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 5; continue; } - r0 = s.tmp_0; - { step = 6; continue; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkAction(1, microgui_RadioButtonCollection_setupButtonBindings_inline__P21039); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg0); + s.tmp_2 = context_onEvent__P3247_mk(s); + s.tmp_2.arg0 = 2049; + r0 = globals.B___3240.fields["id"]; + s.tmp_2.arg1 = r0; + s.tmp_2.arg2 = s.tmp_1; + s.tmp_2.arg3 = 16; + s.callLocIdx = 1076; s.pc = 5; return s.tmp_2; case 5: - s.tmp_1 = microcode_RuleEditor_nextEmpty__P5794_mk(s); - s.tmp_1.arg0 = s.caps[2]; - s.tmp_1.arg1 = s.caps[3]; - s.tmp_1.arg2 = s.caps[0]; - s.callLocIdx = 1369; s.pc = 19; return s.tmp_1; - case 19: r0 = s.retval; + case 1: + case 2: + r0 = pxsim_pxtcore_mkAction(1, microgui_RadioButtonCollection_setupButtonBindings_inline__P21046); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.up___3242.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 1079; s.pc = 6; return s.tmp_1; case 6: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 7; continue; } - r0 = (s.caps[2]).fields["queuedCursorMove"] = (3); - { step = 12; continue; } - case 7: - r0 = (s.numberAdded___19041 == 2); + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, microgui_RadioButtonCollection_setupButtonBindings_inline__P21079); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - r0 = (s.caps[2]).fields["queuedCursorMove"] = (1); - { step = 11; continue; } - case 8: - r0 = pxsim_numops_toBoolDecr(s.deleted___19042); - if (!r0) { step = 9; continue; } - r0 = (s.caps[2]).fields["queuedCursorMove"] = (2); - case 9: - case 10: - case 11: - case 12: - s.tmp_0 = microcode_PageEditor_changed__P4333_mk(s); - r0 = s.caps[2].fields["page"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1370; s.pc = 20; return s.tmp_0; - case 20: + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.down___3244.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 1082; s.pc = 7; return s.tmp_1; + case 7: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -tileUpdated_inline__P19039.info = {"start":7369,"length":1163,"line":217,"column":32,"endLine":243,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["tile"]} +microgui_RadioButtonCollection_setupButtonBindings__P3983.info = {"start":47954,"length":1136,"line":1304,"column":8,"endLine":1329,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"setupButtonBindings","argumentNames":["this"]} -function tileUpdated_inline__P19039_mk(s) { +function microgui_RadioButtonCollection_setupButtonBindings__P3983_mk(s) { checkStack(s.depth); return { - parent: s, fn: tileUpdated_inline__P19039, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_setupButtonBindings__P3983, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - numberAdded___19041: undefined, - deleted___19042: undefined, arg0: undefined, } } - -function newFieldEditor_inline__P19095(s) { +function microgui_RadioButtonCollection_setupButtonBindings_inline__P21027(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -52940,107 +59421,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.newOne___19098 = undefined; - s.fieldEditor___19105 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - r0 = s.arg0; - { step = 2; continue; } - case 1: - s.tmp_0 = microcode_ModifierEditor__C4403_v2_2_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = null; - if (!checkSubtype(s.tmp_0.arg0, microcode_ModifierEditor__C4403_VT)) failedCast(s.tmp_0.arg0, microcode_ModifierEditor__C4403_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.getNewInstance; - s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - s.newOne___19098 = (s.tmp_1); - s.tmp_0 = microcode_getFieldEditor__P4402_mk(s); - s.tmp_0.arg0 = s.newOne___19098; - s.callLocIdx = 1371; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.fieldEditor___19105 = (r0); - s.tmp_0 = user_interface_base_Scene_captureBackground__P3698_mk(s); - r0 = s.caps[0].fields["editor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1372; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(3, newFieldEditor_inline__P19119); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.caps[1]); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.newOne___19098); - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 3; continue; } - r0 = pxsim_pxtcore_mkAction(2, newFieldEditor_inline__P19126); + s.tmp_0 = microgui_RadioButton_click__P3978_mk(s); + r0 = s.caps[0].fields["btns"]; s.tmp_1 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.caps[0]); - r0 = pxsim_pxtrt_stclo(s.tmp_1, 1, s.caps[1]); - r0 = s.tmp_1; - { step = 4; continue; } - case 3: - r0 = undefined; - case 4: - // jmp value (already in r0) + r0 = s.caps[0].fields["selectedTextBtnIndex"]; s.tmp_2 = r0; - s.tmp_3 = microcode_FieldEditor__C5806_v2_5_mk(s); - s.tmp_3.arg0 = s.fieldEditor___19105; - s.tmp_4 = microcode_ModifierEditor__C4403_v0_1_mk(s); - s.tmp_4.arg0 = s.newOne___19098; - if (!checkSubtype(s.tmp_4.arg0, microcode_ModifierEditor__C4403_VT)) failedCast(s.tmp_4.arg0, microcode_ModifierEditor__C4403_VT); - s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.getField; - s.pc = 9; return s.tmp_4; - case 9: - r0 = s.retval; - s.tmp_3.arg1 = r0; - r0 = s.caps[0].fields["editor"]; - r0 = r0.fields["picker"]; - s.tmp_3.arg2 = r0; - s.tmp_3.arg3 = s.tmp_0; - s.tmp_3.arg4 = s.tmp_2; - if (!checkSubtype(s.tmp_3.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_3.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_3.fn = s.tmp_3.arg0.vtable.methods.editor; - s.pc = 8; return s.tmp_3; - case 8: + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + s.callLocIdx = 1073; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -newFieldEditor_inline__P19095.info = {"start":8568,"length":748,"line":244,"column":35,"endLine":262,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["tile","del"]} +microgui_RadioButtonCollection_setupButtonBindings_inline__P21027.info = {"start":48090,"length":83,"line":1307,"column":76,"endLine":1309,"endColumn":13,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function newFieldEditor_inline__P19095_mk(s) { +function microgui_RadioButtonCollection_setupButtonBindings_inline__P21027_mk(s) { checkStack(s.depth); return { - parent: s, fn: newFieldEditor_inline__P19095, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_setupButtonBindings_inline__P21027, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - newOne___19098: undefined, - fieldEditor___19105: undefined, - arg0: undefined, - arg1: undefined, } } +function microgui_RadioButtonCollection_setupButtonBindings_inline__P21039(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = if_backBtn_2_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = undefined; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "backBtn"), 2); + s.callLocIdx = 1075; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["backBtn"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["backBtn"], 2); s.callLocIdx = 1075; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1075; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1075; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microgui_RadioButtonCollection_setupButtonBindings_inline__P21039.info = {"start":48286,"length":61,"line":1312,"column":80,"endLine":1314,"endColumn":17,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} + +function microgui_RadioButtonCollection_setupButtonBindings_inline__P21039_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microgui_RadioButtonCollection_setupButtonBindings_inline__P21039, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, +} } + + + -function newFieldEditor_inline__P19119(s) { +function microgui_RadioButtonCollection_setupButtonBindings_inline__P21046(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53050,38 +59501,69 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Scene_releaseBackground__P3699_mk(s); - r0 = s.caps[0].fields["editor"]; + s.len___21052 = undefined; + s.tmp_0 = microgui_RadioButton_setSelected__P3976_mk(s); + r0 = s.caps[0].fields["btns"]; + s.tmp_1 = r0; + r0 = s.caps[0].fields["selectedTextBtnIndex"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = false; + s.callLocIdx = 1077; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = s.caps[0].fields["btns"]; + s.tmp_0 = r0; + r0 = pxsim_Array__length(s.tmp_0); + s.len___21052 = (r0); + s.tmp_0 = r0 = s.caps[0]; + r0 = s.caps[0].fields["selectedTextBtnIndex"]; + s.tmp_5 = r0; + r0 = (s.tmp_5 - 1); + s.tmp_4 = r0; + r0 = (s.tmp_4 % s.len___21052); + s.tmp_3 = r0; + r0 = (s.tmp_3 + s.len___21052); + s.tmp_2 = r0; + r0 = (s.tmp_2 % s.len___21052); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["selectedTextBtnIndex"] = (s.tmp_1); + s.tmp_0 = microgui_RadioButton_setSelected__P3976_mk(s); + r0 = s.caps[0].fields["btns"]; + s.tmp_1 = r0; + r0 = s.caps[0].fields["selectedTextBtnIndex"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); s.tmp_0.arg0 = r0; - s.callLocIdx = 1373; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.caps[1]; - s.tmp_0.arg0 = s.caps[2]; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1374; s.pc = 2; return s.tmp_0; + s.tmp_0.arg1 = true; + s.callLocIdx = 1078; s.pc = 2; return s.tmp_0; case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -newFieldEditor_inline__P19119.info = {"start":8917,"length":129,"line":251,"column":20,"endLine":254,"endColumn":21,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} +microgui_RadioButtonCollection_setupButtonBindings_inline__P21046.info = {"start":48427,"length":309,"line":1316,"column":77,"endLine":1322,"endColumn":13,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function newFieldEditor_inline__P19119_mk(s) { +function microgui_RadioButtonCollection_setupButtonBindings_inline__P21046_mk(s) { checkStack(s.depth); return { - parent: s, fn: newFieldEditor_inline__P19119, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_setupButtonBindings_inline__P21046, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + len___21052: undefined, } } - -function newFieldEditor_inline__P19126(s) { +function microgui_RadioButtonCollection_setupButtonBindings_inline__P21079(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53091,38 +59573,63 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Scene_releaseBackground__P3699_mk(s); - r0 = s.caps[0].fields["editor"]; + s.tmp_0 = microgui_RadioButton_setSelected__P3976_mk(s); + r0 = s.caps[0].fields["btns"]; + s.tmp_1 = r0; + r0 = s.caps[0].fields["selectedTextBtnIndex"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); s.tmp_0.arg0 = r0; - s.callLocIdx = 1375; s.pc = 1; return s.tmp_0; + s.tmp_0.arg1 = false; + s.callLocIdx = 1080; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.caps[1]; - s.tmp_0.arg0 = undefined; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1376; s.pc = 2; return s.tmp_0; + s.tmp_0 = r0 = s.caps[0]; + r0 = s.caps[0].fields["selectedTextBtnIndex"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = s.caps[0].fields["btns"]; + s.tmp_5 = r0; + r0 = pxsim_Array__length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_2 % s.tmp_4); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["selectedTextBtnIndex"] = (s.tmp_1); + s.tmp_0 = microgui_RadioButton_setSelected__P3976_mk(s); + r0 = s.caps[0].fields["btns"]; + s.tmp_1 = r0; + r0 = s.caps[0].fields["selectedTextBtnIndex"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = true; + s.callLocIdx = 1081; s.pc = 2; return s.tmp_0; case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -newFieldEditor_inline__P19126.info = {"start":9098,"length":150,"line":256,"column":26,"endLine":259,"endColumn":27,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} +microgui_RadioButtonCollection_setupButtonBindings_inline__P21079.info = {"start":48819,"length":259,"line":1324,"column":79,"endLine":1328,"endColumn":13,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function newFieldEditor_inline__P19126_mk(s) { +function microgui_RadioButtonCollection_setupButtonBindings_inline__P21079_mk(s) { checkStack(s.depth); return { - parent: s, fn: newFieldEditor_inline__P19126, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_setupButtonBindings_inline__P21079, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, } } - -function btns_inline__P19153(s) { +function microgui_RadioButton_click__P3978(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53136,62 +59643,41 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - s.tmp_2 = microcode_getIcon__P4042_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1379; s.pc = 1; return s.tmp_2; + r0 = s.arg0; + if (!checkSubtype(r0, microgui_RadioButton__C3973_VT)) failedCast(r0, microgui_RadioButton__C3973_VT); + s.tmp_0 = if_onClick_2_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = undefined; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "onClick"), 2); + s.callLocIdx = 1033; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["onClick"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["onClick"], 2); s.callLocIdx = 1033; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1033; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1033; s.pc = 1; return s.tmp_0; } + } case 1: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", s.tmp_1); - s.tmp_5 = microcode_getTid__P4041_mk(s); - s.tmp_5.arg0 = s.arg0; - s.callLocIdx = 1380; s.pc = 2; return s.tmp_5; - case 2: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_numops.toString(s.tmp_4); - s.tmp_7 = r0; - if ((s.tmp_7) && (s.tmp_7).vtable) { - setupResume(s, 3); - pxsim_String__stringConv(s.tmp_7); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_7) + ""; } - case 3: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_String__concat("T", s.tmp_6); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ariaId", s.tmp_3); - r0 = s.tmp_0; + r0 = undefined; return leave(s, r0) default: oops() } } } -btns_inline__P19153.info = {"start":9688,"length":170,"line":271,"column":60,"endLine":276,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["tile"]} +microgui_RadioButton_click__P3978.info = {"start":43962,"length":54,"line":1179,"column":8,"endLine":1181,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"click","argumentNames":["this"]} -function btns_inline__P19153_mk(s) { +function microgui_RadioButton_click__P3978_mk(s) { checkStack(s.depth); return { - parent: s, fn: btns_inline__P19153, depth: s.depth + 1, + parent: s, fn: microgui_RadioButton_click__P3978, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, arg0: undefined, } } - -function microcode_RuleEditor_editTile_inline__P19202(s) { +function microgui_unbindShieldButtons__P5523(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53201,32 +59687,90 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.caps[0]; - s.tmp_0.arg0 = undefined; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1385; s.pc = 1; return s.tmp_0; + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.A___3239.fields["id"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = microgui_unbindShieldButtons_inline__P21108; + s.tmp_0.arg3 = 16; + s.callLocIdx = 976; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.A___3239.fields["id"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 + 7); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = microgui_unbindShieldButtons_inline__P21115; + s.tmp_0.arg3 = 16; + s.callLocIdx = 977; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.B___3240.fields["id"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = microgui_unbindShieldButtons_inline__P21120; + s.tmp_0.arg3 = 16; + s.callLocIdx = 978; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.up___3242.fields["id"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = microgui_unbindShieldButtons_inline__P21125; + s.tmp_0.arg3 = 16; + s.callLocIdx = 979; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.down___3244.fields["id"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = microgui_unbindShieldButtons_inline__P21130; + s.tmp_0.arg3 = 16; + s.callLocIdx = 980; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.left___3241.fields["id"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = microgui_unbindShieldButtons_inline__P21135; + s.tmp_0.arg3 = 16; + s.callLocIdx = 981; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.right___3243.fields["id"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = microgui_unbindShieldButtons_inline__P21140; + s.tmp_0.arg3 = 16; + s.callLocIdx = 982; s.pc = 7; return s.tmp_0; + case 7: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_editTile_inline__P19202.info = {"start":10651,"length":80,"line":295,"column":22,"endLine":297,"endColumn":23,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} +microgui_unbindShieldButtons__P5523.info = {"start":507,"length":653,"line":17,"column":4,"endLine":25,"endColumn":5,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"unbindShieldButtons","argumentNames":[]} -function microcode_RuleEditor_editTile_inline__P19202_mk(s) { +function microgui_unbindShieldButtons__P5523_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_editTile_inline__P19202, depth: s.depth + 1, + parent: s, fn: microgui_unbindShieldButtons__P5523, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, } } - -function selected_inline__P19209(s) { +function microgui_unbindShieldButtons_inline__P21108(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53236,58 +59780,23 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_1 = if_icon_1_mk(s); - s.tmp_1.arg0 = s.arg0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "icon"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["icon"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["icon"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1386; s.pc = 1; return s.tmp_1; } - } - case 1: - r0 = s.retval; - s.tmp_0 = r0; - s.tmp_3 = microcode_getIcon__P4042_mk(s); - s.tmp_4 = microcode_getTid__P4041_mk(s); - s.tmp_4.arg0 = s.caps[0]; - s.callLocIdx = 1387; s.pc = 3; return s.tmp_4; - case 3: - r0 = s.retval; - s.tmp_3.arg0 = r0; - s.callLocIdx = 1388; s.pc = 2; return s.tmp_3; - case 2: - r0 = s.retval; - s.tmp_2 = r0; - r0 = (s.tmp_0 === s.tmp_2); + r0 = undefined; return leave(s, r0) default: oops() } } } -selected_inline__P19209.info = {"start":10841,"length":37,"line":300,"column":30,"endLine":300,"endColumn":67,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["b"]} +microgui_unbindShieldButtons_inline__P21108.info = {"start":612,"length":9,"line":18,"column":72,"endLine":18,"endColumn":81,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function selected_inline__P19209_mk(s) { +function microgui_unbindShieldButtons_inline__P21108_mk(s) { checkStack(s.depth); return { - parent: s, fn: selected_inline__P19209, depth: s.depth + 1, + parent: s, fn: microgui_unbindShieldButtons_inline__P21108, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, } } - -function navigator_inline__P19239(s) { +function microgui_unbindShieldButtons_inline__P21115(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53297,36 +59806,23 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_PickerNavigator_constructor__P3804_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.caps[0].fields["editor"]; - r0 = r0.fields["picker"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1392; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - r0 = s.tmp_0; + r0 = undefined; return leave(s, r0) default: oops() } } } -navigator_inline__P19239.info = {"start":11237,"length":45,"line":310,"column":31,"endLine":310,"endColumn":76,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} +microgui_unbindShieldButtons_inline__P21115.info = {"start":718,"length":9,"line":19,"column":95,"endLine":19,"endColumn":104,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function navigator_inline__P19239_mk(s) { +function microgui_unbindShieldButtons_inline__P21115_mk(s) { checkStack(s.depth); return { - parent: s, fn: navigator_inline__P19239, depth: s.depth + 1, + parent: s, fn: microgui_unbindShieldButtons_inline__P21115, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, } } - -function onClick_inline__P19245(s) { +function microgui_unbindShieldButtons_inline__P21120(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53336,91 +59832,23 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.theOne___19247 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim_Array__getAt(s.caps[0], s.arg0); - s.theOne___19247 = (r0); - r0 = s.theOne___19247; - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = (s.caps[1] > 0); - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (r0) { step = 1; continue; } - r0 = s.tmp_1; - { step = 2; continue; } - case 1: - s.tmp_2 = r0 = s.caps[2]; - r0 = (s.caps[1] - 1); - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 3; continue; } - s.tmp_5 = r0 = s.caps[2]; - r0 = (s.caps[1] - 1); - s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); - { step = 4; continue; } - case 3: - r0 = s.theOne___19247; - case 4: - // jmp value (already in r0) - s.tmp_7 = r0; - s.theOne___19247 = (s.tmp_7); - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.caps[3]; - s.tmp_0.arg0 = s.theOne___19247; - s.tmp_0.arg1 = false; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1393; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - case 5: - case 6: - s.tmp_0 = lambda_2_mk(s); - s.tmp_0.argL = s.caps[4]; - s.tmp_0.arg0 = s.theOne___19247; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1394; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P19245.info = {"start":11313,"length":627,"line":311,"column":29,"endLine":323,"endColumn":21,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["idx"]} +microgui_unbindShieldButtons_inline__P21120.info = {"start":801,"length":9,"line":20,"column":72,"endLine":20,"endColumn":81,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function onClick_inline__P19245_mk(s) { +function microgui_unbindShieldButtons_inline__P21120_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P19245, depth: s.depth + 1, + parent: s, fn: microgui_unbindShieldButtons_inline__P21120, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - theOne___19247: undefined, - arg0: undefined, } } - -function microcode_filterModifierWithDelete__P4263(s) { +function microgui_unbindShieldButtons_inline__P21125(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53430,63 +59858,23 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___19274 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1062; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tid___19274 = (r0); - s.tmp_1 = microcode_isMathOperator__P4256_mk(s); - s.tmp_1.arg0 = s.tid___19274; - s.callLocIdx = 1063; s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_2 = microcode_isComparisonOperator__P4257_mk(s); - s.tmp_2.arg0 = s.tid___19274; - s.callLocIdx = 1064; s.pc = 5; return s.tmp_2; - case 5: - r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - s.tmp_4 = r0; - r0 = pxsim_Boolean__bang(s.tmp_4); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_filterModifierWithDelete__P4263.info = {"start":12845,"length":169,"line":411,"column":4,"endLine":414,"endColumn":5,"fileName":"tiles.ts","functionName":"filterModifierWithDelete","argumentNames":["tile"]} +microgui_unbindShieldButtons_inline__P21125.info = {"start":885,"length":9,"line":21,"column":73,"endLine":21,"endColumn":82,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function microcode_filterModifierWithDelete__P4263_mk(s) { +function microgui_unbindShieldButtons_inline__P21125_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_filterModifierWithDelete__P4263, depth: s.depth + 1, + parent: s, fn: microgui_unbindShieldButtons_inline__P21125, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tid___19274: undefined, - arg0: undefined, } } - -function user_interface_base_Scene_releaseBackground__P3699(s) { +function microgui_unbindShieldButtons_inline__P21130(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53496,32 +59884,23 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); - r0 = (s.arg0).fields["backgroundCaptured_"] = (false); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene_releaseBackground__P3699.info = {"start":2200,"length":76,"line":77,"column":8,"endLine":79,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"releaseBackground","argumentNames":["this"]} +microgui_unbindShieldButtons_inline__P21130.info = {"start":971,"length":9,"line":22,"column":75,"endLine":22,"endColumn":84,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Scene_releaseBackground__P3699_mk(s) { +function microgui_unbindShieldButtons_inline__P21130_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_releaseBackground__P3699, depth: s.depth + 1, + parent: s, fn: microgui_unbindShieldButtons_inline__P21130, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, } } - -function microcode_FieldEditor_editor__P5809(s) { +function microgui_unbindShieldButtons_inline__P21135(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53531,39 +59910,23 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_FieldEditor__C5806_VT)) failedCast(r0, microcode_FieldEditor__C5806_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_FieldEditor_editor__P5809.info = {"start":521,"length":144,"line":17,"column":8,"endLine":22,"endColumn":18,"fileName":"fieldeditors.ts","functionName":"editor","argumentNames":["this","field","picker","onHide","onDelete"]} +microgui_unbindShieldButtons_inline__P21135.info = {"start":1057,"length":9,"line":23,"column":75,"endLine":23,"endColumn":84,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function microcode_FieldEditor_editor__P5809_mk(s) { +function microgui_unbindShieldButtons_inline__P21135_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_FieldEditor_editor__P5809, depth: s.depth + 1, + parent: s, fn: microgui_unbindShieldButtons_inline__P21135, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function user_interface_base_Scene_captureBackground__P3698(s) { +function microgui_unbindShieldButtons_inline__P21140(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53573,32 +59936,23 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); - r0 = (s.arg0).fields["backgroundCaptured_"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene_captureBackground__P3698.info = {"start":2115,"length":75,"line":73,"column":8,"endLine":75,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"captureBackground","argumentNames":["this"]} +microgui_unbindShieldButtons_inline__P21140.info = {"start":1144,"length":9,"line":24,"column":76,"endLine":24,"endColumn":85,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_Scene_captureBackground__P3698_mk(s) { +function microgui_unbindShieldButtons_inline__P21140_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_captureBackground__P3698, depth: s.depth + 1, + parent: s, fn: microgui_unbindShieldButtons_inline__P21140, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - arg0: undefined, } } - -function microcode_getFieldEditor__P4402(s) { +function microgui_GUIComponentAbstract_makeActive__P3941(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53613,35 +59967,26 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.arg0.fields["fieldEditor"]; - { step = 3; continue; } - case 1: - case 2: + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = (s.arg0).fields["isActive"] = (true); r0 = undefined; - case 3: return leave(s, r0) default: oops() } } } -microcode_getFieldEditor__P4402.info = {"start":198,"length":156,"line":5,"column":4,"endLine":8,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"getFieldEditor","argumentNames":["tile"]} +microgui_GUIComponentAbstract_makeActive__P3941.info = {"start":11757,"length":50,"line":301,"column":8,"endLine":301,"endColumn":58,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"makeActive","argumentNames":["this"]} -function microcode_getFieldEditor__P4402_mk(s) { +function microgui_GUIComponentAbstract_makeActive__P3941_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getFieldEditor__P4402, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_makeActive__P3941, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, } } - -function microcode_RuleEditor_nextEmpty__P5794(s) { +function microgui_RadioButton_setSelected__P3976(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53654,276 +59999,69 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = (s.arg1 == "sensors"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["filters"]; - s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (r0) { step = 3; continue; } - r0 = s.tmp_3; - { step = 4; continue; } - case 3: - r0 = s.arg0.fields["whenInsertBtn"]; - case 4: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (!r0) { step = 5; continue; } - r0 = s.tmp_4; - { step = 12; continue; } - case 5: - r0 = (s.arg1 == "filters"); - s.tmp_5 = r0; - r0 = pxsim_numops_toBool(s.tmp_5); - if (r0) { step = 6; continue; } - r0 = s.tmp_5; - { step = 7; continue; } - case 6: - s.tmp_6 = r0 = s.arg2; - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["filters"]; - s.tmp_9 = r0; - r0 = pxsim_Array__length(s.tmp_9); - s.tmp_8 = r0; - r0 = (s.tmp_8 - 1); - s.tmp_7 = r0; - r0 = (s.tmp_6 == s.tmp_7); - case 7: - // jmp value (already in r0) - s.tmp_10 = r0; - r0 = pxsim_numops_toBool(s.tmp_10); - if (r0) { step = 8; continue; } - r0 = s.tmp_10; - { step = 11; continue; } - case 8: - r0 = s.arg0.fields["whenInsertBtn"]; - s.tmp_11 = r0; - r0 = pxsim_numops_toBool(s.tmp_11); - if (!r0) { step = 9; continue; } - r0 = s.tmp_11; - { step = 10; continue; } - case 9: - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["actuators"]; - s.tmp_13 = r0; - r0 = pxsim_Array__length(s.tmp_13); - s.tmp_12 = r0; - r0 = (s.tmp_12 == 0); - case 10: - // jmp value (already in r0) - s.tmp_14 = r0; - r0 = s.tmp_14; - case 11: - // jmp value (already in r0) - s.tmp_15 = r0; - r0 = s.tmp_15; - case 12: - // jmp value (already in r0) - s.tmp_16 = r0; - r0 = pxsim_numops_toBool(s.tmp_16); - if (!r0) { step = 13; continue; } - r0 = s.tmp_16; - { step = 18; continue; } - case 13: - r0 = (s.arg1 == "actuators"); - s.tmp_17 = r0; - r0 = pxsim_numops_toBool(s.tmp_17); - if (r0) { step = 14; continue; } - r0 = s.tmp_17; - { step = 15; continue; } - case 14: - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["modifiers"]; - s.tmp_19 = r0; - r0 = pxsim_Array__length(s.tmp_19); - s.tmp_18 = r0; - r0 = (s.tmp_18 == 0); - case 15: - // jmp value (already in r0) - s.tmp_20 = r0; - r0 = pxsim_numops_toBool(s.tmp_20); - if (r0) { step = 16; continue; } - r0 = s.tmp_20; - { step = 17; continue; } - case 16: - r0 = s.arg0.fields["doInsertBtn"]; - case 17: - // jmp value (already in r0) - s.tmp_21 = r0; - r0 = s.tmp_21; - case 18: - // jmp value (already in r0) - s.tmp_22 = r0; - r0 = pxsim_numops_toBool(s.tmp_22); - if (!r0) { step = 19; continue; } - r0 = s.tmp_22; - { step = 24; continue; } - case 19: - r0 = (s.arg1 == "modifiers"); - s.tmp_23 = r0; - r0 = pxsim_numops_toBool(s.tmp_23); - if (r0) { step = 20; continue; } - r0 = s.tmp_23; - { step = 21; continue; } - case 20: - s.tmp_24 = r0 = s.arg2; - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["modifiers"]; - s.tmp_27 = r0; - r0 = pxsim_Array__length(s.tmp_27); - s.tmp_26 = r0; - r0 = (s.tmp_26 - 1); - s.tmp_25 = r0; - r0 = (s.tmp_24 == s.tmp_25); - case 21: - // jmp value (already in r0) - s.tmp_28 = r0; - r0 = pxsim_numops_toBool(s.tmp_28); - if (r0) { step = 22; continue; } - r0 = s.tmp_28; - { step = 23; continue; } - case 22: - r0 = s.arg0.fields["doInsertBtn"]; - case 23: - // jmp value (already in r0) - s.tmp_29 = r0; - r0 = s.tmp_29; - case 24: - // jmp value (already in r0) - s.tmp_30 = r0; - r0 = s.tmp_30; + if (!checkSubtype(r0, microgui_RadioButton__C3973_VT)) failedCast(r0, microgui_RadioButton__C3973_VT); + r0 = (s.arg0).fields["isSelected"] = (s.arg1); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_nextEmpty__P5794.info = {"start":6495,"length":722,"line":197,"column":8,"endLine":213,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"nextEmpty","argumentNames":["this","name","index"]} +microgui_RadioButton_setSelected__P3976.info = {"start":43749,"length":93,"line":1170,"column":8,"endLine":1172,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"setSelected","argumentNames":["this","isSelected"]} -function microcode_RuleEditor_nextEmpty__P5794_mk(s) { +function microgui_RadioButton_setSelected__P3976_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_nextEmpty__P5794, depth: s.depth + 1, + parent: s, fn: microgui_RadioButton_setSelected__P3976, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, - tmp_27: undefined, - tmp_28: undefined, - tmp_29: undefined, - tmp_30: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function microcode_Editor_saveAndCompileProgram__P4313(s) { +function microgui_RadioButton_setPosition__P3977(s) { let r0 = s.r0, step = s.pc; s.pc = -1; while (true) { if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = if_save_3_mk(s); - r0 = s.arg0.fields["app"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4287; - s.tmp_1 = microcode_ProgramDefn_toBuffer__P4071_mk(s); - r0 = s.arg0.fields["progdef"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1136; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg2 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "save"), 3); - s.callLocIdx = 1137; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["save"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["save"], 3); s.callLocIdx = 1137; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1137; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1137; s.pc = 1; return s.tmp_0; } +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.lambdaArgs = null; } - case 1: - r0 = s.retval; - s.tmp_0 = microcode_runProgram__P4297_mk(s); - r0 = s.arg0.fields["progdef"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1138; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, microgui_RadioButton__C3973_VT)) failedCast(r0, microgui_RadioButton__C3973_VT); + r0 = (s.arg0).fields["x"] = (s.arg1); + r0 = (s.arg0).fields["y"] = (s.arg2); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_saveAndCompileProgram__P4313.info = {"start":3364,"length":145,"line":105,"column":8,"endLine":108,"endColumn":9,"fileName":"editor.ts","functionName":"saveAndCompileProgram","argumentNames":["this"]} +microgui_RadioButton_setPosition__P3977.info = {"start":43852,"length":100,"line":1174,"column":8,"endLine":1177,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"setPosition","argumentNames":["this","x","y"]} -function microcode_Editor_saveAndCompileProgram__P4313_mk(s) { +function microgui_RadioButton_setPosition__P3977_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_saveAndCompileProgram__P4313, depth: s.depth + 1, + parent: s, fn: microgui_RadioButton_setPosition__P3977, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_ProgramDefn_toBuffer__P4071(s) { +function microgui_RadioButtonCollection_autoScale__P5537(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -53933,74 +60071,138 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.bw___19377 = undefined; - s.magic___19380 = undefined; + s.ySpacing___21162 = undefined; + s.maxComponentHeight___21167 = undefined; + s.titleWidth___21184 = undefined; + s.btnTextWidthFn___21194 = undefined; + s.maxComponentWidth___21210 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_ProgramDefn__C4067_VT)) failedCast(r0, microcode_ProgramDefn__C4067_VT); - r0 = pxsim_pxtcore_mkClassInstance(microcode_BufferWriter__C4479_VT); + if (!checkSubtype(r0, microgui_RadioButtonCollection__C3980_VT)) failedCast(r0, microgui_RadioButtonCollection__C3980_VT); + s.tmp_1 = if_charHeight_1_mk(s); + s.tmp_1.arg0 = globals.font___3460; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "charHeight"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["charHeight"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["charHeight"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1062; s.pc = 5; return s.tmp_1; } + } + case 5: + r0 = s.retval; s.tmp_0 = r0; - s.tmp_1 = microcode_BufferWriter_constructor__P4480_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 999; s.pc = 1; return s.tmp_1; - case 1: + r0 = (s.tmp_0 * globals.microgui_RadioButtonCollection_MINIMUM_BUTTON_Y_SPACING___5539); + s.ySpacing___21162 = (r0); + s.tmp_2 = r0 = s.ySpacing___21162; + r0 = s.arg0.fields["btns"]; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_2 * s.tmp_3); + s.tmp_1 = r0; + r0 = (0 + s.tmp_1); + s.tmp_0 = r0; + r0 = (s.tmp_0 - 3); + s.maxComponentHeight___21167 = (r0); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["height"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 < s.maxComponentHeight___21167); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = microgui_GUIComponentAbstract_rescaleHeightTo__P3934_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.maxComponentHeight___21167; + s.callLocIdx = 1063; s.pc = 6; return s.tmp_2; + case 6: r0 = s.retval; - s.bw___19377 = (s.tmp_0); - r0 = pxsim.control.createBuffer(4); - s.magic___19380 = (r0); - r0 = pxsim.BufferMethods.setNumber(s.magic___19380, 11, 0, 1049819173); - s.tmp_0 = microcode_BufferWriter_writeBuffer__P4484_mk(s); - s.tmp_0.arg0 = s.bw___19377; - s.tmp_0.arg1 = s.magic___19380; - s.callLocIdx = 1000; s.pc = 2; return s.tmp_0; + case 1: case 2: + r0 = s.arg0.fields["title"]; + s.tmp_2 = r0; + r0 = pxsim_String_.length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 + 1); + s.tmp_0 = r0; + s.tmp_4 = if_charWidth_1_mk(s); + s.tmp_4.arg0 = globals.font___3460; + if (!s.tmp_4.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "charWidth"); + } else { + s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["charWidth"]; + if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["charWidth"]; } + else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } + else { s.callLocIdx = 1064; s.pc = 7; return s.tmp_4; } + } + case 7: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_ProgramDefn_toBuffer_inline__P19394); + s.tmp_3 = r0; + r0 = (s.tmp_0 * s.tmp_3); + s.titleWidth___21184 = (r0); + r0 = pxsim_pxtcore_mkAction(1, btnTextWidthFn_inline__P21195); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.bw___19377); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["pages"]; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.btnTextWidthFn___21194 = (s.tmp_0); + r0 = pxsim_pxtcore_mkAction(1, maxComponentWidth_inline__P21215); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.btnTextWidthFn___21194); + s.tmp_1 = helpers_arrayReduce__P2141_mk(s); + r0 = s.arg0.fields["btns"]; s.tmp_1.arg0 = r0; s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1002; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0 = microcode_BufferWriter_writeByte__P4483_mk(s); - s.tmp_0.arg0 = s.bw___19377; - s.tmp_0.arg1 = 0; - s.callLocIdx = 1003; s.pc = 4; return s.tmp_0; - case 4: + s.tmp_1.arg2 = s.titleWidth___21184; + s.callLocIdx = 1068; s.pc = 8; return s.tmp_1; + case 8: r0 = s.retval; - s.tmp_0 = microcode_BufferWriter_buffer__P4482_mk(s); - s.tmp_0.arg0 = s.bw___19377; - s.callLocIdx = 1004; s.pc = 5; return s.tmp_0; - case 5: + s.maxComponentWidth___21210 = (r0); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["width"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 < s.maxComponentWidth___21210); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_2 = microgui_GUIComponentAbstract_rescaleWidthTo__P3933_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.maxComponentWidth___21210; + s.callLocIdx = 1069; s.pc = 9; return s.tmp_2; + case 9: r0 = s.retval; + case 3: + case 4: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_ProgramDefn_toBuffer__P4071.info = {"start":11023,"length":343,"line":345,"column":8,"endLine":353,"endColumn":9,"fileName":"language.ts","functionName":"toBuffer","argumentNames":["this"]} +microgui_RadioButtonCollection_autoScale__P5537.info = {"start":46855,"length":976,"line":1271,"column":8,"endLine":1297,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"autoScale","argumentNames":["this"]} -function microcode_ProgramDefn_toBuffer__P4071_mk(s) { +function microgui_RadioButtonCollection_autoScale__P5537_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_ProgramDefn_toBuffer__P4071, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_autoScale__P5537, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - bw___19377: undefined, - magic___19380: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + ySpacing___21162: undefined, + maxComponentHeight___21167: undefined, + titleWidth___21184: undefined, + btnTextWidthFn___21194: undefined, + maxComponentWidth___21210: undefined, arg0: undefined, } } - -function microcode_ProgramDefn_toBuffer_inline__P19394(s) { +function btnTextWidthFn_inline__P21195(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54014,32 +60216,54 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_PageDefn_toBuffer__P4064_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.caps[0]; - s.callLocIdx = 1001; s.pc = 1; return s.tmp_0; + r0 = s.caps[0].fields["xBorder"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["text"]; + s.tmp_4 = r0; + r0 = pxsim_String_.length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + s.tmp_6 = if_charWidth_1_mk(s); + s.tmp_6.arg0 = globals.font___3460; + if (!s.tmp_6.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "charWidth"); + } else { + s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["charWidth"]; + if (s.tmp_6.fn == null) { s.retval = s.tmp_6.arg0.fields["charWidth"]; } + else if (!s.tmp_6.fn.isGetter) { s.retval = bind(s.tmp_6); } + else { s.callLocIdx = 1065; s.pc = 1; return s.tmp_6; } + } case 1: r0 = s.retval; - r0 = undefined; + s.tmp_5 = r0; + r0 = (s.tmp_2 * s.tmp_5); + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); return leave(s, r0) default: oops() } } } -microcode_ProgramDefn_toBuffer_inline__P19394.info = {"start":11259,"length":25,"line":350,"column":31,"endLine":350,"endColumn":56,"fileName":"language.ts","functionName":"inline","argumentNames":["page"]} +btnTextWidthFn_inline__P21195.info = {"start":47431,"length":93,"line":1287,"column":35,"endLine":1288,"endColumn":71,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":["btn"]} -function microcode_ProgramDefn_toBuffer_inline__P19394_mk(s) { +function btnTextWidthFn_inline__P21195_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_ProgramDefn_toBuffer_inline__P19394, depth: s.depth + 1, + parent: s, fn: btnTextWidthFn_inline__P21195, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, arg0: undefined, } } - -function microcode_BufferWriter_buffer__P4482(s) { +function maxComponentWidth_inline__P21215(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54049,50 +60273,60 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.buf___19405 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferWriter__C4479_VT)) failedCast(r0, microcode_BufferWriter__C4479_VT); - r0 = s.arg0.fields["ptr"]; - s.tmp_0 = r0; - r0 = pxsim.control.createBuffer(s.tmp_0); - s.buf___19405 = (r0); - s.tmp_0 = r0 = s.buf___19405; - r0 = s.arg0.fields["buf"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["ptr"]; - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.slice(s.tmp_2, 0, s.tmp_3); + s.tmp_2 = lambda_2_mk(s); + s.tmp_2.argL = s.caps[0]; + s.tmp_2.arg0 = s.arg1; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 1066; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim.BufferMethods.write(s.tmp_0, 0, s.tmp_1); - r0 = s.buf___19405; - return leaveAccessor(s, r0) + r0 = (s.tmp_1 > s.arg0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = lambda_2_mk(s); + s.tmp_3.argL = s.caps[0]; + s.tmp_3.arg0 = s.arg1; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 1067; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + { step = 2; continue; } + case 1: + r0 = s.arg0; + case 2: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = s.tmp_4; + return leave(s, r0) default: oops() } } } -microcode_BufferWriter_buffer__P4482.info = {"start":520,"length":156,"line":22,"column":8,"endLine":26,"endColumn":9,"fileName":"utils.ts","functionName":"buffer","argumentNames":["this"]} -microcode_BufferWriter_buffer__P4482.isGetter = true; +maxComponentWidth_inline__P21215.info = {"start":47581,"length":85,"line":1290,"column":55,"endLine":1291,"endColumn":71,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":["acc","btn"]} -function microcode_BufferWriter_buffer__P4482_mk(s) { +function maxComponentWidth_inline__P21215_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_BufferWriter_buffer__P4482, depth: s.depth + 1, + parent: s, fn: maxComponentWidth_inline__P21215, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - buf___19405: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_BufferWriter_writeByte__P4483(s) { +function microgui_GUIComponentAbstract_rescaleWidthTo__P3933(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54102,97 +60336,92 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.copy___19450 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferWriter__C4479_VT)) failedCast(r0, microcode_BufferWriter__C4479_VT); - r0 = (0 <= s.arg1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg1 <= 255); - case 2: - // jmp value (already in r0) + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = s.arg0.fields["bounds"]; s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 4; continue; } + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = r0 = s.arg0; + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_4 = r0; + r0 = (s.arg1 / s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["xScaling"] = (s.tmp_3); + r0 = s.arg0.fields["bounds"]; + s.tmp_0 = r0; + s.tmp_3 = microgui_GUIComponentAbstract_getLeftAndTop__P5525_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 1018; s.pc = 3; return s.tmp_3; case 3: - r0 = (s.arg1 | 0); + r0 = s.retval; s.tmp_2 = r0; - r0 = (s.tmp_2 == s.arg1); + r0 = pxsim_Array__getAt(s.tmp_2, 0); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["left"] = (s.tmp_1); + r0 = s.arg0.fields["bounds"]; + s.tmp_0 = r0; + s.tmp_3 = microgui_GUIComponentAbstract_getLeftAndTop__P5525_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 1019; s.pc = 4; return s.tmp_3; case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - s.tmp_4 = microcode_assert__P4478_mk(s); - s.tmp_4.arg0 = s.tmp_3; - r0 = pxsim_numops.toString(s.arg1); - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 8); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 8: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_String__concat("writeByte: v=", s.tmp_5); - s.tmp_4.arg1 = r0; - s.callLocIdx = 1646; s.pc = 7; return s.tmp_4; - case 7: r0 = s.retval; - r0 = s.arg0.fields["ptr"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, 1); s.tmp_1 = r0; - r0 = s.arg0.fields["buf"]; + r0 = (s.tmp_0).fields["top"] = (s.tmp_1); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledWidth"]; s.tmp_3 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_3); + r0 = s.arg0.fields["xScaling"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); s.tmp_2 = r0; - r0 = (s.tmp_1 >= s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = s.arg0.fields["buf"]; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_2); + r0 = s.arg0.fields["unscaledHeight"]; s.tmp_6 = r0; - r0 = pxsim.BufferMethods.length(s.tmp_6); + r0 = s.arg0.fields["yScaling"]; + s.tmp_7 = r0; + r0 = (s.tmp_6 * s.tmp_7); s.tmp_5 = r0; - r0 = (s.tmp_5 * 2); - s.tmp_4 = r0; - r0 = pxsim.control.createBuffer(s.tmp_4); - s.copy___19450 = (r0); - r0 = s.arg0.fields["buf"]; - s.tmp_0 = r0; - r0 = pxsim.BufferMethods.write(s.copy___19450, 0, s.tmp_0); - r0 = (s.arg0).fields["buf"] = (s.copy___19450); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_5); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["left"]; + s.tmp_8 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.tmp_8); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["top"]; + s.tmp_9 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_9); + s.tmp_10 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_10.arg0 = s.tmp_0; + s.tmp_10.arg1 = s.tmp_1; + s.callLocIdx = 1020; s.pc = 5; return s.tmp_10; case 5: - case 6: - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["ptr"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["ptr"] = (s.tmp_1); - r0 = s.arg0.fields["buf"]; - s.tmp_3 = r0; - r0 = pxsim.BufferMethods.setByte(s.tmp_3, s.tmp_2, s.arg1); + r0 = s.retval; + r0 = (s.arg0).fields["bounds"] = (s.tmp_0); + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_BufferWriter_writeByte__P4483.info = {"start":686,"length":407,"line":28,"column":8,"endLine":39,"endColumn":9,"fileName":"utils.ts","functionName":"writeByte","argumentNames":["this","v"]} +microgui_GUIComponentAbstract_rescaleWidthTo__P3933.info = {"start":9498,"length":567,"line":240,"column":8,"endLine":253,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"rescaleWidthTo","argumentNames":["this","newWidth"]} -function microcode_BufferWriter_writeByte__P4483_mk(s) { +function microgui_GUIComponentAbstract_rescaleWidthTo__P3933_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_BufferWriter_writeByte__P4483, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_rescaleWidthTo__P3933, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -54201,7 +60430,10 @@ function microcode_BufferWriter_writeByte__P4483_mk(s) { tmp_4: undefined, tmp_5: undefined, tmp_6: undefined, - copy___19450: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, arg0: undefined, arg1: undefined, } } @@ -54209,8 +60441,7 @@ function microcode_BufferWriter_writeByte__P4483_mk(s) { - -function microcode_PageDefn_toBuffer__P4064(s) { +function microgui_GUIComponentAbstract_getLeftAndTop__P5525(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54220,51 +60451,352 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.left___21279 = undefined; + s.top___21280 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageDefn__C4058_VT)) failedCast(r0, microcode_PageDefn__C4058_VT); - r0 = pxsim_pxtcore_mkAction(1, microcode_PageDefn_toBuffer_inline__P19478); + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + s.left___21279 = (0); + s.top___21280 = (0); + r0 = s.arg0.fields["alignment"]; s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["rules"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 986; s.pc = 1; return s.tmp_1; + r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(6, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(7, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(8, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = s.tmp_0; + { step = 10; continue; } case 1: - r0 = s.retval; - s.tmp_0 = microcode_BufferWriter_writeByte__P4483_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = 1; - s.callLocIdx = 987; s.pc = 2; return s.tmp_0; + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_4 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_5 = r0; + r0 = (s.tmp_4 * s.tmp_5); + s.tmp_3 = r0; + r0 = (s.tmp_3 >> 1); + s.tmp_2 = r0; + r0 = (0 - s.tmp_2); + s.tmp_1 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_6 = r0; + r0 = (s.tmp_1 + s.tmp_6); + s.left___21279 = (r0); + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.top___21280 = (r0); + { step = 10; continue; } case 2: - r0 = s.retval; - r0 = undefined; + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.left___21279 = (r0); + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["yScaling"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_5 = r0; + r0 = (s.tmp_0 + s.tmp_5); + s.top___21280 = (r0); + { step = 10; continue; } + case 3: + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 * s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_1 - s.tmp_4); + s.tmp_0 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_7 = r0; + r0 = (s.tmp_0 + s.tmp_7); + s.left___21279 = (r0); + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["yScaling"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_5 = r0; + r0 = (s.tmp_0 + s.tmp_5); + s.top___21280 = (r0); + { step = 10; continue; } + case 4: + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_5 = r0; + r0 = (s.tmp_0 + s.tmp_5); + s.left___21279 = (r0); + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["yScaling"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 * s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_1 - s.tmp_4); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_7 = r0; + r0 = (s.tmp_0 - s.tmp_7); + s.top___21280 = (r0); + { step = 10; continue; } + case 5: + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_5 = r0; + r0 = (s.tmp_0 + s.tmp_5); + s.left___21279 = (r0); + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["yScaling"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_5 = r0; + r0 = (s.tmp_0 + s.tmp_5); + s.top___21280 = (r0); + { step = 10; continue; } + case 6: + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 * s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_1 - s.tmp_4); + s.tmp_0 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_7 = r0; + r0 = (s.tmp_0 + s.tmp_7); + s.left___21279 = (r0); + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.top___21280 = (r0); + { step = 10; continue; } + case 7: + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.left___21279 = (r0); + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.top___21280 = (r0); + { step = 10; continue; } + case 8: + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 * s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_1 - s.tmp_4); + s.tmp_0 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_7 = r0; + r0 = (s.tmp_0 + s.tmp_7); + s.left___21279 = (r0); + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["yScaling"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 * s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_1 - s.tmp_4); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_7 = r0; + r0 = (s.tmp_0 - s.tmp_7); + s.top___21280 = (r0); + { step = 10; continue; } + case 9: + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (0 - s.tmp_1); + s.tmp_0 = r0; + r0 = s.arg0.fields["xOffset"]; + s.tmp_4 = r0; + r0 = (s.tmp_0 + s.tmp_4); + s.left___21279 = (r0); + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["yScaling"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 * s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_1 - s.tmp_4); + s.tmp_0 = r0; + r0 = s.arg0.fields["yOffset"]; + s.tmp_7 = r0; + r0 = (s.tmp_0 - s.tmp_7); + s.top___21280 = (r0); + case 10: + r0 = pxsim_Array__mk(); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.left___21279); + r0 = pxsim_Array__push(s.tmp_0, s.top___21280); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_PageDefn_toBuffer__P4064.info = {"start":10028,"length":145,"line":307,"column":8,"endLine":310,"endColumn":9,"fileName":"language.ts","functionName":"toBuffer","argumentNames":["this","bw"]} +microgui_GUIComponentAbstract_getLeftAndTop__P5525.info = {"start":5646,"length":2635,"line":155,"column":8,"endLine":208,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"getLeftAndTop","argumentNames":["this"]} -function microcode_PageDefn_toBuffer__P4064_mk(s) { +function microgui_GUIComponentAbstract_getLeftAndTop__P5525_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageDefn_toBuffer__P4064, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_getLeftAndTop__P5525, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + left___21279: undefined, + top___21280: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_PageDefn_toBuffer_inline__P19478(s) { +function microgui_GUIComponentAbstract_rescaleHeightTo__P3934(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54276,34 +60808,110 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleDefn_toBuffer__P4056_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.caps[0]; - s.callLocIdx = 985; s.pc = 1; return s.tmp_0; - case 1: + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = s.arg0.fields["bounds"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = r0 = s.arg0; + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_4 = r0; + r0 = (s.arg1 / s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["yScaling"] = (s.tmp_3); + r0 = s.arg0.fields["bounds"]; + s.tmp_0 = r0; + s.tmp_3 = microgui_GUIComponentAbstract_getLeftAndTop__P5525_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 1021; s.pc = 3; return s.tmp_3; + case 3: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, 0); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["left"] = (s.tmp_1); + r0 = s.arg0.fields["bounds"]; + s.tmp_0 = r0; + s.tmp_3 = microgui_GUIComponentAbstract_getLeftAndTop__P5525_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 1022; s.pc = 4; return s.tmp_3; + case 4: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["top"] = (s.tmp_1); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_2); + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_6 = r0; + r0 = s.arg0.fields["yScaling"]; + s.tmp_7 = r0; + r0 = (s.tmp_6 * s.tmp_7); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_5); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["left"]; + s.tmp_8 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.tmp_8); + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["top"]; + s.tmp_9 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_9); + s.tmp_10 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_10.arg0 = s.tmp_0; + s.tmp_10.arg1 = s.tmp_1; + s.callLocIdx = 1023; s.pc = 5; return s.tmp_10; + case 5: r0 = s.retval; + r0 = (s.arg0).fields["bounds"] = (s.tmp_0); + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageDefn_toBuffer_inline__P19478.info = {"start":10095,"length":25,"line":308,"column":31,"endLine":308,"endColumn":56,"fileName":"language.ts","functionName":"inline","argumentNames":["rule"]} +microgui_GUIComponentAbstract_rescaleHeightTo__P3934.info = {"start":10346,"length":572,"line":260,"column":8,"endLine":274,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"rescaleHeightTo","argumentNames":["this","newHeight"]} -function microcode_PageDefn_toBuffer_inline__P19478_mk(s) { +function microgui_GUIComponentAbstract_rescaleHeightTo__P3934_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageDefn_toBuffer_inline__P19478, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_rescaleHeightTo__P3934, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_RuleDefn_toBuffer__P4056(s) { +function microgui_GUIComponentAbstract_constructor__P3931(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54313,81 +60921,419 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.handleFieldEditors___19488 = undefined; + s.pos___21665 = undefined; + s.left___21668 = undefined; + s.top___21671 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - r0 = pxsim_pxtcore_mkAction(1, handleFieldEditors_inline__P19489); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); - s.handleFieldEditors___19488 = (s.tmp_0); - s.tmp_1 = microcode_RuleDefn_isEmpty__P4051_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 944; s.pc = 4; return s.tmp_1; - case 4: + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = (s.arg0).fields["backgroundCaptured_"] = (false); + r0 = (s.arg0).fields["backgroundColour"] = (3); + r0 = (s.arg0).fields["xScaling"] = (1); + r0 = (s.arg0).fields["yScaling"] = (1); + s.tmp_0 = user_interface_base_Scene_constructor__P3663_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = undefined; + s.tmp_0.arg2 = undefined; + s.callLocIdx = 983; s.pc = 17; return s.tmp_0; + case 17: + r0 = s.retval; + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_alignment_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "alignment"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["alignment"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["alignment"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 984; s.pc = 18; return s.tmp_2; } + } + case 18: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["alignment"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_isActive_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "isActive"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["isActive"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["isActive"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 985; s.pc = 19; return s.tmp_2; } + } + case 19: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["isActive"] = (s.tmp_1); + s.tmp_2 = if_isHidden_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "isHidden"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["isHidden"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["isHidden"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 986; s.pc = 20; return s.tmp_2; } + } + case 20: r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - { step = 3; continue; } + s.tmp_3 = if_isHidden_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "isHidden"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["isHidden"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["isHidden"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 987; s.pc = 21; return s.tmp_3; } + } + case 21: + r0 = s.retval; + { step = 2; continue; } case 1: + r0 = false; case 2: - s.tmp_2 = microcode_BufferWriter_writeByte__P4483_mk(s); + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["isHidden"] = (s.tmp_4); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["context"] = (s.tmp_1); + s.tmp_1 = if_xScaling_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "xScaling"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["xScaling"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["xScaling"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 988; s.pc = 22; return s.tmp_1; } + } + case 22: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_2 = if_xScaling_1_mk(s); s.tmp_2.arg0 = s.arg1; - s.tmp_3 = microcode_RuleDefn_sensor__P4049_mk(s); - s.tmp_3.arg0 = s.arg0; - s.callLocIdx = 945; s.pc = 6; return s.tmp_3; - case 6: + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "xScaling"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["xScaling"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["xScaling"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 989; s.pc = 23; return s.tmp_2; } + } + case 23: r0 = s.retval; - s.tmp_2.arg1 = r0; - s.callLocIdx = 946; s.pc = 5; return s.tmp_2; + { step = 4; continue; } + case 3: + r0 = s.arg0.fields["xScaling"]; + case 4: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = (s.arg0).fields["xScaling"] = (s.tmp_3); + s.tmp_1 = if_yScaling_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "yScaling"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["yScaling"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["yScaling"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 990; s.pc = 24; return s.tmp_1; } + } + case 24: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_2 = if_yScaling_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "yScaling"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["yScaling"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["yScaling"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 991; s.pc = 25; return s.tmp_2; } + } + case 25: + r0 = s.retval; + { step = 6; continue; } case 5: + r0 = s.arg0.fields["yScaling"]; + case 6: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = (s.arg0).fields["yScaling"] = (s.tmp_3); + s.tmp_1 = if_colour_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "colour"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["colour"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["colour"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 992; s.pc = 26; return s.tmp_1; } + } + case 26: r0 = s.retval; - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["filters"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.handleFieldEditors___19488; - s.callLocIdx = 947; s.pc = 7; return s.tmp_0; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.tmp_2 = if_colour_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "colour"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["colour"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["colour"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 993; s.pc = 27; return s.tmp_2; } + } + case 27: + r0 = s.retval; + { step = 8; continue; } case 7: + r0 = s.arg0.fields["backgroundColour"]; + case 8: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = (s.arg0).fields["backgroundColour"] = (s.tmp_3); + s.tmp_2 = if_xOffset_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "xOffset"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["xOffset"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["xOffset"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 994; s.pc = 28; return s.tmp_2; } + } + case 28: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_RuleDefn_toBuffer_inline__P19517); + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["actuators"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 949; s.pc = 8; return s.tmp_1; - case 8: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + s.tmp_3 = if_xOffset_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "xOffset"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["xOffset"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["xOffset"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 995; s.pc = 29; return s.tmp_3; } + } + case 29: r0 = s.retval; - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["modifiers"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.handleFieldEditors___19488; - s.callLocIdx = 950; s.pc = 9; return s.tmp_0; + { step = 10; continue; } case 9: + r0 = 0; + case 10: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["xOffset"] = (s.tmp_4); + s.tmp_2 = if_yOffset_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "yOffset"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["yOffset"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["yOffset"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 996; s.pc = 30; return s.tmp_2; } + } + case 30: r0 = s.retval; - case 3: + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 11; continue; } + s.tmp_3 = if_yOffset_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "yOffset"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["yOffset"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["yOffset"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 997; s.pc = 31; return s.tmp_3; } + } + case 31: + r0 = s.retval; + { step = 12; continue; } + case 11: + r0 = 0; + case 12: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["yOffset"] = (s.tmp_4); + s.tmp_0 = r0 = s.arg0; + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["unscaledWidth"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = globals.theScreen___3281; + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["unscaledHeight"] = (s.tmp_1); + s.tmp_2 = if_border_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "border"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["border"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["border"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1000; s.pc = 32; return s.tmp_2; } + } + case 32: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + s.tmp_3 = if_border_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "border"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["border"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["border"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1001; s.pc = 33; return s.tmp_3; } + } + case 33: + r0 = s.retval; + { step = 14; continue; } + case 13: + r0 = false; + case 14: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["hasBorder"] = (s.tmp_4); + s.tmp_2 = if_showBackground_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "showBackground"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["showBackground"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["showBackground"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1002; s.pc = 34; return s.tmp_2; } + } + case 34: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + s.tmp_3 = if_showBackground_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "showBackground"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["showBackground"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["showBackground"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1003; s.pc = 35; return s.tmp_3; } + } + case 35: + r0 = s.retval; + { step = 16; continue; } + case 15: + r0 = true; + case 16: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["showBackground"] = (s.tmp_4); + s.tmp_0 = microgui_GUIComponentAbstract_getLeftAndTop__P5525_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1004; s.pc = 36; return s.tmp_0; + case 36: + r0 = s.retval; + s.pos___21665 = (r0); + r0 = pxsim_Array__getAt(s.pos___21665, 0); + s.left___21668 = (r0); + r0 = pxsim_Array__getAt(s.pos___21665, 1); + s.top___21671 = (r0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_2); + r0 = s.arg0.fields["unscaledHeight"]; + s.tmp_6 = r0; + r0 = s.arg0.fields["yScaling"]; + s.tmp_7 = r0; + r0 = (s.tmp_6 * s.tmp_7); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_5); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.left___21668); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.top___21671); + s.tmp_8 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_8.arg0 = s.tmp_0; + s.tmp_8.arg1 = s.tmp_1; + s.callLocIdx = 1005; s.pc = 37; return s.tmp_8; + case 37: + r0 = s.retval; + r0 = (s.arg0).fields["bounds"] = (s.tmp_0); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleDefn_toBuffer__P4056.info = {"start":6970,"length":709,"line":215,"column":8,"endLine":232,"endColumn":9,"fileName":"language.ts","functionName":"toBuffer","argumentNames":["this","bw"]} +microgui_GUIComponentAbstract_constructor__P3931.info = {"start":3977,"length":1571,"line":104,"column":8,"endLine":149,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":["this","opts"]} -function microcode_RuleDefn_toBuffer__P4056_mk(s) { +function microgui_GUIComponentAbstract_constructor__P3931_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleDefn_toBuffer__P4056, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_constructor__P3931, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - handleFieldEditors___19488: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + pos___21665: undefined, + left___21668: undefined, + top___21671: undefined, arg0: undefined, arg1: undefined, } } @@ -54395,8 +61341,7 @@ function microcode_RuleDefn_toBuffer__P4056_mk(s) { - -function handleFieldEditors_inline__P19489(s) { +function microgui_GUIComponentScene_constructor__P3987(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54406,76 +61351,131 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.fieldEditor___19495 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = microcode_BufferWriter_writeByte__P4483_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_1 = microcode_getTid__P4041_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 940; s.pc = 4; return s.tmp_1; - case 4: + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentScene__C3986_VT)) failedCast(r0, microgui_GUIComponentScene__C3986_VT); + r0 = (s.arg0).fields["backgroundCaptured_"] = (false); + s.tmp_0 = user_interface_base_Scene_constructor__P3663_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_1 = if_app_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "app"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["app"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["app"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1092; s.pc = 6; return s.tmp_1; } + } + case 6: r0 = s.retval; s.tmp_0.arg1 = r0; - s.callLocIdx = 941; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = microcode_getFieldEditor__P4402_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 942; s.pc = 5; return s.tmp_0; + s.tmp_0.arg2 = undefined; + s.callLocIdx = 1093; s.pc = 5; return s.tmp_0; case 5: r0 = s.retval; - s.fieldEditor___19495 = (r0); - r0 = pxsim_numops_toBoolDecr(s.fieldEditor___19495); - if (!r0) { step = 1; continue; } - s.tmp_0 = microcode_BufferWriter_writeBuffer__P4484_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_1 = microcode_FieldEditor__C5806_v4_2_mk(s); - s.tmp_1.arg0 = s.fieldEditor___19495; - s.tmp_2 = microcode_ModifierEditor__C4403_v0_1_mk(s); - s.tmp_2.arg0 = s.arg0; - if (!checkSubtype(s.tmp_2.arg0, microcode_ModifierEditor__C4403_VT)) failedCast(s.tmp_2.arg0, microcode_ModifierEditor__C4403_VT); - s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.getField; - s.pc = 8; return s.tmp_2; - case 8: - r0 = s.retval; - s.tmp_1.arg1 = r0; - if (!checkSubtype(s.tmp_1.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_1.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.toBuffer; - s.pc = 7; return s.tmp_1; + s.tmp_2 = if_colour_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "colour"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["colour"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["colour"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1094; s.pc = 7; return s.tmp_2; } + } case 7: r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 943; s.pc = 6; return s.tmp_0; - case 6: + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = user_interface_base_Scene_backgroundColor__P3662_mk(s); + s.tmp_3.arg0 = s.arg0; + s.tmp_4 = if_colour_1_mk(s); + s.tmp_4.arg0 = s.arg1; + if (!s.tmp_4.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "colour"); + } else { + s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["colour"]; + if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["colour"]; } + else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } + else { s.callLocIdx = 1095; s.pc = 9; return s.tmp_4; } + } + case 9: + r0 = s.retval; + s.tmp_3.arg1 = r0; + s.callLocIdx = 1096; s.pc = 8; return s.tmp_3; + case 8: r0 = s.retval; case 1: case 2: + s.tmp_2 = if_components_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "components"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["components"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["components"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1097; s.pc = 10; return s.tmp_2; } + } + case 10: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_3 = if_components_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "components"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["components"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["components"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1098; s.pc = 11; return s.tmp_3; } + } + case 11: + r0 = s.retval; + { step = 4; continue; } + case 3: + r0 = pxsim_Array__mk(); + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["components"] = (s.tmp_4); + r0 = (s.arg0).fields["currentComponentID"] = (0); r0 = undefined; return leave(s, r0) default: oops() } } } -handleFieldEditors_inline__P19489.info = {"start":7045,"length":378,"line":216,"column":39,"endLine":226,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["tile"]} +microgui_GUIComponentScene_constructor__P3987.info = {"start":50236,"length":387,"line":1372,"column":8,"endLine":1384,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":["this","opts"]} -function handleFieldEditors_inline__P19489_mk(s) { +function microgui_GUIComponentScene_constructor__P3987_mk(s) { checkStack(s.depth); return { - parent: s, fn: handleFieldEditors_inline__P19489, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentScene_constructor__P3987, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - fieldEditor___19495: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_RuleDefn_toBuffer_inline__P19517(s) { +function microcode_Home_pickDiskSLot__P5996(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54485,36 +61485,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.btns___21720 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_BufferWriter_writeByte__P4483_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 948; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, microcode_Home__C4514_VT)) failedCast(r0, microcode_Home__C4514_VT); + s.tmp_0 = helpers_arrayMap__P2135_mk(s); + s.tmp_1 = microcode_diskSlots__P4453_mk(s); + s.callLocIdx = 1794; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = btns_inline__P21722; + s.callLocIdx = 1795; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.btns___21720 = (r0); + s.tmp_0 = user_interface_base_Picker_setGroup__P3729_mk(s); + r0 = s.arg0.fields["picker"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.btns___21720; + s.callLocIdx = 1796; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + s.tmp_2 = accessibility_ariaToTooltip__P3492_mk(s); + s.tmp_2.arg0 = "load"; + s.callLocIdx = 1797; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); + r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P21735); + s.tmp_3 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.btns___21720); + r0 = pxsim_pxtrt_stclo(s.tmp_3, 1, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_3); + s.tmp_4 = user_interface_base_Picker_show__P3731_mk(s); + r0 = s.arg0.fields["picker"]; + s.tmp_4.arg0 = r0; + s.tmp_4.arg1 = s.tmp_0; + s.tmp_4.arg2 = true; + s.callLocIdx = 1804; s.pc = 5; return s.tmp_4; + case 5: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleDefn_toBuffer_inline__P19517.info = {"start":7589,"length":24,"line":230,"column":35,"endLine":230,"endColumn":59,"fileName":"language.ts","functionName":"inline","argumentNames":["act"]} +microcode_Home_pickDiskSLot__P5996.info = {"start":3101,"length":916,"line":80,"column":8,"endLine":102,"endColumn":9,"fileName":"home.ts","functionName":"pickDiskSLot","argumentNames":["this"]} -function microcode_RuleDefn_toBuffer_inline__P19517_mk(s) { +function microcode_Home_pickDiskSLot__P5996_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleDefn_toBuffer_inline__P19517, depth: s.depth + 1, + parent: s, fn: microcode_Home_pickDiskSLot__P5996, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + btns___21720: undefined, arg0: undefined, } } - -function microcode_FieldEditor_toBuffer__P5811(s) { +function btns_inline__P21722(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54526,31 +61567,30 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_FieldEditor__C5806_VT)) failedCast(r0, microcode_FieldEditor__C5806_VT); - r0 = undefined; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", s.arg0); + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -microcode_FieldEditor_toBuffer__P5811.info = {"start":751,"length":69,"line":26,"column":8,"endLine":28,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toBuffer","argumentNames":["this","field"]} +btns_inline__P21722.info = {"start":3186,"length":98,"line":81,"column":60,"endLine":85,"endColumn":13,"fileName":"home.ts","functionName":"inline","argumentNames":["slot"]} -function microcode_FieldEditor_toBuffer__P5811_mk(s) { +function btns_inline__P21722_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_FieldEditor_toBuffer__P5811, depth: s.depth + 1, + parent: s, fn: btns_inline__P21722, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_BufferWriter_writeBuffer__P4484(s) { +function onClick_inline__P21735(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54560,100 +61600,117 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.i___19531 = undefined; + s.buf___21737 = undefined; + s.i___21747 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferWriter__C4479_VT)) failedCast(r0, microcode_BufferWriter__C4479_VT); - s.i___19531 = (0); + s.tmp_1 = if_icon_1_mk(s); + r0 = pxsim_Array__getAt(s.caps[0], s.arg0); + s.tmp_1.arg0 = r0; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "icon"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["icon"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["icon"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1798; s.pc = 5; return s.tmp_1; } + } + case 5: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim.settings._get(s.tmp_0); + s.buf___21737 = (r0); + r0 = pxsim_numops_toBoolDecr(s.buf___21737); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim.control.createBuffer(6); + s.buf___21737 = (r0); + s.i___21747 = (0); case 1: - s.tmp_1 = r0 = s.i___19531; - r0 = pxsim.BufferMethods.length(s.arg1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = (s.i___21747 < 5); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 2; continue; } - s.tmp_3 = microcode_BufferWriter_writeByte__P4483_mk(s); - s.tmp_3.arg0 = s.arg0; - r0 = pxsim.BufferMethods.getByte(s.arg1, s.i___19531); - s.tmp_3.arg1 = r0; - s.callLocIdx = 1647; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; - r0 = (s.i___19531 + 1); - s.i___19531 = (r0); + r0 = pxsim.BufferMethods.setByte(s.buf___21737, s.i___21747, 1); + r0 = (s.i___21747 + 1); + s.i___21747 = (r0); { step = 1; continue; } case 2: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_BufferWriter_writeBuffer__P4484.info = {"start":1103,"length":109,"line":41,"column":8,"endLine":43,"endColumn":9,"fileName":"utils.ts","functionName":"writeBuffer","argumentNames":["this","b"]} - -function microcode_BufferWriter_writeBuffer__P4484_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_BufferWriter_writeBuffer__P4484, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - i___19531: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function microcode_BufferWriter_constructor__P4480(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; + r0 = pxsim.BufferMethods.setByte(s.buf___21737, 5, 0); + case 3: + case 4: + s.tmp_0 = settings_writeBuffer__P4012_mk(s); + s.tmp_0.arg0 = globals.SAVESLOT_AUTO___4438; + s.tmp_0.arg1 = s.buf___21737; + s.callLocIdx = 1800; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = if_popScene_1_mk(s); + r0 = s.caps[1].fields["app"]; + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); + s.callLocIdx = 1801; s.pc = 7; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1801; s.pc = 7; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1801; s.pc = 7; return s.tmp_0;; } + else { s.callLocIdx = 1801; s.pc = 7; return s.tmp_0; } } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_BufferWriter__C4479_VT)) failedCast(r0, microcode_BufferWriter__C4479_VT); - r0 = (s.arg0).fields["ptr"] = (0); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim.control.createBuffer(64); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["buf"] = (s.tmp_1); + case 7: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(microcode_Editor__C4454_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_Editor_constructor__P4461_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.caps[1].fields["app"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1802; s.pc = 8; return s.tmp_1; + case 8: + r0 = s.retval; + s.tmp_2 = if_pushScene_2_mk(s); + r0 = s.caps[1].fields["app"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); + s.callLocIdx = 1803; s.pc = 9; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1803; s.pc = 9; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1803; s.pc = 9; return s.tmp_2;; } + else { s.callLocIdx = 1803; s.pc = 9; return s.tmp_2; } + } + case 9: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_BufferWriter_constructor__P4480.info = {"start":375,"length":66,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"utils.ts","functionName":"inline","argumentNames":["this"]} +onClick_inline__P21735.info = {"start":3441,"length":550,"line":89,"column":25,"endLine":100,"endColumn":17,"fileName":"home.ts","functionName":"inline","argumentNames":["index"]} -function microcode_BufferWriter_constructor__P4480_mk(s) { +function onClick_inline__P21735_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_BufferWriter_constructor__P4480, depth: s.depth + 1, + parent: s, fn: onClick_inline__P21735, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + buf___21737: undefined, + i___21747: undefined, arg0: undefined, } } - -function microcode_Language_ensureValid__P4075(s) { +function user_interface_base_CursorScene_draw__P3810(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54667,63 +61724,39 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0.fields["sensors"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_4 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["filters"] = (s.tmp_5); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0 = user_interface_base_Picker_draw__P3733_mk(s); + r0 = s.arg0.fields["picker"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 843; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_0 = user_interface_base_Cursor_draw__P3716_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 844; s.pc = 2; return s.tmp_0; case 2: - r0 = s.arg0.fields["actuators"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_4 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_5 = r0; - r0 = (s.tmp_4).fields["modifiers"] = (s.tmp_5); - case 3: - case 4: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Language_ensureValid__P4075.info = {"start":15044,"length":391,"line":462,"column":8,"endLine":472,"endColumn":9,"fileName":"language.ts","functionName":"ensureValid","argumentNames":["rule"]} +user_interface_base_CursorScene_draw__P3810.info = {"start":4063,"length":64,"line":156,"column":23,"endLine":159,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"draw","argumentNames":["this"]} -function microcode_Language_ensureValid__P4075_mk(s) { +function user_interface_base_CursorScene_draw__P3810_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Language_ensureValid__P4075, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_draw__P3810, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, arg0: undefined, } } - -function microcode_RuleDefn_deleteAt__P4054(s) { +function user_interface_base_CursorScene_update__P3809(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54733,68 +61766,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ruleTiles___19566 = undefined; - s.tile___19571 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - s.tmp_1 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 923; s.pc = 1; return s.tmp_1; + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0 = user_interface_base_Cursor_update__P3715_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 842; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg1); - s.ruleTiles___19566 = (r0); - r0 = pxsim_Array__getAt(s.ruleTiles___19566, s.arg2); - s.tile___19571 = (r0); - s.tmp_0 = helpers_arraySplice__P2129_mk(s); - s.tmp_0.arg0 = s.ruleTiles___19566; - s.tmp_0.arg1 = s.arg2; - s.tmp_0.arg2 = 1; - s.callLocIdx = 924; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - s.tmp_0 = microcode_RuleDefn_fixup__P4052_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 925; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = microcode_RuleDefn_deleteIncompatibleTiles__P5713_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 926; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - r0 = false; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleDefn_deleteAt__P4054.info = {"start":5169,"length":284,"line":165,"column":8,"endLine":172,"endColumn":9,"fileName":"language.ts","functionName":"deleteAt","argumentNames":["this","name","index"]} +user_interface_base_CursorScene_update__P3809.info = {"start":3995,"length":43,"line":152,"column":23,"endLine":154,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"update","argumentNames":["this"]} -function microcode_RuleDefn_deleteAt__P4054_mk(s) { +function user_interface_base_CursorScene_update__P3809_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleDefn_deleteAt__P4054, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_update__P3809, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - ruleTiles___19566: undefined, - tile___19571: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_RuleDefn_deleteIncompatibleTiles__P5713(s) { +function user_interface_base_CursorScene_activate__P3808(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54804,54 +61806,93 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.doit___19581 = undefined; + s.btn___21787 = undefined; + s.w___21793 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - r0 = pxsim_pxtcore_mkAction(1, doit_inline__P19582); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.doit___19581 = (s.tmp_0); - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.doit___19581; - s.tmp_0.arg0 = "filters"; - s.tmp_0.arg1 = 0; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 934; s.pc = 1; return s.tmp_0; - case 1: + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0 = user_interface_base_Scene_activate__P3666_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 832; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.doit___19581; - s.tmp_0.arg0 = "modifiers"; + s.tmp_0 = if_initialCursor_3_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; s.tmp_0.arg1 = 0; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 935; s.pc = 2; return s.tmp_0; - case 2: + s.tmp_0.arg2 = 0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "initialCursor"), 3); + s.callLocIdx = 833; s.pc = 4; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["initialCursor"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["initialCursor"], 3); s.callLocIdx = 833; s.pc = 4; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 833; s.pc = 4; return s.tmp_0;; } + else { s.callLocIdx = 833; s.pc = 4; return s.tmp_0; } + } + case 4: + r0 = s.retval; + s.btn___21787 = (r0); + r0 = pxsim_numops_toBoolDecr(s.btn___21787); + if (!r0) { step = 1; continue; } + s.tmp_0 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.btn___21787.fields["xfrm_"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 835; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.w___21793 = (r0); + s.tmp_0 = user_interface_base_Cursor_snapTo__P3706_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_0.arg0 = r0; + r0 = s.w___21793.fields["x_"]; + s.tmp_0.arg1 = r0; + r0 = s.w___21793.fields["y_"]; + s.tmp_0.arg2 = r0; + r0 = s.btn___21787.fields["_ariaId"]; + s.tmp_0.arg3 = r0; + s.tmp_1 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_1.arg0 = s.btn___21787; + s.callLocIdx = 839; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + s.tmp_0.arg4 = r0; + s.callLocIdx = 840; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = user_interface_base_Button_reportAria__P3649_mk(s); + s.tmp_0.arg0 = s.btn___21787; + s.tmp_0.arg1 = true; + s.callLocIdx = 841; s.pc = 8; return s.tmp_0; + case 8: r0 = s.retval; + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleDefn_deleteIncompatibleTiles__P5713.info = {"start":5602,"length":734,"line":178,"column":8,"endLine":197,"endColumn":9,"fileName":"language.ts","functionName":"deleteIncompatibleTiles","argumentNames":["this"]} +user_interface_base_CursorScene_activate__P3808.info = {"start":3725,"length":245,"line":142,"column":23,"endLine":150,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"activate","argumentNames":["this"]} -function microcode_RuleDefn_deleteIncompatibleTiles__P5713_mk(s) { +function user_interface_base_CursorScene_activate__P3808_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleDefn_deleteIncompatibleTiles__P5713, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_activate__P3808, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - doit___19581: undefined, + tmp_1: undefined, + btn___21787: undefined, + w___21793: undefined, arg0: undefined, } } - -function doit_inline__P19582(s) { +function user_interface_base_CursorScene_startup__P3805(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54861,111 +61902,164 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ruleTiles___19585 = undefined; - s.suggestions___19595 = undefined; - s.compatible___19600 = undefined; + s.click___21840 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtrt.mklocRef(); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0 = user_interface_base_Scene_startup__P3664_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 817; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P21816); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.arg1); - s.arg1 = (s.tmp_0); - s.tmp_2 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - s.tmp_2.arg0 = s.caps[0]; - s.callLocIdx = 928; s.pc = 6; return s.tmp_2; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.right___3243.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 818; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P21823); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.up___3242.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 819; s.pc = 5; return s.tmp_1; + case 5: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P21830); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.down___3244.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 820; s.pc = 6; return s.tmp_1; case 6: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.arg0); - s.ruleTiles___19585 = (r0); - case 1: - r0 = pxsim_pxtrt_ldlocRef(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Array__length(s.ruleTiles___19585); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P21837); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_3 = microcode_RuleDefn_getSuggestions__P5712_mk(s); - s.tmp_3.arg0 = s.caps[0]; - s.tmp_3.arg1 = s.arg0; - r0 = pxsim_pxtrt_ldlocRef(s.arg1); - s.tmp_3.arg2 = r0; - s.callLocIdx = 929; s.pc = 7; return s.tmp_3; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.left___3241.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 821; s.pc = 7; return s.tmp_1; case 7: r0 = s.retval; - s.suggestions___19595 = (r0); - r0 = pxsim_pxtcore_mkAction(2, compatible_inline__P19602); + r0 = pxsim_pxtcore_mkAction(1, click_inline__P21841); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.ruleTiles___19585); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); - s.tmp_1 = helpers_arrayFind__P2140_mk(s); - s.tmp_1.arg0 = s.suggestions___19595; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 932; s.pc = 8; return s.tmp_1; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.click___21840 = (s.tmp_0); + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.A___3239.fields["id"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = s.click___21840; + s.tmp_0.arg3 = 16; + s.callLocIdx = 823; s.pc = 8; return s.tmp_0; case 8: r0 = s.retval; - s.compatible___19600 = (r0); - r0 = pxsim_numops_toBoolDecr(s.compatible___19600); - if (!r0) { step = 2; continue; } - s.tmp_0 = r0 = s.arg1; - r0 = pxsim_pxtrt_ldlocRef(s.arg1); - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); + s.tmp_0 = context_onEvent__P3247_mk(s); + s.tmp_0.arg0 = 2049; + r0 = globals.A___3239.fields["id"]; s.tmp_1 = r0; - r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); - { step = 3; continue; } - case 2: - s.tmp_0 = helpers_arraySplice__P2129_mk(s); - s.tmp_0.arg0 = s.ruleTiles___19585; - r0 = pxsim_pxtrt_ldlocRef(s.arg1); + r0 = (s.tmp_1 + 7); s.tmp_0.arg1 = r0; - r0 = pxsim_Array__length(s.ruleTiles___19585); + s.tmp_0.arg2 = s.click___21840; + s.tmp_0.arg3 = 16; + s.callLocIdx = 824; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, user_interface_base_CursorScene_startup_inline__P21861); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.B___3240.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 826; s.pc = 10; return s.tmp_1; + case 10: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Cursor__C3691_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Cursor_constructor__P3703_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 827; s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + r0 = (s.arg0).fields["cursor"] = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Picker__C3721_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_Picker_constructor__P3728_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.arg0.fields["cursor"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 828; s.pc = 12; return s.tmp_1; + case 12: + r0 = s.retval; + r0 = (s.arg0).fields["picker"] = (s.tmp_0); + r0 = s.arg0.fields["navigator"]; s.tmp_1 = r0; - r0 = pxsim_pxtrt_ldlocRef(s.arg1); + r0 = (s.tmp_1 == null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_RowNavigator__C3753_VT); s.tmp_2 = r0; - r0 = (s.tmp_1 - s.tmp_2); - s.tmp_0.arg2 = r0; - s.callLocIdx = 933; s.pc = 9; return s.tmp_0; - case 9: + s.tmp_3 = user_interface_base_RowNavigator_constructor__P3754_mk(s); + s.tmp_3.arg0 = s.tmp_2; + s.callLocIdx = 829; s.pc = 13; return s.tmp_3; + case 13: r0 = s.retval; - r0 = false; - { step = 5; continue; } - case 3: - { step = 1; continue; } - case 4: - r0 = true; - case 5: + r0 = (s.arg0).fields["navigator"] = (s.tmp_2); + case 1: + case 2: + r0 = s.arg0.fields["cursor"]; + s.tmp_0 = r0; + r0 = s.arg0.fields["navigator"]; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["navigator"] = (s.tmp_1); + r0 = undefined; return leave(s, r0) default: oops() } } } -doit_inline__P19582.info = {"start":5663,"length":599,"line":179,"column":25,"endLine":194,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["name","i"]} +user_interface_base_CursorScene_startup__P3805.info = {"start":1500,"length":1238,"line":56,"column":4,"endLine":102,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"startup","argumentNames":["this"]} -function doit_inline__P19582_mk(s) { +function user_interface_base_CursorScene_startup__P3805_mk(s) { checkStack(s.depth); return { - parent: s, fn: doit_inline__P19582, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_startup__P3805, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - ruleTiles___19585: undefined, - suggestions___19595: undefined, - compatible___19600: undefined, + click___21840: undefined, arg0: undefined, - arg1: undefined, } } - -function compatible_inline__P19602(s) { +function user_interface_base_CursorScene_startup_inline__P21816(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -54975,51 +62069,32 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_1 = microcode_getTid__P4041_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 930; s.pc = 1; return s.tmp_1; + s.tmp_0 = user_interface_base_CursorScene__C3799_v6_2_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 3; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_CursorScene__C3799_VT)) failedCast(s.tmp_0.arg0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.moveCursor; + s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = r0; - s.tmp_3 = microcode_getTid__P4041_mk(s); - s.tmp_4 = r0 = s.caps[0]; - r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); - s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); - s.tmp_3.arg0 = r0; - s.callLocIdx = 931; s.pc = 2; return s.tmp_3; - case 2: - r0 = s.retval; - s.tmp_2 = r0; - r0 = (s.tmp_0 == s.tmp_2); + r0 = undefined; return leave(s, r0) default: oops() } } } -compatible_inline__P19602.info = {"start":5950,"length":38,"line":185,"column":24,"endLine":185,"endColumn":62,"fileName":"language.ts","functionName":"inline","argumentNames":["t"]} +user_interface_base_CursorScene_startup_inline__P21816.info = {"start":1633,"length":38,"line":61,"column":8,"endLine":61,"endColumn":46,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} -function compatible_inline__P19602_mk(s) { +function user_interface_base_CursorScene_startup_inline__P21816_mk(s) { checkStack(s.depth); return { - parent: s, fn: compatible_inline__P19602, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_startup_inline__P21816, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - arg0: undefined, } } - -function microcode_RuleDefn_getSuggestions__P5712(s) { +function user_interface_base_CursorScene_startup_inline__P21823(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55029,429 +62104,67 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - s.tmp_0 = microcode_Language_getTileSuggestions__P4074_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = s.arg2; - s.callLocIdx = 927; s.pc = 1; return s.tmp_0; + s.tmp_0 = user_interface_base_CursorScene__C3799_v6_2_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_CursorScene__C3799_VT)) failedCast(s.tmp_0.arg0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.moveCursor; + s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleDefn_getSuggestions__P5712.info = {"start":5463,"length":129,"line":174,"column":8,"endLine":176,"endColumn":9,"fileName":"language.ts","functionName":"getSuggestions","argumentNames":["this","name","index"]} +user_interface_base_CursorScene_startup_inline__P21823.info = {"start":1776,"length":35,"line":66,"column":8,"endLine":66,"endColumn":43,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} -function microcode_RuleDefn_getSuggestions__P5712_mk(s) { +function user_interface_base_CursorScene_startup_inline__P21823_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleDefn_getSuggestions__P5712, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_startup_inline__P21823, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, - arg1: undefined, - arg2: undefined, } } - - -function microcode_Language_getTileSuggestions__P4074(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.tile___19634 = undefined; - s.rangeName___19642 = undefined; - s.lower___19655 = undefined; - s.upper___19656 = undefined; - s.all___19657 = undefined; - s.i___19659 = undefined; - s.ed___19665 = undefined; - s.existing___19714 = undefined; - s.ruleRep___19716 = undefined; - s.i___19720 = undefined; - s.tile___19725 = undefined; - s.last___19740 = undefined; - s.collect___19764 = undefined; - s.src___19773 = undefined; - s.src___19785 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.lambdaArgs = null; - } - s.tmp_2 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1017; s.pc = 38; return s.tmp_2; - case 38: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.arg1); - s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.arg2); - s.tile___19634 = (r0); - s.rangeName___19642 = (s.arg1); - s.tmp_1 = microcode_isComparisonOperator__P4257_mk(s); - s.tmp_2 = microcode_getTid__P4041_mk(s); - s.tmp_2.arg0 = s.tile___19634; - s.callLocIdx = 1018; s.pc = 40; return s.tmp_2; - case 40: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1019; s.pc = 39; return s.tmp_1; - case 39: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.rangeName___19642 = ("comparisonOperators"); - { step = 4; continue; } - case 1: - s.tmp_1 = microcode_isMathOperator__P4256_mk(s); - s.tmp_2 = microcode_getTid__P4041_mk(s); - s.tmp_2.arg0 = s.tile___19634; - s.callLocIdx = 1020; s.pc = 42; return s.tmp_2; - case 42: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1021; s.pc = 41; return s.tmp_1; - case 41: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.rangeName___19642 = ("mathOperators"); - case 2: - case 3: - case 4: - r0 = pxsim_pxtrt.mapGetGeneric(globals.ranges___4250, s.rangeName___19642); - s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, 0); - s.lower___19655 = (r0); - r0 = pxsim_Array__getAt(s.tmp_0, 1); - s.upper___19656 = (r0); - r0 = pxsim_Array__mk(); - s.all___19657 = (r0); - s.i___19659 = (s.lower___19655); - case 5: - r0 = (s.i___19659 <= s.upper___19656); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.tmp_1 = microcode_getEditor__P4456_mk(s); - s.tmp_1.arg0 = s.i___19659; - s.callLocIdx = 1022; s.pc = 43; return s.tmp_1; - case 43: - r0 = s.retval; - s.ed___19665 = (r0); - r0 = pxsim_numops_toBoolDecr(s.ed___19665); - if (!r0) { step = 6; continue; } - r0 = pxsim_Array__push(s.all___19657, s.ed___19665); - { step = 7; continue; } - case 6: - r0 = pxsim_Array__push(s.all___19657, s.i___19659); - case 7: - r0 = (s.i___19659 + 1); - s.i___19659 = (r0); - { step = 5; continue; } - case 8: - r0 = (s.rangeName___19642 == "filters"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = s.tmp_0; - { step = 10; continue; } - case 9: - r0 = (s.rangeName___19642 == "modifiers"); - case 10: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 11; continue; } - s.tmp_2 = r0 = s.all___19657; - s.tmp_4 = microcode_getEditor__P4456_mk(s); - s.tmp_4.arg0 = 255; - s.callLocIdx = 1023; s.pc = 44; return s.tmp_4; - case 44: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_Array__push(s.tmp_2, s.tmp_3); - case 11: - case 12: - s.tmp_0 = helpers_arraySort__P2134_mk(s); - s.tmp_1 = helpers_arrayFilter__P2139_mk(s); - s.tmp_1.arg0 = s.all___19657; - s.tmp_1.arg1 = sort_inline__P19695; - s.callLocIdx = 1025; s.pc = 46; return s.tmp_1; - case 46: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = microcode_Language_getTileSuggestions_inline__P19699; - s.callLocIdx = 1028; s.pc = 45; return s.tmp_0; - case 45: - r0 = s.retval; - s.all___19657 = (r0); - r0 = (s.arg1 === "sensors"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 13; continue; } - r0 = s.tmp_0; - { step = 14; continue; } - case 13: - r0 = (s.arg1 === "actuators"); - case 14: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 15; continue; } - r0 = s.all___19657; - { step = 37; continue; } - case 15: - case 16: - r0 = pxsim_Array__mk(); - s.existing___19714 = (r0); - s.tmp_0 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1029; s.pc = 47; return s.tmp_0; - case 47: - r0 = s.retval; - s.ruleRep___19716 = (r0); - s.i___19720 = (0); - case 17: - r0 = (s.i___19720 < s.arg2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 18; continue; } - r0 = pxsim_pxtrt.mapGetGeneric(s.ruleRep___19716, s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.i___19720); - s.tile___19725 = (r0); - r0 = pxsim_Array__push(s.existing___19714, s.tile___19725); - r0 = (s.i___19720 + 1); - s.i___19720 = (r0); - { step = 17; continue; } - case 18: - r0 = pxsim_Array__length(s.existing___19714); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 29; continue; } - s.tmp_1 = r0 = s.existing___19714; - r0 = pxsim_Array__length(s.existing___19714); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); - s.last___19740 = (r0); - s.tmp_1 = microcode_isTerminal__P4260_mk(s); - s.tmp_1.arg0 = s.last___19740; - s.callLocIdx = 1030; s.pc = 48; return s.tmp_1; - case 48: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 19; continue; } - r0 = s.tmp_0; - { step = 22; continue; } - case 19: - r0 = (s.arg1 === "filters"); - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 20; continue; } - r0 = s.tmp_2; - { step = 21; continue; } - case 20: - s.tmp_3 = microcode_isTerminal__P4260_mk(s); - r0 = s.arg0.fields["sensors"]; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, 0); - s.tmp_3.arg0 = r0; - s.callLocIdx = 1031; s.pc = 49; return s.tmp_3; - case 49: - r0 = s.retval; - case 21: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = s.tmp_5; - case 22: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = pxsim_numops_toBool(s.tmp_6); - if (!r0) { step = 23; continue; } - r0 = s.tmp_6; - { step = 26; continue; } - case 23: - r0 = (s.arg1 === "modifiers"); - s.tmp_7 = r0; - r0 = pxsim_numops_toBool(s.tmp_7); - if (r0) { step = 24; continue; } - r0 = s.tmp_7; - { step = 25; continue; } - case 24: - s.tmp_8 = microcode_isTerminal__P4260_mk(s); - r0 = s.arg0.fields["actuators"]; - s.tmp_9 = r0; - r0 = pxsim_Array__getAt(s.tmp_9, 0); - s.tmp_8.arg0 = r0; - s.callLocIdx = 1032; s.pc = 50; return s.tmp_8; - case 50: - r0 = s.retval; - case 25: - // jmp value (already in r0) - s.tmp_10 = r0; - r0 = s.tmp_10; - case 26: - // jmp value (already in r0) - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 27; continue; } - r0 = pxsim_Array__mk(); - { step = 37; continue; } - case 27: - case 28: - case 29: - case 30: - s.tmp_12 = microcode_mkConstraints__P5714_mk(s); - s.callLocIdx = 1033; s.pc = 51; return s.tmp_12; - case 51: - r0 = s.retval; - s.collect___19764 = (r0); - r0 = (s.arg1 === "modifiers"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 31; continue; } - r0 = s.tmp_0; - { step = 32; continue; } - case 31: - r0 = s.arg0.fields["actuators"]; - s.tmp_1 = r0; - r0 = pxsim_Array__length(s.tmp_1); - case 32: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 33; continue; } - s.tmp_3 = microcode_getConstraints__P4266_mk(s); - r0 = s.arg0.fields["actuators"]; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, 0); - s.tmp_3.arg0 = r0; - s.callLocIdx = 1034; s.pc = 52; return s.tmp_3; - case 52: - r0 = s.retval; - s.src___19773 = (r0); - s.tmp_0 = microcode_mergeConstraints__P5707_mk(s); - s.tmp_0.arg0 = s.src___19773; - s.tmp_0.arg1 = s.collect___19764; - s.callLocIdx = 1035; s.pc = 53; return s.tmp_0; - case 53: - r0 = s.retval; - case 33: - case 34: - r0 = s.arg0.fields["sensors"]; - s.tmp_1 = r0; - r0 = pxsim_Array__length(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 35; continue; } - s.tmp_2 = microcode_getConstraints__P4266_mk(s); - r0 = s.arg0.fields["sensors"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_3, 0); - s.tmp_2.arg0 = r0; - s.callLocIdx = 1036; s.pc = 54; return s.tmp_2; - case 54: - r0 = s.retval; - s.src___19785 = (r0); - s.tmp_0 = microcode_mergeConstraints__P5707_mk(s); - s.tmp_0.arg0 = s.src___19785; - s.tmp_0.arg1 = s.collect___19764; - s.callLocIdx = 1037; s.pc = 55; return s.tmp_0; - case 55: - r0 = s.retval; - case 35: - case 36: - r0 = pxsim_pxtcore_mkAction(1, microcode_Language_getTileSuggestions_inline__P19796); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.collect___19764); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_1.arg0 = s.existing___19714; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1040; s.pc = 56; return s.tmp_1; - case 56: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_Language_getTileSuggestions_inline__P19807); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.collect___19764); - s.tmp_1 = helpers_arrayFilter__P2139_mk(s); - s.tmp_1.arg0 = s.all___19657; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1045; s.pc = 57; return s.tmp_1; - case 57: + +function user_interface_base_CursorScene_startup_inline__P21830(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = user_interface_base_CursorScene__C3799_v6_2_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 1; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_CursorScene__C3799_VT)) failedCast(s.tmp_0.arg0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.moveCursor; + s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - case 37: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Language_getTileSuggestions__P4074.info = {"start":12250,"length":2784,"line":386,"column":8,"endLine":460,"endColumn":9,"fileName":"language.ts","functionName":"getTileSuggestions","argumentNames":["rule","name","index"]} +user_interface_base_CursorScene_startup_inline__P21830.info = {"start":1918,"length":37,"line":71,"column":8,"endLine":71,"endColumn":45,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} -function microcode_Language_getTileSuggestions__P4074_mk(s) { +function user_interface_base_CursorScene_startup_inline__P21830_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Language_getTileSuggestions__P4074, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_startup_inline__P21830, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tile___19634: undefined, - rangeName___19642: undefined, - lower___19655: undefined, - upper___19656: undefined, - all___19657: undefined, - i___19659: undefined, - ed___19665: undefined, - existing___19714: undefined, - ruleRep___19716: undefined, - i___19720: undefined, - tile___19725: undefined, - last___19740: undefined, - collect___19764: undefined, - src___19773: undefined, - src___19785: undefined, - arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function sort_inline__P19695(s) { +function user_interface_base_CursorScene_startup_inline__P21837(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55461,34 +62174,32 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = microcode_isVisible__P4261_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1024; s.pc = 1; return s.tmp_0; + s.tmp_0 = user_interface_base_CursorScene__C3799_v6_2_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = 2; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_CursorScene__C3799_VT)) failedCast(s.tmp_0.arg0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.moveCursor; + s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -sort_inline__P19695.info = {"start":13213,"length":31,"line":411,"column":24,"endLine":411,"endColumn":55,"fileName":"language.ts","functionName":"inline","argumentNames":["tile"]} +user_interface_base_CursorScene_startup_inline__P21837.info = {"start":2062,"length":37,"line":76,"column":8,"endLine":76,"endColumn":45,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} -function sort_inline__P19695_mk(s) { +function user_interface_base_CursorScene_startup_inline__P21837_mk(s) { checkStack(s.depth); return { - parent: s, fn: sort_inline__P19695, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_startup_inline__P21837, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, } } - -function microcode_Language_getTileSuggestions_inline__P19699(s) { +function click_inline__P21841(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55498,47 +62209,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - s.tmp_1 = microcode_priority__P4265_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1026; s.pc = 1; return s.tmp_1; + s.tmp_0 = user_interface_base_Cursor_click__P3712_mk(s); + r0 = s.caps[0].fields["cursor"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 822; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = r0; - s.tmp_3 = microcode_priority__P4265_mk(s); - s.tmp_3.arg0 = s.arg1; - s.callLocIdx = 1027; s.pc = 2; return s.tmp_3; - case 2: - r0 = s.retval; - s.tmp_2 = r0; - r0 = (s.tmp_0 - s.tmp_2); return leave(s, r0) default: oops() } } } -microcode_Language_getTileSuggestions_inline__P19699.info = {"start":13268,"length":39,"line":412,"column":22,"endLine":412,"endColumn":61,"fileName":"language.ts","functionName":"inline","argumentNames":["t1","t2"]} +click_inline__P21841.info = {"start":2144,"length":25,"line":80,"column":20,"endLine":80,"endColumn":45,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} -function microcode_Language_getTileSuggestions_inline__P19699_mk(s) { +function click_inline__P21841_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Language_getTileSuggestions_inline__P19699, depth: s.depth + 1, + parent: s, fn: click_inline__P21841, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, - arg1: undefined, } } - -function microcode_Language_getTileSuggestions_inline__P19796(s) { +function user_interface_base_CursorScene_startup_inline__P21861(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55548,44 +62241,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.src___19798 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = microcode_getConstraints__P4266_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1038; s.pc = 1; return s.tmp_0; + s.tmp_0 = user_interface_base_CursorScene_back__P3806_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.callLocIdx = 825; s.pc = 1; return s.tmp_0; case 1: - r0 = s.retval; - s.src___19798 = (r0); - s.tmp_0 = microcode_mergeConstraints__P5707_mk(s); - s.tmp_0.arg0 = s.src___19798; - s.tmp_0.arg1 = s.caps[0]; - s.callLocIdx = 1039; s.pc = 2; return s.tmp_0; - case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Language_getTileSuggestions_inline__P19796.info = {"start":14595,"length":119,"line":447,"column":29,"endLine":450,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["tile"]} +user_interface_base_CursorScene_startup_inline__P21861.info = {"start":2506,"length":17,"line":94,"column":8,"endLine":94,"endColumn":25,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"inline","argumentNames":[]} -function microcode_Language_getTileSuggestions_inline__P19796_mk(s) { +function user_interface_base_CursorScene_startup_inline__P21861_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Language_getTileSuggestions_inline__P19796, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_startup_inline__P21861, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - src___19798: undefined, - arg0: undefined, } } - -function microcode_Language_getTileSuggestions_inline__P19807(s) { +function user_interface_base_CursorScene_back__P3806(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55595,71 +62273,58 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.src___19809 = undefined; - s.cat___19813 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getConstraints__P4266_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1041; s.pc = 3; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); + s.tmp_3 = user_interface_base_Cursor_cancel__P3713_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 830; s.pc = 3; return s.tmp_3; case 3: r0 = s.retval; - s.src___19809 = (r0); - s.tmp_0 = microcode_getCategory__P4267_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1042; s.pc = 4; return s.tmp_0; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_4 = user_interface_base_CursorScene__C3799_v6_2_mk(s); + s.tmp_4.arg0 = s.arg0; + s.tmp_4.arg1 = 4; + if (!checkSubtype(s.tmp_4.arg0, user_interface_base_CursorScene__C3799_VT)) failedCast(s.tmp_4.arg0, user_interface_base_CursorScene__C3799_VT); + s.tmp_4.fn = s.tmp_4.arg0.vtable.methods.moveCursor; + s.pc = 4; return s.tmp_4; case 4: r0 = s.retval; - s.cat___19813 = (r0); - s.tmp_1 = microcode_isCompatibleWith__P5708_mk(s); - s.tmp_1.arg0 = s.src___19809; - s.tmp_1.arg1 = s.caps[0]; - s.callLocIdx = 1043; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } case 1: - s.tmp_2 = microcode_filterModifierCompat__P5709_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = s.cat___19813; - s.tmp_2.arg2 = s.caps[0]; - s.callLocIdx = 1044; s.pc = 6; return s.tmp_2; - case 6: - r0 = s.retval; case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Language_getTileSuggestions_inline__P19807.info = {"start":14747,"length":276,"line":452,"column":30,"endLine":459,"endColumn":13,"fileName":"language.ts","functionName":"inline","argumentNames":["tile"]} +user_interface_base_CursorScene_back__P3806.info = {"start":2883,"length":79,"line":108,"column":4,"endLine":110,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"back","argumentNames":["this"]} -function microcode_Language_getTileSuggestions_inline__P19807_mk(s) { +function user_interface_base_CursorScene_back__P3806_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Language_getTileSuggestions_inline__P19807, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_back__P3806, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - src___19809: undefined, - cat___19813: undefined, + tmp_4: undefined, arg0: undefined, } } - -function microcode_filterModifierCompat__P5709(s) { +function user_interface_base_CursorScene_moveCursor__P3804(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55669,175 +62334,125 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___19829 = undefined; - s.only___19833 = undefined; - s.allows___19851 = undefined; - s.disallows___19867 = undefined; + s.e___21902 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); + r0 = pxsim_pxtcore.beginTry(1); + s.tmp_0 = user_interface_base_CursorScene_moveTo__P5287_mk(s); s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 885; s.pc = 10; return s.tmp_0; - case 10: + s.tmp_1 = user_interface_base_Cursor_move__P3711_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.arg1; + s.callLocIdx = 807; s.pc = 13; return s.tmp_1; + case 13: r0 = s.retval; - s.tid___19829 = (r0); - r0 = pxsim_pxtcore_mkAction(2, only_inline__P19835); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.tid___19829); - s.tmp_1 = helpers_arraySome__P2136_mk(s); - s.tmp_2 = if_only_1_mk(s); - s.tmp_2.arg0 = s.arg2; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "only"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["only"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["only"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 886; s.pc = 12; return s.tmp_2; } - } + s.tmp_0.arg1 = r0; + s.callLocIdx = 808; s.pc = 12; return s.tmp_0; case 12: r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 887; s.pc = 11; return s.tmp_1; - case 11: - r0 = s.retval; - s.only___19833 = (r0); - r0 = pxsim_numops_toBoolDecr(s.only___19833); - if (!r0) { step = 1; continue; } - r0 = true; - { step = 9; continue; } + r0 = pxsim_pxtcore.endTry(); + { step = 10; continue; } case 1: + r0 = pxsim_pxtcore.getThrownValue(); + s.e___21902 = (r0); + r0 = (s.arg1 === 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } case 2: - s.tmp_2 = if_only_1_mk(s); - s.tmp_2.arg0 = s.arg2; + s.tmp_2 = if_kind_1_mk(s); + s.tmp_2.arg0 = s.e___21902; if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "only"); + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "kind"); } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["only"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["only"]; } + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["kind"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["kind"]; } else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 888; s.pc = 13; return s.tmp_2; } + else { s.callLocIdx = 809; s.pc = 14; return s.tmp_2; } } - case 13: + case 14: r0 = s.retval; s.tmp_1 = r0; - r0 = pxsim_Array__length(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = false; - { step = 9; continue; } + r0 = (s.tmp_1 === globals.BACK_BUTTON_ERROR_KIND___3748); case 3: - case 4: - r0 = pxsim_pxtcore_mkAction(2, allows_inline__P19853); + // jmp value (already in r0) s.tmp_3 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg1); - r0 = pxsim_pxtrt_stclo(s.tmp_3, 1, s.tid___19829); - s.tmp_4 = helpers_arraySome__P2136_mk(s); - s.tmp_5 = if_allow_1_mk(s); - s.tmp_5.arg0 = s.arg2; - if (!s.tmp_5.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "allow"); - } else { - s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["allow"]; - if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["allow"]; } - else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } - else { s.callLocIdx = 889; s.pc = 15; return s.tmp_5; } - } + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 4; continue; } + s.tmp_4 = user_interface_base_CursorScene_back__P3806_mk(s); + s.tmp_4.arg0 = s.arg0; + s.callLocIdx = 810; s.pc = 15; return s.tmp_4; case 15: r0 = s.retval; - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = s.tmp_3; - s.callLocIdx = 890; s.pc = 14; return s.tmp_4; - case 14: - r0 = s.retval; - s.allows___19851 = (r0); - r0 = pxsim_numops_toBoolDecr(s.allows___19851); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = false; { step = 9; continue; } + case 4: + r0 = (s.arg1 === 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 5; continue; } + r0 = s.tmp_0; + { step = 6; continue; } case 5: - case 6: - r0 = pxsim_pxtcore_mkAction(2, disallows_inline__P19870); - s.tmp_2 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.arg1); - r0 = pxsim_pxtrt_stclo(s.tmp_2, 1, s.tid___19829); - s.tmp_5 = helpers_arraySome__P2136_mk(s); - s.tmp_6 = if_disallow_1_mk(s); - s.tmp_6.arg0 = s.arg2; - if (!s.tmp_6.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "disallow"); + s.tmp_2 = if_kind_1_mk(s); + s.tmp_2.arg0 = s.e___21902; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "kind"); } else { - s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["disallow"]; - if (s.tmp_6.fn == null) { s.retval = s.tmp_6.arg0.fields["disallow"]; } - else if (!s.tmp_6.fn.isGetter) { s.retval = bind(s.tmp_6); } - else { s.callLocIdx = 891; s.pc = 17; return s.tmp_6; } + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["kind"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["kind"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 811; s.pc = 16; return s.tmp_2; } } - case 17: - r0 = s.retval; - s.tmp_5.arg0 = r0; - s.tmp_5.arg1 = s.tmp_2; - s.callLocIdx = 893; s.pc = 16; return s.tmp_5; case 16: r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - s.disallows___19867 = (r0); - r0 = pxsim_numops_toBoolDecr(s.disallows___19867); s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = (s.tmp_1 === globals.FORWARD_BUTTON_ERROR_KIND___3749); + case 6: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); if (!r0) { step = 7; continue; } - r0 = false; - { step = 9; continue; } + { step = 11; continue; } + { step = 8; continue; } case 7: + r0 = pxsim_pxtcore.throwValue(s.e___21902); case 8: - r0 = true; case 9: + case 10: + case 11: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_filterModifierCompat__P5709.info = {"start":910,"length":672,"line":31,"column":4,"endLine":53,"endColumn":5,"fileName":"language.ts","functionName":"filterModifierCompat","argumentNames":["tile","category","c"]} +user_interface_base_CursorScene_moveCursor__P3804.info = {"start":758,"length":366,"line":26,"column":4,"endLine":39,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"moveCursor","argumentNames":["this","dir"]} -function microcode_filterModifierCompat__P5709_mk(s) { +function user_interface_base_CursorScene_moveCursor__P3804_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_filterModifierCompat__P5709, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_moveCursor__P3804, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tid___19829: undefined, - only___19833: undefined, - allows___19851: undefined, - disallows___19867: undefined, + e___21902: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function only_inline__P19835(s) { +function user_interface_base_CursorScene_moveTo__P5287(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55849,40 +62464,100 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 === s.caps[0]); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + { step = 3; continue; } case 1: - r0 = (s.arg0 === s.caps[1]); case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + s.tmp_2 = user_interface_base_Cursor_moveTo__P3704_mk(s); + r0 = s.arg0.fields["cursor"]; + s.tmp_2.arg0 = r0; + s.tmp_3 = user_interface_base_Affine_worldPos__P3325_mk(s); + r0 = s.arg1.fields["xfrm_"]; + s.tmp_3.arg0 = r0; + s.callLocIdx = 813; s.pc = 5; return s.tmp_3; + case 5: + r0 = s.retval; + s.tmp_2.arg1 = r0; + r0 = s.arg1.fields["_ariaId"]; + s.tmp_2.arg2 = r0; + s.tmp_4 = user_interface_base_ButtonBase_bounds__P3627_mk(s); + s.tmp_4.arg0 = s.arg1; + s.callLocIdx = 815; s.pc = 6; return s.tmp_4; + case 6: + r0 = s.retval; + s.tmp_2.arg3 = r0; + s.callLocIdx = 816; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; + case 3: + r0 = undefined; return leave(s, r0) default: oops() } } } -only_inline__P19835.info = {"start":1102,"length":38,"line":37,"column":33,"endLine":37,"endColumn":71,"fileName":"language.ts","functionName":"inline","argumentNames":["cat"]} +user_interface_base_CursorScene_moveTo__P5287.info = {"start":1130,"length":175,"line":41,"column":4,"endLine":48,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"moveTo","argumentNames":["this","target"]} -function only_inline__P19835_mk(s) { +function user_interface_base_CursorScene_moveTo__P5287_mk(s) { checkStack(s.depth); return { - parent: s, fn: only_inline__P19835, depth: s.depth + 1, + parent: s, fn: user_interface_base_CursorScene_moveTo__P5287, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, + arg1: undefined, } } +function user_interface_base_Scene_xfrm__P3660(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); + r0 = s.arg0.fields["xfrm_"]; + return leaveAccessor(s, r0) + default: oops() +} } } +user_interface_base_Scene_xfrm__P3660.info = {"start":681,"length":59,"line":18,"column":8,"endLine":20,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"xfrm","argumentNames":["this"]} +user_interface_base_Scene_xfrm__P3660.isGetter = true; + +function user_interface_base_Scene_xfrm__P3660_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_Scene_xfrm__P3660, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function allows_inline__P19853(s) { +function microcode_MicrobitHost_execute__P4742(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55894,40 +62569,117 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = (s.arg0 === s.caps[0]); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_pxtcore.switch_eq(44, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(51, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(46, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(45, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(41, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(43, s.tmp_0); + if (r0) { step = 6; continue; } r0 = s.tmp_0; - { step = 2; continue; } + { step = 7; continue; } case 1: - r0 = (s.arg0 === s.caps[1]); + r0 = pxsim.led.stopAnimation(); + s.tmp_0 = microcode_MicrobitHost_showIcon__P6085_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg2; + s.callLocIdx = 1991; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + { step = 8; continue; } case 2: - // jmp value (already in r0) + r0 = pxsim.led.stopAnimation(); + s.tmp_0 = basic_showNumber__P2370_mk(s); + s.tmp_0.arg0 = s.arg2; + s.tmp_0.arg1 = 150; + s.callLocIdx = 1992; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + { step = 8; continue; } + case 3: + r0 = pxsim.radio.setGroup(s.arg2); + { step = 8; continue; } + case 4: + s.tmp_0 = radio_sendNumber__P3062_mk(s); + s.tmp_0.arg0 = s.arg2; + s.callLocIdx = 1993; s.pc = 11; return s.tmp_0; + case 11: + r0 = s.retval; + { step = 8; continue; } + case 5: + s.tmp_0 = music_stopAllSounds__P2704_mk(s); + s.callLocIdx = 1994; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.tmp_0 = music_play__P2964_mk(s); + s.tmp_2 = microcode_MicrobitHost_getSound__P6086_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.arg2; + s.callLocIdx = 1995; s.pc = 14; return s.tmp_2; + case 14: + r0 = s.retval; s.tmp_1 = r0; r0 = s.tmp_1; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 0; + s.callLocIdx = 1997; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + { step = 8; continue; } + case 6: + s.tmp_0 = music_stopAllSounds__P2704_mk(s); + s.callLocIdx = 1998; s.pc = 15; return s.tmp_0; + case 15: + r0 = s.retval; + s.tmp_0 = music_play__P2964_mk(s); + s.tmp_1 = music_stringPlayable__P2966_mk(s); + s.tmp_1.arg0 = s.arg2; + s.tmp_1.arg1 = 120; + s.callLocIdx = 1999; s.pc = 17; return s.tmp_1; + case 17: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 0; + s.callLocIdx = 2000; s.pc = 16; return s.tmp_0; + case 16: + r0 = s.retval; + case 7: + case 8: + r0 = undefined; return leave(s, r0) default: oops() } } } -allows_inline__P19853.info = {"start":1249,"length":38,"line":41,"column":36,"endLine":41,"endColumn":74,"fileName":"language.ts","functionName":"inline","argumentNames":["cat"]} +microcode_MicrobitHost_execute__P4742.info = {"start":6804,"length":1243,"line":197,"column":8,"endLine":228,"endColumn":9,"fileName":"host.ts","functionName":"execute","argumentNames":["this","action","param"]} -function allows_inline__P19853_mk(s) { +function microcode_MicrobitHost_execute__P4742_mk(s) { checkStack(s.depth); return { - parent: s, fn: allows_inline__P19853, depth: s.depth + 1, + parent: s, fn: microcode_MicrobitHost_execute__P4742, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function disallows_inline__P19870(s) { +function music_stringPlayable__P2966(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -55939,73 +62691,45 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 === s.caps[0]); + r0 = pxsim_pxtcore_mkClassInstance(music_StringArrayPlayable__C2958_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 === s.caps[1]); + s.tmp_1 = music_StringArrayPlayable_constructor__P2959_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_2 = music_getMelodyNotes__P2700_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 153; s.pc = 2; return s.tmp_2; case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 6; continue; } - case 3: - r0 = pxsim_pxtcore.typeOf(s.arg0); - s.tmp_3 = r0; - r0 = (s.tmp_3 == "function"); - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 4; continue; } - r0 = s.tmp_2; - { step = 5; continue; } - case 4: - s.tmp_4 = lambda_2_mk(s); - s.tmp_4.argL = s.arg0; - s.tmp_4.arg0 = s.caps[1]; - setupLambda(s.tmp_4, s.tmp_4.argL); - s.callLocIdx = 892; s.pc = 7; return s.tmp_4; - case 7: r0 = s.retval; - case 5: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = s.tmp_5; - case 6: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = s.tmp_6; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.arg1; + s.callLocIdx = 154; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -disallows_inline__P19870.info = {"start":1380,"length":128,"line":45,"column":12,"endLine":48,"endColumn":54,"fileName":"language.ts","functionName":"inline","argumentNames":["cat"]} +music_stringPlayable__P2966.info = {"start":3795,"length":152,"line":121,"column":4,"endLine":123,"endColumn":5,"fileName":"pxt_modules/core/playable.ts","functionName":"stringPlayable","argumentNames":["melody","bpm"]} -function disallows_inline__P19870_mk(s) { +function music_stringPlayable__P2966_mk(s) { checkStack(s.depth); return { - parent: s, fn: disallows_inline__P19870, depth: s.depth + 1, + parent: s, fn: music_stringPlayable__P2966, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_isCompatibleWith__P5708(s) { +function music_getMelodyNotes__P2700(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56015,102 +62739,153 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.compat___19897 = undefined; + s.notes___21984 = undefined; + s.newOctave___21994 = undefined; + s.i___21995 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = helpers_arrayFilter__P2139_mk(s); + s.tmp_1 = helpers_stringSplit__P2151_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = " "; + s.tmp_1.arg2 = undefined; + s.callLocIdx = 58; s.pc = 14; return s.tmp_1; + case 14: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = notes_inline__P21989; + s.callLocIdx = 59; s.pc = 13; return s.tmp_0; + case 13: + r0 = s.retval; + s.notes___21984 = (r0); + s.newOctave___21994 = (false); + s.i___21995 = (0); + case 1: + s.tmp_1 = r0 = s.i___21995; + r0 = pxsim_Array__length(s.notes___21984); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = true; + if (!r0) { step = 8; continue; } + r0 = pxsim_Array__getAt(s.notes___21984, s.i___21995); + s.tmp_4 = r0; + r0 = (s.tmp_4 === "-"); + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!r0) { step = 2; continue; } + r0 = pxsim_Array_.setAt(s.notes___21984, s.i___21995, "R"); { step = 7; continue; } - case 1: case 2: - s.tmp_3 = if_requires_1_mk(s); - s.tmp_3.arg0 = s.arg0; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "requires"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["requires"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["requires"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 880; s.pc = 8; return s.tmp_3; } - } - case 8: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 5; continue; } - r0 = pxsim_pxtrt.mklocRef(); - s.compat___19897 = (r0); - r0 = pxsim_pxtrt_stlocRef(s.compat___19897, false); - r0 = pxsim_pxtcore_mkAction(2, microcode_isCompatibleWith_inline__P19901); + r0 = pxsim_Array__getAt(s.notes___21984, s.i___21995); + s.tmp_1 = r0; + r0 = (s.tmp_1 === "C5"); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.compat___19897); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = if_requires_1_mk(s); - s.tmp_2.arg0 = s.arg0; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "requires"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["requires"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["requires"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 881; s.pc = 10; return s.tmp_2; } - } - case 10: - r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 884; s.pc = 9; return s.tmp_1; - case 9: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.newOctave___21994 = (true); + { step = 6; continue; } + case 3: + r0 = pxsim_numops_toBoolDecr(s.newOctave___21994); + if (!r0) { step = 4; continue; } + s.tmp_0 = r0 = s.notes___21984; + s.tmp_1 = r0 = s.i___21995; + r0 = pxsim_Array__getAt(s.tmp_0, s.i___21995); + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 15); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 15: r0 = s.retval; - r0 = pxsim_pxtrt_ldlocRef(s.compat___19897); + s.tmp_3 = r0; + r0 = pxsim_String__concat(s.tmp_3, "4"); s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = false; - { step = 7; continue; } - case 3: + r0 = pxsim_Array_.setAt(s.tmp_0, s.tmp_1, s.tmp_2); + s.newOctave___21994 = (false); case 4: case 5: case 6: - r0 = true; case 7: + r0 = (s.i___21995 + 1); + s.i___21995 = (r0); + { step = 1; continue; } + case 8: + s.tmp_2 = r0 = s.notes___21984; + r0 = pxsim_Array__length(s.notes___21984); + s.tmp_4 = r0; + r0 = (s.tmp_4 - 1); + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 === "C5"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 9; continue; } + r0 = s.tmp_0; + { step = 10; continue; } + case 9: + r0 = pxsim_Array__getAt(s.notes___21984, 0); + s.tmp_5 = r0; + r0 = (s.tmp_5 != "C5"); + case 10: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if (!r0) { step = 11; continue; } + s.tmp_7 = r0 = s.notes___21984; + r0 = pxsim_Array__getAt(s.tmp_7, 0); + s.tmp_10 = r0; + if ((s.tmp_10) && (s.tmp_10).vtable) { + setupResume(s, 16); + pxsim_String__stringConv(s.tmp_10); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_10) + ""; } + case 16: + r0 = s.retval; + s.tmp_9 = r0; + r0 = pxsim_String__concat(s.tmp_9, "4"); + s.tmp_8 = r0; + r0 = pxsim_Array_.setAt(s.tmp_7, 0, s.tmp_8); + case 11: + case 12: + r0 = s.notes___21984; return leave(s, r0) default: oops() } } } -microcode_isCompatibleWith__P5708.info = {"start":543,"length":361,"line":19,"column":4,"endLine":29,"endColumn":5,"fileName":"language.ts","functionName":"isCompatibleWith","argumentNames":["src","c"]} +music_getMelodyNotes__P2700.info = {"start":15594,"length":905,"line":447,"column":4,"endLine":471,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"getMelodyNotes","argumentNames":["melody"]} -function microcode_isCompatibleWith__P5708_mk(s) { +function music_getMelodyNotes__P2700_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isCompatibleWith__P5708, depth: s.depth + 1, + parent: s, fn: music_getMelodyNotes__P2700, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - compat___19897: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + notes___21984: undefined, + newOctave___21994: undefined, + i___21995: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_isCompatibleWith_inline__P19901(s) { +function notes_inline__P21989(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56124,62 +62899,33 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = pxsim_pxtcore_mkAction(1, microcode_isCompatibleWith_inline__P19909); + r0 = pxsim_numops_toBoolDecr(s.arg0); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); s.tmp_1 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_1, 0, s.arg0); - s.tmp_2 = helpers_arraySome__P2136_mk(s); - s.tmp_3 = if_provides_1_mk(s); - s.tmp_3.arg0 = s.caps[1]; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "provides"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["provides"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["provides"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 882; s.pc = 4; return s.tmp_3; } - } - case 4: - r0 = s.retval; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_1; - s.callLocIdx = 883; s.pc = 3; return s.tmp_2; - case 3: - r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_pxtrt_stlocRef(s.caps[0], s.tmp_4); - r0 = s.tmp_4; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_Boolean__bang(s.tmp_0); return leave(s, r0) default: oops() } } } -microcode_isCompatibleWith_inline__P19901.info = {"start":753,"length":63,"line":24,"column":16,"endLine":24,"endColumn":79,"fileName":"language.ts","functionName":"inline","argumentNames":["req"]} +notes_inline__P21989.info = {"start":15698,"length":8,"line":448,"column":55,"endLine":448,"endColumn":63,"fileName":"pxt_modules/core/music.ts","functionName":"inline","argumentNames":["n"]} -function microcode_isCompatibleWith_inline__P19901_mk(s) { +function notes_inline__P21989_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isCompatibleWith_inline__P19901, depth: s.depth + 1, + parent: s, fn: notes_inline__P21989, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, } } - -function microcode_isCompatibleWith_inline__P19909(s) { +function music_StringArrayPlayable_constructor__P2959(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56191,27 +62937,35 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = (s.arg0 === s.caps[0]); + r0 = s.arg0; + if (!checkSubtype(r0, music_StringArrayPlayable__C2958_VT)) failedCast(r0, music_StringArrayPlayable__C2958_VT); + r0 = (s.arg0).fields["notes"] = (s.arg1); + r0 = (s.arg0).fields["tempo"] = (s.arg2); + r0 = undefined; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_isCompatibleWith_inline__P19909.info = {"start":796,"length":18,"line":24,"column":59,"endLine":24,"endColumn":77,"fileName":"language.ts","functionName":"inline","argumentNames":["pro"]} +music_StringArrayPlayable_constructor__P2959.info = {"start":841,"length":92,"line":39,"column":8,"endLine":41,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"inline","argumentNames":["this","notes","tempo"]} -function microcode_isCompatibleWith_inline__P19909_mk(s) { +function music_StringArrayPlayable_constructor__P2959_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isCompatibleWith_inline__P19909, depth: s.depth + 1, + parent: s, fn: music_StringArrayPlayable_constructor__P2959, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_getCategory__P4267(s) { +function music_Playable_constructor__P2955(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56221,322 +62975,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___19917 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1078; s.pc = 51; return s.tmp_0; - case 51: - r0 = s.retval; - s.tid___19917 = (r0); - s.tmp_1 = microcode_isPressReleaseEvent__P5734_mk(s); - s.tmp_1.arg0 = s.tid___19917; - s.callLocIdx = 1079; s.pc = 52; return s.tmp_1; - case 52: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = "press_event"; - { step = 50; continue; } - case 1: - case 2: - s.tmp_3 = microcode_isLineEvent__P5736_mk(s); - s.tmp_3.arg0 = s.tid___19917; - s.callLocIdx = 1080; s.pc = 53; return s.tmp_3; - case 53: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 3; continue; } - r0 = "line"; - { step = 50; continue; } - case 3: - case 4: - s.tmp_5 = microcode_isTimespan__P5739_mk(s); - s.tmp_5.arg0 = s.tid___19917; - s.callLocIdx = 1081; s.pc = 54; return s.tmp_5; - case 54: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 5; continue; } - r0 = "timespan"; - { step = 50; continue; } - case 5: - case 6: - s.tmp_7 = microcode_isAccelerometerEvent__P5735_mk(s); - s.tmp_7.arg0 = s.tid___19917; - s.callLocIdx = 1082; s.pc = 55; return s.tmp_7; - case 55: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - if (!r0) { step = 7; continue; } - r0 = "accel_event"; - { step = 50; continue; } - case 7: - case 8: - s.tmp_9 = microcode_isEmoji__P5740_mk(s); - s.tmp_9.arg0 = s.tid___19917; - s.callLocIdx = 1083; s.pc = 56; return s.tmp_9; - case 56: - r0 = s.retval; - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 9; continue; } - r0 = "sound_emoji"; - { step = 50; continue; } - case 9: - case 10: - s.tmp_11 = microcode_isComparisonOperator__P4257_mk(s); - s.tmp_11.arg0 = s.tid___19917; - s.callLocIdx = 1084; s.pc = 57; return s.tmp_11; - case 57: - r0 = s.retval; - s.tmp_10 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_10); - if (!r0) { step = 11; continue; } - r0 = "comparison"; - { step = 50; continue; } - case 11: - case 12: - s.tmp_13 = microcode_isMathOperator__P4256_mk(s); - s.tmp_13.arg0 = s.tid___19917; - s.callLocIdx = 1085; s.pc = 58; return s.tmp_13; - case 58: - r0 = s.retval; - s.tmp_12 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_12); - if (!r0) { step = 13; continue; } - r0 = "maths"; - { step = 50; continue; } - case 13: - case 14: - s.tmp_15 = microcode_isFilterConstant__P4258_mk(s); - s.tmp_15.arg0 = s.tid___19917; - s.callLocIdx = 1086; s.pc = 59; return s.tmp_15; - case 59: - r0 = s.retval; - s.tmp_14 = r0; - r0 = pxsim_numops_toBool(s.tmp_14); - if (!r0) { step = 15; continue; } - r0 = s.tmp_14; - { step = 16; continue; } - case 15: - s.tmp_16 = microcode_isFilterVariable__P5737_mk(s); - s.tmp_16.arg0 = s.tid___19917; - s.callLocIdx = 1087; s.pc = 60; return s.tmp_16; - case 60: - r0 = s.retval; - case 16: - // jmp value (already in r0) - s.tmp_17 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_17); - if (!r0) { step = 17; continue; } - r0 = "value_in"; - { step = 50; continue; } - case 17: - case 18: - s.tmp_19 = microcode_isModifierConstant__P4259_mk(s); - s.tmp_19.arg0 = s.tid___19917; - s.callLocIdx = 1088; s.pc = 61; return s.tmp_19; - case 61: - r0 = s.retval; - s.tmp_18 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_18); - if (!r0) { step = 19; continue; } - r0 = "constant"; - { step = 50; continue; } - case 19: - case 20: - s.tmp_21 = microcode_isModifierVariable__P5738_mk(s); - s.tmp_21.arg0 = s.tid___19917; - s.callLocIdx = 1089; s.pc = 62; return s.tmp_21; - case 62: - r0 = s.retval; - s.tmp_20 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_20); - if (!r0) { step = 21; continue; } - r0 = "value_out"; - { step = 50; continue; } - case 21: - case 22: - s.tmp_23 = microcode_isPage__P5741_mk(s); - s.tmp_23.arg0 = s.tid___19917; - s.callLocIdx = 1090; s.pc = 63; return s.tmp_23; - case 63: - r0 = s.retval; - s.tmp_22 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_22); - if (!r0) { step = 23; continue; } - r0 = "page"; - { step = 50; continue; } - case 23: - case 24: - s.tmp_25 = microcode_isCarModifier__P5744_mk(s); - s.tmp_25.arg0 = s.tid___19917; - s.callLocIdx = 1091; s.pc = 64; return s.tmp_25; - case 64: - r0 = s.retval; - s.tmp_24 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_24); - if (!r0) { step = 25; continue; } - r0 = "car"; - { step = 50; continue; } - case 25: - case 26: - s.tmp_27 = microcode_isLedModifier__P5743_mk(s); - s.tmp_27.arg0 = s.tid___19917; - s.callLocIdx = 1092; s.pc = 65; return s.tmp_27; - case 65: - r0 = s.retval; - s.tmp_26 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_26); - if (!r0) { step = 27; continue; } - r0 = "rgb_led"; - { step = 50; continue; } - case 27: - case 28: - s.tmp_28 = r0 = s.tid___19917; - r0 = pxsim_pxtcore.switch_eq(110, s.tmp_28); - if (r0) { step = 29; continue; } - r0 = pxsim_pxtcore.switch_eq(111, s.tmp_28); - if (r0) { step = 30; continue; } - r0 = pxsim_pxtcore.switch_eq(204, s.tmp_28); - if (r0) { step = 31; continue; } - r0 = pxsim_pxtcore.switch_eq(205, s.tmp_28); - if (r0) { step = 32; continue; } - r0 = pxsim_pxtcore.switch_eq(98, s.tmp_28); - if (r0) { step = 33; continue; } - r0 = pxsim_pxtcore.switch_eq(99, s.tmp_28); - if (r0) { step = 34; continue; } - r0 = pxsim_pxtcore.switch_eq(100, s.tmp_28); - if (r0) { step = 35; continue; } - r0 = pxsim_pxtcore.switch_eq(101, s.tmp_28); - if (r0) { step = 36; continue; } - r0 = pxsim_pxtcore.switch_eq(87, s.tmp_28); - if (r0) { step = 37; continue; } - r0 = pxsim_pxtcore.switch_eq(88, s.tmp_28); - if (r0) { step = 38; continue; } - r0 = pxsim_pxtcore.switch_eq(178, s.tmp_28); - if (r0) { step = 39; continue; } - r0 = pxsim_pxtcore.switch_eq(160, s.tmp_28); - if (r0) { step = 40; continue; } - r0 = pxsim_pxtcore.switch_eq(179, s.tmp_28); - if (r0) { step = 41; continue; } - r0 = pxsim_pxtcore.switch_eq(255, s.tmp_28); - if (r0) { step = 42; continue; } - r0 = pxsim_pxtcore.switch_eq(177, s.tmp_28); - if (r0) { step = 43; continue; } - r0 = pxsim_pxtcore.switch_eq(180, s.tmp_28); - if (r0) { step = 44; continue; } - r0 = pxsim_pxtcore.switch_eq(176, s.tmp_28); - if (r0) { step = 45; continue; } - r0 = pxsim_pxtcore.switch_eq(213, s.tmp_28); - if (r0) { step = 46; continue; } - r0 = pxsim_pxtcore.switch_eq(211, s.tmp_28); - if (r0) { step = 47; continue; } - r0 = pxsim_pxtcore.switch_eq(212, s.tmp_28); - if (r0) { step = 48; continue; } - r0 = s.tmp_28; - { step = 49; continue; } - case 29: - case 30: - r0 = "on_off_event"; - { step = 50; continue; } - case 31: - case 32: - r0 = "on_off"; - { step = 50; continue; } - case 33: - case 34: - r0 = "rotary_event"; - { step = 50; continue; } - case 35: - case 36: - r0 = "temperature_event"; - { step = 50; continue; } - case 37: - case 38: - r0 = "sound_event"; - { step = 50; continue; } - case 39: - r0 = "loop"; - { step = 50; continue; } - case 40: - r0 = "icon_editor"; - { step = 50; continue; } - case 41: - r0 = "melody_editor"; - { step = 50; continue; } - case 42: - r0 = "decimal_editor"; - { step = 50; continue; } - case 43: - case 44: - case 45: - r0 = "value_out"; - { step = 50; continue; } - case 46: - case 47: - case 48: - r0 = "math_not_add"; - { step = 50; continue; } - case 49: + r0 = s.arg0; + if (!checkSubtype(r0, music_Playable__C2953_VT)) failedCast(r0, music_Playable__C2953_VT); r0 = undefined; - case 50: return leave(s, r0) default: oops() } } } -microcode_getCategory__P4267.info = {"start":21687,"length":2098,"line":655,"column":4,"endLine":704,"endColumn":5,"fileName":"tiles.ts","functionName":"getCategory","argumentNames":["tile"]} +music_Playable_constructor__P2955.info = {"start":324,"length":26,"line":14,"column":8,"endLine":16,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"inline","argumentNames":["this"]} -function microcode_getCategory__P4267_mk(s) { +function music_Playable_constructor__P2955_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getCategory__P4267, depth: s.depth + 1, + parent: s, fn: music_Playable_constructor__P2955, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, - tmp_27: undefined, - tmp_28: undefined, - tid___19917: undefined, arg0: undefined, } } - -function microcode_isLedModifier__P5743(s) { +function microcode_MicrobitHost_getSound__P6086(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56548,55 +63010,86 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_1 = microcode_isLedColor__P5742_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1049; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_pxtcore.switch_eq(163, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(164, s.tmp_0); + if (r0) { step = 2; continue; } + r0 = pxsim_pxtcore.switch_eq(165, s.tmp_0); + if (r0) { step = 3; continue; } + r0 = pxsim_pxtcore.switch_eq(166, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(167, s.tmp_0); + if (r0) { step = 5; continue; } + r0 = pxsim_pxtcore.switch_eq(168, s.tmp_0); + if (r0) { step = 6; continue; } + r0 = pxsim_pxtcore.switch_eq(169, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(170, s.tmp_0); + if (r0) { step = 8; continue; } + r0 = pxsim_pxtcore.switch_eq(171, s.tmp_0); + if (r0) { step = 9; continue; } + r0 = pxsim_pxtcore.switch_eq(172, s.tmp_0); + if (r0) { step = 10; continue; } r0 = s.tmp_0; - { step = 2; continue; } + { step = 11; continue; } case 1: - r0 = (s.arg0 == 188); + r0 = globals.giggle___2874; + { step = 12; continue; } case 2: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (!r0) { step = 3; continue; } - r0 = s.tmp_2; - { step = 4; continue; } + r0 = globals.happy___2875; + { step = 12; continue; } case 3: - r0 = (s.arg0 == 189); + r0 = globals.hello___2876; + { step = 12; continue; } case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; + r0 = globals.mysterious___2877; + { step = 12; continue; } + case 5: + r0 = globals.sad___2878; + { step = 12; continue; } + case 6: + r0 = globals.slide___2879; + { step = 12; continue; } + case 7: + r0 = globals.soaring___2880; + { step = 12; continue; } + case 8: + r0 = globals.spring___2881; + { step = 12; continue; } + case 9: + r0 = globals.twinkle___2882; + { step = 12; continue; } + case 10: + r0 = globals.yawn___2883; + { step = 12; continue; } + case 11: + r0 = globals.giggle___2874; + case 12: return leave(s, r0) default: oops() } } } -microcode_isLedModifier__P5743.info = {"start":10368,"length":233,"line":337,"column":4,"endLine":343,"endColumn":5,"fileName":"tiles.ts","functionName":"isLedModifier","argumentNames":["tidEnum"]} +microcode_MicrobitHost_getSound__P6086.info = {"start":8483,"length":1141,"line":242,"column":8,"endLine":266,"endColumn":9,"fileName":"host.ts","functionName":"getSound","argumentNames":["this","sound"]} -function microcode_isLedModifier__P5743_mk(s) { +function microcode_MicrobitHost_getSound__P6086_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isLedModifier__P5743, depth: s.depth + 1, + parent: s, fn: microcode_MicrobitHost_getSound__P6086, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_isModifierVariable__P5738(s) { +function SoundExpression_constructor__P2850(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56608,40 +63101,32 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (173 <= s.arg0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 175); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = s.arg0; + if (!checkSubtype(r0, SoundExpression__C2849_VT)) failedCast(r0, SoundExpression__C2849_VT); + r0 = (s.arg0).fields["notes"] = (s.arg1); + r0 = undefined; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_isModifierVariable__P5738.info = {"start":9524,"length":181,"line":305,"column":4,"endLine":310,"endColumn":5,"fileName":"tiles.ts","functionName":"isModifierVariable","argumentNames":["tidEnum"]} +SoundExpression_constructor__P2850.info = {"start":153,"length":58,"line":7,"column":4,"endLine":9,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"inline","argumentNames":["this","notes"]} -function microcode_isModifierVariable__P5738_mk(s) { +function SoundExpression_constructor__P2850_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isModifierVariable__P5738, depth: s.depth + 1, + parent: s, fn: SoundExpression_constructor__P2850, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_isFilterVariable__P5737(s) { +function music_builtinPlayableSoundEffect__P2947(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56655,38 +63140,24 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = (95 <= s.arg0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.arg0 <= 97); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = s.arg0; return leave(s, r0) default: oops() } } } -microcode_isFilterVariable__P5737.info = {"start":9157,"length":175,"line":291,"column":4,"endLine":296,"endColumn":5,"fileName":"tiles.ts","functionName":"isFilterVariable","argumentNames":["tidEnum"]} +music_builtinPlayableSoundEffect__P2947.info = {"start":16665,"length":116,"line":510,"column":4,"endLine":512,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"builtinPlayableSoundEffect","argumentNames":["soundExpression"]} -function microcode_isFilterVariable__P5737_mk(s) { +function music_builtinPlayableSoundEffect__P2947_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isFilterVariable__P5737, depth: s.depth + 1, + parent: s, fn: music_builtinPlayableSoundEffect__P2947, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, arg0: undefined, } } - -function microcode_isEmoji__P5740(s) { +function music_play__P2964(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56698,40 +63169,37 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (163 <= s.arg0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + s.tmp_0 = music_Playable__C2953_v0_2_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + if (!checkSubtype(s.tmp_0.arg0, music_Playable__C2953_VT)) failedCast(s.tmp_0.arg0, music_Playable__C2953_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods._play; + s.pc = 1; return s.tmp_0; case 1: - r0 = (s.arg0 <= 172); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_isEmoji__P5740.info = {"start":9898,"length":108,"line":319,"column":4,"endLine":321,"endColumn":5,"fileName":"tiles.ts","functionName":"isEmoji","argumentNames":["tidEnum"]} +music_play__P2964.info = {"start":2593,"length":110,"line":90,"column":4,"endLine":92,"endColumn":5,"fileName":"pxt_modules/core/playable.ts","functionName":"play","argumentNames":["toPlay","playbackMode"]} -function microcode_isEmoji__P5740_mk(s) { +function music_play__P2964_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isEmoji__P5740, depth: s.depth + 1, + parent: s, fn: music_play__P2964, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_mergeConstraints__P5707(s) { +function music_Playable__play__P2956(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56741,73 +63209,24 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.key___20015 = undefined; - s.unnamed50___U1 = undefined; - s.unnamed51___U2 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 5; continue; } - case 1: - case 2: - s.key___20015 = (undefined); - r0 = pxsim_pxtrt.keysOf(s.arg0); - s.unnamed50___U1 = (r0); - s.unnamed51___U2 = (0); - case 3: - s.tmp_0 = r0 = s.unnamed51___U2; - r0 = pxsim_Array__length(s.unnamed50___U1); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = pxsim_Array__getAt(s.unnamed50___U1, s.unnamed51___U2); - s.key___20015 = (r0); - s.tmp_2 = r0 = s.arg1; - s.tmp_3 = r0 = s.key___20015; - s.tmp_5 = helpers_arrayConcat__P2142_mk(s); - r0 = pxsim_pxtrt.mapGetGeneric(s.arg1, s.key___20015); - s.tmp_5.arg0 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.arg0, s.key___20015); - s.tmp_5.arg1 = r0; - s.callLocIdx = 879; s.pc = 6; return s.tmp_5; - case 6: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_2, s.tmp_3, s.tmp_4); - r0 = (s.unnamed51___U2 + 1); - s.unnamed51___U2 = (r0); - { step = 3; continue; } - case 4: - s.unnamed50___U1 = (undefined); - case 5: + r0 = s.arg0; + if (!checkSubtype(r0, music_Playable__C2953_VT)) failedCast(r0, music_Playable__C2953_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_mergeConstraints__P5707.info = {"start":338,"length":199,"line":12,"column":4,"endLine":17,"endColumn":5,"fileName":"language.ts","functionName":"mergeConstraints","argumentNames":["src","dst"]} +music_Playable__play__P2956.info = {"start":360,"length":69,"line":18,"column":8,"endLine":20,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"_play","argumentNames":["this","playbackMode"]} -function microcode_mergeConstraints__P5707_mk(s) { +function music_Playable__play__P2956_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_mergeConstraints__P5707, depth: s.depth + 1, + parent: s, fn: music_Playable__play__P2956, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - key___20015: undefined, - unnamed50___U1: undefined, - unnamed51___U2: undefined, arg0: undefined, arg1: undefined, } } @@ -56815,8 +63234,7 @@ function microcode_mergeConstraints__P5707_mk(s) { - -function microcode_getConstraints__P4266(s) { +function radio_sendNumber__P3062(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -56826,478 +63244,67 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___20028 = undefined; + s.packet___22096 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1072; s.pc = 44; return s.tmp_0; - case 44: - r0 = s.retval; - s.tid___20028 = (r0); - s.tmp_1 = microcode_isComparisonOperator__P4257_mk(s); - s.tmp_1.arg0 = s.tid___20028; - s.callLocIdx = 1073; s.pc = 45; return s.tmp_1; - case 45: - r0 = s.retval; + s.tmp_1 = r0 = s.arg0; + r0 = (s.arg0 | 0); + s.tmp_2 = r0; + r0 = (s.tmp_1 === s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "allow", globals.filterMath___5751); - r0 = pxsim_Array__mk(); - s.tmp_3 = r0; - r0 = pxsim_Array__push(s.tmp_3, disallow_inline__P20037); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "disallow", s.tmp_3); - r0 = s.tmp_2; - { step = 43; continue; } - case 1: - case 2: - s.tmp_4 = r0 = s.tid___20028; - r0 = pxsim_pxtcore.switch_eq(11, s.tmp_4); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(12, s.tmp_4); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(10, s.tmp_4); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(19, s.tmp_4); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(20, s.tmp_4); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(21, s.tmp_4); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(17, s.tmp_4); - if (r0) { step = 9; continue; } - r0 = pxsim_pxtcore.switch_eq(23, s.tmp_4); - if (r0) { step = 10; continue; } - r0 = pxsim_pxtcore.switch_eq(25, s.tmp_4); - if (r0) { step = 11; continue; } - r0 = pxsim_pxtcore.switch_eq(22, s.tmp_4); - if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq(15, s.tmp_4); - if (r0) { step = 13; continue; } - r0 = pxsim_pxtcore.switch_eq(27, s.tmp_4); - if (r0) { step = 14; continue; } - r0 = pxsim_pxtcore.switch_eq(29, s.tmp_4); - if (r0) { step = 15; continue; } - r0 = pxsim_pxtcore.switch_eq(28, s.tmp_4); - if (r0) { step = 16; continue; } - r0 = pxsim_pxtcore.switch_eq(30, s.tmp_4); - if (r0) { step = 17; continue; } - r0 = pxsim_pxtcore.switch_eq(18, s.tmp_4); - if (r0) { step = 18; continue; } - r0 = pxsim_pxtcore.switch_eq(16, s.tmp_4); - if (r0) { step = 19; continue; } - r0 = pxsim_pxtcore.switch_eq(24, s.tmp_4); - if (r0) { step = 20; continue; } - r0 = pxsim_pxtcore.switch_eq(26, s.tmp_4); - if (r0) { step = 21; continue; } - r0 = pxsim_pxtcore.switch_eq(14, s.tmp_4); - if (r0) { step = 22; continue; } - r0 = pxsim_pxtcore.switch_eq(13, s.tmp_4); - if (r0) { step = 23; continue; } - r0 = pxsim_pxtcore.switch_eq(44, s.tmp_4); - if (r0) { step = 24; continue; } - r0 = pxsim_pxtcore.switch_eq(41, s.tmp_4); - if (r0) { step = 25; continue; } - r0 = pxsim_pxtcore.switch_eq(43, s.tmp_4); - if (r0) { step = 26; continue; } - r0 = pxsim_pxtcore.switch_eq(45, s.tmp_4); - if (r0) { step = 27; continue; } - r0 = pxsim_pxtcore.switch_eq(51, s.tmp_4); - if (r0) { step = 28; continue; } - r0 = pxsim_pxtcore.switch_eq(48, s.tmp_4); - if (r0) { step = 29; continue; } - r0 = pxsim_pxtcore.switch_eq(49, s.tmp_4); - if (r0) { step = 30; continue; } - r0 = pxsim_pxtcore.switch_eq(50, s.tmp_4); - if (r0) { step = 31; continue; } - r0 = pxsim_pxtcore.switch_eq(47, s.tmp_4); - if (r0) { step = 32; continue; } - r0 = pxsim_pxtcore.switch_eq(53, s.tmp_4); - if (r0) { step = 33; continue; } - r0 = pxsim_pxtcore.switch_eq(46, s.tmp_4); - if (r0) { step = 34; continue; } - r0 = pxsim_pxtcore.switch_eq(178, s.tmp_4); - if (r0) { step = 35; continue; } - r0 = pxsim_pxtcore.switch_eq(40, s.tmp_4); - if (r0) { step = 36; continue; } - r0 = pxsim_pxtcore.switch_eq(52, s.tmp_4); - if (r0) { step = 37; continue; } - r0 = pxsim_pxtcore.switch_eq(176, s.tmp_4); - if (r0) { step = 38; continue; } - r0 = pxsim_pxtcore.switch_eq(177, s.tmp_4); - if (r0) { step = 39; continue; } - r0 = pxsim_pxtcore.switch_eq(54, s.tmp_4); - if (r0) { step = 40; continue; } - r0 = pxsim_pxtcore.switch_eq(55, s.tmp_4); - if (r0) { step = 41; continue; } - r0 = s.tmp_4; - { step = 42; continue; } + s.tmp_3 = radio_RadioPacket_mkPacket__P3047_mk(s); + s.tmp_3.arg0 = 0; + s.callLocIdx = 173; s.pc = 3; return s.tmp_3; case 3: + r0 = s.retval; + s.packet___22096 = (r0); + { step = 2; continue; } + case 1: + s.tmp_0 = radio_RadioPacket_mkPacket__P3047_mk(s); + s.tmp_0.arg0 = 4; + s.callLocIdx = 174; s.pc = 4; return s.tmp_0; case 4: - r0 = pxsim_Array__mk(); - s.tmp_5 = r0; - r0 = pxsim_Array__push(s.tmp_5, "press_event"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_6 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_6, "allow", s.tmp_5); - r0 = s.tmp_6; - { step = 43; continue; } - case 5: - r0 = pxsim_Array__mk(); - s.tmp_7 = r0; - r0 = pxsim_Array__push(s.tmp_7, "timespan"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_8 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "allow", s.tmp_7); - r0 = s.tmp_8; - { step = 43; continue; } - case 6: - r0 = pxsim_pxtrt.mkMap(); - s.tmp_9 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "allow", globals.filterMath___5751); - r0 = pxsim_Array__mk(); - s.tmp_10 = r0; - r0 = pxsim_Array__push(s.tmp_10, 95); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_9, "disallow", s.tmp_10); - r0 = s.tmp_9; - { step = 43; continue; } - case 7: - r0 = pxsim_pxtrt.mkMap(); - s.tmp_11 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "allow", globals.filterMath___5751); - r0 = pxsim_Array__mk(); - s.tmp_12 = r0; - r0 = pxsim_Array__push(s.tmp_12, 96); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "disallow", s.tmp_12); - r0 = s.tmp_11; - { step = 43; continue; } - case 8: - r0 = pxsim_pxtrt.mkMap(); - s.tmp_13 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "allow", globals.filterMath___5751); - r0 = pxsim_Array__mk(); - s.tmp_14 = r0; - r0 = pxsim_Array__push(s.tmp_14, 97); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_13, "disallow", s.tmp_14); - r0 = s.tmp_13; - { step = 43; continue; } - case 9: - r0 = pxsim_pxtrt.mkMap(); - s.tmp_15 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "allow", globals.filterMath___5751); - r0 = pxsim_Array__mk(); - s.tmp_16 = r0; - r0 = pxsim_Array__push(s.tmp_16, 17); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_15, "provides", s.tmp_16); - r0 = s.tmp_15; - { step = 43; continue; } - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - r0 = pxsim_Array__mk(); - s.tmp_17 = r0; - r0 = pxsim_Array__push(s.tmp_17, "comparison"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_18 = r0; - s.tmp_20 = helpers_arrayConcat__P2142_mk(s); - s.tmp_20.arg0 = globals.only5___5750; - s.tmp_20.arg1 = s.tmp_17; - s.callLocIdx = 1075; s.pc = 46; return s.tmp_20; - case 46: r0 = s.retval; - s.tmp_19 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_18, "allow", s.tmp_19); - r0 = s.tmp_18; - { step = 43; continue; } - case 17: - r0 = pxsim_Array__mk(); - s.tmp_21 = r0; - r0 = pxsim_Array__push(s.tmp_21, "on_off_event"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_22 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_22, "allow", s.tmp_21); - r0 = s.tmp_22; - { step = 43; continue; } - case 18: - r0 = pxsim_Array__mk(); - s.tmp_23 = r0; - r0 = pxsim_Array__push(s.tmp_23, 87); - r0 = pxsim_Array__push(s.tmp_23, 88); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_24 = r0; - s.tmp_26 = helpers_arrayConcat__P2142_mk(s); - s.tmp_26.arg0 = globals.only5___5750; - s.tmp_26.arg1 = s.tmp_23; - s.callLocIdx = 1076; s.pc = 47; return s.tmp_26; - case 47: + s.packet___22096 = (r0); + case 2: + s.tmp_0 = radio_RadioPacket_numberPayload__P3057_mk(s); + s.tmp_0.arg0 = s.packet___22096; + s.tmp_0.arg1 = s.arg0; + s.callLocIdx = 175; s.pc = 5; return s.tmp_0; + case 5: r0 = s.retval; - s.tmp_25 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_24, "allow", s.tmp_25); - r0 = s.tmp_24; - { step = 43; continue; } - case 19: - r0 = pxsim_Array__mk(); - s.tmp_27 = r0; - r0 = pxsim_Array__push(s.tmp_27, "temperature_event"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_28 = r0; - s.tmp_30 = helpers_arrayConcat__P2142_mk(s); - s.tmp_30.arg0 = s.tmp_27; - s.tmp_30.arg1 = globals.filterMath___5751; - s.callLocIdx = 1077; s.pc = 48; return s.tmp_30; - case 48: + s.tmp_0 = radio_sendPacket__P5015_mk(s); + s.tmp_0.arg0 = s.packet___22096; + s.callLocIdx = 176; s.pc = 6; return s.tmp_0; + case 6: r0 = s.retval; - s.tmp_29 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_28, "allow", s.tmp_29); - r0 = s.tmp_28; - { step = 43; continue; } - case 20: - r0 = pxsim_Array__mk(); - s.tmp_31 = r0; - r0 = pxsim_Array__push(s.tmp_31, "rotary_event"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_32 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_32, "allow", s.tmp_31); - r0 = s.tmp_32; - { step = 43; continue; } - case 21: - r0 = pxsim_Array__mk(); - s.tmp_33 = r0; - r0 = pxsim_Array__push(s.tmp_33, "line"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_34 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_34, "allow", s.tmp_33); - r0 = s.tmp_34; - { step = 43; continue; } - case 22: - r0 = pxsim_Array__mk(); - s.tmp_35 = r0; - r0 = pxsim_Array__push(s.tmp_35, "timespan"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_36 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_36, "allow", s.tmp_35); - r0 = s.tmp_36; - { step = 43; continue; } - case 23: - r0 = pxsim_Array__mk(); - s.tmp_37 = r0; - r0 = pxsim_Array__push(s.tmp_37, "accel_event"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_38 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_38, "allow", s.tmp_37); - r0 = s.tmp_38; - { step = 43; continue; } - case 24: - r0 = pxsim_Array__mk(); - s.tmp_39 = r0; - r0 = pxsim_Array__push(s.tmp_39, "icon_editor"); - r0 = pxsim_Array__push(s.tmp_39, "loop"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_40 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_40, "allow", s.tmp_39); - r0 = s.tmp_40; - { step = 43; continue; } - case 25: - r0 = pxsim_Array__mk(); - s.tmp_41 = r0; - r0 = pxsim_Array__push(s.tmp_41, "sound_emoji"); - r0 = pxsim_Array__push(s.tmp_41, "loop"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_42 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_42, "allow", s.tmp_41); - r0 = s.tmp_42; - { step = 43; continue; } - case 26: - r0 = pxsim_Array__mk(); - s.tmp_43 = r0; - r0 = pxsim_Array__push(s.tmp_43, "melody_editor"); - r0 = pxsim_Array__push(s.tmp_43, "loop"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_44 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_44, "allow", s.tmp_43); - r0 = s.tmp_44; - { step = 43; continue; } - case 27: - case 28: - case 29: - case 30: - case 31: - r0 = pxsim_Array__mk(); - s.tmp_45 = r0; - r0 = pxsim_Array__push(s.tmp_45, "value_out"); - r0 = pxsim_Array__push(s.tmp_45, "maths"); - r0 = pxsim_Array__push(s.tmp_45, "constant"); - r0 = pxsim_Array__push(s.tmp_45, "decimal_editor"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_46 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_46, "allow", s.tmp_45); - r0 = s.tmp_46; - { step = 43; continue; } - case 32: - r0 = pxsim_Array__mk(); - s.tmp_47 = r0; - r0 = pxsim_Array__push(s.tmp_47, "rgb_led"); - r0 = pxsim_Array__push(s.tmp_47, "loop"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_48 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_48, "allow", s.tmp_47); - r0 = s.tmp_48; - { step = 43; continue; } - case 33: - case 34: - case 35: - r0 = pxsim_Array__mk(); - s.tmp_49 = r0; - r0 = pxsim_Array__push(s.tmp_49, "constant"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_50 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_50, "only", s.tmp_49); - r0 = s.tmp_50; - { step = 43; continue; } - case 36: - r0 = pxsim_Array__mk(); - s.tmp_51 = r0; - r0 = pxsim_Array__push(s.tmp_51, "page"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_52 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_52, "allow", s.tmp_51); - r0 = s.tmp_52; - { step = 43; continue; } - case 37: - r0 = pxsim_Array__mk(); - s.tmp_53 = r0; - r0 = pxsim_Array__push(s.tmp_53, "car"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_54 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_54, "allow", s.tmp_53); - r0 = s.tmp_54; - { step = 43; continue; } - case 38: - r0 = pxsim_Array__mk(); - s.tmp_55 = r0; - r0 = pxsim_Array__push(s.tmp_55, 17); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_56 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_56, "requires", s.tmp_55); - r0 = s.tmp_56; - { step = 43; continue; } - case 39: - r0 = pxsim_Array__mk(); - s.tmp_57 = r0; - r0 = pxsim_Array__push(s.tmp_57, "constant"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_58 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_58, "allow", s.tmp_57); - r0 = pxsim_Array__mk(); - s.tmp_59 = r0; - r0 = pxsim_Array__push(s.tmp_59, "value_out"); - r0 = pxsim_Array__push(s.tmp_59, "math_not_add"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_58, "disallow", s.tmp_59); - r0 = s.tmp_58; - { step = 43; continue; } - case 40: - case 41: - r0 = pxsim_Array__mk(); - s.tmp_60 = r0; - r0 = pxsim_Array__push(s.tmp_60, "on_off"); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_61 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_61, "allow", s.tmp_60); - r0 = s.tmp_61; - { step = 43; continue; } - case 42: r0 = undefined; - case 43: return leave(s, r0) default: oops() } } } -microcode_getConstraints__P4266.info = {"start":17592,"length":4089,"line":554,"column":4,"endLine":653,"endColumn":5,"fileName":"tiles.ts","functionName":"getConstraints","argumentNames":["tile"]} +radio_sendNumber__P3062.info = {"start":9978,"length":348,"line":283,"column":4,"endLine":295,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"sendNumber","argumentNames":["value"]} -function microcode_getConstraints__P4266_mk(s) { +function radio_sendNumber__P3062_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getConstraints__P4266, depth: s.depth + 1, + parent: s, fn: radio_sendNumber__P3062, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, - tmp_27: undefined, - tmp_28: undefined, - tmp_29: undefined, - tmp_30: undefined, - tmp_31: undefined, - tmp_32: undefined, - tmp_33: undefined, - tmp_34: undefined, - tmp_35: undefined, - tmp_36: undefined, - tmp_37: undefined, - tmp_38: undefined, - tmp_39: undefined, - tmp_40: undefined, - tmp_41: undefined, - tmp_42: undefined, - tmp_43: undefined, - tmp_44: undefined, - tmp_45: undefined, - tmp_46: undefined, - tmp_47: undefined, - tmp_48: undefined, - tmp_49: undefined, - tmp_50: undefined, - tmp_51: undefined, - tmp_52: undefined, - tmp_53: undefined, - tmp_54: undefined, - tmp_55: undefined, - tmp_56: undefined, - tmp_57: undefined, - tmp_58: undefined, - tmp_59: undefined, - tmp_60: undefined, - tmp_61: undefined, - tid___20028: undefined, + packet___22096: undefined, arg0: undefined, } } - -function disallow_inline__P20037(s) { +function radio_sendPacket__P5015(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -57311,22 +63318,46 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_1 = microcode_getKindTid__P4281_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1074; s.pc = 1; return s.tmp_1; + s.tmp_0 = radio_RadioPacket_time__P3051_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = pxsim.control.millis(); + s.tmp_0.arg1 = r0; + s.callLocIdx = 177; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(globals.transmittingSerial___5005); + if (!r0) { step = 1; continue; } + r0 = pxsim.control.deviceSerialNumber(); + { step = 2; continue; } case 1: + r0 = 0; + case 2: + // jmp value (already in r0) + s.tmp_0 = r0; + s.tmp_1 = radio_RadioPacket_serial__P3053_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 178; s.pc = 4; return s.tmp_1; + case 4: r0 = s.retval; + r0 = s.arg0.fields["data"]; s.tmp_0 = r0; - r0 = (s.tmp_0 == 4); + setupResume(s, 5); + pxsim.radio.sendRawPacket(s.tmp_0); + checkResumeConsumed(); + return; + case 5: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -disallow_inline__P20037.info = {"start":17828,"length":54,"line":560,"column":20,"endLine":560,"endColumn":74,"fileName":"tiles.ts","functionName":"inline","argumentNames":["tid"]} +radio_sendPacket__P5015.info = {"start":12617,"length":209,"line":363,"column":4,"endLine":367,"endColumn":5,"fileName":"pxt_modules/radio/radio.ts","functionName":"sendPacket","argumentNames":["packet"]} -function disallow_inline__P20037_mk(s) { +function radio_sendPacket__P5015_mk(s) { checkStack(s.depth); return { - parent: s, fn: disallow_inline__P20037, depth: s.depth + 1, + parent: s, fn: radio_sendPacket__P5015, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -57336,8 +63367,7 @@ function disallow_inline__P20037_mk(s) { - -function microcode_mkConstraints__P5714(s) { +function radio_RadioPacket_serial__P3053(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -57347,50 +63377,36 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.c___20130 = undefined; - r0 = pxsim_pxtrt.mkMap(); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = s.arg0.fields["data"]; s.tmp_0 = r0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "provides", s.tmp_1); - r0 = pxsim_Array__mk(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "only", s.tmp_2); - r0 = pxsim_Array__mk(); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "requires", s.tmp_3); - r0 = pxsim_Array__mk(); - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "allow", s.tmp_4); - r0 = pxsim_Array__mk(); - s.tmp_5 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "disallow", s.tmp_5); - s.c___20130 = (s.tmp_0); - r0 = s.c___20130; + r0 = pxsim.BufferMethods.setNumber(s.tmp_0, 5, 5, s.arg1); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_mkConstraints__P5714.info = {"start":11984,"length":228,"line":374,"column":4,"endLine":383,"endColumn":5,"fileName":"language.ts","functionName":"mkConstraints","argumentNames":[]} +radio_RadioPacket_serial__P3053.info = {"start":7156,"length":98,"line":208,"column":8,"endLine":210,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"serial","argumentNames":["this","val"]} -function microcode_mkConstraints__P5714_mk(s) { +function radio_RadioPacket_serial__P3053_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_mkConstraints__P5714, depth: s.depth + 1, + parent: s, fn: radio_RadioPacket_serial__P3053, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - c___20130: undefined, + arg0: undefined, + arg1: undefined, } } - -function microcode_isTerminal__P4260(s) { +function radio_RadioPacket_serial__P3052(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -57400,142 +63416,34 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___20139 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1050; s.pc = 16; return s.tmp_0; - case 16: - r0 = s.retval; - s.tid___20139 = (r0); - s.tmp_3 = microcode_isFilter__P4253_mk(s); - s.tmp_3.arg0 = s.tid___20139; - s.callLocIdx = 1051; s.pc = 17; return s.tmp_3; - case 17: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = s.arg0.fields["data"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = false; - { step = 15; continue; } - case 1: - case 2: - s.tmp_5 = microcode_isFilterConstant__P4258_mk(s); - s.tmp_5.arg0 = s.tid___20139; - s.callLocIdx = 1052; s.pc = 18; return s.tmp_5; - case 18: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_numops_toBool(s.tmp_4); - if (!r0) { step = 3; continue; } - r0 = s.tmp_4; - { step = 4; continue; } - case 3: - s.tmp_6 = microcode_isTimespan__P5739_mk(s); - s.tmp_6.arg0 = s.tid___20139; - s.callLocIdx = 1053; s.pc = 19; return s.tmp_6; - case 19: - r0 = s.retval; - case 4: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = pxsim_numops_toBool(s.tmp_7); - if (!r0) { step = 5; continue; } - r0 = s.tmp_7; - { step = 6; continue; } - case 5: - s.tmp_8 = microcode_isFilterVariable__P5737_mk(s); - s.tmp_8.arg0 = s.tid___20139; - s.callLocIdx = 1054; s.pc = 20; return s.tmp_8; - case 20: - r0 = s.retval; - case 6: - // jmp value (already in r0) - s.tmp_9 = r0; - r0 = pxsim_numops_toBool(s.tmp_9); - if (!r0) { step = 7; continue; } - r0 = s.tmp_9; - { step = 8; continue; } - case 7: - s.tmp_10 = microcode_isMathOperator__P4256_mk(s); - s.tmp_10.arg0 = s.tid___20139; - s.callLocIdx = 1055; s.pc = 21; return s.tmp_10; - case 21: - r0 = s.retval; - case 8: - // jmp value (already in r0) - s.tmp_11 = r0; - r0 = pxsim_numops_toBool(s.tmp_11); - if (!r0) { step = 9; continue; } - r0 = s.tmp_11; - { step = 10; continue; } - case 9: - s.tmp_12 = microcode_isComparisonOperator__P4257_mk(s); - s.tmp_12.arg0 = s.tid___20139; - s.callLocIdx = 1056; s.pc = 22; return s.tmp_12; - case 22: - r0 = s.retval; - case 10: - // jmp value (already in r0) - s.tmp_13 = r0; - r0 = pxsim_numops_toBool(s.tmp_13); - if (!r0) { step = 11; continue; } - r0 = s.tmp_13; - { step = 12; continue; } - case 11: - r0 = (s.tid___20139 == 255); - case 12: - // jmp value (already in r0) - s.tmp_14 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_14); - if (!r0) { step = 13; continue; } - r0 = false; - { step = 15; continue; } - case 13: - case 14: - r0 = true; - case 15: - return leave(s, r0) + r0 = pxsim.BufferMethods.getNumber(s.tmp_0, 5, 5); + return leaveAccessor(s, r0) default: oops() } } } -microcode_isTerminal__P4260.info = {"start":10765,"length":567,"line":351,"column":4,"endLine":367,"endColumn":5,"fileName":"tiles.ts","functionName":"isTerminal","argumentNames":["tile"]} +radio_RadioPacket_serial__P3052.info = {"start":7057,"length":89,"line":204,"column":8,"endLine":206,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"serial","argumentNames":["this"]} +radio_RadioPacket_serial__P3052.isGetter = true; -function microcode_isTerminal__P4260_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_isTerminal__P4260, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tid___20139: undefined, +function radio_RadioPacket_serial__P3052_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: radio_RadioPacket_serial__P3052, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, } } - -function microcode_priority__P4265(s) { +function radio_RadioPacket_time__P3051(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -57545,364 +63453,36 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___20167 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1066; s.pc = 63; return s.tmp_0; - case 63: - r0 = s.retval; - s.tid___20167 = (r0); - s.tmp_1 = microcode_isFilter__P4253_mk(s); - s.tmp_1.arg0 = s.tid___20167; - s.callLocIdx = 1067; s.pc = 64; return s.tmp_1; - case 64: - r0 = s.retval; + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = s.arg0.fields["data"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 19; continue; } - s.tmp_3 = microcode_isFilterConstant__P4258_mk(s); - s.tmp_3.arg0 = s.tid___20167; - s.callLocIdx = 1068; s.pc = 65; return s.tmp_3; - case 65: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 1; continue; } - s.tmp_4 = microcode_getParam__P4282_mk(s); - s.tmp_4.arg0 = s.tid___20167; - s.callLocIdx = 1069; s.pc = 66; return s.tmp_4; - case 66: - r0 = s.retval; - { step = 62; continue; } - case 1: - case 2: - s.tmp_6 = microcode_isLineEvent__P5736_mk(s); - s.tmp_6.arg0 = s.tid___20167; - s.callLocIdx = 1070; s.pc = 67; return s.tmp_6; - case 67: - r0 = s.retval; - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 5; continue; } - r0 = (s.tid___20167 == 104); - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 3; continue; } - r0 = 101; - { step = 62; continue; } - { step = 4; continue; } - case 3: - r0 = s.tid___20167; - { step = 62; continue; } - case 4: - case 5: - case 6: - s.tmp_8 = r0 = s.tid___20167; - r0 = pxsim_pxtcore.switch_eq(255, s.tmp_8); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(73, s.tmp_8); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(74, s.tmp_8); - if (r0) { step = 9; continue; } - r0 = pxsim_pxtcore.switch_eq(77, s.tmp_8); - if (r0) { step = 10; continue; } - r0 = pxsim_pxtcore.switch_eq(70, s.tmp_8); - if (r0) { step = 11; continue; } - r0 = pxsim_pxtcore.switch_eq(71, s.tmp_8); - if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq(72, s.tmp_8); - if (r0) { step = 13; continue; } - r0 = pxsim_pxtcore.switch_eq(83, s.tmp_8); - if (r0) { step = 14; continue; } - r0 = pxsim_pxtcore.switch_eq(84, s.tmp_8); - if (r0) { step = 15; continue; } - r0 = pxsim_pxtcore.switch_eq(86, s.tmp_8); - if (r0) { step = 16; continue; } - r0 = pxsim_pxtcore.switch_eq(85, s.tmp_8); - if (r0) { step = 17; continue; } - r0 = s.tmp_8; - { step = 18; continue; } - case 7: - r0 = -1; - { step = 62; continue; } - case 8: - r0 = 0; - { step = 62; continue; } - case 9: - r0 = 1; - { step = 62; continue; } - case 10: - r0 = 2; - { step = 62; continue; } - case 11: - r0 = 3; - { step = 62; continue; } - case 12: - r0 = 4; - { step = 62; continue; } - case 13: - r0 = 5; - { step = 62; continue; } - case 14: - r0 = 10; - { step = 62; continue; } - case 15: - r0 = 20; - { step = 62; continue; } - case 16: - r0 = 30; - { step = 62; continue; } - case 17: - r0 = 40; - { step = 62; continue; } - case 18: - r0 = s.tid___20167; - { step = 62; continue; } - { step = 24; continue; } - case 19: - s.tmp_10 = microcode_isModifier__P4255_mk(s); - s.tmp_10.arg0 = s.tid___20167; - s.callLocIdx = 1071; s.pc = 68; return s.tmp_10; - case 68: - r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_9); - if (!r0) { step = 22; continue; } - r0 = (s.tid___20167 == 178); - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 20; continue; } - r0 = 1000; - { step = 62; continue; } - case 20: - case 21: - r0 = s.tid___20167; - { step = 62; continue; } - case 22: - case 23: - case 24: - s.tmp_12 = r0 = s.tid___20167; - r0 = pxsim_pxtcore.switch_eq(11, s.tmp_12); - if (r0) { step = 25; continue; } - r0 = pxsim_pxtcore.switch_eq(12, s.tmp_12); - if (r0) { step = 26; continue; } - r0 = pxsim_pxtcore.switch_eq(13, s.tmp_12); - if (r0) { step = 27; continue; } - r0 = pxsim_pxtcore.switch_eq(18, s.tmp_12); - if (r0) { step = 28; continue; } - r0 = pxsim_pxtcore.switch_eq(16, s.tmp_12); - if (r0) { step = 29; continue; } - r0 = pxsim_pxtcore.switch_eq(27, s.tmp_12); - if (r0) { step = 30; continue; } - r0 = pxsim_pxtcore.switch_eq(17, s.tmp_12); - if (r0) { step = 31; continue; } - r0 = pxsim_pxtcore.switch_eq(14, s.tmp_12); - if (r0) { step = 32; continue; } - r0 = pxsim_pxtcore.switch_eq(10, s.tmp_12); - if (r0) { step = 33; continue; } - r0 = pxsim_pxtcore.switch_eq(19, s.tmp_12); - if (r0) { step = 34; continue; } - r0 = pxsim_pxtcore.switch_eq(20, s.tmp_12); - if (r0) { step = 35; continue; } - r0 = pxsim_pxtcore.switch_eq(21, s.tmp_12); - if (r0) { step = 36; continue; } - r0 = pxsim_pxtcore.switch_eq(25, s.tmp_12); - if (r0) { step = 37; continue; } - r0 = pxsim_pxtcore.switch_eq(26, s.tmp_12); - if (r0) { step = 38; continue; } - r0 = pxsim_pxtcore.switch_eq(23, s.tmp_12); - if (r0) { step = 39; continue; } - r0 = pxsim_pxtcore.switch_eq(24, s.tmp_12); - if (r0) { step = 40; continue; } - r0 = pxsim_pxtcore.switch_eq(15, s.tmp_12); - if (r0) { step = 41; continue; } - r0 = pxsim_pxtcore.switch_eq(24, s.tmp_12); - if (r0) { step = 42; continue; } - r0 = pxsim_pxtcore.switch_eq(30, s.tmp_12); - if (r0) { step = 43; continue; } - r0 = pxsim_pxtcore.switch_eq(29, s.tmp_12); - if (r0) { step = 44; continue; } - r0 = pxsim_pxtcore.switch_eq(28, s.tmp_12); - if (r0) { step = 45; continue; } - r0 = pxsim_pxtcore.switch_eq(44, s.tmp_12); - if (r0) { step = 46; continue; } - r0 = pxsim_pxtcore.switch_eq(51, s.tmp_12); - if (r0) { step = 47; continue; } - r0 = pxsim_pxtcore.switch_eq(41, s.tmp_12); - if (r0) { step = 48; continue; } - r0 = pxsim_pxtcore.switch_eq(43, s.tmp_12); - if (r0) { step = 49; continue; } - r0 = pxsim_pxtcore.switch_eq(45, s.tmp_12); - if (r0) { step = 50; continue; } - r0 = pxsim_pxtcore.switch_eq(46, s.tmp_12); - if (r0) { step = 51; continue; } - r0 = pxsim_pxtcore.switch_eq(40, s.tmp_12); - if (r0) { step = 52; continue; } - r0 = pxsim_pxtcore.switch_eq(48, s.tmp_12); - if (r0) { step = 53; continue; } - r0 = pxsim_pxtcore.switch_eq(49, s.tmp_12); - if (r0) { step = 54; continue; } - r0 = pxsim_pxtcore.switch_eq(50, s.tmp_12); - if (r0) { step = 55; continue; } - r0 = pxsim_pxtcore.switch_eq(52, s.tmp_12); - if (r0) { step = 56; continue; } - r0 = pxsim_pxtcore.switch_eq(47, s.tmp_12); - if (r0) { step = 57; continue; } - r0 = pxsim_pxtcore.switch_eq(55, s.tmp_12); - if (r0) { step = 58; continue; } - r0 = pxsim_pxtcore.switch_eq(53, s.tmp_12); - if (r0) { step = 59; continue; } - r0 = pxsim_pxtcore.switch_eq(54, s.tmp_12); - if (r0) { step = 60; continue; } - r0 = s.tmp_12; - { step = 61; continue; } - case 25: - r0 = 9; - { step = 62; continue; } - case 26: - r0 = 10; - { step = 62; continue; } - case 27: - r0 = 20; - { step = 62; continue; } - case 28: - r0 = 30; - { step = 62; continue; } - case 29: - r0 = 40; - { step = 62; continue; } - case 30: - r0 = 50; - { step = 62; continue; } - case 31: - r0 = 100; - { step = 62; continue; } - case 32: - r0 = 110; - { step = 62; continue; } - case 33: - r0 = 108; - { step = 62; continue; } - case 34: - r0 = 200; - { step = 62; continue; } - case 35: - r0 = 201; - { step = 62; continue; } - case 36: - r0 = 202; - { step = 62; continue; } - case 37: - r0 = 300; - { step = 62; continue; } - case 38: - r0 = 301; - { step = 62; continue; } - case 39: - r0 = 500; - { step = 62; continue; } - case 40: - r0 = 501; - { step = 62; continue; } - case 41: - r0 = 502; - { step = 62; continue; } - case 42: - r0 = 503; - { step = 62; continue; } - case 43: - r0 = 504; - { step = 62; continue; } - case 44: - r0 = 505; - { step = 62; continue; } - case 45: - r0 = 506; - { step = 62; continue; } - case 46: - r0 = 10; - { step = 62; continue; } - case 47: - r0 = 15; - { step = 62; continue; } - case 48: - r0 = 20; - { step = 62; continue; } - case 49: - r0 = 22; - { step = 62; continue; } - case 50: - r0 = 100; - { step = 62; continue; } - case 51: - r0 = 105; - { step = 62; continue; } - case 52: - r0 = 110; - { step = 62; continue; } - case 53: - r0 = 200; - { step = 62; continue; } - case 54: - r0 = 201; - { step = 62; continue; } - case 55: - r0 = 202; - { step = 62; continue; } - case 56: - r0 = 500; - { step = 62; continue; } - case 57: - r0 = 600; - { step = 62; continue; } - case 58: - r0 = 601; - { step = 62; continue; } - case 59: - r0 = 602; - { step = 62; continue; } - case 60: - r0 = 603; - { step = 62; continue; } - case 61: - r0 = 1000; - case 62: + r0 = pxsim.BufferMethods.setNumber(s.tmp_0, 5, 1, s.arg1); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_priority__P4265.info = {"start":13198,"length":4107,"line":422,"column":4,"endLine":542,"endColumn":5,"fileName":"tiles.ts","functionName":"priority","argumentNames":["tile"]} +radio_RadioPacket_time__P3051.info = {"start":6951,"length":96,"line":200,"column":8,"endLine":202,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"time","argumentNames":["this","val"]} -function microcode_priority__P4265_mk(s) { +function radio_RadioPacket_time__P3051_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_priority__P4265, depth: s.depth + 1, + parent: s, fn: radio_RadioPacket_time__P3051, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tid___20167: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_isVisible__P4261(s) { +function radio_RadioPacket_time__P3050(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -57912,96 +63492,34 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___20244 = undefined; - s.ext___20267 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1057; s.pc = 12; return s.tmp_0; - case 12: - r0 = s.retval; - s.tid___20244 = (r0); - r0 = (s.tid___20244 == 42); + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = s.arg0.fields["data"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = (s.tid___20244 == 89); - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = s.tmp_1; - { step = 4; continue; } - case 3: - r0 = (s.tid___20244 == 25); - case 4: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (!r0) { step = 5; continue; } - r0 = s.tmp_2; - { step = 6; continue; } - case 5: - r0 = (s.tid___20244 == 26); - case 6: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBool(s.tmp_3); - if (!r0) { step = 7; continue; } - r0 = s.tmp_3; - { step = 8; continue; } - case 7: - r0 = (s.tid___20244 == 52); - case 8: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 9; continue; } - r0 = false; - { step = 11; continue; } - case 9: - case 10: - s.tmp_5 = microcode_jdExternalClass__P4285_mk(s); - s.tmp_5.arg0 = s.arg0; - s.callLocIdx = 1058; s.pc = 13; return s.tmp_5; - case 13: - r0 = s.retval; - s.ext___20267 = (r0); - r0 = (s.ext___20267 == undefined); - case 11: - return leave(s, r0) + r0 = pxsim.BufferMethods.getNumber(s.tmp_0, 5, 1); + return leaveAccessor(s, r0) default: oops() } } } -microcode_isVisible__P4261.info = {"start":11338,"length":523,"line":369,"column":4,"endLine":384,"endColumn":5,"fileName":"tiles.ts","functionName":"isVisible","argumentNames":["tile"]} +radio_RadioPacket_time__P3050.info = {"start":6854,"length":87,"line":196,"column":8,"endLine":198,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"time","argumentNames":["this"]} +radio_RadioPacket_time__P3050.isGetter = true; -function microcode_isVisible__P4261_mk(s) { +function radio_RadioPacket_time__P3050_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_isVisible__P4261, depth: s.depth + 1, + parent: s, fn: radio_RadioPacket_time__P3050, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tid___20244: undefined, - ext___20267: undefined, arg0: undefined, } } - -function microcode_jdExternalClass__P4285(s) { +function radio_RadioPacket_numberPayload__P3057(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58011,106 +63529,61 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tid___20275 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1111; s.pc = 16; return s.tmp_0; - case 16: - r0 = s.retval; - s.tid___20275 = (r0); - s.tmp_0 = r0 = s.tid___20275; - r0 = pxsim_pxtcore.switch_eq(75, s.tmp_0); + r0 = s.arg0; + if (!checkSubtype(r0, radio_RadioPacket__C3045_VT)) failedCast(r0, radio_RadioPacket__C3045_VT); + r0 = s.arg0.fields["data"]; + s.tmp_1 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_1, 0); + s.tmp_0 = r0; + r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(76, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq(23, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq(22, s.tmp_0); + r0 = pxsim_pxtcore.switch_eq(5, s.tmp_0); if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq(15, s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq(24, s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq(47, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(53, s.tmp_0); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq(55, s.tmp_0); - if (r0) { step = 9; continue; } - r0 = pxsim_pxtcore.switch_eq(54, s.tmp_0); - if (r0) { step = 10; continue; } - r0 = pxsim_pxtcore.switch_eq(28, s.tmp_0); - if (r0) { step = 11; continue; } - r0 = pxsim_pxtcore.switch_eq(29, s.tmp_0); - if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq(30, s.tmp_0); - if (r0) { step = 13; continue; } r0 = s.tmp_0; - { step = 14; continue; } + { step = 5; continue; } case 1: case 2: - r0 = 343122531; - { step = 15; continue; } + r0 = s.arg0.fields["data"]; + s.tmp_2 = r0; + r0 = pxsim.BufferMethods.setNumber(s.tmp_2, 5, 9, s.arg1); + { step = 5; continue; } case 3: - r0 = 522667846; - { step = 15; continue; } case 4: - r0 = 318642191; - { step = 15; continue; } + r0 = s.arg0.fields["data"]; + s.tmp_0 = r0; + r0 = pxsim.BufferMethods.setNumber(s.tmp_0, 14, 9, s.arg1); case 5: - r0 = 400333340; - { step = 15; continue; } - case 6: - r0 = 284830153; - { step = 15; continue; } - case 7: - r0 = 369743088; - { step = 15; continue; } - case 8: - case 9: - r0 = 318542083; - { step = 15; continue; } - case 10: - r0 = 406840918; - { step = 15; continue; } - case 11: - r0 = 491430835; - { step = 15; continue; } - case 12: - r0 = 337275786; - { step = 15; continue; } - case 13: - r0 = 309087410; - { step = 15; continue; } - case 14: - r0 = undefined; - { step = 15; continue; } r0 = undefined; - case 15: return leave(s, r0) default: oops() } } } -microcode_jdExternalClass__P4285.info = {"start":33773,"length":1287,"line":951,"column":4,"endLine":981,"endColumn":5,"fileName":"tiles.ts","functionName":"jdExternalClass","argumentNames":["tile"]} +radio_RadioPacket_numberPayload__P3057.info = {"start":8331,"length":500,"line":238,"column":8,"endLine":249,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"numberPayload","argumentNames":["this","val"]} -function microcode_jdExternalClass__P4285_mk(s) { +function radio_RadioPacket_numberPayload__P3057_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_jdExternalClass__P4285, depth: s.depth + 1, + parent: s, fn: radio_RadioPacket_numberPayload__P3057, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tid___20275: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, + arg1: undefined, } } - -function helpers_arraySort__P2134(s) { +function radio_RadioPacket_mkPacket__P3047(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58120,60 +63593,44 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.res___22177 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = pxsim_pxtcore_mkClassInstance(radio_RadioPacket__C3045_VT); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + s.tmp_1 = radio_RadioPacket_constructor__P5014_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = undefined; + s.callLocIdx = 168; s.pc = 1; return s.tmp_1; case 1: - r0 = pxsim_Array__length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_2 > 1); - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 3; continue; } - s.arg1 = (helpers_arraySort_inline__P20315); - case 3: - case 4: - s.tmp_0 = helpers_sortHelper__P4804_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 3; s.pc = 5; return s.tmp_0; - case 5: r0 = s.retval; + s.res___22177 = (s.tmp_0); + r0 = s.res___22177.fields["data"]; + s.tmp_0 = r0; + r0 = pxsim.BufferMethods.setByte(s.tmp_0, 0, s.arg0); + r0 = s.res___22177; return leave(s, r0) default: oops() } } } -helpers_arraySort__P2134.info = {"start":5663,"length":859,"line":207,"column":4,"endLine":227,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"arraySort","argumentNames":["arr","callbackfn"]} +radio_RadioPacket_mkPacket__P3047.info = {"start":6340,"length":159,"line":178,"column":8,"endLine":182,"endColumn":9,"fileName":"pxt_modules/radio/radio.ts","functionName":"mkPacket","argumentNames":["packetType"]} -function helpers_arraySort__P2134_mk(s) { +function radio_RadioPacket_mkPacket__P3047_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arraySort__P2134, depth: s.depth + 1, + parent: s, fn: radio_RadioPacket_mkPacket__P3047, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, + res___22177: undefined, arg0: undefined, - arg1: undefined, } } - -function helpers_arraySort_inline__P20315(s) { +function basic_showNumber__P2370(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58183,133 +63640,57 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.aIsUndef___20318 = undefined; - s.bIsUndef___20322 = undefined; - s.aIsNull___20333 = undefined; - s.bIsNull___20337 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 === undefined); - s.aIsUndef___20318 = (r0); - r0 = (s.arg1 === undefined); - s.bIsUndef___20322 = (r0); - s.tmp_0 = r0 = s.aIsUndef___20318; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = s.bIsUndef___20322; - case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 3; continue; } - r0 = 0; - { step = 17; continue; } - { step = 8; continue; } + s.tmp_1 = isNaN__P2122_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 29; s.pc = 3; return s.tmp_1; case 3: - r0 = pxsim_numops_toBoolDecr(s.aIsUndef___20318); - if (!r0) { step = 4; continue; } - r0 = 1; - { step = 17; continue; } - { step = 7; continue; } - case 4: - r0 = pxsim_numops_toBoolDecr(s.bIsUndef___20322); - if (!r0) { step = 5; continue; } - r0 = -1; - { step = 17; continue; } - case 5: - case 6: - case 7: - case 8: - r0 = (s.arg0 === null); - s.aIsNull___20333 = (r0); - r0 = (s.arg1 === null); - s.bIsNull___20337 = (r0); - s.tmp_0 = r0 = s.aIsNull___20333; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 9; continue; } - r0 = s.tmp_0; - { step = 10; continue; } - case 9: - r0 = s.bIsNull___20337; - case 10: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 11; continue; } - r0 = 0; - { step = 17; continue; } - { step = 16; continue; } - case 11: - r0 = pxsim_numops_toBoolDecr(s.aIsNull___20333); - if (!r0) { step = 12; continue; } - r0 = 1; - { step = 17; continue; } - { step = 15; continue; } - case 12: - r0 = pxsim_numops_toBoolDecr(s.bIsNull___20337); - if (!r0) { step = 13; continue; } - r0 = -1; - { step = 17; continue; } - case 13: - case 14: - case 15: - case 16: - if ((s.arg0) && (s.arg0).vtable) { - setupResume(s, 18); - pxsim_String__stringConv(s.arg0); + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + setupResume(s, 4); + pxsim.basic.showString("?", 150); checkResumeConsumed(); return; - } else { s.retval = (s.arg0) + ""; } - case 18: + case 4: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_3, s.tmp_4); - s.tmp_2 = r0; - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 19); - pxsim_String__stringConv(s.arg1); + { step = 2; continue; } + case 1: + s.tmp_2 = Math_roundWithPrecision__P2161_mk(s); + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = 2; + s.callLocIdx = 30; s.pc = 5; return s.tmp_2; + case 5: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_numops.toString(s.tmp_1); + s.tmp_0 = r0; + setupResume(s, 6); + pxsim.basic.showString(s.tmp_0, s.arg1); checkResumeConsumed(); return; - } else { s.retval = (s.arg1) + ""; } - case 19: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_7 = r0; - r0 = pxsim_String__concat(s.tmp_6, s.tmp_7); - s.tmp_5 = r0; - r0 = pxsim_String_.compare(s.tmp_2, s.tmp_5); - case 17: + case 6: + r0 = s.retval; + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_arraySort_inline__P20315.info = {"start":5826,"length":636,"line":209,"column":25,"endLine":224,"endColumn":13,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"inline","argumentNames":["a","b"]} +basic_showNumber__P2370.info = {"start":396,"length":215,"line":11,"column":4,"endLine":16,"endColumn":5,"fileName":"pxt_modules/core/basic.ts","functionName":"showNumber","argumentNames":["value","interval"]} -function helpers_arraySort_inline__P20315_mk(s) { +function basic_showNumber__P2370_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_arraySort_inline__P20315, depth: s.depth + 1, + parent: s, fn: basic_showNumber__P2370, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - aIsUndef___20318: undefined, - bIsUndef___20322: undefined, - aIsNull___20333: undefined, - bIsNull___20337: undefined, arg0: undefined, arg1: undefined, } } @@ -58317,8 +63698,7 @@ function helpers_arraySort_inline__P20315_mk(s) { - -function helpers_sortHelper__P4804(s) { +function Math_roundWithPrecision__P2161(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58328,163 +63708,82 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.len___20372 = undefined; - s.i___20375 = undefined; - s.j___20381 = undefined; + s.r___22212 = undefined; + s.d___22214 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__length(s.arg0); - s.tmp_1 = r0; - r0 = (s.tmp_1 <= 0); + r0 = (s.arg1 | 0); + s.arg1 = (r0); + r0 = (s.arg1 <= 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = pxsim.Math_.round(s.arg0); + { step = 9; continue; } case 1: - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); + r0 = (s.arg0 == 0); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); if (!r0) { step = 3; continue; } - r0 = s.arg0; - { step = 11; continue; } + r0 = 0; + { step = 9; continue; } case 3: case 4: - r0 = pxsim_Array__length(s.arg0); - s.len___20372 = (r0); - s.i___20375 = (0); + s.r___22212 = (0); case 5: - s.tmp_1 = r0 = s.i___20375; - r0 = (s.len___20372 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = pxsim.Math_.pow(10, s.arg1); + s.d___22214 = (r0); + r0 = (s.arg0 * s.d___22214); + s.tmp_1 = r0; + r0 = pxsim.Math_.round(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 10; continue; } - r0 = (s.i___20375 + 1); - s.j___20381 = (r0); - case 6: - r0 = (s.j___20381 < s.len___20372); + r0 = (s.tmp_0 / s.d___22214); + s.r___22212 = (r0); + r0 = (s.arg1 + 1); + s.arg1 = (r0); + r0 = (s.r___22212 == 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - s.tmp_3 = lambda_3_mk(s); - s.tmp_3.argL = s.arg1; - r0 = pxsim_Array__getAt(s.arg0, s.i___20375); - s.tmp_3.arg0 = r0; - r0 = pxsim_Array__getAt(s.arg0, s.j___20381); - s.tmp_3.arg1 = r0; - setupLambda(s.tmp_3, s.tmp_3.argL); - s.callLocIdx = 1; s.pc = 12; return s.tmp_3; - case 12: - r0 = s.retval; - s.tmp_2 = r0; - r0 = (s.tmp_2 > 0); + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 6; continue; } + r0 = s.tmp_0; + { step = 7; continue; } + case 6: + r0 = (s.arg1 < 21); + case 7: + // jmp value (already in r0) s.tmp_1 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 7; continue; } - s.tmp_4 = helpers_swap__P4803_mk(s); - s.tmp_4.arg0 = s.arg0; - s.tmp_4.arg1 = s.i___20375; - s.tmp_4.arg2 = s.j___20381; - s.callLocIdx = 2; s.pc = 13; return s.tmp_4; - case 13: - r0 = s.retval; - case 7: + if (!r0) { step = 8; continue; } + { step = 5; continue; } case 8: - r0 = (s.j___20381 + 1); - s.j___20381 = (r0); - { step = 6; continue; } + r0 = s.r___22212; case 9: - r0 = (s.i___20375 + 1); - s.i___20375 = (r0); - { step = 5; continue; } - case 10: - r0 = s.arg0; - case 11: - return leave(s, r0) - default: oops() -} } } -helpers_sortHelper__P4804.info = {"start":5176,"length":481,"line":191,"column":4,"endLine":205,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"sortHelper","argumentNames":["arr","callbackfn"]} - -function helpers_sortHelper__P4804_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: helpers_sortHelper__P4804, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - len___20372: undefined, - i___20375: undefined, - j___20381: undefined, - arg0: undefined, - arg1: undefined, -} } - - - - - -function helpers_swap__P4803(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.temp___20410 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.lambdaArgs = null; - } - r0 = pxsim_Array__getAt(s.arg0, s.arg1); - s.temp___20410 = (r0); - s.tmp_0 = r0 = s.arg0; - s.tmp_1 = r0 = s.arg1; - r0 = pxsim_Array__getAt(s.arg0, s.arg2); - s.tmp_2 = r0; - r0 = pxsim_Array_.setAt(s.tmp_0, s.tmp_1, s.tmp_2); - r0 = pxsim_Array_.setAt(s.arg0, s.arg2, s.temp___20410); - r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_swap__P4803.info = {"start":5030,"length":140,"line":185,"column":4,"endLine":189,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"swap","argumentNames":["arr","i","j"]} +Math_roundWithPrecision__P2161.info = {"start":17145,"length":411,"line":579,"column":4,"endLine":591,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"roundWithPrecision","argumentNames":["x","digits"]} -function helpers_swap__P4803_mk(s) { +function Math_roundWithPrecision__P2161_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_swap__P4803, depth: s.depth + 1, + parent: s, fn: Math_roundWithPrecision__P2161, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - temp___20410: undefined, + r___22212: undefined, + d___22214: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function microcode_RuleDefn_updateAt__P4055(s) { +function microcode_MicrobitHost_showIcon__P6085(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58494,102 +63793,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tiles___20426 = undefined; - s.oldTile___20431 = undefined; + s.s___22236 = undefined; + s.row___22238 = undefined; + s.col___22242 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleDefn__C4043_VT)) failedCast(r0, microcode_RuleDefn__C4043_VT); - s.tmp_1 = microcode_RuleDefn_getRuleRep__P4050_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 936; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + r0 = pxsim_Array__mk(); + s.s___22236 = (r0); + s.row___22238 = (0); + case 1: + r0 = (s.row___22238 < 5); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_0, s.arg1); - s.tiles___20426 = (r0); - r0 = pxsim_Array__getAt(s.tiles___20426, s.arg2); - s.oldTile___20431 = (r0); - r0 = pxsim_Array_.setAt(s.tiles___20426, s.arg2, s.arg3); - r0 = (s.oldTile___20431 != s.arg3); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.col___22242 = (0); + case 2: + r0 = (s.col___22242 < 5); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 5; continue; } - r0 = (s.oldTile___20431 == 177); + r0 = pxsim.BitmapMethods.getPixel(s.arg1, s.col___22242, s.row___22238); s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 1; continue; } - r0 = s.tmp_1; - { step = 2; continue; } - case 1: - r0 = (s.arg3 == 177); - case 2: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); + r0 = pxsim_numops_toBoolDecr(s.tmp_1); if (!r0) { step = 3; continue; } - s.tmp_3 = helpers_arraySplice__P2129_mk(s); - s.tmp_3.arg0 = s.tiles___20426; - r0 = (s.arg2 + 1); - s.tmp_3.arg1 = r0; - r0 = pxsim_Array__length(s.tiles___20426); - s.tmp_4 = r0; - r0 = (s.arg2 + 1); - s.tmp_5 = r0; - r0 = (s.tmp_4 - s.tmp_5); - s.tmp_3.arg2 = r0; - s.callLocIdx = 937; s.pc = 8; return s.tmp_3; - case 8: - r0 = s.retval; + r0 = pxsim.led.plot(s.col___22242, s.row___22238); + { step = 4; continue; } case 3: + r0 = pxsim.led.unplot(s.col___22242, s.row___22238); case 4: + r0 = (s.col___22242 + 1); + s.col___22242 = (r0); + { step = 2; continue; } case 5: + r0 = (s.row___22238 + 1); + s.row___22238 = (r0); + { step = 1; continue; } case 6: - s.tmp_0 = microcode_RuleDefn_fixup__P4052_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 938; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - s.tmp_0 = microcode_RuleDefn_deleteIncompatibleTiles__P5713_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 939; s.pc = 10; return s.tmp_0; - case 10: + setupResume(s, 7); + pxsim.basic.pause(400); + checkResumeConsumed(); + return; + case 7: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleDefn_updateAt__P4055.info = {"start":6346,"length":614,"line":199,"column":8,"endLine":213,"endColumn":9,"fileName":"language.ts","functionName":"updateAt","argumentNames":["this","name","index","tile"]} +microcode_MicrobitHost_showIcon__P6085.info = {"start":8057,"length":416,"line":230,"column":8,"endLine":240,"endColumn":9,"fileName":"host.ts","functionName":"showIcon","argumentNames":["this","img"]} -function microcode_RuleDefn_updateAt__P4055_mk(s) { +function microcode_MicrobitHost_showIcon__P6085_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleDefn_updateAt__P4055, depth: s.depth + 1, + parent: s, fn: microcode_MicrobitHost_showIcon__P6085, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tiles___20426: undefined, - oldTile___20431: undefined, + s___22236: undefined, + row___22238: undefined, + col___22242: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function microcode_RuleEditor_getSuggestions__P5799(s) { +function microcode_MicrobitHost_stopOngoingActions__P4741(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58601,41 +63875,35 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - s.tmp_0 = microcode_Language_getTileSuggestions__P4074_mk(s); - r0 = s.arg0.fields["ruledef"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = s.arg2; - s.callLocIdx = 1404; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + s.tmp_0 = music_stopAllSounds__P2704_mk(s); + s.callLocIdx = 1990; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + r0 = pxsim.led.stopAnimation(); + r0 = pxsim.basic.clearScreen(); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_getSuggestions__P5799.info = {"start":13068,"length":137,"line":359,"column":8,"endLine":361,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"getSuggestions","argumentNames":["this","name","index"]} +microcode_MicrobitHost_stopOngoingActions__P4741.info = {"start":6657,"length":137,"line":191,"column":8,"endLine":195,"endColumn":9,"fileName":"host.ts","functionName":"stopOngoingActions","argumentNames":["this"]} -function microcode_RuleEditor_getSuggestions__P5799_mk(s) { +function microcode_MicrobitHost_stopOngoingActions__P4741_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_getSuggestions__P5799, depth: s.depth + 1, + parent: s, fn: microcode_MicrobitHost_stopOngoingActions__P4741, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_RuleEditor_needsWhenInsert__P5787(s) { +function microcode_MicrobitHost_emitClearScreen__P4740(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58645,100 +63913,89 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.anim___22272 = undefined; + s.pos___22275 = undefined; + s.col___22281 = undefined; + s.row___22285 = undefined; + s.onOff___22289 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = s.arg0.fields["ruledef"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_3, "sensors"); + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + s.anim___22272 = (_hex22273); + s.pos___22275 = (0); + case 1: + s.tmp_1 = r0 = s.pos___22275; + r0 = pxsim.BufferMethods.length(s.anim___22272); s.tmp_2 = r0; - r0 = pxsim_Array__length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 0); + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_5 = microcode_RuleEditor_getSuggestions__P5799_mk(s); - s.tmp_5.arg0 = s.arg0; - s.tmp_5.arg1 = "filters"; - r0 = s.arg0.fields["ruledef"]; - s.tmp_7 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_7, "filters"); - s.tmp_6 = r0; - r0 = pxsim_Array__length(s.tmp_6); - s.tmp_5.arg2 = r0; - s.callLocIdx = 1333; s.pc = 7; return s.tmp_5; - case 7: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + s.col___22281 = (0); case 2: - // jmp value (already in r0) - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - if (!r0) { step = 5; continue; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); - s.tmp_9 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_10 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "parent", s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "style", globals.Transparent___3641); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "icon", "when_insertion_point"); - r0 = s.arg0.fields["ruledef"]; - s.tmp_14 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_14, "sensors"); - s.tmp_13 = r0; - r0 = pxsim_Array__length(s.tmp_13); - s.tmp_12 = r0; - r0 = (s.tmp_12 == 0); - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - if (!r0) { step = 3; continue; } - r0 = "when"; - { step = 4; continue; } + r0 = (s.col___22281 < 5); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.row___22285 = (0); case 3: - r0 = undefined; + r0 = (s.row___22285 < 5); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_2 = r0 = s.anim___22272; + r0 = (s.pos___22275 + s.col___22281); + s.tmp_4 = r0; + r0 = (s.row___22285 >> 3); + s.tmp_5 = r0; + r0 = (s.tmp_4 + s.tmp_5); + s.tmp_3 = r0; + r0 = pxsim.BufferMethods.getByte(s.tmp_2, s.tmp_3); + s.tmp_1 = r0; + r0 = (s.row___22285 & 7); + s.tmp_7 = r0; + r0 = (1 << s.tmp_7); + s.tmp_6 = r0; + r0 = (s.tmp_1 & s.tmp_6); + s.onOff___22289 = (r0); + r0 = pxsim_numops_toBoolDecr(s.onOff___22289); + if (!r0) { step = 4; continue; } + r0 = pxsim.led.plot(s.col___22281, s.row___22285); + { step = 5; continue; } case 4: - // jmp value (already in r0) - s.tmp_15 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "ariaId", s.tmp_15); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "x", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "y", 0); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P20491); - s.tmp_16 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_16, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "onClick", s.tmp_16); - s.tmp_17 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_17.arg0 = s.tmp_9; - s.tmp_17.arg1 = s.tmp_10; - s.callLocIdx = 1335; s.pc = 8; return s.tmp_17; - case 8: - r0 = s.retval; - r0 = (s.arg0).fields["whenInsertBtn"] = (s.tmp_9); - { step = 6; continue; } + r0 = pxsim.led.unplot(s.col___22281, s.row___22285); case 5: - s.tmp_0 = microcode_RuleEditor_destroyWhenInsertButton__P5786_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1336; s.pc = 9; return s.tmp_0; + r0 = (s.row___22285 + 1); + s.row___22285 = (r0); + { step = 3; continue; } + case 6: + r0 = (s.col___22281 + 1); + s.col___22281 = (r0); + { step = 2; continue; } + case 7: + setupResume(s, 9); + pxsim.control.waitMicros(20000); + checkResumeConsumed(); + return; case 9: r0 = s.retval; - case 6: + r0 = (s.pos___22275 + 5); + s.pos___22275 = (r0); + { step = 1; continue; } + case 8: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_needsWhenInsert__P5787.info = {"start":2297,"length":800,"line":71,"column":8,"endLine":92,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"needsWhenInsert","argumentNames":["this"]} +microcode_MicrobitHost_emitClearScreen__P4740.info = {"start":5707,"length":940,"line":160,"column":8,"endLine":189,"endColumn":9,"fileName":"host.ts","functionName":"emitClearScreen","argumentNames":["this"]} -function microcode_RuleEditor_needsWhenInsert__P5787_mk(s) { +function microcode_MicrobitHost_emitClearScreen__P4740_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_needsWhenInsert__P5787, depth: s.depth + 1, + parent: s, fn: microcode_MicrobitHost_emitClearScreen__P4740, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -58748,24 +64005,18 @@ function microcode_RuleEditor_needsWhenInsert__P5787_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, + anim___22272: undefined, + pos___22275: undefined, + col___22281: undefined, + row___22285: undefined, + onOff___22289: undefined, arg0: undefined, } } - -function onClick_inline__P20491(s) { +function microcode_MicrobitHost_registerOnSensorEvent__P4739(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58775,30 +64026,37 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_RuleEditor_showWhenInsertMenu__P5797_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1334; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + r0 = pxsim_pxtcore_mkAction(1, microcode_MicrobitHost_registerOnSensorEvent_inline__P22328); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg1); + r0 = (s.arg0).fields["_handler"] = (s.tmp_0); r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P20491.info = {"start":2954,"length":31,"line":87,"column":29,"endLine":87,"endColumn":60,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} +microcode_MicrobitHost_registerOnSensorEvent__P4739.info = {"start":5466,"length":231,"line":152,"column":8,"endLine":158,"endColumn":9,"fileName":"host.ts","functionName":"registerOnSensorEvent","argumentNames":["this","handler"]} -function onClick_inline__P20491_mk(s) { +function microcode_MicrobitHost_registerOnSensorEvent__P4739_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P20491, depth: s.depth + 1, + parent: s, fn: microcode_MicrobitHost_registerOnSensorEvent__P4739, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + arg0: undefined, + arg1: undefined, } } - -function microcode_RuleEditor_destroyWhenInsertButton__P5786(s) { +function microcode_MicrobitHost_registerOnSensorEvent_inline__P22328(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58810,30 +64068,54 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = (s.arg0).fields["whenInsertBtn"] = (undefined); + r0 = (s.arg0 >= 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = s.arg1; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 3; continue; } + s.tmp_2 = lambda_3_mk(s); + s.tmp_2.argL = s.caps[0]; + s.tmp_2.arg0 = s.arg0; + s.tmp_2.arg1 = s.arg1; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 1989; s.pc = 5; return s.tmp_2; + case 5: + r0 = s.retval; + case 3: + case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_destroyWhenInsertButton__P5786.info = {"start":2199,"length":88,"line":67,"column":8,"endLine":69,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"destroyWhenInsertButton","argumentNames":["this"]} +microcode_MicrobitHost_registerOnSensorEvent_inline__P22328.info = {"start":5594,"length":93,"line":155,"column":28,"endLine":157,"endColumn":13,"fileName":"host.ts","functionName":"inline","argumentNames":["tid","filter"]} -function microcode_RuleEditor_destroyWhenInsertButton__P5786_mk(s) { +function microcode_MicrobitHost_registerOnSensorEvent_inline__P22328_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_destroyWhenInsertButton__P5786, depth: s.depth + 1, + parent: s, fn: microcode_MicrobitHost_registerOnSensorEvent_inline__P22328, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_RuleEditor_showWhenInsertMenu__P5797(s) { +function microcode_MicrobitHost_getSensorValue__P4738(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58843,63 +64125,82 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.sensorName___22341 = undefined; + s.sensor___22345 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["sensors"]; - s.tmp_1 = r0; - r0 = pxsim_Array__length(s.tmp_1); + if (!checkSubtype(r0, microcode_MicrobitHost__C4736_VT)) failedCast(r0, microcode_MicrobitHost__C4736_VT); + s.tmp_0 = microcode_tidToSensor__P6047_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 1980; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.sensorName___22341 = (r0); + r0 = pxsim_pxtcore_mkAction(1, sensor_inline__P22347); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.sensorName___22341); + s.tmp_1 = helpers_arrayFind__P2140_mk(s); + r0 = s.arg0.fields["sensors"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1982; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + s.sensor___22345 = (r0); + r0 = pxsim_numops_toBoolDecr(s.sensor___22345); + if (!r0) { step = 3; continue; } + r0 = pxsim_numops_toBoolDecr(s.arg2); if (!r0) { step = 1; continue; } - s.tmp_2 = microcode_RuleEditor_editTile__P5795_mk(s); - s.tmp_2.arg0 = s.arg0; - s.tmp_2.arg1 = "filters"; - r0 = s.arg0.fields["ruledef"]; - r0 = r0.fields["filters"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2.arg2 = r0; - s.callLocIdx = 1400; s.pc = 3; return s.tmp_2; - case 3: + s.tmp_0 = Sensor_getNormalisedReading__P4773_mk(s); + s.tmp_0.arg0 = s.sensor___22345; + s.callLocIdx = 1983; s.pc = 8; return s.tmp_0; + case 8: r0 = s.retval; { step = 2; continue; } case 1: - s.tmp_0 = microcode_RuleEditor_editTile__P5795_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = "sensors"; - s.tmp_0.arg2 = 0; - s.callLocIdx = 1401; s.pc = 4; return s.tmp_0; - case 4: + s.tmp_1 = Sensor_getReading__P4772_mk(s); + s.tmp_1.arg0 = s.sensor___22345; + s.callLocIdx = 1984; s.pc = 9; return s.tmp_1; + case 9: r0 = s.retval; case 2: - r0 = undefined; + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = s.tmp_2; + { step = 5; continue; } + case 3: + case 4: + r0 = 0; + case 5: return leave(s, r0) default: oops() } } } -microcode_RuleEditor_showWhenInsertMenu__P5797.info = {"start":12570,"length":236,"line":343,"column":8,"endLine":349,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"showWhenInsertMenu","argumentNames":["this"]} +microcode_MicrobitHost_getSensorValue__P4738.info = {"start":4687,"length":373,"line":133,"column":8,"endLine":141,"endColumn":9,"fileName":"host.ts","functionName":"getSensorValue","argumentNames":["this","tid","normalized"]} -function microcode_RuleEditor_showWhenInsertMenu__P5797_mk(s) { +function microcode_MicrobitHost_getSensorValue__P4738_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_showWhenInsertMenu__P5797, depth: s.depth + 1, + parent: s, fn: microcode_MicrobitHost_getSensorValue__P4738, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, + sensorName___22341: undefined, + sensor___22345: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_RuleEditor_processSection__P5791(s) { +function sensor_inline__P22347(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58909,53 +64210,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tiles___20512 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = pxsim_pxtrt.mapGetGeneric(s.arg2, s.arg1); - s.tiles___20512 = (r0); - r0 = pxsim_pxtcore_mkAction(2, microcode_RuleEditor_processSection_inline__P20518); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_1.arg0 = s.tiles___20512; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1350; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - r0 = pxsim_Array__length(s.tiles___20512); + r0 = s.arg0.fields["name"]; s.tmp_0 = r0; - r0 = (s.tmp_0 > 0); + r0 = (s.tmp_0 == s.caps[0]); return leave(s, r0) default: oops() } } } -microcode_RuleEditor_processSection__P5791.info = {"start":4429,"length":602,"line":135,"column":8,"endLine":150,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"processSection","argumentNames":["this","name","rule"]} +sensor_inline__P22347.info = {"start":4846,"length":30,"line":135,"column":45,"endLine":135,"endColumn":75,"fileName":"host.ts","functionName":"inline","argumentNames":["s"]} -function microcode_RuleEditor_processSection__P5791_mk(s) { +function sensor_inline__P22347_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_processSection__P5791, depth: s.depth + 1, + parent: s, fn: sensor_inline__P22347, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tiles___20512: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_RuleEditor_processSection_inline__P20518(s) { +function Sensor_getReading__P4772(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -58965,105 +64244,43 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.button___20521 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.caps[0]); - s.tmp_3 = microcode_buttonStyle__P4264_mk(s); - s.tmp_3.arg0 = s.arg0; - s.callLocIdx = 1344; s.pc = 1; return s.tmp_3; + r0 = s.arg0; + if (!checkSubtype(r0, Sensor__C4767_VT)) failedCast(r0, Sensor__C4767_VT); + s.tmp_0 = if_sensorFn_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "sensorFn"), 1); + s.callLocIdx = 2161; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["sensorFn"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["sensorFn"], 1); s.callLocIdx = 2161; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 2161; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 2161; s.pc = 1; return s.tmp_0; } + } case 1: r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", s.tmp_2); - s.tmp_5 = microcode_getIcon__P4042_mk(s); - s.tmp_5.arg0 = s.arg0; - s.callLocIdx = 1345; s.pc = 2; return s.tmp_5; - case 2: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_4); - s.tmp_8 = microcode_getTid__P4041_mk(s); - s.tmp_8.arg0 = s.arg0; - s.callLocIdx = 1346; s.pc = 3; return s.tmp_8; - case 3: - r0 = s.retval; - s.tmp_7 = r0; - r0 = pxsim_numops.toString(s.tmp_7); - s.tmp_10 = r0; - if ((s.tmp_10) && (s.tmp_10).vtable) { - setupResume(s, 4); - pxsim_String__stringConv(s.tmp_10); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_10) + ""; } - case 4: - r0 = s.retval; - s.tmp_9 = r0; - r0 = pxsim_String__concat("T", s.tmp_9); - s.tmp_6 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", s.tmp_6); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", 0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 0); - r0 = pxsim_pxtcore_mkAction(3, onClick_inline__P20531); - s.tmp_11 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_11, 0, s.caps[0]); - r0 = pxsim_pxtrt_stclo(s.tmp_11, 1, s.caps[1]); - r0 = pxsim_pxtrt_stclo(s.tmp_11, 2, s.arg1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_11); - s.tmp_12 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_12.arg0 = s.tmp_0; - s.tmp_12.arg1 = s.tmp_1; - s.callLocIdx = 1349; s.pc = 5; return s.tmp_12; - case 5: - r0 = s.retval; - s.button___20521 = (s.tmp_0); - r0 = s.caps[0].fields["ruleButtons"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_1, s.caps[1]); - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.button___20521); - r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_processSection_inline__P20518.info = {"start":4546,"length":438,"line":137,"column":26,"endLine":148,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["tile","index"]} +Sensor_getReading__P4772.info = {"start":2742,"length":59,"line":84,"column":4,"endLine":86,"endColumn":5,"fileName":"sensors.ts","functionName":"getReading","argumentNames":["this"]} -function microcode_RuleEditor_processSection_inline__P20518_mk(s) { +function Sensor_getReading__P4772_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_processSection_inline__P20518, depth: s.depth + 1, + parent: s, fn: Sensor_getReading__P4772, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - button___20521: undefined, arg0: undefined, - arg1: undefined, } } - -function onClick_inline__P20531(s) { +function Sensor_getNormalisedReading__P4773(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59073,32 +64290,47 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_RuleEditor_editTile__P5795_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = s.caps[1]; - s.tmp_0.arg2 = s.caps[2]; - s.callLocIdx = 1348; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, Sensor__C4767_VT)) failedCast(r0, Sensor__C4767_VT); + s.tmp_1 = Math_abs__P2157_mk(s); + s.tmp_2 = Sensor_getReading__P4772_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 2162; s.pc = 2; return s.tmp_2; + case 2: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.callLocIdx = 2163; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - r0 = undefined; + s.tmp_0 = r0; + r0 = s.arg0.fields["range"]; + s.tmp_3 = r0; + r0 = (s.tmp_0 / s.tmp_3); return leave(s, r0) default: oops() } } } -onClick_inline__P20531.info = {"start":4866,"length":32,"line":145,"column":29,"endLine":145,"endColumn":61,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":[]} +Sensor_getNormalisedReading__P4773.info = {"start":2806,"length":94,"line":87,"column":4,"endLine":89,"endColumn":5,"fileName":"sensors.ts","functionName":"getNormalisedReading","argumentNames":["this"]} -function onClick_inline__P20531_mk(s) { +function Sensor_getNormalisedReading__P4773_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P20531, depth: s.depth + 1, + parent: s, fn: Sensor_getNormalisedReading__P4773, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + arg0: undefined, } } - -function microcode_buttonStyle__P4264(s) { +function Sensor_getName__P4770(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59106,49 +64338,32 @@ s.pc = -1; while (true) { if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_1 = microcode_getFieldEditor__P4402_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 1065; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = globals.Transparent___3641; - { step = 2; continue; } - case 1: - r0 = globals.FlatWhite___3638; - case 2: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = s.tmp_2; + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, Sensor__C4767_VT)) failedCast(r0, Sensor__C4767_VT); + r0 = s.arg0.fields["name"]; return leave(s, r0) default: oops() } } } -microcode_buttonStyle__P4264.info = {"start":13020,"length":172,"line":416,"column":4,"endLine":420,"endColumn":5,"fileName":"tiles.ts","functionName":"buttonStyle","argumentNames":["tile"]} +Sensor_getName__P4770.info = {"start":2622,"length":50,"line":78,"column":4,"endLine":80,"endColumn":5,"fileName":"sensors.ts","functionName":"getName","argumentNames":["this"]} -function microcode_buttonStyle__P4264_mk(s) { +function Sensor_getName__P4770_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_buttonStyle__P4264, depth: s.depth + 1, + parent: s, fn: Sensor_getName__P4770, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, } } - -function microcode_RuleEditor_destroyProgramTiles__P5790(s) { +function microcode_tidToSensor__P6047(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59158,65 +64373,46 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.changed___20550 = undefined; + s.result___22377 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); r0 = pxsim_pxtrt.mklocRef(); - s.changed___20550 = (r0); - r0 = pxsim_pxtrt_stlocRef(s.changed___20550, false); - r0 = pxsim_pxtcore_mkAction(2, microcode_RuleEditor_destroyProgramTiles_inline__P20553); + s.result___22377 = (r0); + r0 = pxsim_pxtrt_stlocRef(s.result___22377, undefined); + r0 = pxsim_pxtcore_mkAction(2, microcode_tidToSensor_inline__P22383); s.tmp_0 = r0; r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.changed___20550); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.result___22377); s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = microcode_repNames__P5785_mk(s); - s.callLocIdx = 1341; s.pc = 4; return s.tmp_2; - case 4: - r0 = s.retval; + r0 = pxsim_pxtrt.keysOf(globals.sensorInfo___6042); s.tmp_1.arg0 = r0; s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1342; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - r0 = pxsim_pxtrt_ldlocRef(s.changed___20550); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_Editor_changed__P4308_mk(s); - r0 = s.arg0.fields["editor"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1343; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; + s.callLocIdx = 1965; s.pc = 1; return s.tmp_1; case 1: - case 2: - r0 = undefined; + r0 = s.retval; + r0 = pxsim_pxtrt_ldlocRef(s.result___22377); return leave(s, r0) default: oops() } } } -microcode_RuleEditor_destroyProgramTiles__P5790.info = {"start":4044,"length":375,"line":123,"column":8,"endLine":133,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"destroyProgramTiles","argumentNames":["this"]} +microcode_tidToSensor__P6047.info = {"start":400,"length":255,"line":12,"column":4,"endLine":19,"endColumn":5,"fileName":"host.ts","functionName":"tidToSensor","argumentNames":["tid"]} -function microcode_RuleEditor_destroyProgramTiles__P5790_mk(s) { +function microcode_tidToSensor__P6047_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_destroyProgramTiles__P5790, depth: s.depth + 1, + parent: s, fn: microcode_tidToSensor__P6047, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - changed___20550: undefined, + result___22377: undefined, arg0: undefined, } } - -function microcode_RuleEditor_destroyProgramTiles_inline__P20553(s) { +function microcode_tidToSensor_inline__P22383(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59226,52 +64422,52 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.keyTid___22385 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.caps[0].fields["ruleButtons"]; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(s.tmp_2, s.arg0); - s.tmp_1 = r0; - r0 = pxsim_Array__length(s.tmp_1); + s.tmp_0 = if_tid_1_mk(s); + r0 = pxsim_pxtrt.mapGetGeneric(globals.sensorInfo___6042, s.arg0); + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "tid"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["tid"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["tid"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 1964; s.pc = 3; return s.tmp_0; } + } + case 3: + r0 = s.retval; + s.keyTid___22385 = (r0); + r0 = (s.caps[0] == s.keyTid___22385); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = s.caps[0].fields["ruleButtons"]; - s.tmp_3 = r0; - s.tmp_4 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_5 = r0; - r0 = pxsim_pxtrt.mapSetGeneric(s.tmp_3, s.tmp_4, s.tmp_5); - r0 = pxsim_pxtrt_stlocRef(s.caps[1], true); + r0 = pxsim_pxtrt_stlocRef(s.caps[1], s.arg0); case 1: case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_RuleEditor_destroyProgramTiles_inline__P20553.info = {"start":4139,"length":177,"line":125,"column":31,"endLine":130,"endColumn":13,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["name"]} +microcode_tidToSensor_inline__P22383.info = {"start":523,"length":103,"line":14,"column":40,"endLine":17,"endColumn":9,"fileName":"host.ts","functionName":"inline","argumentNames":["k"]} -function microcode_RuleEditor_destroyProgramTiles_inline__P20553_mk(s) { +function microcode_tidToSensor_inline__P22383_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_destroyProgramTiles_inline__P20553, depth: s.depth + 1, + parent: s, fn: microcode_tidToSensor_inline__P22383, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, + keyTid___22385: undefined, arg0: undefined, } } - -function microcode_RuleEditor_showRuleHandleMenu__P5793(s) { +function controller_Button_toString__P3224(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59281,93 +64477,57 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btns___20570 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", "plus"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "ariaId", "add_rule"); - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "delete"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "ariaId", "delete_rule"); - r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); - s.btns___20570 = (s.tmp_1); - r0 = s.arg0.fields["index"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 > 0); + if (!checkSubtype(r0, controller_Button__C3219_VT)) failedCast(r0, controller_Button__C3219_VT); + r0 = s.arg0.fields["_pressed"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "icon", "rule_up"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "ariaId", "rule_up"); - r0 = pxsim_Array__push(s.btns___20570, s.tmp_2); + r0 = "down"; + { step = 2; continue; } case 1: + r0 = "up"; case 2: - r0 = s.arg0.fields["index"]; + // jmp value (already in r0) s.tmp_1 = r0; - r0 = s.arg0.fields["page"]; - r0 = r0.fields["ruleEditors"]; + r0 = s.arg0.fields["id"]; + s.tmp_5 = r0; + if ((s.tmp_5) && (s.tmp_5).vtable) { + setupResume(s, 3); + pxsim_String__stringConv(s.tmp_5); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_5) + ""; } + case 3: + r0 = s.retval; s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); + r0 = pxsim_String__concat("btn ", s.tmp_4); s.tmp_3 = r0; - r0 = (s.tmp_3 - 2); + r0 = pxsim_String__concat(s.tmp_3, " "); s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_5 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "icon", "rule_down"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "ariaId", "rule_down"); - r0 = pxsim_Array__push(s.btns___20570, s.tmp_5); - case 3: + if ((s.tmp_1) && (s.tmp_1).vtable) { + setupResume(s, 4); + pxsim_String__stringConv(s.tmp_1); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_1) + ""; } case 4: - s.tmp_0 = user_interface_base_Picker_setGroup__P3756_mk(s); - r0 = s.arg0.fields["editor"]; - r0 = r0.fields["picker"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.btns___20570; - s.callLocIdx = 1358; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P20598); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.btns___20570); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_0); - s.tmp_2 = user_interface_base_Picker_show__P3758_mk(s); - r0 = s.arg0.fields["editor"]; - r0 = r0.fields["picker"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_1; - s.tmp_2.arg2 = true; - s.callLocIdx = 1361; s.pc = 6; return s.tmp_2; - case 6: r0 = s.retval; - r0 = undefined; + s.tmp_6 = r0; + r0 = pxsim_String__concat(s.tmp_2, s.tmp_6); return leave(s, r0) default: oops() } } } -microcode_RuleEditor_showRuleHandleMenu__P5793.info = {"start":5463,"length":1022,"line":164,"column":8,"endLine":195,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"showRuleHandleMenu","argumentNames":["this"]} +controller_Button_toString__P3224.info = {"start":2155,"length":100,"line":90,"column":8,"endLine":92,"endColumn":9,"fileName":"pxt_modules/display-shield/controllerbutton.ts","functionName":"toString","argumentNames":["this"]} -function microcode_RuleEditor_showRuleHandleMenu__P5793_mk(s) { +function controller_Button_toString__P3224_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_showRuleHandleMenu__P5793, depth: s.depth + 1, + parent: s, fn: controller_Button_toString__P3224, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -59375,15 +64535,14 @@ function microcode_RuleEditor_showRuleHandleMenu__P5793_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - btns___20570: undefined, + tmp_6: undefined, arg0: undefined, } } - -function onClick_inline__P20598(s) { +function user_interface_base_Vec2_toString__P3408(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59397,46 +64556,61 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_RuleEditor_handleRuleHandleMenuSelection__P5796_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_1 = if_icon_1_mk(s); - r0 = pxsim_Array__getAt(s.caps[1], s.arg0); - s.tmp_1.arg0 = r0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "icon"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["icon"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["icon"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1359; s.pc = 2; return s.tmp_1; } - } - case 2: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 1360; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Vec2__C3384_VT)) failedCast(r0, user_interface_base_Vec2__C3384_VT); + r0 = s.arg0.fields["x_"]; + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 1); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } case 1: r0 = s.retval; - r0 = undefined; + s.tmp_3 = r0; + r0 = pxsim_String__concat("Vec2(x:", s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_String__concat(s.tmp_2, ",y:"); + s.tmp_1 = r0; + r0 = s.arg0.fields["y_"]; + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 2); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 2: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_String__concat(s.tmp_1, s.tmp_5); + s.tmp_0 = r0; + r0 = pxsim_String__concat(s.tmp_0, ")"); return leave(s, r0) default: oops() } } } -onClick_inline__P20598.info = {"start":6322,"length":137,"line":190,"column":25,"endLine":193,"endColumn":21,"fileName":"ruleeditor.ts","functionName":"inline","argumentNames":["index"]} +user_interface_base_Vec2_toString__P3408.info = {"start":3367,"length":88,"line":134,"column":8,"endLine":136,"endColumn":9,"fileName":"pxt_modules/user-interface-base/math.ts","functionName":"toString","argumentNames":["this"]} -function onClick_inline__P20598_mk(s) { +function user_interface_base_Vec2_toString__P3408_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P20598, depth: s.depth + 1, + parent: s, fn: user_interface_base_Vec2_toString__P3408, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, arg0: undefined, } } - -function microcode_RuleEditor_handleRuleHandleMenuSelection__P5796(s) { +function user_interface_base_Bounds_toString__P3366(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59448,94 +64622,157 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleEditor__C4340_VT)) failedCast(r0, microcode_RuleEditor__C4340_VT); - r0 = (s.arg1 === "plus"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_PageEditor_insertRuleAt__P4336_mk(s); - r0 = s.arg0.fields["page"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1396; s.pc = 9; return s.tmp_1; - case 9: - r0 = s.retval; - { step = 8; continue; } + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + r0 = s.arg0.fields["left"]; + s.tmp_12 = r0; + if ((s.tmp_12) && (s.tmp_12).vtable) { + setupResume(s, 1); + pxsim_String__stringConv(s.tmp_12); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_12) + ""; } case 1: - r0 = (s.arg1 === "delete"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = microcode_PageEditor_deleteRuleAt__P4335_mk(s); - r0 = s.arg0.fields["page"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1397; s.pc = 10; return s.tmp_1; - case 10: r0 = s.retval; - { step = 7; continue; } + s.tmp_11 = r0; + r0 = pxsim_String__concat("Bounds(l:", s.tmp_11); + s.tmp_10 = r0; + r0 = pxsim_String__concat(s.tmp_10, ",t:"); + s.tmp_9 = r0; + r0 = s.arg0.fields["top"]; + s.tmp_14 = r0; + if ((s.tmp_14) && (s.tmp_14).vtable) { + setupResume(s, 2); + pxsim_String__stringConv(s.tmp_14); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_14) + ""; } case 2: - r0 = (s.arg1 === "rule_up"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_1 = microcode_PageEditor_moveRuleAt__P4334_mk(s); - r0 = s.arg0.fields["page"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = true; - s.callLocIdx = 1398; s.pc = 11; return s.tmp_1; - case 11: r0 = s.retval; - { step = 6; continue; } + s.tmp_13 = r0; + r0 = pxsim_String__concat(s.tmp_9, s.tmp_13); + s.tmp_8 = r0; + r0 = pxsim_String__concat(s.tmp_8, ",w:"); + s.tmp_7 = r0; + r0 = s.arg0.fields["width"]; + s.tmp_16 = r0; + if ((s.tmp_16) && (s.tmp_16).vtable) { + setupResume(s, 3); + pxsim_String__stringConv(s.tmp_16); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_16) + ""; } case 3: - r0 = (s.arg1 === "rule_down"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_1 = microcode_PageEditor_moveRuleAt__P4334_mk(s); - r0 = s.arg0.fields["page"]; - s.tmp_1.arg0 = r0; - r0 = s.arg0.fields["index"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = false; - s.callLocIdx = 1399; s.pc = 12; return s.tmp_1; - case 12: r0 = s.retval; + s.tmp_15 = r0; + r0 = pxsim_String__concat(s.tmp_7, s.tmp_15); + s.tmp_6 = r0; + r0 = pxsim_String__concat(s.tmp_6, ",h:"); + s.tmp_5 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_18 = r0; + if ((s.tmp_18) && (s.tmp_18).vtable) { + setupResume(s, 4); + pxsim_String__stringConv(s.tmp_18); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_18) + ""; } case 4: + r0 = s.retval; + s.tmp_17 = r0; + r0 = pxsim_String__concat(s.tmp_5, s.tmp_17); + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_4, ",r:"); + s.tmp_3 = r0; + r0 = s.arg0.fields["left"]; + s.tmp_22 = r0; + r0 = s.arg0.fields["width"]; + s.tmp_23 = r0; + r0 = (s.tmp_22 + s.tmp_23); + s.tmp_21 = r0; + r0 = (s.tmp_21 - 1); + s.tmp_20 = r0; + if ((s.tmp_20) && (s.tmp_20).vtable) { + setupResume(s, 5); + pxsim_String__stringConv(s.tmp_20); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_20) + ""; } case 5: + r0 = s.retval; + s.tmp_19 = r0; + r0 = pxsim_String__concat(s.tmp_3, s.tmp_19); + s.tmp_2 = r0; + r0 = pxsim_String__concat(s.tmp_2, ",b:"); + s.tmp_1 = r0; + r0 = s.arg0.fields["top"]; + s.tmp_27 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_28 = r0; + r0 = (s.tmp_27 + s.tmp_28); + s.tmp_26 = r0; + r0 = (s.tmp_26 - 1); + s.tmp_25 = r0; + if ((s.tmp_25) && (s.tmp_25).vtable) { + setupResume(s, 6); + pxsim_String__stringConv(s.tmp_25); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_25) + ""; } case 6: - case 7: - case 8: - r0 = undefined; + r0 = s.retval; + s.tmp_24 = r0; + r0 = pxsim_String__concat(s.tmp_1, s.tmp_24); + s.tmp_0 = r0; + r0 = pxsim_String__concat(s.tmp_0, ")"); return leave(s, r0) default: oops() } } } -microcode_RuleEditor_handleRuleHandleMenuSelection__P5796.info = {"start":12089,"length":471,"line":331,"column":8,"endLine":341,"endColumn":9,"fileName":"ruleeditor.ts","functionName":"handleRuleHandleMenuSelection","argumentNames":["this","iconId"]} +user_interface_base_Bounds_toString__P3366.info = {"start":5978,"length":153,"line":201,"column":8,"endLine":203,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"toString","argumentNames":["this"]} -function microcode_RuleEditor_handleRuleHandleMenuSelection__P5796_mk(s) { +function user_interface_base_Bounds_toString__P3366_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleEditor_handleRuleHandleMenuSelection__P5796, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_toString__P3366, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + tmp_18: undefined, + tmp_19: undefined, + tmp_20: undefined, + tmp_21: undefined, + tmp_22: undefined, + tmp_23: undefined, + tmp_24: undefined, + tmp_25: undefined, + tmp_26: undefined, + tmp_27: undefined, + tmp_28: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_PageEditor_moveRuleAt__P4334(s) { +function SoundExpression__play__P2851(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59545,92 +64782,63 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.delta___20637 = undefined; - s.deleted___20642 = undefined; - s.rule___20655 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - r0 = pxsim_numops_toBoolDecr(s.arg2); - if (!r0) { step = 1; continue; } - r0 = -1; - { step = 2; continue; } - case 1: - r0 = 1; - case 2: - // jmp value (already in r0) - s.tmp_0 = r0; - s.delta___20637 = (s.tmp_0); - s.tmp_0 = microcode_PageDefn_deleteRuleAt__P4062_mk(s); - r0 = s.arg0.fields["pagedef"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 1311; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.deleted___20642 = (r0); - s.tmp_0 = microcode_PageDefn_insertRuleAt__P4063_mk(s); - r0 = s.arg0.fields["pagedef"]; - s.tmp_0.arg0 = r0; - r0 = (s.arg1 + s.delta___20637); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.deleted___20642; - s.callLocIdx = 1312; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - r0 = s.arg0.fields["ruleEditors"]; + if (!checkSubtype(r0, SoundExpression__C2849_VT)) failedCast(r0, SoundExpression__C2849_VT); + r0 = (s.arg1 === 1); s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.arg1); - s.rule___20655 = (r0); - s.tmp_0 = helpers_arraySplice__P2129_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = 1; - s.callLocIdx = 1313; s.pc = 5; return s.tmp_0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = SoundExpression_play__P2852_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 133; s.pc = 5; return s.tmp_1; case 5: r0 = s.retval; - r0 = s.arg0.fields["ruleEditors"]; + { step = 4; continue; } + case 1: + r0 = (s.arg1 === 0); s.tmp_0 = r0; - r0 = (s.arg1 + s.delta___20637); - s.tmp_1 = r0; - r0 = pxsim_Array_.insertAt(s.tmp_0, s.tmp_1, s.rule___20655); - s.tmp_0 = microcode_PageEditor_reassignIndices__P5782_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1314; s.pc = 6; return s.tmp_0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_1 = SoundExpression_playUntilDone__P2853_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 134; s.pc = 6; return s.tmp_1; case 6: r0 = s.retval; + { step = 3; continue; } + case 2: + s.tmp_0 = music_Playable_loop__P2957_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 135; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + case 3: + case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_moveRuleAt__P4334.info = {"start":20497,"length":409,"line":616,"column":8,"endLine":626,"endColumn":9,"fileName":"editor.ts","functionName":"moveRuleAt","argumentNames":["this","index","up"]} +SoundExpression__play__P2851.info = {"start":217,"length":266,"line":11,"column":4,"endLine":19,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"_play","argumentNames":["this","mode"]} -function microcode_PageEditor_moveRuleAt__P4334_mk(s) { +function SoundExpression__play__P2851_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_moveRuleAt__P4334, depth: s.depth + 1, + parent: s, fn: SoundExpression__play__P2851, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - delta___20637: undefined, - deleted___20642: undefined, - rule___20655: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function microcode_PageEditor_reassignIndices__P5782(s) { +function music_Playable_loop__P2957(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59645,45 +64853,47 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - s.tmp_0 = helpers_arrayForEach__P2138_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = microcode_PageEditor_reassignIndices_inline__P20677; - s.callLocIdx = 1308; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, music_Playable__C2953_VT)) failedCast(r0, music_Playable__C2953_VT); + r0 = pxsim_numops_toBoolDecr(globals.looping___4978); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = pxsim_Array__mk(); + globals.looping___4978 = (r0); case 1: - r0 = s.retval; - s.tmp_0 = microcode_PageEditor_changed__P4333_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1309; s.pc = 2; return s.tmp_0; case 2: - r0 = s.retval; - s.tmp_0 = microcode_Editor_saveAndCompileProgram__P4313_mk(s); - r0 = s.arg0.fields["editor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1310; s.pc = 3; return s.tmp_0; + r0 = pxsim_Array__push(globals.looping___4978, s.arg0); + r0 = (s.arg0).fields["stopped"] = (false); + r0 = pxsim_pxtcore_mkAction(1, music_Playable_loop_inline__P22478); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = control_runInParallel__P2441_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 146; s.pc = 3; return s.tmp_1; case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_reassignIndices__P5782.info = {"start":20299,"length":188,"line":610,"column":8,"endLine":614,"endColumn":9,"fileName":"editor.ts","functionName":"reassignIndices","argumentNames":["this"]} +music_Playable_loop__P2957.info = {"start":439,"length":330,"line":22,"column":8,"endLine":35,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"loop","argumentNames":["this"]} -function microcode_PageEditor_reassignIndices__P5782_mk(s) { +function music_Playable_loop__P2957_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_reassignIndices__P5782, depth: s.depth + 1, + parent: s, fn: music_Playable_loop__P2957, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, } } - -function microcode_PageEditor_reassignIndices_inline__P20677(s) { +function music_Playable_loop_inline__P22478(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59693,34 +64903,46 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - s.tmp_0 = r0 = s.arg1; - r0 = (s.arg0).fields["index"] = (s.tmp_0); - r0 = s.tmp_0; + case 1: + r0 = s.caps[0].fields["stopped"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_3 = music_Playable__C2953_v0_2_mk(s); + s.tmp_3.arg0 = s.caps[0]; + s.tmp_3.arg1 = 0; + if (!checkSubtype(s.tmp_3.arg0, music_Playable__C2953_VT)) failedCast(s.tmp_3.arg0, music_Playable__C2953_VT); + s.tmp_3.fn = s.tmp_3.arg0.vtable.methods._play; + s.pc = 3; return s.tmp_3; + case 3: + r0 = s.retval; + { step = 1; continue; } + case 2: + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_reassignIndices_inline__P20677.info = {"start":20364,"length":37,"line":611,"column":37,"endLine":611,"endColumn":74,"fileName":"editor.ts","functionName":"inline","argumentNames":["rule","index"]} +music_Playable_loop_inline__P22478.info = {"start":622,"length":135,"line":30,"column":34,"endLine":34,"endColumn":13,"fileName":"pxt_modules/core/playable.ts","functionName":"inline","argumentNames":[]} -function microcode_PageEditor_reassignIndices_inline__P20677_mk(s) { +function music_Playable_loop_inline__P22478_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_reassignIndices_inline__P20677, depth: s.depth + 1, + parent: s, fn: music_Playable_loop_inline__P22478, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, - arg1: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, } } - -function microcode_PageDefn_insertRuleAt__P4063(s) { +function SoundExpression_playUntilDone__P2853(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59730,88 +64952,39 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.insertRule___20698 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageDefn__C4058_VT)) failedCast(r0, microcode_PageDefn__C4058_VT); - r0 = (s.arg1 >= 0); + if (!checkSubtype(r0, SoundExpression__C2849_VT)) failedCast(r0, SoundExpression__C2849_VT); + r0 = s.arg0.fields["notes"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + setupResume(s, 1); + pxsim.music.__playSoundExpression(s.tmp_0, true); + checkResumeConsumed(); + return; case 1: - s.tmp_1 = r0 = s.arg1; - r0 = s.arg0.fields["rules"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 5; continue; } - r0 = pxsim_numops_toBoolDecr(s.arg2); - if (!r0) { step = 3; continue; } - r0 = s.arg2; - { step = 4; continue; } - case 3: - r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleDefn__C4043_VT); - s.tmp_5 = r0; - s.tmp_6 = microcode_RuleDefn_constructor__P4048_mk(s); - s.tmp_6.arg0 = s.tmp_5; - s.callLocIdx = 984; s.pc = 8; return s.tmp_6; - case 8: - r0 = s.retval; - r0 = s.tmp_5; - case 4: - // jmp value (already in r0) - s.tmp_7 = r0; - s.insertRule___20698 = (s.tmp_7); - r0 = s.arg0.fields["rules"]; - s.tmp_0 = r0; - r0 = pxsim_Array_.insertAt(s.tmp_0, s.arg1, s.insertRule___20698); - r0 = s.insertRule___20698; - { step = 7; continue; } - case 5: - case 6: + r0 = s.retval; r0 = undefined; - case 7: return leave(s, r0) default: oops() } } } -microcode_PageDefn_insertRuleAt__P4063.info = {"start":9692,"length":326,"line":298,"column":8,"endLine":305,"endColumn":9,"fileName":"language.ts","functionName":"insertRuleAt","argumentNames":["this","index","newRule"]} +SoundExpression_playUntilDone__P2853.info = {"start":1057,"length":77,"line":45,"column":4,"endLine":47,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"playUntilDone","argumentNames":["this"]} -function microcode_PageDefn_insertRuleAt__P4063_mk(s) { +function SoundExpression_playUntilDone__P2853_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageDefn_insertRuleAt__P4063, depth: s.depth + 1, + parent: s, fn: SoundExpression_playUntilDone__P2853, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - insertRule___20698: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_PageDefn_deleteRuleAt__P4062(s) { +function SoundExpression_play__P2852(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59821,76 +64994,39 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.deleted___20722 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageDefn__C4058_VT)) failedCast(r0, microcode_PageDefn__C4058_VT); - r0 = (s.arg1 >= 0); + if (!checkSubtype(r0, SoundExpression__C2849_VT)) failedCast(r0, SoundExpression__C2849_VT); + r0 = s.arg0.fields["notes"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + setupResume(s, 1); + pxsim.music.__playSoundExpression(s.tmp_0, false); + checkResumeConsumed(); + return; case 1: - s.tmp_1 = r0 = s.arg1; - r0 = s.arg0.fields["rules"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 3; continue; } - r0 = s.arg0.fields["rules"]; - s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_5, s.arg1); - s.deleted___20722 = (r0); - s.tmp_0 = helpers_arraySplice__P2129_mk(s); - r0 = s.arg0.fields["rules"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = 1; - s.callLocIdx = 983; s.pc = 6; return s.tmp_0; - case 6: r0 = s.retval; - r0 = s.deleted___20722; - { step = 5; continue; } - case 3: - case 4: r0 = undefined; - case 5: return leave(s, r0) default: oops() } } } -microcode_PageDefn_deleteRuleAt__P4062.info = {"start":9409,"length":273,"line":289,"column":8,"endLine":296,"endColumn":9,"fileName":"language.ts","functionName":"deleteRuleAt","argumentNames":["this","index"]} +SoundExpression_play__P2852.info = {"start":722,"length":69,"line":31,"column":4,"endLine":33,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"play","argumentNames":["this"]} -function microcode_PageDefn_deleteRuleAt__P4062_mk(s) { +function SoundExpression_play__P2852_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageDefn_deleteRuleAt__P4062, depth: s.depth + 1, + parent: s, fn: SoundExpression_play__P2852, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - deleted___20722: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_PageEditor_deleteRuleAt__P4335(s) { +function music_StringArrayPlayable__play__P2960(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59906,39 +65042,71 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - s.tmp_0 = microcode_PageDefn_deleteRuleAt__P4062_mk(s); - r0 = s.arg0.fields["pagedef"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 1315; s.pc = 1; return s.tmp_0; - case 1: + if (!checkSubtype(r0, music_StringArrayPlayable__C2958_VT)) failedCast(r0, music_StringArrayPlayable__C2958_VT); + r0 = s.arg0.fields["tempo"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = music_setTempo__P2691_mk(s); + r0 = s.arg0.fields["tempo"]; + s.tmp_1.arg0 = r0; + s.callLocIdx = 148; s.pc = 7; return s.tmp_1; + case 7: r0 = s.retval; - s.tmp_0 = helpers_arraySplice__P2129_mk(s); - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = 1; - s.callLocIdx = 1316; s.pc = 2; return s.tmp_0; + case 1: case 2: + r0 = (s.arg1 == 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_1 = music_startMelodyInternal__P2698_mk(s); + r0 = s.arg0.fields["notes"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = 4; + s.callLocIdx = 149; s.pc = 8; return s.tmp_1; + case 8: r0 = s.retval; - s.tmp_0 = microcode_PageEditor_reassignIndices__P5782_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1317; s.pc = 3; return s.tmp_0; + { step = 6; continue; } case 3: + r0 = (s.arg1 == 2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_1 = music_startMelodyInternal__P2698_mk(s); + r0 = s.arg0.fields["notes"]; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = 8; + s.callLocIdx = 150; s.pc = 9; return s.tmp_1; + case 9: + r0 = s.retval; + { step = 5; continue; } + case 4: + s.tmp_0 = music_startMelodyInternal__P2698_mk(s); + r0 = s.arg0.fields["notes"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 1; + s.callLocIdx = 151; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + s.tmp_0 = music_waitForMelodyEnd__P2699_mk(s); + s.callLocIdx = 152; s.pc = 11; return s.tmp_0; + case 11: r0 = s.retval; + case 5: + case 6: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_deleteRuleAt__P4335.info = {"start":20916,"length":172,"line":628,"column":8,"endLine":632,"endColumn":9,"fileName":"editor.ts","functionName":"deleteRuleAt","argumentNames":["this","index"]} +music_StringArrayPlayable__play__P2960.info = {"start":943,"length":597,"line":43,"column":8,"endLine":57,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"_play","argumentNames":["this","playbackMode"]} -function microcode_PageEditor_deleteRuleAt__P4335_mk(s) { +function music_StringArrayPlayable__play__P2960_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_deleteRuleAt__P4335, depth: s.depth + 1, + parent: s, fn: music_StringArrayPlayable__play__P2960, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, arg1: undefined, } } @@ -59946,8 +65114,7 @@ function microcode_PageEditor_deleteRuleAt__P4335_mk(s) { - -function microcode_PageEditor_insertRuleAt__P4336(s) { +function music_waitForMelodyEnd__P2699(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -59957,71 +65124,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.newRule___20746 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - s.tmp_0 = microcode_PageDefn_insertRuleAt__P4063_mk(s); - r0 = s.arg0.fields["pagedef"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = undefined; - s.callLocIdx = 1318; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.newRule___20746 = (r0); - r0 = pxsim_numops_toBoolDecr(s.newRule___20746); - if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_RuleEditor__C4340_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_RuleEditor_constructor__P4351_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.arg0.fields["editor"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.arg0; - s.tmp_1.arg3 = s.newRule___20746; - s.tmp_1.arg4 = s.arg1; - s.callLocIdx = 1319; s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - r0 = s.arg0.fields["ruleEditors"]; - s.tmp_2 = r0; - r0 = pxsim_Array_.insertAt(s.tmp_2, s.arg1, s.tmp_0); - s.tmp_0 = microcode_PageEditor_reassignIndices__P5782_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1320; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; + setupResume(s, 1); + pxsim.control.waitForEvent(2000, 5); + checkResumeConsumed(); + return; case 1: - case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_PageEditor_insertRuleAt__P4336.info = {"start":21098,"length":356,"line":634,"column":8,"endLine":643,"endColumn":9,"fileName":"editor.ts","functionName":"insertRuleAt","argumentNames":["this","index"]} +music_waitForMelodyEnd__P2699.info = {"start":15473,"length":115,"line":443,"column":4,"endLine":445,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"waitForMelodyEnd","argumentNames":[]} -function microcode_PageEditor_insertRuleAt__P4336_mk(s) { +function music_waitForMelodyEnd__P2699_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_insertRuleAt__P4336, depth: s.depth + 1, + parent: s, fn: music_waitForMelodyEnd__P2699, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - newRule___20746: undefined, - arg0: undefined, - arg1: undefined, } } - -function microcode_PageEditor_xfrm__P4327(s) { +function music_setTempo__P2691(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60035,28 +65160,57 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_PageEditor__C4325_VT)) failedCast(r0, microcode_PageEditor__C4325_VT); - r0 = s.arg0.fields["xfrm_"]; - return leaveAccessor(s, r0) + s.tmp_0 = music_init__P4907_mk(s); + s.callLocIdx = 48; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_1 = isNaN__P2122_mk(s); + s.tmp_1.arg0 = s.arg0; + s.callLocIdx = 49; s.pc = 7; return s.tmp_1; + case 7: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 5; continue; } + case 1: + case 2: + r0 = (s.arg0 > 0); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + s.tmp_3 = Math_max__P2159_mk(s); + s.tmp_3.arg0 = 1; + s.tmp_3.arg1 = s.arg0; + s.callLocIdx = 50; s.pc = 8; return s.tmp_3; + case 8: + r0 = s.retval; + globals.beatsPerMinute___4900 = (r0); + case 3: + case 4: + case 5: + r0 = undefined; + return leave(s, r0) default: oops() } } } -microcode_PageEditor_xfrm__P4327.info = {"start":17411,"length":59,"line":520,"column":8,"endLine":522,"endColumn":9,"fileName":"editor.ts","functionName":"xfrm","argumentNames":["this"]} -microcode_PageEditor_xfrm__P4327.isGetter = true; +music_setTempo__P2691.info = {"start":9905,"length":179,"line":310,"column":4,"endLine":316,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"setTempo","argumentNames":["bpm"]} -function microcode_PageEditor_xfrm__P4327_mk(s) { +function music_setTempo__P2691_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_PageEditor_xfrm__P4327, depth: s.depth + 1, + parent: s, fn: music_setTempo__P2691, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function microcode_getIcon__P4042(s) { +function microgui_RadioButtonCollection_draw__P3984(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60066,47 +65220,128 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.titleOffset___22536 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - r0 = checkSubtype(r0, microcode_ModifierEditor__C4403_VT); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_ModifierEditor__C4403_v1_1_mk(s); - s.tmp_1.arg0 = s.arg0; - if (!checkSubtype(s.tmp_1.arg0, microcode_ModifierEditor__C4403_VT)) failedCast(s.tmp_1.arg0, microcode_ModifierEditor__C4403_VT); - s.tmp_1.fn = s.tmp_1.arg0.vtable.methods.getIcon; - s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - { step = 3; continue; } + if (!checkSubtype(r0, microgui_RadioButtonCollection__C3980_VT)) failedCast(r0, microgui_RadioButtonCollection__C3980_VT); + s.tmp_0 = microgui_GUIComponentAbstract_draw__P3935_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1083; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_2 = if_charWidth_1_mk(s); + s.tmp_2.arg0 = globals.font___3460; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "charWidth"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["charWidth"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["charWidth"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1084; s.pc = 2; return s.tmp_2; } + } case 2: - r0 = s.arg0; + r0 = s.retval; + s.tmp_1 = r0; + r0 = s.arg0.fields["title"]; + s.tmp_4 = r0; + r0 = pxsim_String_.length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_1 * s.tmp_3); + s.tmp_0 = r0; + r0 = (s.tmp_0 >> 1); + s.titleOffset___22536 = (r0); + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + r0 = globals.theScreen___3281; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["title"]; + s.tmp_0.arg1 = r0; + r0 = globals.theScreen___3281; + s.tmp_5 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_4 >> 1); + s.tmp_3 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["left"]; + s.tmp_6 = r0; + r0 = (s.tmp_3 + s.tmp_6); + s.tmp_2 = r0; + r0 = s.arg0.fields["unscaledWidth"]; + s.tmp_9 = r0; + r0 = s.arg0.fields["xScaling"]; + s.tmp_10 = r0; + r0 = (s.tmp_9 * s.tmp_10); + s.tmp_8 = r0; + r0 = (s.tmp_8 >> 1); + s.tmp_7 = r0; + r0 = (s.tmp_2 + s.tmp_7); + s.tmp_1 = r0; + r0 = (s.tmp_1 - s.titleOffset___22536); + s.tmp_0.arg2 = r0; + r0 = globals.theScreen___3281; + s.tmp_14 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_14); + s.tmp_13 = r0; + r0 = (s.tmp_13 >> 1); + s.tmp_12 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["top"]; + s.tmp_15 = r0; + r0 = (s.tmp_12 + s.tmp_15); + s.tmp_11 = r0; + r0 = (s.tmp_11 + 2); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = undefined; + s.tmp_0.arg5 = undefined; + s.tmp_0.arg6 = undefined; + s.callLocIdx = 1089; s.pc = 3; return s.tmp_0; case 3: + r0 = s.retval; + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["btns"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = microgui_RadioButtonCollection_draw_inline__P22579; + s.callLocIdx = 1091; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_getIcon__P4042.info = {"start":1772,"length":129,"line":62,"column":4,"endLine":65,"endColumn":5,"fileName":"language.ts","functionName":"getIcon","argumentNames":["tile"]} +microgui_RadioButtonCollection_draw__P3984.info = {"start":49100,"length":396,"line":1331,"column":8,"endLine":1343,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"draw","argumentNames":["this"]} -function microcode_getIcon__P4042_mk(s) { +function microgui_RadioButtonCollection_draw__P3984_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_getIcon__P4042, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_draw__P3984, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + titleOffset___22536: undefined, arg0: undefined, } } - -function microcode_ModifierEditor_getIcon__P4408(s) { +function microgui_RadioButtonCollection_draw_inline__P22579(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60120,27 +65355,30 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_ModifierEditor__C4403_VT)) failedCast(r0, microcode_ModifierEditor__C4403_VT); - r0 = null; + s.tmp_0 = microgui_RadioButton_draw__P3979_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1090; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_ModifierEditor_getIcon__P4408.info = {"start":1169,"length":71,"line":43,"column":8,"endLine":45,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getIcon","argumentNames":["this"]} +microgui_RadioButtonCollection_draw_inline__P22579.info = {"start":49468,"length":17,"line":1342,"column":30,"endLine":1342,"endColumn":47,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":["btn"]} -function microcode_ModifierEditor_getIcon__P4408_mk(s) { +function microgui_RadioButtonCollection_draw_inline__P22579_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_ModifierEditor_getIcon__P4408, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_draw_inline__P22579, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, } } - -function microcode_tidToString__P4251(s) { +function microgui_RadioButton_draw__P3979(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60154,38 +65392,74 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_numops.toString(s.arg0); - s.tmp_1 = r0; - if ((s.tmp_1) && (s.tmp_1).vtable) { - setupResume(s, 1); - pxsim_String__stringConv(s.tmp_1); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_1) + ""; } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_RadioButton__C3973_VT)) failedCast(r0, microgui_RadioButton__C3973_VT); + r0 = s.arg0.fields["isSelected"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = 6; + { step = 2; continue; } case 1: + r0 = 1; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + s.tmp_2 = helpers_imageFillCircle__P3114_mk(s); + r0 = globals.theScreen___3281; + s.tmp_2.arg0 = r0; + r0 = s.arg0.fields["x"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 - 6); + s.tmp_2.arg1 = r0; + r0 = s.arg0.fields["y"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 + 3); + s.tmp_2.arg2 = r0; + s.tmp_2.arg3 = 4; + s.tmp_2.arg4 = s.tmp_1; + s.callLocIdx = 1035; s.pc = 3; return s.tmp_2; + case 3: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String__concat("T", s.tmp_0); + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + r0 = globals.theScreen___3281; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["text"]; + s.tmp_0.arg1 = r0; + r0 = s.arg0.fields["x"]; + s.tmp_0.arg2 = r0; + r0 = s.arg0.fields["y"]; + s.tmp_0.arg3 = r0; + r0 = s.arg0.fields["textColour"]; + s.tmp_0.arg4 = r0; + s.tmp_0.arg5 = undefined; + s.tmp_0.arg6 = undefined; + s.callLocIdx = 1037; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_tidToString__P4251.info = {"start":7266,"length":77,"line":227,"column":4,"endLine":229,"endColumn":5,"fileName":"tiles.ts","functionName":"tidToString","argumentNames":["e"]} +microgui_RadioButton_draw__P3979.info = {"start":44026,"length":330,"line":1183,"column":8,"endLine":1197,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"draw","argumentNames":["this"]} -function microcode_tidToString__P4251_mk(s) { +function microgui_RadioButton_draw__P3979_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_tidToString__P4251, depth: s.depth + 1, + parent: s, fn: microgui_RadioButton_draw__P3979, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, } } - -function user_interface_base_Button_setIcon__P3681(s) { +function helpers_imageFillCircle__P3114(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60199,57 +65473,44 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - r0 = (s.arg0).fields["iconId"] = (s.arg1); - r0 = pxsim_numops_toBoolDecr(s.arg2); - if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_Sprite_setImage__P3481_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg2; - s.callLocIdx = 572; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - { step = 2; continue; } + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = helpers_pack__P5029_mk(s); + s.tmp_2.arg0 = s.arg1; + s.tmp_2.arg1 = s.arg2; + s.callLocIdx = 186; s.pc = 1; return s.tmp_2; case 1: - s.tmp_0 = user_interface_base_ButtonBase_buildSprite__P3656_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_1 = user_interface_base_Button_image___P5257_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 573; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.callLocIdx = 574; s.pc = 4; return s.tmp_0; - case 4: r0 = s.retval; - case 2: + s.tmp_1 = r0; + r0 = pxsim.BitmapMethods._fillCircle(s.tmp_0, s.tmp_1, s.arg3, s.arg4); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Button_setIcon__P3681.info = {"start":8951,"length":170,"line":350,"column":4,"endLine":354,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"setIcon","argumentNames":["this","iconId","img"]} +helpers_imageFillCircle__P3114.info = {"start":6771,"length":148,"line":207,"column":4,"endLine":209,"endColumn":5,"fileName":"pxt_modules/bitmap/bitmap.ts","functionName":"imageFillCircle","argumentNames":["img","cx","cy","r","col"]} -function user_interface_base_Button_setIcon__P3681_mk(s) { +function helpers_imageFillCircle__P3114_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_setIcon__P3681, depth: s.depth + 1, + parent: s, fn: helpers_imageFillCircle__P3114, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, arg0: undefined, arg1: undefined, arg2: undefined, + arg3: undefined, + arg4: undefined, } } - -function user_interface_base_Sprite_setImage__P3481(s) { +function microgui_RadioButtonCollection_makeActive__P3982(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60261,32 +65522,39 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - r0 = (s.arg0).fields["image"] = (s.arg1); + if (!checkSubtype(r0, microgui_RadioButtonCollection__C3980_VT)) failedCast(r0, microgui_RadioButtonCollection__C3980_VT); + s.tmp_0 = microgui_GUIComponentAbstract_makeActive__P3941_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1070; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + s.tmp_0 = microgui_RadioButtonCollection_setupButtonBindings__P3983_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1071; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Sprite_setImage__P3481.info = {"start":1323,"length":69,"line":46,"column":8,"endLine":48,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"setImage","argumentNames":["this","img"]} +microgui_RadioButtonCollection_makeActive__P3982.info = {"start":47841,"length":103,"line":1299,"column":8,"endLine":1302,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"makeActive","argumentNames":["this"]} -function user_interface_base_Sprite_setImage__P3481_mk(s) { +function microgui_RadioButtonCollection_makeActive__P3982_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_setImage__P3481, depth: s.depth + 1, + parent: s, fn: microgui_RadioButtonCollection_makeActive__P3982, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_Editor_startup__P4317(s) { +function microgui_GUIComponentAbstract_height__P3937(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60296,332 +65564,155 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.makeOnEvent___20805 = undefined; - s.buf___20920 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = pxsim_pxtcore_mkAction(1, makeOnEvent_inline__P20806); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.makeOnEvent___20805 = (s.tmp_0); - s.tmp_0 = user_interface_base_Scene_startup__P3691_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1198; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.makeOnEvent___20805; - r0 = globals.right___3270.fields["id"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 3; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1199; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.makeOnEvent___20805; - r0 = globals.left___3268.fields["id"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 2; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1200; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.makeOnEvent___20805; - r0 = globals.up___3269.fields["id"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 0; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1201; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - s.tmp_0 = lambda_3_mk(s); - s.tmp_0.argL = s.makeOnEvent___20805; - r0 = globals.down___3271.fields["id"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 1; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1202; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(globals.microcode_Options_menuProfiling___4461); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim_pxtcore_mkAction(1, microcode_Editor_startup_inline__P20838); - s.tmp_2 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.arg0); - s.tmp_3 = context_onEvent__P3274_mk(s); - s.tmp_3.arg0 = 2049; - r0 = globals.menu___3272.fields["id"]; - s.tmp_3.arg1 = r0; - s.tmp_3.arg2 = s.tmp_2; - s.tmp_3.arg3 = 16; - s.callLocIdx = 1206; s.pc = 10; return s.tmp_3; - case 10: - r0 = s.retval; - case 1: - case 2: - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Placeable__C3407_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Placeable_constructor__P3409_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = undefined; - s.callLocIdx = 1207; s.pc = 11; return s.tmp_1; - case 11: - r0 = s.retval; - r0 = (s.arg0).fields["hudroot"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = globals.user_interface_base_Screen_TOP_EDGE___3445; - s.callLocIdx = 1209; s.pc = 12; return s.tmp_1; - case 12: - r0 = s.retval; - s.tmp_2 = user_interface_base_Affine_localPos__P3354_mk(s); - r0 = s.arg0.fields["hudroot"]; - s.tmp_3 = r0; - r0 = s.tmp_3.fields["xfrm_"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - s.callLocIdx = 1210; s.pc = 13; return s.tmp_2; - case 13: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Placeable__C3407_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Placeable_constructor__P3409_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = undefined; - s.callLocIdx = 1211; s.pc = 14; return s.tmp_1; - case 14: - r0 = s.retval; - r0 = (s.arg0).fields["scrollroot"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - r0 = (globals.user_interface_base_Screen_TOP_EDGE___3445 + 17); - s.tmp_2 = r0; - r0 = (s.tmp_2 + 2); - s.tmp_1.arg2 = r0; - s.callLocIdx = 1213; s.pc = 15; return s.tmp_1; - case 15: - r0 = s.retval; - s.tmp_3 = user_interface_base_Affine_localPos__P3354_mk(s); - r0 = s.arg0.fields["scrollroot"]; - s.tmp_4 = r0; - r0 = s.tmp_4.fields["xfrm_"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.tmp_0; - s.callLocIdx = 1214; s.pc = 16; return s.tmp_3; - case 16: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Cursor__C3718_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Cursor_constructor__P3730_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1215; s.pc = 17; return s.tmp_1; - case 17: - r0 = s.retval; - r0 = (s.arg0).fields["cursor"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Picker__C3748_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Picker_constructor__P3755_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.arg0.fields["cursor"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1216; s.pc = 18; return s.tmp_1; - case 18: - r0 = s.retval; - r0 = (s.arg0).fields["picker"] = (s.tmp_0); - r0 = (s.arg0).fields["currPage"] = (0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = s.arg0.fields["hudroot"]; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.tmp_2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.BorderedPurple___3639); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", globals.disk___3898); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", "disk"); - r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3443 + 12); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.tmp_3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 8); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P20902); - s.tmp_4 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_4, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_4); - s.tmp_5 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_5.arg0 = s.tmp_0; - s.tmp_5.arg1 = s.tmp_1; - s.callLocIdx = 1218; s.pc = 19; return s.tmp_5; - case 19: - r0 = s.retval; - r0 = (s.arg0).fields["diskBtn"] = (s.tmp_0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = s.arg0.fields["unscaledHeight"]; s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); + r0 = s.arg0.fields["yScaling"]; s.tmp_1 = r0; - r0 = s.arg0.fields["hudroot"]; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", s.tmp_2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.BorderedPurple___3639); - s.tmp_4 = microcode_getIcon__P4042_mk(s); - s.tmp_6 = microcode_PAGE_IDS__P4066_mk(s); - s.callLocIdx = 1219; s.pc = 21; return s.tmp_6; - case 21: - r0 = s.retval; - s.tmp_5 = r0; - r0 = s.arg0.fields["currPage"]; - s.tmp_7 = r0; - r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_7); - s.tmp_4.arg0 = r0; - s.callLocIdx = 1220; s.pc = 20; return s.tmp_4; - case 20: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_3); - r0 = (globals.user_interface_base_Screen_RIGHT_EDGE___3444 - 12); - s.tmp_8 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.tmp_8); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", 8); - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P20918); - s.tmp_9 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_9, 0, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_9); - s.tmp_10 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_10.arg0 = s.tmp_0; - s.tmp_10.arg1 = s.tmp_1; - s.callLocIdx = 1222; s.pc = 22; return s.tmp_10; - case 22: - r0 = s.retval; - r0 = (s.arg0).fields["pageBtn"] = (s.tmp_0); - s.tmp_0 = if_load_2_mk(s); - r0 = s.arg0.fields["app"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4287; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "load"), 2); - s.callLocIdx = 1223; s.pc = 23; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["load"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["load"], 2); s.callLocIdx = 1223; s.pc = 23; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1223; s.pc = 23; return s.tmp_0;; } - else { s.callLocIdx = 1223; s.pc = 23; return s.tmp_0; } + r0 = (s.tmp_0 * s.tmp_1); + return leaveAccessor(s, r0) + default: oops() +} } } +microgui_GUIComponentAbstract_height__P3937.info = {"start":11511,"length":66,"line":296,"column":8,"endLine":296,"endColumn":74,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"height","argumentNames":["this"]} +microgui_GUIComponentAbstract_height__P3937.isGetter = true; + +function microgui_GUIComponentAbstract_height__P3937_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microgui_GUIComponentAbstract_height__P3937, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, +} } + + + + +function microgui_GUIComponentAbstract_width__P3936(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; } - case 23: - r0 = s.retval; - s.buf___20920 = (r0); - r0 = pxsim_pxtcore_mkClassInstance(microcode_BufferReader__C4485_VT); + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = s.arg0.fields["unscaledWidth"]; s.tmp_0 = r0; - s.tmp_1 = microcode_BufferReader_constructor__P4486_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.buf___20920; - s.tmp_1.arg2 = 0; - s.callLocIdx = 1224; s.pc = 24; return s.tmp_1; - case 24: - r0 = s.retval; - s.tmp_2 = r0 = s.arg0; - s.tmp_4 = microcode_ProgramDefn_fromBuffer__P4072_mk(s); - s.tmp_4.arg0 = s.tmp_0; - s.callLocIdx = 1225; s.pc = 25; return s.tmp_4; - case 25: - r0 = s.retval; - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["progdef"] = (s.tmp_3); - r0 = s.arg0.fields["progdef"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); + r0 = s.arg0.fields["xScaling"]; s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (s.tmp_0 * s.tmp_1); + return leaveAccessor(s, r0) + default: oops() +} } } +microgui_GUIComponentAbstract_width__P3936.info = {"start":11438,"length":64,"line":295,"column":8,"endLine":295,"endColumn":72,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"width","argumentNames":["this"]} +microgui_GUIComponentAbstract_width__P3936.isGetter = true; + +function microgui_GUIComponentAbstract_width__P3936_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microgui_GUIComponentAbstract_width__P3936, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + arg0: undefined, +} } + + + + +function microgui_GUIComponentAbstract_draw__P3935(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = s.arg0.fields["showBackground"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = pxsim_pxtcore_mkClassInstance(microcode_BufferReader__C4485_VT); + if (!r0) { step = 1; continue; } + s.tmp_1 = helpers_imageFillRect__P3109_mk(s); + r0 = globals.theScreen___3281; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["left"]; s.tmp_3 = r0; - s.tmp_4 = microcode_BufferReader_constructor__P4486_mk(s); - s.tmp_4.arg0 = s.tmp_3; - s.tmp_5 = microcode_Sample_source__P4466_mk(s); - s.tmp_7 = microcode_samples__P4468_mk(s); - s.tmp_7.arg0 = true; - s.callLocIdx = 1226; s.pc = 28; return s.tmp_7; - case 28: - r0 = s.retval; + r0 = globals.theScreen___3281; s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_6, 1); - s.tmp_5.arg0 = r0; - s.callLocIdx = 1227; s.pc = 27; return s.tmp_5; - case 27: - r0 = s.retval; - s.tmp_4.arg1 = r0; - s.tmp_4.arg2 = 0; - s.callLocIdx = 1228; s.pc = 26; return s.tmp_4; - case 26: - r0 = s.retval; - s.tmp_8 = r0 = s.arg0; - s.tmp_10 = microcode_ProgramDefn_fromBuffer__P4072_mk(s); - s.tmp_10.arg0 = s.tmp_3; - s.callLocIdx = 1229; s.pc = 29; return s.tmp_10; - case 29: - r0 = s.retval; + r0 = pxsim.BitmapMethods.width(s.tmp_6); + s.tmp_5 = r0; + r0 = (s.tmp_5 >> 1); + s.tmp_4 = r0; + r0 = (s.tmp_3 + s.tmp_4); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 2); + s.tmp_1.arg1 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["top"]; + s.tmp_8 = r0; + r0 = globals.theScreen___3281; + s.tmp_11 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_11); + s.tmp_10 = r0; + r0 = (s.tmp_10 >> 1); s.tmp_9 = r0; - r0 = (s.tmp_8).fields["progdef"] = (s.tmp_9); - s.tmp_0 = if_save_3_mk(s); - r0 = s.arg0.fields["app"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4287; - s.tmp_1 = microcode_ProgramDefn_toBuffer__P4071_mk(s); - r0 = s.arg0.fields["progdef"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1230; s.pc = 31; return s.tmp_1; - case 31: - r0 = s.retval; - s.tmp_0.arg2 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "save"), 3); - s.callLocIdx = 1231; s.pc = 30; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["save"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["save"], 3); s.callLocIdx = 1231; s.pc = 30; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1231; s.pc = 30; return s.tmp_0;; } - else { s.callLocIdx = 1231; s.pc = 30; return s.tmp_0; } - } - case 30: - r0 = s.retval; + r0 = (s.tmp_8 + s.tmp_9); + s.tmp_7 = r0; + r0 = (s.tmp_7 + 2); + s.tmp_1.arg2 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["width"]; + s.tmp_1.arg3 = r0; + r0 = s.arg0.fields["bounds"]; + r0 = r0.fields["height"]; + s.tmp_1.arg4 = r0; + s.tmp_1.arg5 = 15; + s.callLocIdx = 1027; s.pc = 3; return s.tmp_1; case 3: - case 4: - s.tmp_0 = microcode_Editor_configureP1Keys__P5769_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1232; s.pc = 32; return s.tmp_0; - case 32: r0 = s.retval; - s.tmp_0 = microcode_Editor_configureP2Keys__P5772_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1233; s.pc = 33; return s.tmp_0; - case 33: + s.tmp_0 = user_interface_base_Bounds_fillRect__P3365_mk(s); + r0 = s.arg0.fields["bounds"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["backgroundColour"]; + s.tmp_0.arg1 = r0; + s.callLocIdx = 1028; s.pc = 4; return s.tmp_0; + case 4: r0 = s.retval; + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_startup__P4317.info = {"start":7567,"length":2920,"line":229,"column":23,"endLine":299,"endColumn":9,"fileName":"editor.ts","functionName":"startup","argumentNames":["this"]} +microgui_GUIComponentAbstract_draw__P3935.info = {"start":10995,"length":432,"line":280,"column":8,"endLine":292,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"draw","argumentNames":["this"]} -function microcode_Editor_startup__P4317_mk(s) { +function microgui_GUIComponentAbstract_draw__P3935_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_startup__P4317, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_draw__P3935, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -60634,16 +65725,14 @@ function microcode_Editor_startup__P4317_mk(s) { tmp_8: undefined, tmp_9: undefined, tmp_10: undefined, - makeOnEvent___20805: undefined, - buf___20920: undefined, + tmp_11: undefined, arg0: undefined, } } - -function makeOnEvent_inline__P20806(s) { +function user_interface_base_Bounds_fillRect__P3365(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60658,31 +65747,33 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(2, makeOnEvent_inline__P20812); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.arg1); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 2049; - s.tmp_1.arg1 = s.arg0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 1197; s.pc = 1; return s.tmp_1; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_Bounds__C3336_VT)) failedCast(r0, user_interface_base_Bounds__C3336_VT); + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + r0 = s.arg0.fields["left"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["top"]; + s.tmp_0.arg1 = r0; + r0 = s.arg0.fields["width"]; + s.tmp_0.arg2 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = s.arg1; + s.callLocIdx = 328; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -makeOnEvent_inline__P20806.info = {"start":7611,"length":182,"line":230,"column":32,"endLine":234,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["id","dir"]} +user_interface_base_Bounds_fillRect__P3365.info = {"start":5845,"length":123,"line":197,"column":8,"endLine":199,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"fillRect","argumentNames":["this","color"]} -function makeOnEvent_inline__P20806_mk(s) { +function user_interface_base_Bounds_fillRect__P3365_mk(s) { checkStack(s.depth); return { - parent: s, fn: makeOnEvent_inline__P20806, depth: s.depth + 1, + parent: s, fn: user_interface_base_Bounds_fillRect__P3365, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, arg1: undefined, } } @@ -60690,8 +65781,7 @@ function makeOnEvent_inline__P20806_mk(s) { - -function makeOnEvent_inline__P20812(s) { +function microgui_GUIComponentScene_draw__P3995(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60701,32 +65791,83 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_Editor_scrollAndMove__P5767_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = s.caps[1]; - s.tmp_0.arg2 = false; - s.callLocIdx = 1196; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentScene__C3986_VT)) failedCast(r0, microgui_GUIComponentScene__C3986_VT); + s.tmp_0 = user_interface_base_Scene_draw__P3669_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1103; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = helpers_imageFillRect__P3109_mk(s); + r0 = globals.theScreen___3281; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = 0; + s.tmp_0.arg2 = 0; + r0 = globals.theScreen___3281; + s.tmp_1 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_1); + s.tmp_0.arg3 = r0; + r0 = globals.theScreen___3281; + s.tmp_2 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_2); + s.tmp_0.arg4 = r0; + r0 = s.arg0.fields["color_"]; + s.tmp_0.arg5 = r0; + s.callLocIdx = 1108; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + r0 = s.arg0.fields["components"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 != null); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["components"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = microgui_GUIComponentScene_draw_inline__P22699; + s.callLocIdx = 1111; s.pc = 5; return s.tmp_2; + case 5: + r0 = s.retval; case 1: + case 2: + s.tmp_0 = microgui_GUIComponentAbstract__C3930_v5_1_mk(s); + r0 = s.arg0.fields["components"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["currentComponentID"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(s.tmp_0.arg0, microgui_GUIComponentAbstract__C3930_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 6; return s.tmp_0; + case 6: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -makeOnEvent_inline__P20812.info = {"start":7712,"length":49,"line":231,"column":67,"endLine":232,"endColumn":43,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} +microgui_GUIComponentScene_draw__P3995.info = {"start":52194,"length":567,"line":1433,"column":8,"endLine":1453,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"draw","argumentNames":["this"]} -function makeOnEvent_inline__P20812_mk(s) { +function microgui_GUIComponentScene_draw__P3995_mk(s) { checkStack(s.depth); return { - parent: s, fn: makeOnEvent_inline__P20812, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentScene_draw__P3995, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, } } - -function microcode_Editor_startup_inline__P20838(s) { +function microgui_GUIComponentScene_draw_inline__P22699(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60736,65 +65877,65 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = if_popScene_1_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); - s.callLocIdx = 1203; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1203; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1203; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1203; s.pc = 1; return s.tmp_0; } + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; } - case 1: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(microcode_Home__C4359_VT); + r0 = s.arg0.fields["isHidden"]; + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; - s.tmp_1 = microcode_Home_constructor__P4360_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.caps[0].fields["app"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1204; s.pc = 2; return s.tmp_1; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } + case 1: + r0 = s.arg0.fields["isActive"]; + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + s.tmp_3 = r0; + r0 = pxsim_Boolean__bang(s.tmp_3); case 2: + // jmp value (already in r0) + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 3; continue; } + s.tmp_6 = microgui_GUIComponentAbstract__C3930_v5_1_mk(s); + s.tmp_6.arg0 = s.arg0; + if (!checkSubtype(s.tmp_6.arg0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(s.tmp_6.arg0, microgui_GUIComponentAbstract__C3930_VT); + s.tmp_6.fn = s.tmp_6.arg0.vtable.methods.draw; + s.pc = 5; return s.tmp_6; + case 5: r0 = s.retval; - s.tmp_2 = if_pushScene_2_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - if (!s.tmp_2.arg0.vtable.iface) { - setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); - s.callLocIdx = 1205; s.pc = 3; return s.tmp_2; - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1205; s.pc = 3; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1205; s.pc = 3; return s.tmp_2;; } - else { s.callLocIdx = 1205; s.pc = 3; return s.tmp_2; } - } case 3: - r0 = s.retval; + case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_startup_inline__P20838.info = {"start":8245,"length":186,"line":245,"column":20,"endLine":249,"endColumn":21,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} +microgui_GUIComponentScene_draw_inline__P22699.info = {"start":52498,"length":137,"line":1445,"column":40,"endLine":1448,"endColumn":17,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"inline","argumentNames":["component"]} -function microcode_Editor_startup_inline__P20838_mk(s) { +function microgui_GUIComponentScene_draw_inline__P22699_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_startup_inline__P20838, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentScene_draw_inline__P22699, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + arg0: undefined, } } - -function onClick_inline__P20902(s) { +function microgui_GUIComponentAbstract_active__P3938(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60804,30 +65945,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_Editor_pickDiskSLot__P5764_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1217; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = s.arg0.fields["isActive"]; + return leaveAccessor(s, r0) default: oops() } } } -onClick_inline__P20902.info = {"start":9182,"length":25,"line":268,"column":25,"endLine":268,"endColumn":50,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} +microgui_GUIComponentAbstract_active__P3938.info = {"start":11586,"length":44,"line":297,"column":8,"endLine":297,"endColumn":52,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"active","argumentNames":["this"]} +microgui_GUIComponentAbstract_active__P3938.isGetter = true; -function onClick_inline__P20902_mk(s) { +function microgui_GUIComponentAbstract_active__P3938_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P20902, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_active__P3938, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, + arg0: undefined, } } - -function onClick_inline__P20918(s) { +function microgui_GUIComponentAbstract_hidden__P3939(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60837,30 +65979,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_Editor_pickPage__P5765_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1221; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = s.arg0.fields["isHidden"]; + return leaveAccessor(s, r0) default: oops() } } } -onClick_inline__P20918.info = {"start":9872,"length":21,"line":285,"column":25,"endLine":285,"endColumn":46,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} +microgui_GUIComponentAbstract_hidden__P3939.info = {"start":11639,"length":44,"line":298,"column":8,"endLine":298,"endColumn":52,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"hidden","argumentNames":["this"]} +microgui_GUIComponentAbstract_hidden__P3939.isGetter = true; -function onClick_inline__P20918_mk(s) { +function microgui_GUIComponentAbstract_hidden__P3939_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P20918, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_hidden__P3939, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, + arg0: undefined, } } - -function microcode_Editor_configureP2Keys__P5772(s) { +function microgui_GUIComponentScene_startup__P3993(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60870,76 +66013,36 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.nextPage___20953 = undefined; - s.prevPage___20956 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = pxsim_pxtcore_mkAction(1, nextPage_inline__P20954); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.nextPage___20953 = (s.tmp_0); - r0 = pxsim_pxtcore_mkAction(1, prevPage_inline__P20957); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.prevPage___20956 = (s.tmp_0); - s.tmp_0 = context_onEvent__P3274_mk(s); - s.tmp_0.arg0 = 2049; - s.tmp_0.arg1 = 9; - s.tmp_0.arg2 = s.nextPage___20953; - s.tmp_0.arg3 = 16; - s.callLocIdx = 1243; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microgui_GUIComponentScene__C3986_VT)) failedCast(r0, microgui_GUIComponentScene__C3986_VT); + s.tmp_0 = user_interface_base_Scene_startup__P3664_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1102; s.pc = 1; return s.tmp_0; case 1: - r0 = s.retval; - s.tmp_0 = context_onEvent__P3274_mk(s); - s.tmp_0.arg0 = 2049; - s.tmp_0.arg1 = 11; - s.tmp_0.arg2 = s.prevPage___20956; - s.tmp_0.arg3 = 16; - s.callLocIdx = 1244; s.pc = 2; return s.tmp_0; - case 2: - r0 = s.retval; - s.tmp_0 = context_onEvent__P3274_mk(s); - s.tmp_0.arg0 = 2049; - s.tmp_0.arg1 = 8; - s.tmp_0.arg2 = s.prevPage___20956; - s.tmp_0.arg3 = 16; - s.callLocIdx = 1245; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_0 = context_onEvent__P3274_mk(s); - s.tmp_0.arg0 = 2049; - s.tmp_0.arg1 = 10; - s.tmp_0.arg2 = s.nextPage___20953; - s.tmp_0.arg3 = 16; - s.callLocIdx = 1246; s.pc = 4; return s.tmp_0; - case 4: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_configureP2Keys__P5772.info = {"start":11640,"length":938,"line":340,"column":8,"endLine":366,"endColumn":9,"fileName":"editor.ts","functionName":"configureP2Keys","argumentNames":["this"]} +microgui_GUIComponentScene_startup__P3993.info = {"start":51658,"length":49,"line":1416,"column":23,"endLine":1418,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"startup","argumentNames":["this"]} -function microcode_Editor_configureP2Keys__P5772_mk(s) { +function microgui_GUIComponentScene_startup__P3993_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_configureP2Keys__P5772, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentScene_startup__P3993, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - nextPage___20953: undefined, - prevPage___20956: undefined, arg0: undefined, } } - -function nextPage_inline__P20954(s) { +function microgui_GUIComponentScene_deactivate__P3990(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60949,32 +66052,60 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_Editor_nextPage__P5770_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 1; - s.tmp_0.arg2 = 1; - s.callLocIdx = 1241; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentScene__C3986_VT)) failedCast(r0, microgui_GUIComponentScene__C3986_VT); + s.tmp_0 = user_interface_base_Scene_activate__P3666_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1100; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_0 = microgui_GUIComponentAbstract_hide__P3943_mk(s); + r0 = s.arg0.fields["components"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["currentComponentID"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + s.callLocIdx = 1101; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + s.tmp_0 = microgui_GUIComponentAbstract__C3930_v7_1_mk(s); + r0 = s.arg0.fields["components"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["currentComponentID"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(s.tmp_0.arg0, microgui_GUIComponentAbstract__C3930_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.unmakeActive; + s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -nextPage_inline__P20954.info = {"start":11724,"length":21,"line":342,"column":29,"endLine":342,"endColumn":50,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} +microgui_GUIComponentScene_deactivate__P3990.info = {"start":51116,"length":190,"line":1400,"column":8,"endLine":1405,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"deactivate","argumentNames":["this"]} -function nextPage_inline__P20954_mk(s) { +function microgui_GUIComponentScene_deactivate__P3990_mk(s) { checkStack(s.depth); return { - parent: s, fn: nextPage_inline__P20954, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentScene_deactivate__P3990, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, } } - -function prevPage_inline__P20957(s) { +function microgui_GUIComponentAbstract_unmakeActive__P3942(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -60984,32 +66115,31 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_Editor_prevPage__P5771_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = 1; - s.tmp_0.arg2 = 1; - s.callLocIdx = 1242; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = (s.arg0).fields["isActive"] = (false); r0 = undefined; return leave(s, r0) default: oops() } } } -prevPage_inline__P20957.info = {"start":11775,"length":21,"line":343,"column":29,"endLine":343,"endColumn":50,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} +microgui_GUIComponentAbstract_unmakeActive__P3942.info = {"start":11816,"length":53,"line":302,"column":8,"endLine":302,"endColumn":61,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"unmakeActive","argumentNames":["this"]} -function prevPage_inline__P20957_mk(s) { +function microgui_GUIComponentAbstract_unmakeActive__P3942_mk(s) { checkStack(s.depth); return { - parent: s, fn: prevPage_inline__P20957, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_unmakeActive__P3942, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, + arg0: undefined, } } - -function microcode_Editor_prevPage__P5771(s) { +function microgui_GUIComponentAbstract_hide__P3943(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61021,66 +66151,29 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = microcode_Editor_switchToPage__P4314_mk(s); - s.tmp_0.arg0 = s.arg0; - r0 = s.arg0.fields["currPage"]; - s.tmp_3 = r0; - r0 = s.arg0.fields["progdef"]; - r0 = r0.fields["pages"]; - s.tmp_5 = r0; - r0 = pxsim_Array__length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_3 + s.tmp_4); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1 = r0; - r0 = s.arg0.fields["progdef"]; - r0 = r0.fields["pages"]; - s.tmp_7 = r0; - r0 = pxsim_Array__length(s.tmp_7); - s.tmp_6 = r0; - r0 = (s.tmp_1 % s.tmp_6); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.arg1; - s.tmp_0.arg3 = s.arg2; - s.callLocIdx = 1240; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + if (!checkSubtype(r0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(r0, microgui_GUIComponentAbstract__C3930_VT); + r0 = (s.arg0).fields["isHidden"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_prevPage__P5771.info = {"start":11365,"length":265,"line":331,"column":8,"endLine":338,"endColumn":9,"fileName":"editor.ts","functionName":"prevPage","argumentNames":["this","startRow","startCol"]} +microgui_GUIComponentAbstract_hide__P3943.info = {"start":11879,"length":44,"line":304,"column":8,"endLine":304,"endColumn":52,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"hide","argumentNames":["this"]} -function microcode_Editor_prevPage__P5771_mk(s) { +function microgui_GUIComponentAbstract_hide__P3943_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_prevPage__P5771, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentAbstract_hide__P3943, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_Editor_nextPage__P5770(s) { +function microgui_GUIComponentScene_activate__P3989(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61092,56 +66185,61 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = microcode_Editor_switchToPage__P4314_mk(s); + if (!checkSubtype(r0, microgui_GUIComponentScene__C3986_VT)) failedCast(r0, microgui_GUIComponentScene__C3986_VT); + s.tmp_0 = user_interface_base_Scene_activate__P3666_mk(s); s.tmp_0.arg0 = s.arg0; - r0 = s.arg0.fields["currPage"]; + s.callLocIdx = 1099; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + r0 = s.arg0.fields["components"]; s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); + r0 = pxsim_Array__length(s.tmp_2); s.tmp_1 = r0; - r0 = s.arg0.fields["progdef"]; - r0 = r0.fields["pages"]; + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = microgui_GUIComponentAbstract__C3930_v6_1_mk(s); + r0 = s.arg0.fields["components"]; s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_1 % s.tmp_3); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.arg1; - s.tmp_0.arg3 = s.arg2; - s.callLocIdx = 1239; s.pc = 1; return s.tmp_0; - case 1: + r0 = s.arg0.fields["currentComponentID"]; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); + s.tmp_3.arg0 = r0; + if (!checkSubtype(s.tmp_3.arg0, microgui_GUIComponentAbstract__C3930_VT)) failedCast(s.tmp_3.arg0, microgui_GUIComponentAbstract__C3930_VT); + s.tmp_3.fn = s.tmp_3.arg0.vtable.methods.makeActive; + s.pc = 4; return s.tmp_3; + case 4: r0 = s.retval; + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_nextPage__P5770.info = {"start":11138,"length":217,"line":323,"column":8,"endLine":329,"endColumn":9,"fileName":"editor.ts","functionName":"nextPage","argumentNames":["this","startRow","startCol"]} +microgui_GUIComponentScene_activate__P3989.info = {"start":50933,"length":173,"line":1394,"column":8,"endLine":1398,"endColumn":9,"fileName":"pxt_modules/microgui/guiComponents.ts","functionName":"activate","argumentNames":["this"]} -function microcode_Editor_nextPage__P5770_mk(s) { +function microgui_GUIComponentScene_activate__P3989_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_nextPage__P5770, depth: s.depth + 1, + parent: s, fn: microgui_GUIComponentScene_activate__P3989, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, + tmp_5: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microcode_Editor_configureP1Keys__P5769(s) { +function microcode_SamplesGallery_draw__P4618(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61151,71 +66249,52 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.forward___21020 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = pxsim_pxtcore_mkAction(1, forward_inline__P21021); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.forward___21020 = (s.tmp_0); - s.tmp_0 = context_onEvent__P3274_mk(s); - s.tmp_0.arg0 = 2049; - r0 = globals.A___3266.fields["id"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.forward___21020; - s.tmp_0.arg3 = 16; - s.callLocIdx = 1235; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_SamplesGallery__C4612_VT)) failedCast(r0, microcode_SamplesGallery__C4612_VT); + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + s.tmp_0.arg0 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + s.tmp_0.arg1 = globals.user_interface_base_Screen_TOP_EDGE___3418; + s.tmp_0.arg2 = globals.user_interface_base_Screen_WIDTH___3412; + s.tmp_0.arg3 = globals.user_interface_base_Screen_HEIGHT___3413; + s.tmp_0.arg4 = 12; + s.callLocIdx = 1936; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - s.tmp_0 = context_onEvent__P3274_mk(s); - s.tmp_0.arg0 = 2049; - r0 = globals.A___3266.fields["id"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 + 7); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = s.forward___21020; - s.tmp_0.arg3 = 16; - s.callLocIdx = 1236; s.pc = 2; return s.tmp_0; + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["sampleButtons"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = microcode_SamplesGallery_draw_inline__P22761; + s.callLocIdx = 1937; s.pc = 2; return s.tmp_0; case 2: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, microcode_Editor_configureP1Keys_inline__P21043); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = context_onEvent__P3274_mk(s); - s.tmp_1.arg0 = 2049; - r0 = globals.B___3267.fields["id"]; - s.tmp_1.arg1 = r0; - s.tmp_1.arg2 = s.tmp_0; - s.tmp_1.arg3 = 16; - s.callLocIdx = 1238; s.pc = 3; return s.tmp_1; + s.tmp_0 = user_interface_base_CursorScene_draw__P3810_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1938; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_configureP1Keys__P5769.info = {"start":10497,"length":631,"line":301,"column":8,"endLine":321,"endColumn":9,"fileName":"editor.ts","functionName":"configureP1Keys","argumentNames":["this"]} +microcode_SamplesGallery_draw__P4618.info = {"start":2255,"length":288,"line":66,"column":23,"endLine":76,"endColumn":9,"fileName":"gallery.ts","functionName":"draw","argumentNames":["this"]} -function microcode_Editor_configureP1Keys__P5769_mk(s) { +function microcode_SamplesGallery_draw__P4618_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_configureP1Keys__P5769, depth: s.depth + 1, + parent: s, fn: microcode_SamplesGallery_draw__P4618, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - forward___21020: undefined, arg0: undefined, } } - -function forward_inline__P21021(s) { +function microcode_SamplesGallery_draw_inline__P22761(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61225,32 +66304,36 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = user_interface_base_Cursor_click__P3739_mk(s); - r0 = s.caps[0].fields["cursor"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1234; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = user_interface_base_Button__C3638_v0_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3638_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = (s.caps[0]).fields["dirty"] = (true); r0 = undefined; return leave(s, r0) default: oops() } } } -forward_inline__P21021.info = {"start":10553,"length":91,"line":302,"column":28,"endLine":305,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} +microcode_SamplesGallery_draw_inline__P22761.info = {"start":2494,"length":13,"line":74,"column":39,"endLine":74,"endColumn":52,"fileName":"gallery.ts","functionName":"inline","argumentNames":["s"]} -function forward_inline__P21021_mk(s) { +function microcode_SamplesGallery_draw_inline__P22761_mk(s) { checkStack(s.depth); return { - parent: s, fn: forward_inline__P21021, depth: s.depth + 1, + parent: s, fn: microcode_SamplesGallery_draw_inline__P22761, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + arg0: undefined, } } - -function microcode_Editor_configureP1Keys_inline__P21043(s) { +function microcode_SamplesGallery_activate__P4617(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61260,30 +66343,42 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.tmp_0 = microcode_Editor_back__P4318_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.callLocIdx = 1237; s.pc = 1; return s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_SamplesGallery__C4612_VT)) failedCast(r0, microcode_SamplesGallery__C4612_VT); + s.tmp_0 = user_interface_base_CursorScene_activate__P3808_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1934; s.pc = 1; return s.tmp_0; case 1: + r0 = s.retval; + s.tmp_0 = user_interface_base_Scene_backgroundColor__P3662_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = 15; + s.callLocIdx = 1935; s.pc = 2; return s.tmp_0; + case 2: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_configureP1Keys_inline__P21043.info = {"start":11087,"length":17,"line":319,"column":16,"endLine":319,"endColumn":33,"fileName":"editor.ts","functionName":"inline","argumentNames":[]} +microcode_SamplesGallery_activate__P4617.info = {"start":2141,"length":89,"line":61,"column":23,"endLine":64,"endColumn":9,"fileName":"gallery.ts","functionName":"activate","argumentNames":["this"]} -function microcode_Editor_configureP1Keys_inline__P21043_mk(s) { +function microcode_SamplesGallery_activate__P4617_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_configureP1Keys_inline__P21043, depth: s.depth + 1, + parent: s, fn: microcode_SamplesGallery_activate__P4617, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + arg0: undefined, } } - -function microcode_Editor_back__P4318(s) { +function microcode_SamplesGallery_moveCursor__P4616(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61293,167 +66388,61 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.target___21076 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_3 = user_interface_base_Cursor_cancel__P3740_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_3.arg0 = r0; - s.callLocIdx = 1247; s.pc = 9; return s.tmp_3; - case 9: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + if (!checkSubtype(r0, microcode_SamplesGallery__C4612_VT)) failedCast(r0, microcode_SamplesGallery__C4612_VT); + r0 = (s.arg1 == 4); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.tmp_6 = user_interface_base_RowNavigator__C3780_v1_1_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_6.arg0 = r0; - if (!checkSubtype(s.tmp_6.arg0, user_interface_base_RowNavigator__C3780_VT)) failedCast(s.tmp_6.arg0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_6.fn = s.tmp_6.arg0.vtable.methods.getRow; - s.pc = 10; return s.tmp_6; - case 10: - r0 = s.retval; - s.tmp_5 = r0; - r0 = (s.tmp_5 == 0); - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 3; continue; } - r0 = s.arg0.fields["currPage"]; - s.tmp_8 = r0; - r0 = (s.tmp_8 > 0); - s.tmp_7 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_7); - if (!r0) { step = 1; continue; } - s.tmp_9 = microcode_Editor_prevPage__P5771_mk(s); - s.tmp_9.arg0 = s.arg0; - s.tmp_9.arg1 = 0; - s.tmp_9.arg2 = -1; - s.callLocIdx = 1248; s.pc = 11; return s.tmp_9; - case 11: - r0 = s.retval; - { step = 2; continue; } - case 1: - s.tmp_0 = if_popScene_1_mk(s); - r0 = s.arg0.fields["app"]; - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); - s.callLocIdx = 1249; s.pc = 12; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1249; s.pc = 12; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1249; s.pc = 12; return s.tmp_0;; } - else { s.callLocIdx = 1249; s.pc = 12; return s.tmp_0; } - } - case 12: - r0 = s.retval; - r0 = pxsim_pxtcore_mkClassInstance(microcode_Home__C4359_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_Home_constructor__P4360_mk(s); - s.tmp_1.arg0 = s.tmp_0; - r0 = s.arg0.fields["app"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1250; s.pc = 13; return s.tmp_1; - case 13: - r0 = s.retval; - s.tmp_2 = if_pushScene_2_mk(s); - r0 = s.arg0.fields["app"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - if (!s.tmp_2.arg0.vtable.iface) { - setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); - s.callLocIdx = 1251; s.pc = 14; return s.tmp_2; + if (!r0) { step = 1; continue; } + s.tmp_1 = if_popScene_1_mk(s); + r0 = s.arg0.fields["app"]; + s.tmp_1.arg0 = r0; + if (!s.tmp_1.arg0.vtable.iface) { + setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "popScene"), 1); + s.callLocIdx = 1932; s.pc = 3; return s.tmp_1; } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; - if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1251; s.pc = 14; return s.tmp_2; } - else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1251; s.pc = 14; return s.tmp_2;; } - else { s.callLocIdx = 1251; s.pc = 14; return s.tmp_2; } + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["popScene"]; + if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["popScene"], 1); s.callLocIdx = 1932; s.pc = 3; return s.tmp_1; } + else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 1932; s.pc = 3; return s.tmp_1;; } + else { s.callLocIdx = 1932; s.pc = 3; return s.tmp_1; } } - case 14: - r0 = s.retval; - s.tmp_0 = microcode_stopProgram__P4298_mk(s); - s.callLocIdx = 1252; s.pc = 15; return s.tmp_0; - case 15: - r0 = s.retval; - case 2: - { step = 6; continue; } case 3: - s.tmp_1 = microcode_RuleRowNavigator_atRuleStart__P4582_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1253; s.pc = 16; return s.tmp_1; - case 16: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_2 = user_interface_base_RowNavigator_initialCursor__P3793_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = 0; - s.tmp_2.arg2 = 0; - s.callLocIdx = 1254; s.pc = 17; return s.tmp_2; - case 17: r0 = s.retval; - s.target___21076 = (r0); - s.tmp_0 = microcode_Editor_moveTo__P5766_mk(s); + { step = 2; continue; } + case 1: + s.tmp_0 = user_interface_base_CursorScene_moveCursor__P3804_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.target___21076; - s.callLocIdx = 1255; s.pc = 18; return s.tmp_0; - case 18: - r0 = s.retval; - { step = 5; continue; } + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 1933; s.pc = 4; return s.tmp_0; case 4: - s.tmp_0 = microcode_Editor_scrollAndMove__P5767_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = 4; - s.tmp_0.arg2 = false; - s.callLocIdx = 1256; s.pc = 19; return s.tmp_0; - case 19: r0 = s.retval; - case 5: - case 6: - case 7: - case 8: - r0 = (s.arg0).fields["dirty"] = (true); + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_back__P4318.info = {"start":12588,"length":793,"line":368,"column":8,"endLine":387,"endColumn":9,"fileName":"editor.ts","functionName":"back","argumentNames":["this"]} +microcode_SamplesGallery_moveCursor__P4616.info = {"start":1822,"length":295,"line":52,"column":8,"endLine":60,"endColumn":9,"fileName":"gallery.ts","functionName":"moveCursor","argumentNames":["this","dir"]} -function microcode_Editor_back__P4318_mk(s) { +function microcode_SamplesGallery_moveCursor__P4616_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_back__P4318, depth: s.depth + 1, + parent: s, fn: microcode_SamplesGallery_moveCursor__P4616, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - target___21076: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Editor_moveTo__P5766(s) { +function microcode_SamplesGallery_startup__P4615(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61463,62 +66452,110 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.x___22781 = undefined; + s.y___22784 = undefined; + s.rowButtons___22790 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_Cursor_moveTo__P3731_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_0.arg0 = r0; - s.tmp_1 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.arg1.fields["xfrm_"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 1172; s.pc = 4; return s.tmp_1; - case 4: + if (!checkSubtype(r0, microcode_SamplesGallery__C4612_VT)) failedCast(r0, microcode_SamplesGallery__C4612_VT); + s.tmp_0 = user_interface_base_CursorScene_startup__P3805_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1920; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - s.tmp_0.arg1 = r0; - r0 = s.arg1.fields["_ariaId"]; - s.tmp_0.arg2 = r0; - s.tmp_2 = user_interface_base_ButtonBase_bounds__P3654_mk(s); - s.tmp_2.arg0 = s.arg1; - s.callLocIdx = 1174; s.pc = 5; return s.tmp_2; + r0 = pxsim_pxtrt.mklocRef(); + s.x___22781 = (r0); + r0 = pxsim_pxtrt_stlocRef(s.x___22781, -72); + r0 = pxsim_pxtrt.mklocRef(); + s.y___22784 = (r0); + r0 = pxsim_pxtrt_stlocRef(s.y___22784, -55); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["sampleButtons"] = (s.tmp_1); + r0 = pxsim_pxtrt.mklocRef(); + s.rowButtons___22790 = (r0); + s.tmp_0 = r0 = s.rowButtons___22790; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + r0 = pxsim_pxtcore_mkAction(4, microcode_SamplesGallery_startup_inline__P22801); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.x___22781); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.y___22784); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 2, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 3, s.rowButtons___22790); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = helpers_arrayFilter__P2139_mk(s); + s.tmp_3 = microcode_samples__P4610_mk(s); + s.tmp_3.arg0 = true; + s.callLocIdx = 1921; s.pc = 6; return s.tmp_3; + case 6: + r0 = s.retval; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = forEach_inline__P22795; + s.callLocIdx = 1922; s.pc = 5; return s.tmp_2; case 5: r0 = s.retval; - s.tmp_0.arg3 = r0; - s.callLocIdx = 1175; s.pc = 3; return s.tmp_0; - case 3: + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 1930; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + r0 = pxsim_pxtrt_ldlocRef(s.rowButtons___22790); + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = if_addRow_2_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_3.arg0 = r0; + r0 = pxsim_pxtrt_ldlocRef(s.rowButtons___22790); + s.tmp_3.arg1 = r0; + if (!s.tmp_3.arg0.vtable.iface) { + setupLambda(s.tmp_3, pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "addRow"), 2); + s.callLocIdx = 1931; s.pc = 7; return s.tmp_3; + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["addRow"]; + if (s.tmp_3.fn == null) { setupLambda(s.tmp_3, s.tmp_3.arg0.fields["addRow"], 2); s.callLocIdx = 1931; s.pc = 7; return s.tmp_3; } + else if (s.tmp_3.fn.isGetter) { s.tmp_3.stage2Call = true; s.callLocIdx = 1931; s.pc = 7; return s.tmp_3;; } + else { s.callLocIdx = 1931; s.pc = 7; return s.tmp_3; } + } + case 7: r0 = s.retval; - r0 = (s.arg0).fields["dirty"] = (true); case 1: case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_moveTo__P5766.info = {"start":5590,"length":281,"line":172,"column":8,"endLine":181,"endColumn":9,"fileName":"editor.ts","functionName":"moveTo","argumentNames":["this","target"]} +microcode_SamplesGallery_startup__P4615.info = {"start":510,"length":1302,"line":16,"column":23,"endLine":50,"endColumn":9,"fileName":"gallery.ts","functionName":"startup","argumentNames":["this"]} -function microcode_Editor_moveTo__P5766_mk(s) { +function microcode_SamplesGallery_startup__P4615_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_moveTo__P5766, depth: s.depth + 1, + parent: s, fn: microcode_SamplesGallery_startup__P4615, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + x___22781: undefined, + y___22784: undefined, + rowButtons___22790: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_RuleRowNavigator_atRuleStart__P4582(s) { +function forEach_inline__P22795(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61532,33 +66569,24 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleRowNavigator__C4578_VT)) failedCast(r0, microcode_RuleRowNavigator__C4578_VT); - r0 = s.arg0.fields["row"]; + r0 = s.arg0.fields["icon"]; + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); s.tmp_1 = r0; - r0 = (s.tmp_1 >= 1); + r0 = pxsim_numops_toBoolDecr(s.tmp_1); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = s.arg0.fields["col"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 == 0); - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; + r0 = pxsim_Boolean__bang(s.tmp_0); return leave(s, r0) default: oops() } } } -microcode_RuleRowNavigator_atRuleStart__P4582.info = {"start":664,"length":82,"line":25,"column":8,"endLine":27,"endColumn":9,"fileName":"navigator.ts","functionName":"atRuleStart","argumentNames":["this"]} +forEach_inline__P22795.info = {"start":728,"length":23,"line":24,"column":24,"endLine":24,"endColumn":47,"fileName":"gallery.ts","functionName":"inline","argumentNames":["sample"]} -function microcode_RuleRowNavigator_atRuleStart__P4582_mk(s) { +function forEach_inline__P22795_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleRowNavigator_atRuleStart__P4582, depth: s.depth + 1, + parent: s, fn: forEach_inline__P22795, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -61570,8 +66598,7 @@ function microcode_RuleRowNavigator_atRuleStart__P4582_mk(s) { - -function microcode_stopProgram__P4298(s) { +function microcode_SamplesGallery_startup_inline__P22801(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61581,35 +66608,211 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_numops_toBoolDecr(globals.theInterpreter___5755); - if (!r0) { step = 1; continue; } - s.tmp_0 = microcode_Interpreter_stop__P4613_mk(s); - s.tmp_0.arg0 = globals.theInterpreter___5755; - s.callLocIdx = 1131; s.pc = 3; return s.tmp_0; + s.btn___22803 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", null); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.Transparent___3614); + r0 = s.arg0.fields["icon"]; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_2); + r0 = s.arg0.fields["ariaId"]; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", s.tmp_3); + r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + s.tmp_5 = r0; + r0 = (s.tmp_5 + 16); + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.tmp_4); + r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); + s.tmp_7 = r0; + r0 = (s.tmp_7 + 16); + s.tmp_6 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", s.tmp_6); + r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P22818); + s.tmp_8 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_8, 0, s.caps[2]); + r0 = pxsim_pxtrt_stclo(s.tmp_8, 1, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_8); + s.tmp_9 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_9.arg0 = s.tmp_0; + s.tmp_9.arg1 = s.tmp_1; + s.callLocIdx = 1928; s.pc = 3; return s.tmp_9; case 3: r0 = s.retval; + s.btn___22803 = (s.tmp_0); + r0 = s.caps[2].fields["sampleButtons"]; + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.btn___22803); + r0 = pxsim_pxtrt_ldlocRef(s.caps[3]); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, s.btn___22803); + s.tmp_0 = r0 = s.caps[0]; + r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 38); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + r0 = pxsim_pxtrt_ldlocRef(s.caps[0]); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 32); + s.tmp_1 = r0; + r0 = (s.tmp_1 > 75); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = if_addRow_2_mk(s); + r0 = s.caps[2].fields["navigator"]; + s.tmp_3.arg0 = r0; + r0 = pxsim_pxtrt_ldlocRef(s.caps[3]); + s.tmp_3.arg1 = r0; + if (!s.tmp_3.arg0.vtable.iface) { + setupLambda(s.tmp_3, pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "addRow"), 2); + s.callLocIdx = 1929; s.pc = 4; return s.tmp_3; + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["addRow"]; + if (s.tmp_3.fn == null) { setupLambda(s.tmp_3, s.tmp_3.arg0.fields["addRow"], 2); s.callLocIdx = 1929; s.pc = 4; return s.tmp_3; } + else if (s.tmp_3.fn.isGetter) { s.tmp_3.stage2Call = true; s.callLocIdx = 1929; s.pc = 4; return s.tmp_3;; } + else { s.callLocIdx = 1929; s.pc = 4; return s.tmp_3; } + } + case 4: + r0 = s.retval; + s.tmp_0 = r0 = s.caps[3]; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + s.tmp_0 = r0 = s.caps[1]; + r0 = pxsim_pxtrt_ldlocRef(s.caps[1]); + s.tmp_2 = r0; + r0 = (s.tmp_2 + 38); + s.tmp_1 = r0; + r0 = pxsim_pxtrt_stlocRef(s.tmp_0, s.tmp_1); + r0 = pxsim_pxtrt_stlocRef(s.caps[0], -72); case 1: case 2: - globals.theInterpreter___5755 = (undefined); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_stopProgram__P4298.info = {"start":2134,"length":122,"line":74,"column":4,"endLine":77,"endColumn":5,"fileName":"app.ts","functionName":"stopProgram","argumentNames":[]} +microcode_SamplesGallery_startup_inline__P22801.info = {"start":778,"length":950,"line":25,"column":25,"endLine":48,"endColumn":17,"fileName":"gallery.ts","functionName":"inline","argumentNames":["sample"]} -function microcode_stopProgram__P4298_mk(s) { +function microcode_SamplesGallery_startup_inline__P22801_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_stopProgram__P4298, depth: s.depth + 1, + parent: s, fn: microcode_SamplesGallery_startup_inline__P22801, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + btn___22803: undefined, + arg0: undefined, } } +function onClick_inline__P22818(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.tmp_0 = if_save_3_mk(s); + r0 = s.caps[0].fields["app"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = globals.SAVESLOT_AUTO___4438; + s.tmp_1 = microcode_Sample_source__P4608_mk(s); + s.tmp_1.arg0 = s.caps[1]; + s.callLocIdx = 1923; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg2 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "save"), 3); + s.callLocIdx = 1924; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["save"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["save"], 3); s.callLocIdx = 1924; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1924; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 1924; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + s.tmp_0 = if_popScene_1_mk(s); + r0 = s.caps[0].fields["app"]; + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "popScene"), 1); + s.callLocIdx = 1925; s.pc = 3; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["popScene"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["popScene"], 1); s.callLocIdx = 1925; s.pc = 3; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1925; s.pc = 3; return s.tmp_0;; } + else { s.callLocIdx = 1925; s.pc = 3; return s.tmp_0; } + } + case 3: + r0 = s.retval; + r0 = pxsim_pxtcore_mkClassInstance(microcode_Editor__C4454_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_Editor_constructor__P4461_mk(s); + s.tmp_1.arg0 = s.tmp_0; + r0 = s.caps[0].fields["app"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1926; s.pc = 4; return s.tmp_1; + case 4: + r0 = s.retval; + s.tmp_2 = if_pushScene_2_mk(s); + r0 = s.caps[0].fields["app"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = s.tmp_0; + if (!s.tmp_2.arg0.vtable.iface) { + setupLambda(s.tmp_2, pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "pushScene"), 2); + s.callLocIdx = 1927; s.pc = 5; return s.tmp_2; + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["pushScene"]; + if (s.tmp_2.fn == null) { setupLambda(s.tmp_2, s.tmp_2.arg0.fields["pushScene"], 2); s.callLocIdx = 1927; s.pc = 5; return s.tmp_2; } + else if (s.tmp_2.fn.isGetter) { s.tmp_2.stage2Call = true; s.callLocIdx = 1927; s.pc = 5; return s.tmp_2;; } + else { s.callLocIdx = 1927; s.pc = 5; return s.tmp_2; } + } + case 5: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +onClick_inline__P22818.info = {"start":1123,"length":222,"line":33,"column":33,"endLine":37,"endColumn":25,"fileName":"gallery.ts","functionName":"inline","argumentNames":[]} + +function onClick_inline__P22818_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: onClick_inline__P22818, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, +} } + + + -function user_interface_base_RowNavigator_getRow__P3783(s) { +function user_interface_base_PickerNavigator_move__P3792(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61621,29 +66824,298 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_RowNavigator__C3780_VT)) failedCast(r0, user_interface_base_RowNavigator__C3780_VT); + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + if (r0) { step = 17; continue; } + r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); + if (r0) { step = 24; continue; } + r0 = s.tmp_0; + { step = 31; continue; } + case 1: + r0 = s.arg0.fields["row"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 == -1); + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = s.tmp_1; + { step = 5; continue; } + case 2: + r0 = s.arg0.fields["deleteButton"]; + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + s.tmp_4 = r0; + r0 = pxsim_Boolean__bang(s.tmp_4); + s.tmp_3 = r0; + r0 = pxsim_numops_toBool(s.tmp_3); + if (r0) { step = 3; continue; } + r0 = s.tmp_3; + { step = 4; continue; } + case 3: + r0 = s.arg0.fields["row"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 == 0); + case 4: + // jmp value (already in r0) + s.tmp_7 = r0; + r0 = s.tmp_7; + case 5: + // jmp value (already in r0) + s.tmp_8 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_8); + if (!r0) { step = 6; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_NavigationError__C3750_VT); + s.tmp_9 = r0; + s.tmp_10 = user_interface_base_NavigationError_constructor__P3752_mk(s); + s.tmp_10.arg0 = s.tmp_9; + s.tmp_10.arg1 = globals.BACK_BUTTON_ERROR_KIND___3748; + s.callLocIdx = 796; s.pc = 32; return s.tmp_10; + case 32: + r0 = s.retval; + r0 = pxsim_pxtcore.throwValue(s.tmp_9); + case 6: + case 7: + r0 = s.arg0.fields["row"]; + s.tmp_12 = r0; + r0 = (s.tmp_12 > 0); + s.tmp_11 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_11); + if (!r0) { step = 8; continue; } + s.tmp_13 = r0 = s.arg0; + r0 = s.tmp_13.fields["row"]; + s.tmp_15 = r0; + r0 = (s.tmp_15 - 1); + s.tmp_14 = r0; + r0 = (s.tmp_13).fields["row"] = (s.tmp_14); + { step = 11; continue; } + case 8: + r0 = s.arg0.fields["deleteButton"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + r0 = (s.arg0).fields["row"] = (-1); + case 9: + case 10: + case 11: + { step = 31; continue; } + case 12: + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + s.tmp_4 = user_interface_base_PickerNavigator_height__P5279_mk(s); + s.tmp_4.arg0 = s.arg0; + s.callLocIdx = 797; s.pc = 33; return s.tmp_4; + case 33: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + s.tmp_5 = r0 = s.arg0; + r0 = s.tmp_5.fields["row"]; + s.tmp_7 = r0; + r0 = (s.tmp_7 + 1); + s.tmp_6 = r0; + r0 = (s.tmp_5).fields["row"] = (s.tmp_6); + r0 = s.arg0.fields["col"]; + s.tmp_1 = r0; + s.tmp_3 = user_interface_base_PickerNavigator_currentRowWidth__P5280_mk(s); + s.tmp_3.arg0 = s.arg0; + s.callLocIdx = 798; s.pc = 34; return s.tmp_3; + case 34: + r0 = s.retval; + s.tmp_2 = r0; + r0 = (s.tmp_1 >= s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + s.tmp_4 = r0 = s.arg0; + s.tmp_7 = user_interface_base_PickerNavigator_currentRowWidth__P5280_mk(s); + s.tmp_7.arg0 = s.arg0; + s.callLocIdx = 799; s.pc = 35; return s.tmp_7; + case 35: + r0 = s.retval; + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["col"] = (s.tmp_5); + case 13: + case 14: + { step = 16; continue; } + case 15: + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_NavigationError__C3750_VT); + s.tmp_0 = r0; + s.tmp_1 = user_interface_base_NavigationError_constructor__P3752_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = globals.FORWARD_BUTTON_ERROR_KIND___3749; + s.callLocIdx = 800; s.pc = 36; return s.tmp_1; + case 36: + r0 = s.retval; + r0 = pxsim_pxtcore.throwValue(s.tmp_0); + case 16: + { step = 31; continue; } + case 17: + r0 = s.arg0.fields["col"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 > 0); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 18; continue; } + s.tmp_4 = r0 = s.arg0; + r0 = s.tmp_4.fields["col"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["col"] = (s.tmp_5); + { step = 23; continue; } + case 18: + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 19; continue; } + s.tmp_2 = r0 = s.arg0; + r0 = s.tmp_2.fields["row"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 - 1); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["row"] = (s.tmp_3); + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["col"] = (s.tmp_1); + { step = 22; continue; } + case 19: + r0 = s.arg0.fields["deleteButton"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 20; continue; } + r0 = (s.arg0).fields["row"] = (-1); + case 20: + case 21: + case 22: + case 23: + { step = 31; continue; } + case 24: + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 == -1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 25; continue; } + r0 = (s.arg0).fields["row"] = (0); + r0 = (s.arg0).fields["col"] = (0); + { step = 30; continue; } + case 25: + r0 = s.arg0.fields["col"]; + s.tmp_1 = r0; + s.tmp_4 = user_interface_base_PickerNavigator_currentRowWidth__P5280_mk(s); + s.tmp_4.arg0 = s.arg0; + s.callLocIdx = 802; s.pc = 37; return s.tmp_4; + case 37: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 26; continue; } + s.tmp_5 = r0 = s.arg0; + r0 = s.tmp_5.fields["col"]; + s.tmp_7 = r0; + r0 = (s.tmp_7 + 1); + s.tmp_6 = r0; + r0 = (s.tmp_5).fields["col"] = (s.tmp_6); + { step = 29; continue; } + case 26: r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + s.tmp_4 = user_interface_base_PickerNavigator_height__P5279_mk(s); + s.tmp_4.arg0 = s.arg0; + s.callLocIdx = 803; s.pc = 38; return s.tmp_4; + case 38: + r0 = s.retval; + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 27; continue; } + s.tmp_5 = r0 = s.arg0; + r0 = s.tmp_5.fields["row"]; + s.tmp_7 = r0; + r0 = (s.tmp_7 + 1); + s.tmp_6 = r0; + r0 = (s.tmp_5).fields["row"] = (s.tmp_6); + r0 = (s.arg0).fields["col"] = (0); + case 27: + case 28: + case 29: + case 30: + case 31: + s.tmp_0 = user_interface_base_PickerNavigator__C3776_v0_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; + s.pc = 39; return s.tmp_0; + case 39: + r0 = s.retval; + s.tmp_0 = user_interface_base_PickerNavigator_getCurrent__P3790_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 804; s.pc = 40; return s.tmp_0; + case 40: + r0 = s.retval; return leave(s, r0) default: oops() } } } -user_interface_base_RowNavigator_getRow__P3783.info = {"start":2124,"length":55,"line":59,"column":8,"endLine":61,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getRow","argumentNames":["this"]} +user_interface_base_PickerNavigator_move__P3792.info = {"start":13449,"length":1709,"line":440,"column":8,"endLine":482,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"move","argumentNames":["this","dir"]} -function user_interface_base_RowNavigator_getRow__P3783_mk(s) { +function user_interface_base_PickerNavigator_move__P3792_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_RowNavigator_getRow__P3783, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_move__P3792, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_Editor_pickPage__P5765(s) { +function user_interface_base_PickerNavigator_currentRowWidth__P5280(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61653,68 +67125,93 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btns___21119 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = helpers_arrayMap__P2135_mk(s); - s.tmp_1 = microcode_PAGE_IDS__P4066_mk(s); - s.callLocIdx = 1147; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = btns_inline__P21121; - s.callLocIdx = 1149; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.btns___21119 = (r0); - s.tmp_0 = user_interface_base_Picker_setGroup__P3756_mk(s); - r0 = s.arg0.fields["picker"]; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0 = control_assert__P2486_mk(s); + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 >= 0); s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.btns___21119; - s.callLocIdx = 1150; s.pc = 3; return s.tmp_0; + s.tmp_0.arg1 = "row out of bounds"; + s.callLocIdx = 786; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; - r0 = pxsim_pxtcore_mkAction(1, onClick_inline__P21134); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt.mkMap(); + r0 = s.arg0.fields["row"]; s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_0); - s.tmp_2 = user_interface_base_Picker_show__P3758_mk(s); - r0 = s.arg0.fields["picker"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_1; - s.tmp_2.arg2 = true; - s.callLocIdx = 1152; s.pc = 4; return s.tmp_2; + s.tmp_4 = user_interface_base_PickerNavigator_height__P5279_mk(s); + s.tmp_4.arg0 = s.arg0; + s.callLocIdx = 787; s.pc = 4; return s.tmp_4; case 4: r0 = s.retval; - r0 = undefined; + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + { step = 2; continue; } + case 1: + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["group"]; + r0 = r0.fields["defs"]; + s.tmp_6 = r0; + r0 = pxsim_Array__length(s.tmp_6); + s.tmp_5 = r0; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_8 = r0; + s.tmp_11 = user_interface_base_PickerNavigator_height__P5279_mk(s); + s.tmp_11.arg0 = s.arg0; + s.callLocIdx = 791; s.pc = 5; return s.tmp_11; + case 5: + r0 = s.retval; + s.tmp_10 = r0; + r0 = (s.tmp_10 - 1); + s.tmp_9 = r0; + r0 = (s.tmp_8 * s.tmp_9); + s.tmp_7 = r0; + r0 = (s.tmp_5 - s.tmp_7); + case 2: + // jmp value (already in r0) + s.tmp_12 = r0; + r0 = s.tmp_12; return leave(s, r0) default: oops() } } } -microcode_Editor_pickPage__P5765.info = {"start":4000,"length":397,"line":125,"column":8,"endLine":137,"endColumn":9,"fileName":"editor.ts","functionName":"pickPage","argumentNames":["this"]} +user_interface_base_PickerNavigator_currentRowWidth__P5280.info = {"start":11582,"length":242,"line":379,"column":8,"endLine":384,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"currentRowWidth","argumentNames":["this"]} -function microcode_Editor_pickPage__P5765_mk(s) { +function user_interface_base_PickerNavigator_currentRowWidth__P5280_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_pickPage__P5765, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_currentRowWidth__P5280, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - btns___21119: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, arg0: undefined, } } - -function btns_inline__P21121(s) { +function user_interface_base_NavigationError_constructor__P3752(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61726,39 +67223,31 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - s.tmp_2 = microcode_getIcon__P4042_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1148; s.pc = 1; return s.tmp_2; - case 1: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", s.tmp_1); - r0 = s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_NavigationError__C3750_VT)) failedCast(r0, user_interface_base_NavigationError__C3750_VT); + r0 = (s.arg0).fields["kind"] = (s.arg1); + r0 = undefined; return leave(s, r0) default: oops() } } } -btns_inline__P21121.info = {"start":4080,"length":121,"line":126,"column":59,"endLine":130,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["pageId"]} +user_interface_base_NavigationError_constructor__P3752.info = {"start":1256,"length":66,"line":30,"column":8,"endLine":32,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["this","kind"]} -function btns_inline__P21121_mk(s) { +function user_interface_base_NavigationError_constructor__P3752_mk(s) { checkStack(s.depth); return { - parent: s, fn: btns_inline__P21121, depth: s.depth + 1, + parent: s, fn: user_interface_base_NavigationError_constructor__P3752, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, + arg1: undefined, } } - -function onClick_inline__P21134(s) { +function user_interface_base_PickerNavigator_getCurrent__P3790(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61768,38 +67257,83 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.index___23014 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = microcode_Editor_switchToPage__P4314_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = s.arg0; - s.tmp_0.arg2 = 1; - s.tmp_0.arg3 = 1; - s.callLocIdx = 1151; s.pc = 1; return s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 == -1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = s.arg0.fields["deleteButton"]; + { step = 5; continue; } + { step = 4; continue; } case 1: + r0 = s.arg0.fields["row"]; + s.tmp_3 = r0; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = s.arg0.fields["col"]; + s.tmp_5 = r0; + r0 = (s.tmp_2 + s.tmp_5); + s.index___23014 = (r0); + s.tmp_1 = r0 = s.index___23014; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["group"]; + r0 = r0.fields["defs"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_4 = user_interface_base_PickerGroup_getButtonAtIndex__P5263_mk(s); + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["group"]; + s.tmp_4.arg0 = r0; + s.tmp_4.arg1 = s.index___23014; + s.callLocIdx = 795; s.pc = 6; return s.tmp_4; + case 6: r0 = s.retval; + { step = 5; continue; } + case 2: + case 3: + case 4: r0 = undefined; + case 5: return leave(s, r0) default: oops() } } } -onClick_inline__P21134.info = {"start":4298,"length":73,"line":133,"column":25,"endLine":135,"endColumn":17,"fileName":"editor.ts","functionName":"inline","argumentNames":["index"]} +user_interface_base_PickerNavigator_getCurrent__P3790.info = {"start":12387,"length":401,"line":409,"column":8,"endLine":419,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getCurrent","argumentNames":["this"]} -function onClick_inline__P21134_mk(s) { +function user_interface_base_PickerNavigator_getCurrent__P3790_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P21134, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_getCurrent__P3790, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + index___23014: undefined, arg0: undefined, } } - -function microcode_Editor_pickDiskSLot__P5764(s) { +function user_interface_base_PickerNavigator_drawComponents__P3789(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61809,78 +67343,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btns___21139 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - s.tmp_0 = helpers_arrayMap__P2135_mk(s); - s.tmp_1 = microcode_diskSlots__P4300_mk(s); - s.callLocIdx = 1139; s.pc = 2; return s.tmp_1; - case 2: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = btns_inline__P21141; - s.callLocIdx = 1140; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - s.btns___21139 = (r0); - s.tmp_0 = user_interface_base_Picker_setGroup__P3756_mk(s); - r0 = s.arg0.fields["picker"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.btns___21139; - s.callLocIdx = 1141; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - s.tmp_2 = accessibility_ariaToTooltip__P3519_mk(s); - s.tmp_2.arg0 = "disk"; - s.callLocIdx = 1142; s.pc = 4; return s.tmp_2; - case 4: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); - r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P21154); - s.tmp_3 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_3, 1, s.btns___21139); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_3); - s.tmp_4 = user_interface_base_Picker_show__P3758_mk(s); - r0 = s.arg0.fields["picker"]; - s.tmp_4.arg0 = r0; - s.tmp_4.arg1 = s.tmp_0; - s.tmp_4.arg2 = true; - s.callLocIdx = 1146; s.pc = 5; return s.tmp_4; - case 5: - r0 = s.retval; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_pickDiskSLot__P5764.info = {"start":3519,"length":471,"line":110,"column":8,"endLine":123,"endColumn":9,"fileName":"editor.ts","functionName":"pickDiskSLot","argumentNames":["this"]} +user_interface_base_PickerNavigator_drawComponents__P3789.info = {"start":12350,"length":27,"line":407,"column":8,"endLine":407,"endColumn":35,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"drawComponents","argumentNames":["this"]} -function microcode_Editor_pickDiskSLot__P5764_mk(s) { +function user_interface_base_PickerNavigator_drawComponents__P3789_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_pickDiskSLot__P5764, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_drawComponents__P3789, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - btns___21139: undefined, arg0: undefined, } } - -function btns_inline__P21141(s) { +function user_interface_base_PickerNavigator_initialCursor__P3785(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61890,33 +67376,59 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.btn___23041 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "icon", s.arg0); - r0 = s.tmp_0; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = (s.arg0).fields["row"] = (s.arg1); + r0 = (s.arg0).fields["col"] = (s.arg2); + s.tmp_0 = user_interface_base_PickerNavigator_getCurrent__P3790_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 792; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + s.btn___23041 = (r0); + r0 = pxsim_numops_toBoolDecr(s.btn___23041); + if (!r0) { step = 1; continue; } + s.tmp_0 = user_interface_base_PickerNavigator__C3776_v0_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; + s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = undefined; + { step = 3; continue; } + case 1: + case 2: + r0 = undefined; + case 3: return leave(s, r0) default: oops() } } } -btns_inline__P21141.info = {"start":3604,"length":98,"line":111,"column":60,"endLine":115,"endColumn":13,"fileName":"editor.ts","functionName":"inline","argumentNames":["slot"]} +user_interface_base_PickerNavigator_initialCursor__P3785.info = {"start":11834,"length":311,"line":386,"column":8,"endLine":395,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"initialCursor","argumentNames":["this","row","col"]} -function btns_inline__P21141_mk(s) { +function user_interface_base_PickerNavigator_initialCursor__P3785_mk(s) { checkStack(s.depth); return { - parent: s, fn: btns_inline__P21141, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_initialCursor__P3785, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + btn___23041: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function onClick_inline__P21154(s) { +function user_interface_base_PickerNavigator_height__P5279(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -61930,63 +67442,41 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = if_save_3_mk(s); - r0 = s.caps[0].fields["app"]; - s.tmp_0.arg0 = r0; - s.tmp_1 = if_icon_1_mk(s); - r0 = pxsim_Array__getAt(s.caps[1], s.arg0); - s.tmp_1.arg0 = r0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "icon"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["icon"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["icon"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1143; s.pc = 2; return s.tmp_1; } - } - case 2: - r0 = s.retval; - s.tmp_0.arg1 = r0; - s.tmp_2 = microcode_ProgramDefn_toBuffer__P4071_mk(s); - r0 = s.caps[0].fields["progdef"]; - s.tmp_2.arg0 = r0; - s.callLocIdx = 1144; s.pc = 3; return s.tmp_2; - case 3: - r0 = s.retval; - s.tmp_0.arg2 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "save"), 3); - s.callLocIdx = 1145; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["save"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["save"], 3); s.callLocIdx = 1145; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1145; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1145; s.pc = 1; return s.tmp_0; } - } - case 1: - r0 = s.retval; - r0 = undefined; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["group"]; + r0 = r0.fields["defs"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); + s.tmp_1 = r0; + r0 = s.arg0.fields["picker"]; + r0 = r0.fields["width"]; + s.tmp_3 = r0; + r0 = (s.tmp_1 / s.tmp_3); + s.tmp_0 = r0; + r0 = pxsim.Math_.ceil(s.tmp_0); return leave(s, r0) default: oops() } } } -onClick_inline__P21154.info = {"start":3859,"length":105,"line":119,"column":25,"endLine":121,"endColumn":17,"fileName":"editor.ts","functionName":"inline","argumentNames":["index"]} +user_interface_base_PickerNavigator_height__P5279.info = {"start":11489,"length":83,"line":375,"column":8,"endLine":377,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"height","argumentNames":["this"]} -function onClick_inline__P21154_mk(s) { +function user_interface_base_PickerNavigator_height__P5279_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P21154, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_height__P5279, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function user_interface_base_Placeable_constructor__P3409(s) { +function user_interface_base_PickerNavigator_setBtns__P3781(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62002,58 +67492,18 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Placeable__C3407_VT)) failedCast(r0, user_interface_base_Placeable__C3407_VT); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Affine__C3351_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Affine_constructor__P3358_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 352; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - r0 = (s.arg0).fields["xfrm_"] = (s.tmp_0); - s.tmp_0 = r0 = s.arg1; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - s.tmp_1 = if_xfrm_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "xfrm"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["xfrm"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["xfrm"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 353; s.pc = 4; return s.tmp_1; } - } - case 4: - r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_2 = r0; - s.tmp_3 = user_interface_base_Affine_parent__P3356_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = s.tmp_2; - s.callLocIdx = 354; s.pc = 5; return s.tmp_3; - case 5: - r0 = s.retval; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Placeable_constructor__P3409.info = {"start":482,"length":136,"line":21,"column":8,"endLine":24,"endColumn":9,"fileName":"pxt_modules/user-interface-base/component.ts","functionName":"inline","argumentNames":["this","parent"]} +user_interface_base_PickerNavigator_setBtns__P3781.info = {"start":11054,"length":36,"line":362,"column":8,"endLine":362,"endColumn":44,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"setBtns","argumentNames":["this","btns"]} -function user_interface_base_Placeable_constructor__P3409_mk(s) { +function user_interface_base_PickerNavigator_setBtns__P3781_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Placeable_constructor__P3409, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_setBtns__P3781, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, arg1: undefined, } } @@ -62061,8 +67511,7 @@ function user_interface_base_Placeable_constructor__P3409_mk(s) { - -function microcode_Editor_scrollAndMove__P5767(s) { +function user_interface_base_RowNavigator_move__P3763(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62072,136 +67521,282 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.target___21182 = undefined; - s.e___21190 = undefined; + s.btn___23156 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = pxsim_pxtcore.beginTry(1); - s.tmp_0 = user_interface_base_Cursor_move__P3738_mk(s); - r0 = s.arg0.fields["cursor"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 1176; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - s.target___21182 = (r0); - s.tmp_0 = microcode_Editor_scrollAndMoveButton__P5768_mk(s); + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_0 = user_interface_base_RowNavigator_makeGood__P5275_mk(s); s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.target___21182; - s.callLocIdx = 1177; s.pc = 12; return s.tmp_0; - case 12: + s.callLocIdx = 770; s.pc = 24; return s.tmp_0; + case 24: r0 = s.retval; - r0 = pxsim_pxtcore.endTry(); - { step = 10; continue; } - case 1: - r0 = pxsim_pxtcore.getThrownValue(); - s.e___21190 = (r0); - r0 = (s.arg1 === 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + if (r0) { step = 17; continue; } r0 = s.tmp_0; - { step = 3; continue; } + { step = 22; continue; } + case 1: + r0 = s.arg0.fields["row"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 == 0); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_NavigationError__C3750_VT); + s.tmp_3 = r0; + s.tmp_4 = user_interface_base_NavigationError_constructor__P3752_mk(s); + s.tmp_4.arg0 = s.tmp_3; + s.tmp_4.arg1 = globals.BACK_BUTTON_ERROR_KIND___3748; + s.callLocIdx = 771; s.pc = 25; return s.tmp_4; + case 25: + r0 = s.retval; + r0 = pxsim_pxtcore.throwValue(s.tmp_3); case 2: - s.tmp_2 = if_kind_1_mk(s); - s.tmp_2.arg0 = s.e___21190; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "kind"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["kind"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["kind"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1178; s.pc = 13; return s.tmp_2; } - } - case 13: + case 3: + s.tmp_5 = r0 = s.arg0; + r0 = s.tmp_5.fields["row"]; + s.tmp_7 = r0; + r0 = (s.tmp_7 - 1); + s.tmp_6 = r0; + r0 = (s.tmp_5).fields["row"] = (s.tmp_6); + s.tmp_0 = user_interface_base_RowNavigator_makeGood__P5275_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 772; s.pc = 26; return s.tmp_0; + case 26: r0 = s.retval; + { step = 22; continue; } + case 4: + r0 = s.arg0.fields["row"]; s.tmp_1 = r0; - r0 = (s.tmp_1 === globals.BACK_BUTTON_ERROR_KIND___3775); - case 3: - // jmp value (already in r0) + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 4; continue; } - s.tmp_4 = microcode_editorSkipBack__P5757_mk(s); - s.tmp_4.arg0 = s.arg0; - s.tmp_4.arg1 = s.arg2; - s.callLocIdx = 1179; s.pc = 14; return s.tmp_4; - case 14: + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 == s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_NavigationError__C3750_VT); + s.tmp_5 = r0; + s.tmp_6 = user_interface_base_NavigationError_constructor__P3752_mk(s); + s.tmp_6.arg0 = s.tmp_5; + s.tmp_6.arg1 = globals.FORWARD_BUTTON_ERROR_KIND___3749; + s.callLocIdx = 773; s.pc = 27; return s.tmp_6; + case 27: + r0 = s.retval; + r0 = pxsim_pxtcore.throwValue(s.tmp_5); + case 5: + case 6: + s.tmp_7 = r0 = s.arg0; + r0 = s.tmp_7.fields["row"]; + s.tmp_9 = r0; + r0 = (s.tmp_9 + 1); + s.tmp_8 = r0; + r0 = (s.tmp_7).fields["row"] = (s.tmp_8); + s.tmp_0 = user_interface_base_RowNavigator_makeGood__P5275_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 774; s.pc = 28; return s.tmp_0; + case 28: r0 = s.retval; + { step = 22; continue; } + case 7: + r0 = s.arg0.fields["col"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 == 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 10; continue; } + r0 = s.arg0.fields["row"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 > 0); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 8; continue; } + s.tmp_4 = r0 = s.arg0; + r0 = s.tmp_4.fields["row"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["row"] = (s.tmp_5); { step = 9; continue; } - case 4: - r0 = (s.arg1 == 1); + case 8: + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["row"] = (s.tmp_1); + case 9: + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_4 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["col"] = (s.tmp_1); + { step = 11; continue; } + case 10: + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["col"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["col"] = (s.tmp_1); + case 11: + { step = 22; continue; } + case 12: + r0 = s.arg0.fields["col"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_6 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 == s.tmp_2); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 5; continue; } - r0 = s.tmp_0; - { step = 6; continue; } - case 5: - s.tmp_2 = if_kind_1_mk(s); - s.tmp_2.arg0 = s.e___21190; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "kind"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["kind"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["kind"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1180; s.pc = 15; return s.tmp_2; } - } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 15; continue; } + r0 = s.arg0.fields["row"]; + s.tmp_8 = r0; + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_11 = r0; + r0 = pxsim_Array__length(s.tmp_11); + s.tmp_10 = r0; + r0 = (s.tmp_10 - 1); + s.tmp_9 = r0; + r0 = (s.tmp_8 < s.tmp_9); + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + if (!r0) { step = 13; continue; } + s.tmp_12 = r0 = s.arg0; + r0 = s.tmp_12.fields["row"]; + s.tmp_14 = r0; + r0 = (s.tmp_14 + 1); + s.tmp_13 = r0; + r0 = (s.tmp_12).fields["row"] = (s.tmp_13); + { step = 14; continue; } + case 13: + r0 = (s.arg0).fields["row"] = (0); + case 14: + r0 = (s.arg0).fields["col"] = (-1); case 15: - r0 = s.retval; + case 16: + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["col"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["col"] = (s.tmp_1); + { step = 22; continue; } + case 17: + r0 = s.arg0.fields["col"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 18; continue; } + r0 = (s.arg0).fields["col"] = (0); + { step = 21; continue; } + case 18: + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 19; continue; } + s.tmp_2 = r0 = s.arg0; + r0 = s.tmp_2.fields["row"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 - 1); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["row"] = (s.tmp_3); + { step = 20; continue; } + case 19: + r0 = undefined; + { step = 23; continue; } + case 20: + case 21: + case 22: + r0 = s.arg0.fields["buttonGroups"]; s.tmp_1 = r0; - r0 = (s.tmp_1 == globals.FORWARD_BUTTON_ERROR_KIND___3776); - case 6: - // jmp value (already in r0) + r0 = s.arg0.fields["row"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0 = r0; + r0 = s.arg0.fields["col"]; s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 7; continue; } - s.tmp_4 = microcode_editorSkipForward__P5758_mk(s); - s.tmp_4.arg0 = s.arg0; - s.tmp_4.arg1 = s.arg2; - s.callLocIdx = 1181; s.pc = 16; return s.tmp_4; - case 16: + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_3); + s.btn___23156 = (r0); + s.tmp_0 = user_interface_base_RowNavigator__C3753_v6_2_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.btn___23156; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_RowNavigator__C3753_VT)) failedCast(s.tmp_0.arg0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; + s.pc = 29; return s.tmp_0; + case 29: r0 = s.retval; - { step = 8; continue; } - case 7: - r0 = pxsim_pxtcore.throwValue(s.e___21190); - case 8: - case 9: - case 10: - r0 = undefined; + r0 = s.btn___23156; + case 23: return leave(s, r0) default: oops() } } } -microcode_Editor_scrollAndMove__P5767.info = {"start":5880,"length":593,"line":182,"column":8,"endLine":196,"endColumn":9,"fileName":"editor.ts","functionName":"scrollAndMove","argumentNames":["this","dir","skipBack"]} +user_interface_base_RowNavigator_move__P3763.info = {"start":3636,"length":2072,"line":114,"column":8,"endLine":171,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"move","argumentNames":["this","dir"]} -function microcode_Editor_scrollAndMove__P5767_mk(s) { +function user_interface_base_RowNavigator_move__P3763_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_scrollAndMove__P5767, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_move__P3763, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - target___21182: undefined, - e___21190: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + btn___23156: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function microcode_editorSkipForward__P5758(s) { +function user_interface_base_RowNavigator_reportAria__P5274(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62216,15 +67811,14 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_2 = microcode_Editor_forward__P4319_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1133; s.pc = 3; return s.tmp_2; + s.tmp_0 = user_interface_base_Button_reportAria__P3649_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = true; + s.callLocIdx = 775; s.pc = 3; return s.tmp_0; case 3: r0 = s.retval; case 1: @@ -62233,16 +67827,14 @@ switch (step) { return leave(s, r0) default: oops() } } } -microcode_editorSkipForward__P5758.info = {"start":1288,"length":109,"line":31,"column":4,"endLine":33,"endColumn":5,"fileName":"editor.ts","functionName":"editorSkipForward","argumentNames":["editor","skipBack"]} +user_interface_base_RowNavigator_reportAria__P5274.info = {"start":5806,"length":87,"line":177,"column":8,"endLine":179,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"reportAria","argumentNames":["this","btn"]} -function microcode_editorSkipForward__P5758_mk(s) { +function user_interface_base_RowNavigator_reportAria__P5274_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_editorSkipForward__P5758, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_reportAria__P5274, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, arg1: undefined, } } @@ -62250,8 +67842,7 @@ function microcode_editorSkipForward__P5758_mk(s) { - -function microcode_Editor_forward__P4319(s) { +function user_interface_base_RowNavigator_makeGood__P5275(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62266,98 +67857,85 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["visible"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + r0 = s.arg0.fields["row"]; s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 >= s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_3 = microcode_Editor_nextPage__P5770_mk(s); - s.tmp_3.arg0 = s.arg0; - s.tmp_3.arg1 = 0; - s.tmp_3.arg2 = -1; - s.callLocIdx = 1257; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; + s.tmp_4 = r0 = s.arg0; + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_7 = r0; + r0 = pxsim_Array__length(s.tmp_7); + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = (s.tmp_4).fields["row"] = (s.tmp_5); case 1: case 2: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_Editor_forward__P4319.info = {"start":13391,"length":80,"line":389,"column":8,"endLine":391,"endColumn":9,"fileName":"editor.ts","functionName":"forward","argumentNames":["this"]} - -function microcode_Editor_forward__P4319_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: microcode_Editor_forward__P4319, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, -} } - - - - - -function microcode_editorSkipBack__P5757(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = pxsim_numops_toBoolDecr(s.arg1); + r0 = s.arg0.fields["col"]; s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_4 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.tmp_5); + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 >= s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_2 = microcode_Editor_back__P4318_mk(s); - s.tmp_2.arg0 = s.arg0; - s.callLocIdx = 1132; s.pc = 3; return s.tmp_2; + if (!r0) { step = 3; continue; } + s.tmp_6 = r0 = s.arg0; + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_10 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_11 = r0; + r0 = pxsim_Array__getAt(s.tmp_10, s.tmp_11); + s.tmp_9 = r0; + r0 = pxsim_Array__length(s.tmp_9); + s.tmp_8 = r0; + r0 = (s.tmp_8 - 1); + s.tmp_7 = r0; + r0 = (s.tmp_6).fields["col"] = (s.tmp_7); case 3: - r0 = s.retval; - case 1: - case 2: + case 4: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_editorSkipBack__P5757.info = {"start":1158,"length":103,"line":26,"column":4,"endLine":28,"endColumn":5,"fileName":"editor.ts","functionName":"editorSkipBack","argumentNames":["editor","skipBack"]} +user_interface_base_RowNavigator_makeGood__P5275.info = {"start":6113,"length":272,"line":188,"column":8,"endLine":193,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"makeGood","argumentNames":["this"]} -function microcode_editorSkipBack__P5757_mk(s) { +function user_interface_base_RowNavigator_makeGood__P5275_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_editorSkipBack__P5757, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_makeGood__P5275, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_Editor_scrollAndMoveButton__P5768(s) { +function user_interface_base_RowNavigator_drawComponents__P3761(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62367,195 +67945,38 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.occBounds___21247 = undefined; - s.occ___21262 = undefined; - s.xocc___21274 = undefined; - s.yocc___21285 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 13; continue; } + if (!checkSubtype(r0, user_interface_base_RowNavigator__C3753_VT)) failedCast(r0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = user_interface_base_RowNavigator_drawComponents_inline__P23206; + s.callLocIdx = 769; s.pc = 1; return s.tmp_0; case 1: - case 2: - s.tmp_4 = user_interface_base_Affine_root__P3357_mk(s); - r0 = s.arg1.fields["xfrm_"]; - s.tmp_4.arg0 = r0; - s.callLocIdx = 1183; s.pc = 14; return s.tmp_4; - case 14: - r0 = s.retval; - s.tmp_3 = r0; - r0 = s.arg0.fields["hudroot"]; - s.tmp_6 = r0; - r0 = s.tmp_6.fields["xfrm_"]; - s.tmp_5 = r0; - r0 = (s.tmp_3 === s.tmp_5); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 3; continue; } - s.tmp_7 = microcode_Editor_moveTo__P5766_mk(s); - s.tmp_7.arg0 = s.arg0; - s.tmp_7.arg1 = s.arg1; - s.callLocIdx = 1185; s.pc = 15; return s.tmp_7; - case 15: - r0 = s.retval; - { step = 13; continue; } - case 3: - case 4: - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", globals.user_interface_base_Screen_LEFT_EDGE___3443); - r0 = (globals.user_interface_base_Screen_TOP_EDGE___3445 + 17); - s.tmp_3 = r0; - r0 = (s.tmp_3 + 2); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", globals.user_interface_base_Screen_WIDTH___3439); - r0 = (globals.user_interface_base_Screen_HEIGHT___3440 - 19); - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", s.tmp_4); - s.tmp_5 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_5.arg0 = s.tmp_0; - s.tmp_5.arg1 = s.tmp_1; - s.callLocIdx = 1186; s.pc = 16; return s.tmp_5; - case 16: - r0 = s.retval; - s.occBounds___21247 = (s.tmp_0); - s.tmp_0 = user_interface_base_ButtonBase_occlusions__P3658_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = s.occBounds___21247; - s.callLocIdx = 1187; s.pc = 17; return s.tmp_0; - case 17: - r0 = s.retval; - s.occ___21262 = (r0); - s.tmp_1 = user_interface_base_Occlusions_has__P3395_mk(s); - s.tmp_1.arg0 = s.occ___21262; - s.callLocIdx = 1188; s.pc = 18; return s.tmp_1; - case 18: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 5; continue; } - r0 = s.tmp_0; - { step = 6; continue; } - case 5: - r0 = s.arg0.fields["picker"]; - r0 = r0.fields["visible"]; - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - case 6: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 11; continue; } - r0 = s.occ___21262.fields["left"]; - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 7; continue; } - r0 = s.occ___21262.fields["left"]; - { step = 8; continue; } - case 7: - r0 = s.occ___21262.fields["right"]; - s.tmp_6 = r0; - r0 = (0 - s.tmp_6); - case 8: - // jmp value (already in r0) - s.tmp_7 = r0; - s.xocc___21274 = (s.tmp_7); - r0 = s.occ___21262.fields["top"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - r0 = s.occ___21262.fields["top"]; - { step = 10; continue; } - case 9: - r0 = s.occ___21262.fields["bottom"]; - s.tmp_1 = r0; - r0 = (0 - s.tmp_1); - case 10: - // jmp value (already in r0) - s.tmp_2 = r0; - s.yocc___21285 = (s.tmp_2); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Vec2__C3411_VT); - s.tmp_0 = r0; - s.tmp_1 = user_interface_base_Vec2_constructor__P3416_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.xocc___21274; - s.tmp_1.arg2 = s.yocc___21285; - s.callLocIdx = 1191; s.pc = 19; return s.tmp_1; - case 19: - r0 = s.retval; - s.tmp_2 = user_interface_base_Vec2_TranslateToRef__P3425_mk(s); - r0 = s.arg0.fields["scrollroot"]; - s.tmp_4 = r0; - r0 = s.tmp_4.fields["xfrm_"]; - s.tmp_3 = r0; - r0 = s.tmp_3.fields["localPos_"]; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = s.tmp_0; - r0 = s.arg0.fields["scrollroot"]; - s.tmp_6 = r0; - r0 = s.tmp_6.fields["xfrm_"]; - s.tmp_5 = r0; - r0 = s.tmp_5.fields["localPos_"]; - s.tmp_2.arg2 = r0; - s.callLocIdx = 1194; s.pc = 20; return s.tmp_2; - case 20: r0 = s.retval; - case 11: - case 12: - s.tmp_0 = microcode_Editor_moveTo__P5766_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 1195; s.pc = 21; return s.tmp_0; - case 21: - r0 = s.retval; - case 13: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_Editor_scrollAndMoveButton__P5768.info = {"start":6483,"length":1059,"line":198,"column":8,"endLine":227,"endColumn":9,"fileName":"editor.ts","functionName":"scrollAndMoveButton","argumentNames":["this","target"]} +user_interface_base_RowNavigator_drawComponents__P3761.info = {"start":2817,"length":148,"line":89,"column":8,"endLine":93,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"drawComponents","argumentNames":["this"]} -function microcode_Editor_scrollAndMoveButton__P5768_mk(s) { +function user_interface_base_RowNavigator_drawComponents__P3761_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_scrollAndMoveButton__P5768, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_drawComponents__P3761, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - occBounds___21247: undefined, - occ___21262: undefined, - xocc___21274: undefined, - yocc___21285: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Occlusions_has__P3395(s) { +function user_interface_base_RowNavigator_drawComponents_inline__P23206(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62569,109 +67990,31 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Occlusions__C3394_VT)) failedCast(r0, user_interface_base_Occlusions__C3394_VT); - r0 = s.arg0.fields["left"]; - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + s.tmp_0 = helpers_arrayForEach__P2138_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = user_interface_base_RowNavigator_drawComponents_inline__P23210; + s.callLocIdx = 768; s.pc = 1; return s.tmp_0; case 1: - r0 = s.arg0.fields["top"]; - s.tmp_8 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_8); - s.tmp_7 = r0; - r0 = pxsim_Boolean__bang(s.tmp_7); - s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); - s.tmp_5 = r0; - r0 = pxsim_Boolean__bang(s.tmp_5); - case 2: - // jmp value (already in r0) - s.tmp_9 = r0; - r0 = pxsim_numops_toBool(s.tmp_9); - if (!r0) { step = 3; continue; } - r0 = s.tmp_9; - { step = 4; continue; } - case 3: - r0 = s.arg0.fields["right"]; - s.tmp_13 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_13); - s.tmp_12 = r0; - r0 = pxsim_Boolean__bang(s.tmp_12); - s.tmp_11 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_11); - s.tmp_10 = r0; - r0 = pxsim_Boolean__bang(s.tmp_10); - case 4: - // jmp value (already in r0) - s.tmp_14 = r0; - r0 = pxsim_numops_toBool(s.tmp_14); - if (!r0) { step = 5; continue; } - r0 = s.tmp_14; - { step = 6; continue; } - case 5: - r0 = s.arg0.fields["bottom"]; - s.tmp_18 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_18); - s.tmp_17 = r0; - r0 = pxsim_Boolean__bang(s.tmp_17); - s.tmp_16 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_16); - s.tmp_15 = r0; - r0 = pxsim_Boolean__bang(s.tmp_15); - case 6: - // jmp value (already in r0) - s.tmp_19 = r0; - r0 = s.tmp_19; - return leaveAccessor(s, r0) + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Occlusions_has__P3395.info = {"start":6177,"length":115,"line":207,"column":8,"endLine":209,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"has","argumentNames":["this"]} -user_interface_base_Occlusions_has__P3395.isGetter = true; +user_interface_base_RowNavigator_drawComponents_inline__P23206.info = {"start":2881,"length":73,"line":90,"column":38,"endLine":92,"endColumn":13,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["row"]} -function user_interface_base_Occlusions_has__P3395_mk(s) { +function user_interface_base_RowNavigator_drawComponents_inline__P23206_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Occlusions_has__P3395, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_drawComponents_inline__P23206, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, arg0: undefined, } } - -function user_interface_base_ButtonBase_occlusions__P3658(s) { +function user_interface_base_RowNavigator_drawComponents_inline__P23210(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62683,38 +68026,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_ButtonBase__C3648_VT)) failedCast(r0, user_interface_base_ButtonBase__C3648_VT); - s.tmp_0 = user_interface_base_Sprite_occlusions__P3483_mk(s); - r0 = s.arg0.fields["icon"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 525; s.pc = 1; return s.tmp_0; + s.tmp_0 = user_interface_base_Button__C3638_v0_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3638_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_ButtonBase_occlusions__P3658.info = {"start":3301,"length":83,"line":146,"column":4,"endLine":148,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"occlusions","argumentNames":["this","bounds"]} +user_interface_base_RowNavigator_drawComponents_inline__P23210.info = {"start":2918,"length":21,"line":91,"column":28,"endLine":91,"endColumn":49,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["btn"]} -function user_interface_base_ButtonBase_occlusions__P3658_mk(s) { +function user_interface_base_RowNavigator_drawComponents_inline__P23210_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_ButtonBase_occlusions__P3658, depth: s.depth + 1, + parent: s, fn: user_interface_base_RowNavigator_drawComponents_inline__P23210, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_Sprite_occlusions__P3483(s) { +function user_interface_base_Button_ariaId__P3644(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62730,24 +68069,19 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Sprite__C3471_VT)) failedCast(r0, user_interface_base_Sprite__C3471_VT); - s.tmp_0 = user_interface_base_Occlusions_FromSprite__P3397_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 476; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + if (!checkSubtype(r0, user_interface_base_Button__C3638_VT)) failedCast(r0, user_interface_base_Button__C3638_VT); + r0 = (s.arg0).fields["_ariaId"] = (s.arg1); + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Sprite_occlusions__P3483.info = {"start":1483,"length":100,"line":54,"column":8,"endLine":56,"endColumn":9,"fileName":"pxt_modules/user-interface-base/sprite.ts","functionName":"occlusions","argumentNames":["this","bounds"]} +user_interface_base_Button_ariaId__P3644.info = {"start":6257,"length":67,"line":255,"column":4,"endLine":257,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"ariaId","argumentNames":["this","value"]} -function user_interface_base_Sprite_occlusions__P3483_mk(s) { +function user_interface_base_Button_ariaId__P3644_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Sprite_occlusions__P3483, depth: s.depth + 1, + parent: s, fn: user_interface_base_Button_ariaId__P3644, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, arg1: undefined, } } @@ -62755,8 +68089,7 @@ function user_interface_base_Sprite_occlusions__P3483_mk(s) { - -function user_interface_base_Occlusions_FromSprite__P3397(s) { +function microcode_IconFieldEditor_toBuffer__P4570(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62766,170 +68099,60 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___21343 = undefined; - s.left___21347 = undefined; - s.top___21354 = undefined; - s.right___21361 = undefined; - s.bottom___21369 = undefined; + s.ret___23221 = undefined; + s.index___23225 = undefined; + s.byte___23229 = undefined; + s.bit___23232 = undefined; + s.col___23235 = undefined; + s.row___23238 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = user_interface_base_Affine_worldPos__P3352_mk(s); - r0 = s.arg0.fields["xfrm_"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 338; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - s.w___21343 = (r0); - r0 = s.w___21343.fields["x_"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_2 >> 1); - s.tmp_1 = r0; - r0 = (s.tmp_0 - s.tmp_1); - s.left___21347 = (r0); - r0 = s.w___21343.fields["y_"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.height(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_2 >> 1); - s.tmp_1 = r0; - r0 = (s.tmp_0 - s.tmp_1); - s.top___21354 = (r0); - r0 = s.w___21343.fields["x_"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_2 >> 1); - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.right___21361 = (r0); - r0 = s.w___21343.fields["y_"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["image"]; - s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.height(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_2 >> 1); - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.bottom___21369 = (r0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Occlusions__C3394_VT); - s.tmp_0 = r0; - r0 = s.arg1.fields["left"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 > s.left___21347); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 1; continue; } - r0 = s.arg1.fields["left"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 - s.left___21347); - { step = 2; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_IconFieldEditor__C4565_VT)) failedCast(r0, microcode_IconFieldEditor__C4565_VT); + r0 = pxsim.control.createBuffer(4); + s.ret___23221 = (r0); + s.index___23225 = (0); case 1: - r0 = 0; - case 2: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = s.arg1.fields["top"]; - s.tmp_6 = r0; - r0 = (s.tmp_6 > s.top___21354); - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 3; continue; } - r0 = s.arg1.fields["top"]; - s.tmp_7 = r0; - r0 = (s.tmp_7 - s.top___21354); - { step = 4; continue; } - case 3: - r0 = 0; - case 4: - // jmp value (already in r0) - s.tmp_8 = r0; - r0 = s.arg1.fields["left"]; - s.tmp_12 = r0; - r0 = s.arg1.fields["width"]; - s.tmp_13 = r0; - r0 = (s.tmp_12 + s.tmp_13); - s.tmp_11 = r0; - r0 = (s.tmp_11 - 1); - s.tmp_10 = r0; - r0 = (s.tmp_10 < s.right___21361); - s.tmp_9 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_9); - if (!r0) { step = 5; continue; } - s.tmp_14 = r0 = s.right___21361; - r0 = s.arg1.fields["left"]; - s.tmp_17 = r0; - r0 = s.arg1.fields["width"]; - s.tmp_18 = r0; - r0 = (s.tmp_17 + s.tmp_18); - s.tmp_16 = r0; - r0 = (s.tmp_16 - 1); - s.tmp_15 = r0; - r0 = (s.tmp_14 - s.tmp_15); - { step = 6; continue; } - case 5: - r0 = 0; - case 6: - // jmp value (already in r0) - s.tmp_19 = r0; - r0 = s.arg1.fields["top"]; - s.tmp_23 = r0; - r0 = s.arg1.fields["height"]; - s.tmp_24 = r0; - r0 = (s.tmp_23 + s.tmp_24); - s.tmp_22 = r0; - r0 = (s.tmp_22 - 1); - s.tmp_21 = r0; - r0 = (s.tmp_21 < s.bottom___21369); - s.tmp_20 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_20); - if (!r0) { step = 7; continue; } - s.tmp_25 = r0 = s.bottom___21369; - r0 = s.arg1.fields["top"]; - s.tmp_28 = r0; - r0 = s.arg1.fields["height"]; - s.tmp_29 = r0; - r0 = (s.tmp_28 + s.tmp_29); - s.tmp_27 = r0; - r0 = (s.tmp_27 - 1); - s.tmp_26 = r0; - r0 = (s.tmp_25 - s.tmp_26); - { step = 8; continue; } - case 7: - r0 = 0; - case 8: - // jmp value (already in r0) - s.tmp_30 = r0; - s.tmp_31 = user_interface_base_Occlusions_constructor__P3396_mk(s); - s.tmp_31.arg0 = s.tmp_0; - s.tmp_31.arg1 = s.tmp_4; - s.tmp_31.arg2 = s.tmp_8; - s.tmp_31.arg3 = s.tmp_19; - s.tmp_31.arg4 = s.tmp_30; - s.callLocIdx = 351; s.pc = 10; return s.tmp_31; - case 10: - r0 = s.retval; - r0 = s.tmp_0; + r0 = (s.index___23225 < 25); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + r0 = (s.index___23225 >> 3); + s.byte___23229 = (r0); + r0 = (s.index___23225 & 7); + s.bit___23232 = (r0); + r0 = (s.index___23225 % 5); + s.col___23235 = (r0); + r0 = pxsim.Math_.idiv(s.index___23225, 5); + s.row___23238 = (r0); + s.tmp_0 = r0 = s.ret___23221; + s.tmp_1 = r0 = s.byte___23229; + r0 = pxsim.BufferMethods.getByte(s.tmp_0, s.byte___23229); + s.tmp_3 = r0; + r0 = pxsim.BitmapMethods.getPixel(s.arg1, s.col___23235, s.row___23238); + s.tmp_5 = r0; + r0 = (s.tmp_5 << s.bit___23232); + s.tmp_4 = r0; + r0 = (s.tmp_3 | s.tmp_4); + s.tmp_2 = r0; + r0 = pxsim.BufferMethods.setByte(s.tmp_0, s.tmp_1, s.tmp_2); + r0 = (s.index___23225 + 1); + s.index___23225 = (r0); + { step = 1; continue; } + case 2: + r0 = s.ret___23221; return leave(s, r0) default: oops() } } } -user_interface_base_Occlusions_FromSprite__P3397.info = {"start":6470,"length":601,"line":218,"column":8,"endLine":230,"endColumn":9,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"FromSprite","argumentNames":["s","bounds"]} +microcode_IconFieldEditor_toBuffer__P4570.info = {"start":4107,"length":381,"line":149,"column":8,"endLine":159,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toBuffer","argumentNames":["this","img"]} -function user_interface_base_Occlusions_FromSprite__P3397_mk(s) { +function microcode_IconFieldEditor_toBuffer__P4570_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Occlusions_FromSprite__P3397, depth: s.depth + 1, + parent: s, fn: microcode_IconFieldEditor_toBuffer__P4570, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -62937,37 +68160,12 @@ function user_interface_base_Occlusions_FromSprite__P3397_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - tmp_17: undefined, - tmp_18: undefined, - tmp_19: undefined, - tmp_20: undefined, - tmp_21: undefined, - tmp_22: undefined, - tmp_23: undefined, - tmp_24: undefined, - tmp_25: undefined, - tmp_26: undefined, - tmp_27: undefined, - tmp_28: undefined, - tmp_29: undefined, - tmp_30: undefined, - tmp_31: undefined, - w___21343: undefined, - left___21347: undefined, - top___21354: undefined, - right___21361: undefined, - bottom___21369: undefined, + ret___23221: undefined, + index___23225: undefined, + byte___23229: undefined, + bit___23232: undefined, + col___23235: undefined, + row___23238: undefined, arg0: undefined, arg1: undefined, } } @@ -62975,8 +68173,7 @@ function user_interface_base_Occlusions_FromSprite__P3397_mk(s) { - -function user_interface_base_Occlusions_constructor__P3396(s) { +function microcode_IconFieldEditor_editor__P4568(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -62992,37 +68189,43 @@ switch (step) { s.arg2 = (s.lambdaArgs[2]); s.arg3 = (s.lambdaArgs[3]); s.arg4 = (s.lambdaArgs[4]); + s.arg5 = (s.lambdaArgs[5]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Occlusions__C3394_VT)) failedCast(r0, user_interface_base_Occlusions__C3394_VT); - r0 = (s.arg0).fields["left"] = (s.arg1); - r0 = (s.arg0).fields["top"] = (s.arg2); - r0 = (s.arg0).fields["right"] = (s.arg3); - r0 = (s.arg0).fields["bottom"] = (s.arg4); + if (!checkSubtype(r0, microcode_IconFieldEditor__C4565_VT)) failedCast(r0, microcode_IconFieldEditor__C4565_VT); + s.tmp_0 = microcode_iconEditor__P6024_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.arg2; + s.tmp_0.arg2 = s.arg3; + s.tmp_0.arg3 = s.arg4; + s.callLocIdx = 1832; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Occlusions_constructor__P3396.info = {"start":6302,"length":158,"line":211,"column":8,"endLine":216,"endColumn":12,"fileName":"pxt_modules/user-interface-base/bounds.ts","functionName":"inline","argumentNames":["this","left","top","right","bottom"]} +microcode_IconFieldEditor_editor__P4568.info = {"start":3778,"length":228,"line":137,"column":8,"endLine":145,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"editor","argumentNames":["this","field","picker","onHide","onDelete","param"]} -function user_interface_base_Occlusions_constructor__P3396_mk(s) { +function microcode_IconFieldEditor_editor__P4568_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Occlusions_constructor__P3396, depth: s.depth + 1, + parent: s, fn: microcode_IconFieldEditor_editor__P4568, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, arg1: undefined, arg2: undefined, arg3: undefined, arg4: undefined, + arg5: undefined, } } - -function user_interface_base_Affine_root__P3357(s) { +function microcode_iconEditor__P6024(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63032,55 +68235,156 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.node___21413 = undefined; + s.getColor___23272 = undefined; + s.defs___23281 = undefined; + s.row___23283 = undefined; + s.col___23287 = undefined; + s.red___23304 = undefined; + s.black___23308 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Affine__C3351_VT)) failedCast(r0, user_interface_base_Affine__C3351_VT); - r0 = s.arg0.fields["parent_"]; - s.node___21413 = (r0); + r0 = pxsim_pxtcore_mkAction(1, getColor_inline__P23273); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.getColor___23272 = (s.tmp_0); + r0 = pxsim_Array__mk(); + s.defs___23281 = (r0); + s.row___23283 = (0); case 1: - s.tmp_0 = r0 = s.node___21413; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } + r0 = (s.row___23283 < 5); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.col___23287 = (0); case 2: - r0 = s.node___21413.fields["parent_"]; - case 3: - // jmp value (already in r0) + r0 = (s.col___23287 < 5); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = s.node___21413.fields["parent_"]; - s.node___21413 = (r0); + s.tmp_3 = lambda_3_mk(s); + s.tmp_3.argL = s.getColor___23272; + s.tmp_3.arg0 = s.col___23287; + s.tmp_3.arg1 = s.row___23283; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 1873; s.pc = 5; return s.tmp_3; + case 5: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_2); + r0 = pxsim_Array__push(s.defs___23281, s.tmp_1); + r0 = (s.col___23287 + 1); + s.col___23287 = (r0); + { step = 2; continue; } + case 3: + r0 = (s.row___23283 + 1); + s.row___23283 = (r0); { step = 1; continue; } case 4: - r0 = s.node___21413; - return leaveAccessor(s, r0) + s.tmp_0 = user_interface_base_Picker_setGroup__P3729_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.defs___23281; + s.callLocIdx = 1874; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = microcode_icons_get__P4047_mk(s); + s.tmp_0.arg0 = "solid_red"; + s.tmp_0.arg1 = false; + s.callLocIdx = 1875; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; + s.red___23304 = (r0); + s.tmp_0 = microcode_icons_get__P4047_mk(s); + s.tmp_0.arg0 = "solid_black"; + s.tmp_0.arg1 = false; + s.callLocIdx = 1876; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + s.black___23308 = (r0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "width", 5); + s.tmp_2 = accessibility_ariaToTooltip__P3492_mk(s); + r0 = pxsim_numops.toString(160); + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 10); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 10: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat("T", s.tmp_3); + s.tmp_2.arg0 = r0; + s.callLocIdx = 1878; s.pc = 9; return s.tmp_2; + case 9: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); + r0 = pxsim_pxtcore_mkAction(4, onClick_inline__P23317); + s.tmp_5 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_5, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_5, 1, s.defs___23281); + r0 = pxsim_pxtrt_stclo(s.tmp_5, 2, s.getColor___23272); + r0 = pxsim_pxtrt_stclo(s.tmp_5, 3, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_5); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onHide", s.arg2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onDelete", s.arg3); + r0 = pxsim_pxtcore_mkAction(1, navigator_inline__P23348); + s.tmp_6 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_6, 0, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "navigator", s.tmp_6); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "style", globals.Transparent___3614); + s.tmp_7 = user_interface_base_Picker_show__P3731_mk(s); + s.tmp_7.arg0 = s.arg1; + s.tmp_7.arg1 = s.tmp_0; + s.tmp_7.arg2 = false; + s.callLocIdx = 1883; s.pc = 11; return s.tmp_7; + case 11: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_Affine_root__P3357.info = {"start":1135,"length":179,"line":35,"column":8,"endLine":41,"endColumn":9,"fileName":"pxt_modules/user-interface-base/affine.ts","functionName":"root","argumentNames":["this"]} -user_interface_base_Affine_root__P3357.isGetter = true; +microcode_iconEditor__P6024.info = {"start":11461,"length":1485,"line":372,"column":4,"endLine":417,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"iconEditor","argumentNames":["image5x5","picker","onHide","onDelete"]} -function user_interface_base_Affine_root__P3357_mk(s) { +function microcode_iconEditor__P6024_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Affine_root__P3357, depth: s.depth + 1, + parent: s, fn: microcode_iconEditor__P6024, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - node___21413: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + getColor___23272: undefined, + defs___23281: undefined, + row___23283: undefined, + col___23287: undefined, + red___23304: undefined, + black___23308: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function user_interface_base_Button_ariaId__P3671(s) { +function getColor_inline__P23273(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63095,20 +68399,30 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Button__C3665_VT)) failedCast(r0, user_interface_base_Button__C3665_VT); - r0 = (s.arg0).fields["_ariaId"] = (s.arg1); - r0 = undefined; + r0 = pxsim.BitmapMethods.getPixel(s.caps[0], s.arg0, s.arg1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = "solid_red"; + { step = 2; continue; } + case 1: + r0 = "solid_black"; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = s.tmp_1; return leave(s, r0) default: oops() } } } -user_interface_base_Button_ariaId__P3671.info = {"start":6257,"length":67,"line":255,"column":4,"endLine":257,"endColumn":5,"fileName":"pxt_modules/user-interface-base/button.ts","functionName":"ariaId","argumentNames":["this","value"]} +getColor_inline__P23273.info = {"start":11623,"length":118,"line":378,"column":25,"endLine":380,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["col","row"]} -function user_interface_base_Button_ariaId__P3671_mk(s) { +function getColor_inline__P23273_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Button_ariaId__P3671, depth: s.depth + 1, + parent: s, fn: getColor_inline__P23273, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, arg0: undefined, arg1: undefined, } } @@ -63116,8 +68430,7 @@ function user_interface_base_Button_ariaId__P3671_mk(s) { - -function SoundExpression__play__P2851(s) { +function onClick_inline__P23317(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63127,64 +68440,115 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.row___23319 = undefined; + s.col___23323 = undefined; + s.on___23326 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, SoundExpression__C2849_VT)) failedCast(r0, SoundExpression__C2849_VT); - r0 = (s.arg1 === 1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim.Math_.idiv(s.arg0, 5); + s.row___23319 = (r0); + r0 = (s.arg0 % 5); + s.col___23323 = (r0); + r0 = pxsim.BitmapMethods.getPixel(s.caps[0], s.col___23323, s.row___23319); + s.on___23326 = (r0); + r0 = pxsim_numops_toBoolDecr(s.on___23326); if (!r0) { step = 1; continue; } - s.tmp_1 = SoundExpression_play__P2852_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 128; s.pc = 5; return s.tmp_1; - case 5: - r0 = s.retval; - { step = 4; continue; } + r0 = 0; + { step = 2; continue; } case 1: - r0 = (s.arg1 === 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_1 = SoundExpression_playUntilDone__P2853_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 129; s.pc = 6; return s.tmp_1; - case 6: - r0 = s.retval; - { step = 3; continue; } + r0 = 1; case 2: - s.tmp_0 = music_Playable_loop__P2957_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 130; s.pc = 7; return s.tmp_0; - case 7: + // jmp value (already in r0) + s.tmp_0 = r0; + r0 = pxsim.BitmapMethods.setPixel(s.caps[0], s.col___23323, s.row___23319, s.tmp_0); + s.tmp_0 = if_icon_2_mk(s); + r0 = pxsim_Array__getAt(s.caps[1], s.arg0); + s.tmp_0.arg0 = r0; + s.tmp_1 = lambda_3_mk(s); + s.tmp_1.argL = s.caps[2]; + s.tmp_1.arg0 = s.col___23323; + s.tmp_1.arg1 = s.row___23319; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 1879; s.pc = 4; return s.tmp_1; + case 4: r0 = s.retval; + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapSetByString(s.tmp_0.arg0, "icon", s.tmp_0.arg1); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["set/icon"]; + if (s.tmp_0.fn === null) { s.tmp_0.arg0.fields["icon"] = s.tmp_0.arg1; } + else if (s.tmp_0.fn === undefined) { failedCast(s.tmp_0.arg0) } + else { s.callLocIdx = 1880; s.pc = 3; return s.tmp_0; } + } case 3: - case 4: + r0 = s.retval; + s.tmp_0 = user_interface_base_Picker_draw__P3733_mk(s); + s.tmp_0.arg0 = s.caps[3]; + s.callLocIdx = 1881; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -SoundExpression__play__P2851.info = {"start":217,"length":266,"line":11,"column":4,"endLine":19,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"_play","argumentNames":["this","mode"]} +onClick_inline__P23317.info = {"start":12399,"length":339,"line":402,"column":25,"endLine":409,"endColumn":17,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["index"]} -function SoundExpression__play__P2851_mk(s) { +function onClick_inline__P23317_mk(s) { checkStack(s.depth); return { - parent: s, fn: SoundExpression__play__P2851, depth: s.depth + 1, + parent: s, fn: onClick_inline__P23317, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + row___23319: undefined, + col___23323: undefined, + on___23326: undefined, arg0: undefined, - arg1: undefined, } } +function navigator_inline__P23348(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; -function music_Playable_loop__P2957(s) { + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + r0 = pxsim_pxtcore_mkClassInstance(microcode_LEDNavigator__C4728_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_LEDNavigator_constructor__P4729_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.caps[0]; + s.callLocIdx = 1882; s.pc = 1; return s.tmp_1; + case 1: + r0 = s.retval; + r0 = s.tmp_0; + return leave(s, r0) + default: oops() +} } } +navigator_inline__P23348.info = {"start":12817,"length":30,"line":412,"column":27,"endLine":412,"endColumn":57,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":[]} + +function navigator_inline__P23348_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: navigator_inline__P23348, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, +} } + + + + +function microcode_LEDNavigator_constructor__P4729(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63196,51 +68560,39 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, music_Playable__C2953_VT)) failedCast(r0, music_Playable__C2953_VT); - r0 = pxsim_numops_toBoolDecr(globals.looping___4966); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim_Array__mk(); - globals.looping___4966 = (r0); + if (!checkSubtype(r0, microcode_LEDNavigator__C4728_VT)) failedCast(r0, microcode_LEDNavigator__C4728_VT); + s.tmp_0 = user_interface_base_PickerNavigator_constructor__P3777_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 1961; s.pc = 1; return s.tmp_0; case 1: - case 2: - r0 = pxsim_Array__push(globals.looping___4966, s.arg0); - r0 = (s.arg0).fields["stopped"] = (false); - r0 = pxsim_pxtcore_mkAction(1, music_Playable_loop_inline__P21451); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = control_runInParallel__P2441_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 141; s.pc = 3; return s.tmp_1; - case 3: r0 = s.retval; + r0 = (s.arg0).fields["row"] = (2); + r0 = (s.arg0).fields["col"] = (2); r0 = undefined; return leave(s, r0) default: oops() } } } -music_Playable_loop__P2957.info = {"start":439,"length":330,"line":22,"column":8,"endLine":35,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"loop","argumentNames":["this"]} +microcode_LEDNavigator_constructor__P4729.info = {"start":2807,"length":115,"line":93,"column":8,"endLine":97,"endColumn":9,"fileName":"navigator.ts","functionName":"inline","argumentNames":["this","picker"]} -function music_Playable_loop__P2957_mk(s) { +function microcode_LEDNavigator_constructor__P4729_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_Playable_loop__P2957, depth: s.depth + 1, + parent: s, fn: microcode_LEDNavigator_constructor__P4729, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, arg0: undefined, + arg1: undefined, } } - -function music_Playable_loop_inline__P21451(s) { +function microcode_MelodyFieldEditor_toBuffer__P4589(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63250,47 +68602,145 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.buf___23363 = undefined; + s.notes___23372 = undefined; + s.i___23379 = undefined; + s.byte___23384 = undefined; + s.bit___23387 = undefined; + s.note___23396 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4584_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4584_VT); + r0 = pxsim.control.createBuffer(3); + s.buf___23363 = (r0); + s.tmp_0 = r0 = s.buf___23363; + s.tmp_2 = if_tempo_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "tempo"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["tempo"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["tempo"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 1844; s.pc = 7; return s.tmp_2; } + } + case 7: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim.BufferMethods.setUint8(s.tmp_0, 0, s.tmp_1); + s.tmp_0 = helpers_stringSplit__P2151_mk(s); + s.tmp_1 = if_notes_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "notes"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["notes"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["notes"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1845; s.pc = 9; return s.tmp_1; } + } + case 9: + r0 = s.retval; + s.tmp_0.arg0 = r0; + r0 = pxsim_String_.mkEmpty(); + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = undefined; + s.callLocIdx = 1846; s.pc = 8; return s.tmp_0; + case 8: + r0 = s.retval; + s.notes___23372 = (r0); + s.i___23379 = (0); case 1: - r0 = s.caps[0].fields["stopped"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); + r0 = (s.i___23379 < 4); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = (s.i___23379 >> 1); + s.byte___23384 = (r0); + r0 = (s.i___23379 & 1); + s.tmp_0 = r0; + r0 = (s.tmp_0 << 2); + s.bit___23387 = (r0); + r0 = pxsim_Array__getAt(s.notes___23372, s.i___23379); s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + r0 = (s.tmp_1 != "."); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.tmp_3 = parseInt__P2126_mk(s); + r0 = pxsim_Array__getAt(s.notes___23372, s.i___23379); + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = undefined; + s.callLocIdx = 1847; s.pc = 10; return s.tmp_3; + case 10: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_numops_toBool(s.tmp_2); if (!r0) { step = 2; continue; } - s.tmp_3 = music_Playable__C2953_v0_2_mk(s); - s.tmp_3.arg0 = s.caps[0]; - s.tmp_3.arg1 = 0; - if (!checkSubtype(s.tmp_3.arg0, music_Playable__C2953_VT)) failedCast(s.tmp_3.arg0, music_Playable__C2953_VT); - s.tmp_3.fn = s.tmp_3.arg0.vtable.methods._play; - s.pc = 3; return s.tmp_3; + r0 = s.tmp_2; + { step = 3; continue; } + case 2: + r0 = 0; case 3: - r0 = s.retval; + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.tmp_4 + 1); + s.note___23396 = (r0); + s.tmp_0 = r0 = s.buf___23363; + r0 = (s.byte___23384 + 1); + s.tmp_1 = r0; + s.tmp_4 = r0 = s.buf___23363; + r0 = (s.byte___23384 + 1); + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.getUint8(s.tmp_4, s.tmp_5); + s.tmp_3 = r0; + r0 = (s.note___23396 << s.bit___23387); + s.tmp_6 = r0; + r0 = (s.tmp_3 | s.tmp_6); + s.tmp_2 = r0; + r0 = pxsim.BufferMethods.setUint8(s.tmp_0, s.tmp_1, s.tmp_2); + case 4: + case 5: + r0 = (s.i___23379 + 1); + s.i___23379 = (r0); { step = 1; continue; } - case 2: - r0 = undefined; + case 6: + r0 = s.buf___23363; return leave(s, r0) default: oops() } } } -music_Playable_loop_inline__P21451.info = {"start":622,"length":135,"line":30,"column":34,"endLine":34,"endColumn":13,"fileName":"pxt_modules/core/playable.ts","functionName":"inline","argumentNames":[]} +microcode_MelodyFieldEditor_toBuffer__P4589.info = {"start":6499,"length":739,"line":228,"column":8,"endLine":246,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toBuffer","argumentNames":["this","melody"]} -function music_Playable_loop_inline__P21451_mk(s) { +function microcode_MelodyFieldEditor_toBuffer__P4589_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_Playable_loop_inline__P21451, depth: s.depth + 1, + parent: s, fn: microcode_MelodyFieldEditor_toBuffer__P4589, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + buf___23363: undefined, + notes___23372: undefined, + i___23379: undefined, + byte___23384: undefined, + bit___23387: undefined, + note___23396: undefined, + arg0: undefined, + arg1: undefined, } } - -function SoundExpression_playUntilDone__P2853(s) { +function microcode_MelodyFieldEditor_editor__P4587(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63302,38 +68752,188 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); + s.arg5 = (s.lambdaArgs[5]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, SoundExpression__C2849_VT)) failedCast(r0, SoundExpression__C2849_VT); - r0 = s.arg0.fields["notes"]; + if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4584_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4584_VT); + s.tmp_0 = microcode_melodyEditor__P6025_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.arg2; + s.tmp_0.arg2 = s.arg3; + s.tmp_0.arg3 = s.arg4; + s.callLocIdx = 1842; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_MelodyFieldEditor_editor__P4587.info = {"start":6173,"length":230,"line":216,"column":8,"endLine":224,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"editor","argumentNames":["this","field","picker","onHide","onDelete","param"]} + +function microcode_MelodyFieldEditor_editor__P4587_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MelodyFieldEditor_editor__P4587, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, + arg5: undefined, +} } + + + + +function microcode_melodyEditor__P6025(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.getIcon___23441 = undefined; + s.defs___23466 = undefined; + s.row___23468 = undefined; + s.col___23473 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.lambdaArgs = null; + } + r0 = pxsim_pxtcore_mkAction(1, getIcon_inline__P23442); s.tmp_0 = r0; - setupResume(s, 1); - pxsim.music.__playSoundExpression(s.tmp_0, true); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.getIcon___23441 = (s.tmp_0); + r0 = pxsim_Array__mk(); + s.defs___23466 = (r0); + s.row___23468 = (0); + case 1: + r0 = (s.row___23468 < 5); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 4; continue; } + s.col___23473 = (0); + case 2: + r0 = (s.col___23473 < 4); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + s.tmp_3 = lambda_3_mk(s); + s.tmp_3.argL = s.getIcon___23441; + s.tmp_3.arg0 = s.col___23473; + s.tmp_3.arg1 = s.row___23468; + setupLambda(s.tmp_3, s.tmp_3.argL); + s.callLocIdx = 1887; s.pc = 5; return s.tmp_3; + case 5: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_2); + r0 = pxsim_Array__push(s.defs___23466, s.tmp_1); + r0 = (s.col___23473 + 1); + s.col___23473 = (r0); + { step = 2; continue; } + case 3: + r0 = (s.row___23468 + 1); + s.row___23468 = (r0); + { step = 1; continue; } + case 4: + s.tmp_0 = user_interface_base_Picker_setGroup__P3729_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.defs___23466; + s.callLocIdx = 1888; s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "width", 4); + s.tmp_2 = accessibility_ariaToTooltip__P3492_mk(s); + r0 = pxsim_numops.toString(179); + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 8); + pxsim_String__stringConv(s.tmp_4); checkResumeConsumed(); return; - case 1: + } else { s.retval = (s.tmp_4) + ""; } + case 8: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat("T", s.tmp_3); + s.tmp_2.arg0 = r0; + s.callLocIdx = 1890; s.pc = 7; return s.tmp_2; + case 7: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); + r0 = pxsim_pxtcore_mkAction(4, onClick_inline__P23497); + s.tmp_5 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_5, 0, s.getIcon___23441); + r0 = pxsim_pxtrt_stclo(s.tmp_5, 1, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_5, 2, s.defs___23466); + r0 = pxsim_pxtrt_stclo(s.tmp_5, 3, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_5); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onHide", s.arg2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onDelete", s.arg3); + r0 = pxsim_pxtcore_mkAction(1, navigator_inline__P23583); + s.tmp_6 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_6, 0, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "navigator", s.tmp_6); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "style", globals.Transparent___3614); + s.tmp_7 = user_interface_base_Picker_show__P3731_mk(s); + s.tmp_7.arg0 = s.arg1; + s.tmp_7.arg1 = s.tmp_0; + s.tmp_7.arg2 = false; + s.callLocIdx = 1903; s.pc = 9; return s.tmp_7; + case 9: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -SoundExpression_playUntilDone__P2853.info = {"start":1057,"length":77,"line":45,"column":4,"endLine":47,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"playUntilDone","argumentNames":["this"]} +microcode_melodyEditor__P6025.info = {"start":12952,"length":2230,"line":419,"column":4,"endLine":479,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"melodyEditor","argumentNames":["melody","picker","onHide","onDelete"]} -function SoundExpression_playUntilDone__P2853_mk(s) { +function microcode_melodyEditor__P6025_mk(s) { checkStack(s.depth); return { - parent: s, fn: SoundExpression_playUntilDone__P2853, depth: s.depth + 1, + parent: s, fn: microcode_melodyEditor__P6025, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + getIcon___23441: undefined, + defs___23466: undefined, + row___23468: undefined, + col___23473: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function SoundExpression_play__P2852(s) { +function getIcon_inline__P23442(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63343,40 +68943,105 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.note_icon___23445 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, SoundExpression__C2849_VT)) failedCast(r0, SoundExpression__C2849_VT); - r0 = s.arg0.fields["notes"]; - s.tmp_0 = r0; - setupResume(s, 1); - pxsim.music.__playSoundExpression(s.tmp_0, false); - checkResumeConsumed(); - return; - case 1: + s.tmp_3 = if_notes_1_mk(s); + s.tmp_3.arg0 = s.caps[0]; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "notes"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["notes"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["notes"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 1884; s.pc = 5; return s.tmp_3; } + } + case 5: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_String_.charAt(s.tmp_2, s.arg0); + s.tmp_1 = r0; + r0 = (s.tmp_1 === "."); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = "note_off"; + { step = 4; continue; } + case 1: + s.tmp_6 = parseInt__P2126_mk(s); + s.tmp_8 = if_notes_1_mk(s); + s.tmp_8.arg0 = s.caps[0]; + if (!s.tmp_8.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "notes"); + } else { + s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["notes"]; + if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["notes"]; } + else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } + else { s.callLocIdx = 1885; s.pc = 7; return s.tmp_8; } + } + case 7: r0 = s.retval; - r0 = undefined; + s.tmp_7 = r0; + r0 = pxsim_String_.charAt(s.tmp_7, s.arg0); + s.tmp_6.arg0 = r0; + s.tmp_6.arg1 = undefined; + s.callLocIdx = 1886; s.pc = 6; return s.tmp_6; + case 6: + r0 = s.retval; + s.tmp_5 = r0; + r0 = (4 - s.arg1); + s.tmp_9 = r0; + r0 = (s.tmp_5 === s.tmp_9); + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 2; continue; } + r0 = "note_on"; + { step = 3; continue; } + case 2: + r0 = "note_off"; + case 3: + // jmp value (already in r0) + s.tmp_10 = r0; + r0 = s.tmp_10; + case 4: + // jmp value (already in r0) + s.tmp_11 = r0; + s.note_icon___23445 = (s.tmp_11); + r0 = s.note_icon___23445; return leave(s, r0) default: oops() } } } -SoundExpression_play__P2852.info = {"start":722,"length":69,"line":31,"column":4,"endLine":33,"endColumn":5,"fileName":"pxt_modules/core/soundexpressions.ts","functionName":"play","argumentNames":["this"]} +getIcon_inline__P23442.info = {"start":13113,"length":314,"line":425,"column":24,"endLine":433,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["col","row"]} -function SoundExpression_play__P2852_mk(s) { +function getIcon_inline__P23442_mk(s) { checkStack(s.depth); return { - parent: s, fn: SoundExpression_play__P2852, depth: s.depth + 1, + parent: s, fn: getIcon_inline__P23442, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + note_icon___23445: undefined, arg0: undefined, + arg1: undefined, } } - -function music_StringArrayPlayable__play__P2960(s) { +function onClick_inline__P23497(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63386,86 +69051,241 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.row___23499 = undefined; + s.col___23504 = undefined; + s.note___23513 = undefined; + s.buf___23521 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, music_StringArrayPlayable__C2958_VT)) failedCast(r0, music_StringArrayPlayable__C2958_VT); - r0 = s.arg0.fields["tempo"]; + r0 = pxsim.Math_.idiv(s.arg0, 4); + s.row___23499 = (r0); + r0 = (s.arg0 % 4); + s.col___23504 = (r0); + s.tmp_2 = lambda_3_mk(s); + s.tmp_2.argL = s.caps[0]; + s.tmp_2.arg0 = s.col___23504; + s.tmp_2.arg1 = s.row___23499; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 1891; s.pc = 7; return s.tmp_2; + case 7: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 !== "note_on"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_1 = music_setTempo__P2691_mk(s); - r0 = s.arg0.fields["tempo"]; - s.tmp_1.arg0 = r0; - s.callLocIdx = 143; s.pc = 7; return s.tmp_1; - case 7: - r0 = s.retval; + r0 = (4 - s.row___23499); + s.tmp_3 = r0; + r0 = pxsim_numops.toString(s.tmp_3); + s.note___23513 = (r0); + r0 = pxsim.control.createBuffer(6); + s.buf___23521 = (r0); case 1: case 2: - r0 = (s.arg1 == 1); + s.tmp_2 = lambda_3_mk(s); + s.tmp_2.argL = s.caps[0]; + s.tmp_2.arg0 = s.col___23504; + s.tmp_2.arg1 = s.row___23499; + setupLambda(s.tmp_2, s.tmp_2.argL); + s.callLocIdx = 1894; s.pc = 8; return s.tmp_2; + case 8: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_1 === "note_on"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - s.tmp_1 = music_startMelodyInternal__P2698_mk(s); - r0 = s.arg0.fields["notes"]; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = 4; - s.callLocIdx = 144; s.pc = 8; return s.tmp_1; - case 8: - r0 = s.retval; - { step = 6; continue; } + r0 = "."; + { step = 4; continue; } case 3: - r0 = (s.arg1 == 2); + r0 = (4 - s.row___23499); + s.tmp_3 = r0; + r0 = pxsim_numops.toString(s.tmp_3); + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + s.tmp_5 = if_notes_2_mk(s); + s.tmp_5.arg0 = s.caps[1]; + s.tmp_10 = helpers_stringSlice__P2148_mk(s); + s.tmp_11 = if_notes_1_mk(s); + s.tmp_11.arg0 = s.caps[1]; + if (!s.tmp_11.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_11.arg0, "notes"); + } else { + s.tmp_11.fn = s.tmp_11.arg0.vtable.iface["notes"]; + if (s.tmp_11.fn == null) { s.retval = s.tmp_11.arg0.fields["notes"]; } + else if (!s.tmp_11.fn.isGetter) { s.retval = bind(s.tmp_11); } + else { s.callLocIdx = 1892; s.pc = 11; return s.tmp_11; } + } + case 11: + r0 = s.retval; + s.tmp_10.arg0 = r0; + s.tmp_10.arg1 = 0; + s.tmp_10.arg2 = s.col___23504; + s.callLocIdx = 1893; s.pc = 10; return s.tmp_10; + case 10: + r0 = s.retval; + s.tmp_9 = r0; + if ((s.tmp_9) && (s.tmp_9).vtable) { + setupResume(s, 12); + pxsim_String__stringConv(s.tmp_9); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_9) + ""; } + case 12: + r0 = s.retval; + s.tmp_8 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 13); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 13: + r0 = s.retval; + s.tmp_12 = r0; + r0 = pxsim_String__concat(s.tmp_8, s.tmp_12); + s.tmp_7 = r0; + if ((s.tmp_7) && (s.tmp_7).vtable) { + setupResume(s, 14); + pxsim_String__stringConv(s.tmp_7); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_7) + ""; } + case 14: + r0 = s.retval; + s.tmp_6 = r0; + s.tmp_15 = helpers_stringSlice__P2148_mk(s); + s.tmp_16 = if_notes_1_mk(s); + s.tmp_16.arg0 = s.caps[1]; + if (!s.tmp_16.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_16.arg0, "notes"); + } else { + s.tmp_16.fn = s.tmp_16.arg0.vtable.iface["notes"]; + if (s.tmp_16.fn == null) { s.retval = s.tmp_16.arg0.fields["notes"]; } + else if (!s.tmp_16.fn.isGetter) { s.retval = bind(s.tmp_16); } + else { s.callLocIdx = 1895; s.pc = 16; return s.tmp_16; } + } + case 16: + r0 = s.retval; + s.tmp_15.arg0 = r0; + r0 = (s.col___23504 + 1); + s.tmp_15.arg1 = r0; + s.tmp_15.arg2 = undefined; + s.callLocIdx = 1896; s.pc = 15; return s.tmp_15; + case 15: + r0 = s.retval; + s.tmp_14 = r0; + if ((s.tmp_14) && (s.tmp_14).vtable) { + setupResume(s, 17); + pxsim_String__stringConv(s.tmp_14); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_14) + ""; } + case 17: + r0 = s.retval; + s.tmp_13 = r0; + r0 = pxsim_String__concat(s.tmp_6, s.tmp_13); + s.tmp_5.arg1 = r0; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapSetByString(s.tmp_5.arg0, "notes", s.tmp_5.arg1); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["set/notes"]; + if (s.tmp_5.fn === null) { s.tmp_5.arg0.fields["notes"] = s.tmp_5.arg1; } + else if (s.tmp_5.fn === undefined) { failedCast(s.tmp_5.arg0) } + else { s.callLocIdx = 1897; s.pc = 9; return s.tmp_5; } + } + case 9: + r0 = s.retval; + s.row___23499 = (0); + case 5: + r0 = (s.row___23499 < 5); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_1 = music_startMelodyInternal__P2698_mk(s); - r0 = s.arg0.fields["notes"]; + if (!r0) { step = 6; continue; } + s.tmp_1 = if_icon_2_mk(s); + s.tmp_2 = r0 = s.caps[2]; + r0 = (s.row___23499 * 4); + s.tmp_4 = r0; + r0 = (s.tmp_4 + s.col___23504); + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = 8; - s.callLocIdx = 145; s.pc = 9; return s.tmp_1; - case 9: + s.tmp_5 = lambda_3_mk(s); + s.tmp_5.argL = s.caps[0]; + s.tmp_5.arg0 = s.col___23504; + s.tmp_5.arg1 = s.row___23499; + setupLambda(s.tmp_5, s.tmp_5.argL); + s.callLocIdx = 1898; s.pc = 19; return s.tmp_5; + case 19: + r0 = s.retval; + s.tmp_1.arg1 = r0; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapSetByString(s.tmp_1.arg0, "icon", s.tmp_1.arg1); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["set/icon"]; + if (s.tmp_1.fn === null) { s.tmp_1.arg0.fields["icon"] = s.tmp_1.arg1; } + else if (s.tmp_1.fn === undefined) { failedCast(s.tmp_1.arg0) } + else { s.callLocIdx = 1899; s.pc = 18; return s.tmp_1; } + } + case 18: r0 = s.retval; + r0 = (s.row___23499 + 1); + s.row___23499 = (r0); { step = 5; continue; } - case 4: - s.tmp_0 = music_startMelodyInternal__P2698_mk(s); - r0 = s.arg0.fields["notes"]; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = 1; - s.callLocIdx = 146; s.pc = 10; return s.tmp_0; - case 10: + case 6: + s.tmp_0 = user_interface_base_Picker_draw__P3733_mk(s); + s.tmp_0.arg0 = s.caps[3]; + s.callLocIdx = 1900; s.pc = 20; return s.tmp_0; + case 20: r0 = s.retval; - s.tmp_0 = music_waitForMelodyEnd__P2699_mk(s); - s.callLocIdx = 147; s.pc = 11; return s.tmp_0; - case 11: + s.tmp_0 = user_interface_base_PickerNavigator_updateAria__P3793_mk(s); + r0 = s.caps[3].fields["navigator"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1901; s.pc = 21; return s.tmp_0; + case 21: r0 = s.retval; - case 5: - case 6: r0 = undefined; return leave(s, r0) default: oops() } } } -music_StringArrayPlayable__play__P2960.info = {"start":943,"length":597,"line":43,"column":8,"endLine":57,"endColumn":9,"fileName":"pxt_modules/core/playable.ts","functionName":"_play","argumentNames":["this","playbackMode"]} +onClick_inline__P23497.info = {"start":13962,"length":1009,"line":451,"column":25,"endLine":471,"endColumn":17,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["index"]} -function music_StringArrayPlayable__play__P2960_mk(s) { +function onClick_inline__P23497_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_StringArrayPlayable__play__P2960, depth: s.depth + 1, + parent: s, fn: onClick_inline__P23497, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + row___23499: undefined, + col___23504: undefined, + note___23513: undefined, + buf___23521: undefined, arg0: undefined, - arg1: undefined, } } - -function music_waitForMelodyEnd__P2699(s) { +function navigator_inline__P23583(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63475,30 +69295,33 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - setupResume(s, 1); - pxsim.control.waitForEvent(2000, 5); - checkResumeConsumed(); - return; + r0 = pxsim_pxtcore_mkClassInstance(microcode_MelodyNavigator__C4726_VT); + s.tmp_0 = r0; + s.tmp_1 = microcode_MelodyNavigator_constructor__P4727_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.tmp_1.arg1 = s.caps[0]; + s.callLocIdx = 1902; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; - r0 = undefined; + r0 = s.tmp_0; return leave(s, r0) default: oops() } } } -music_waitForMelodyEnd__P2699.info = {"start":15473,"length":115,"line":443,"column":4,"endLine":445,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"waitForMelodyEnd","argumentNames":[]} +navigator_inline__P23583.info = {"start":15050,"length":33,"line":474,"column":27,"endLine":474,"endColumn":60,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":[]} -function music_waitForMelodyEnd__P2699_mk(s) { +function navigator_inline__P23583_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_waitForMelodyEnd__P2699, depth: s.depth + 1, + parent: s, fn: navigator_inline__P23583, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, } } - -function music_startMelodyInternal__P2698(s) { +function microcode_MelodyNavigator_constructor__P4727(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63508,101 +69331,33 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.isBackground___21501 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = music_init__P4895_mk(s); - s.callLocIdx = 53; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - r0 = (s.arg1 & 12); - s.isBackground___21501 = (r0); - r0 = (globals.currentMelody___4896 != undefined); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = pxsim_numops_toBoolDecr(s.isBackground___21501); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (r0) { step = 1; continue; } - r0 = s.tmp_1; - { step = 2; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyNavigator__C4726_VT)) failedCast(r0, microcode_MelodyNavigator__C4726_VT); + s.tmp_0 = user_interface_base_PickerNavigator_constructor__P3777_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 1957; s.pc = 1; return s.tmp_0; case 1: - r0 = globals.currentMelody___4896.fields["background"]; - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 3; continue; } - globals.currentBackgroundMelody___4897 = (globals.currentMelody___4896); - globals.currentMelody___4896 = (null); - r0 = pxsim.control.raiseEvent(2000, 245, 1); - case 3: - case 4: - r0 = pxsim_numops_toBoolDecr(globals.currentMelody___4896); - if (!r0) { step = 5; continue; } - r0 = globals.currentMelody___4896.fields["background"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 | 3); - s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); - case 5: - case 6: - r0 = pxsim_pxtcore_mkClassInstance(music_Melody__C4900_VT); - s.tmp_0 = r0; - s.tmp_1 = music_Melody_constructor__P4903_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.arg0; - s.tmp_1.arg2 = s.arg1; - s.callLocIdx = 54; s.pc = 10; return s.tmp_1; - case 10: - r0 = s.retval; - globals.currentMelody___4896 = (s.tmp_0); - r0 = globals.currentMelody___4896.fields["background"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 | 2); - s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); - { step = 8; continue; } - case 7: - r0 = pxsim_pxtcore_mkClassInstance(music_Melody__C4900_VT); - s.tmp_0 = r0; - s.tmp_1 = music_Melody_constructor__P4903_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.arg0; - s.tmp_1.arg2 = s.arg1; - s.callLocIdx = 55; s.pc = 11; return s.tmp_1; - case 11: r0 = s.retval; - globals.currentMelody___4896 = (s.tmp_0); - r0 = globals.currentMelody___4896.fields["background"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 | 2); - s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); - r0 = pxsim.control.inBackground(music_startMelodyInternal_inline__P21562); - case 8: + r0 = (s.arg0).fields["row"] = (2); + r0 = (s.arg0).fields["col"] = (2); r0 = undefined; return leave(s, r0) default: oops() } } } -music_startMelodyInternal__P2698.info = {"start":13397,"length":2070,"line":406,"column":4,"endLine":441,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"startMelodyInternal","argumentNames":["melodyArray","options"]} +microcode_MelodyNavigator_constructor__P4727.info = {"start":2080,"length":115,"line":69,"column":8,"endLine":73,"endColumn":9,"fileName":"navigator.ts","functionName":"inline","argumentNames":["this","picker"]} -function music_startMelodyInternal__P2698_mk(s) { +function microcode_MelodyNavigator_constructor__P4727_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_startMelodyInternal__P2698, depth: s.depth + 1, + parent: s, fn: microcode_MelodyNavigator_constructor__P4727, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - isBackground___21501: undefined, arg0: undefined, arg1: undefined, } } @@ -63610,8 +69365,7 @@ function music_startMelodyInternal__P2698_mk(s) { - -function music_startMelodyInternal_inline__P21562(s) { +function user_interface_base_PickerNavigator_updateAria__P3793(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -63621,366 +69375,108 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0 = user_interface_base_PickerNavigator__C3776_v0_1_mk(s); + s.tmp_0.arg0 = s.arg0; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3776_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; + s.pc = 1; return s.tmp_0; case 1: - s.tmp_1 = music_Melody_hasNextNote__P4901_mk(s); - s.tmp_1.arg0 = globals.currentMelody___4896; - s.callLocIdx = 56; s.pc = 9; return s.tmp_1; - case 9: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_2 = music_playNextNote__P4899_mk(s); - s.tmp_2.arg0 = globals.currentMelody___4896; - s.callLocIdx = 57; s.pc = 10; return s.tmp_2; - case 10: - r0 = s.retval; - s.tmp_3 = music_Melody_hasNextNote__P4901_mk(s); - s.tmp_3.arg0 = globals.currentMelody___4896; - s.callLocIdx = 58; s.pc = 11; return s.tmp_3; - case 11: r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } - case 2: - r0 = globals.currentBackgroundMelody___4897; - case 3: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 4; continue; } - globals.currentMelody___4896 = (globals.currentBackgroundMelody___4897); - globals.currentBackgroundMelody___4897 = (null); - r0 = pxsim.control.raiseEvent(2000, 3, 1); - r0 = pxsim.control.raiseEvent(2000, 246, 1); - r0 = pxsim.control.raiseEvent(2000, 5, 1); - case 4: - case 5: - { step = 1; continue; } - case 6: - r0 = globals.currentMelody___4896.fields["background"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 | 3); - s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); - r0 = globals.currentMelody___4896.fields["background"]; - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - r0 = pxsim.control.raiseEvent(2000, 5, 1); - case 7: - case 8: - globals.currentMelody___4896 = (null); r0 = undefined; return leave(s, r0) default: oops() } } } -music_startMelodyInternal_inline__P21562.info = {"start":14473,"length":977,"line":423,"column":33,"endLine":439,"endColumn":13,"fileName":"pxt_modules/core/music.ts","functionName":"inline","argumentNames":[]} +user_interface_base_PickerNavigator_updateAria__P3793.info = {"start":15168,"length":61,"line":484,"column":8,"endLine":486,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"updateAria","argumentNames":["this"]} -function music_startMelodyInternal_inline__P21562_mk(s) { +function user_interface_base_PickerNavigator_updateAria__P3793_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_startMelodyInternal_inline__P21562, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_updateAria__P3793, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, + arg0: undefined, } } - -function music_playNextNote__P4899(s) { +function microcode_DigitWidgetEditor_toBuffer__P4557(s) { let r0 = s.r0, step = s.pc; s.pc = -1; while (true) { if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.currNote___21612 = undefined; - s.currentPos___21615 = undefined; - s.currentDuration___21619 = undefined; - s.currentOctave___21623 = undefined; - s.note___21627 = undefined; - s.isrest___21628 = undefined; - s.beatPos___21629 = undefined; - s.parsingOctave___21630 = undefined; - s.prevNote___21631 = undefined; - s.pos___21632 = undefined; - s.noteChar___21638 = undefined; - s.beat___21693 = undefined; - s.repeating___21716 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = music_Melody_nextNote__P4902_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 61; s.pc = 37; return s.tmp_0; - case 37: - r0 = s.retval; - s.currNote___21612 = (r0); - r0 = s.arg0.fields["currentPos"]; - s.currentPos___21615 = (r0); - r0 = s.arg0.fields["currentDuration"]; - s.currentDuration___21619 = (r0); - r0 = s.arg0.fields["currentOctave"]; - s.currentOctave___21623 = (r0); - s.isrest___21628 = (false); - s.parsingOctave___21630 = (true); - s.prevNote___21631 = (false); - s.pos___21632 = (0); - case 1: - s.tmp_1 = r0 = s.pos___21632; - r0 = pxsim_String_.length(s.currNote___21612); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 26; continue; } - r0 = pxsim_String_.charAt(s.currNote___21612, s.pos___21632); - s.noteChar___21638 = (r0); - s.tmp_0 = r0 = s.noteChar___21638; - r0 = pxsim_pxtcore.switch_eq("c", s.tmp_0); - if (r0) { step = 2; continue; } - r0 = pxsim_pxtcore.switch_eq("C", s.tmp_0); - if (r0) { step = 3; continue; } - r0 = pxsim_pxtcore.switch_eq("d", s.tmp_0); - if (r0) { step = 4; continue; } - r0 = pxsim_pxtcore.switch_eq("D", s.tmp_0); - if (r0) { step = 5; continue; } - r0 = pxsim_pxtcore.switch_eq("e", s.tmp_0); - if (r0) { step = 6; continue; } - r0 = pxsim_pxtcore.switch_eq("E", s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq("f", s.tmp_0); - if (r0) { step = 8; continue; } - r0 = pxsim_pxtcore.switch_eq("F", s.tmp_0); - if (r0) { step = 9; continue; } - r0 = pxsim_pxtcore.switch_eq("g", s.tmp_0); - if (r0) { step = 10; continue; } - r0 = pxsim_pxtcore.switch_eq("G", s.tmp_0); - if (r0) { step = 11; continue; } - r0 = pxsim_pxtcore.switch_eq("a", s.tmp_0); - if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq("A", s.tmp_0); - if (r0) { step = 13; continue; } - r0 = pxsim_pxtcore.switch_eq("B", s.tmp_0); - if (r0) { step = 14; continue; } - r0 = pxsim_pxtcore.switch_eq("r", s.tmp_0); - if (r0) { step = 15; continue; } - r0 = pxsim_pxtcore.switch_eq("R", s.tmp_0); - if (r0) { step = 16; continue; } - r0 = pxsim_pxtcore.switch_eq("#", s.tmp_0); - if (r0) { step = 17; continue; } - r0 = pxsim_pxtcore.switch_eq("b", s.tmp_0); - if (r0) { step = 18; continue; } - r0 = pxsim_pxtcore.switch_eq(":", s.tmp_0); - if (r0) { step = 21; continue; } - r0 = s.tmp_0; - { step = 22; continue; } - case 2: - case 3: - s.note___21627 = (1); - s.prevNote___21631 = (true); - { step = 25; continue; } - case 4: - case 5: - s.note___21627 = (3); - s.prevNote___21631 = (true); - { step = 25; continue; } - case 6: - case 7: - s.note___21627 = (5); - s.prevNote___21631 = (true); - { step = 25; continue; } - case 8: - case 9: - s.note___21627 = (6); - s.prevNote___21631 = (true); - { step = 25; continue; } - case 10: - case 11: - s.note___21627 = (8); - s.prevNote___21631 = (true); - { step = 25; continue; } - case 12: - case 13: - s.note___21627 = (10); - s.prevNote___21631 = (true); - { step = 25; continue; } - case 14: - s.note___21627 = (12); - s.prevNote___21631 = (true); - { step = 25; continue; } - case 15: - case 16: - s.isrest___21628 = (true); - s.prevNote___21631 = (false); - { step = 25; continue; } - case 17: - r0 = (s.note___21627 + 1); - s.note___21627 = (r0); - s.prevNote___21631 = (false); - { step = 25; continue; } - case 18: - r0 = pxsim_numops_toBoolDecr(s.prevNote___21631); - if (!r0) { step = 19; continue; } - r0 = (s.note___21627 - 1); - s.note___21627 = (r0); - { step = 20; continue; } - case 19: - s.note___21627 = (12); - s.prevNote___21631 = (true); - case 20: - { step = 25; continue; } - case 21: - s.parsingOctave___21630 = (false); - s.beatPos___21629 = (s.pos___21632); - s.prevNote___21631 = (false); - { step = 25; continue; } - case 22: - s.prevNote___21631 = (false); - r0 = pxsim_numops_toBoolDecr(s.parsingOctave___21630); - if (!r0) { step = 23; continue; } - s.tmp_0 = music_parseIntSimple__P4898_mk(s); - s.tmp_0.arg0 = s.noteChar___21638; - s.callLocIdx = 62; s.pc = 38; return s.tmp_0; - case 38: - r0 = s.retval; - s.currentOctave___21623 = (r0); - case 23: - case 24: - case 25: - r0 = (s.pos___21632 + 1); - s.pos___21632 = (r0); - { step = 1; continue; } - case 26: - r0 = pxsim_numops_toBoolDecr(s.parsingOctave___21630); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 27; continue; } - s.tmp_2 = music_parseIntSimple__P4898_mk(s); - s.tmp_3 = helpers_stringSubstr__P2147_mk(s); - s.tmp_3.arg0 = s.currNote___21612; - r0 = (s.beatPos___21629 + 1); - s.tmp_3.arg1 = r0; - r0 = pxsim_String_.length(s.currNote___21612); - s.tmp_4 = r0; - r0 = (s.tmp_4 - s.beatPos___21629); - s.tmp_3.arg2 = r0; - s.callLocIdx = 63; s.pc = 40; return s.tmp_3; - case 40: - r0 = s.retval; - s.tmp_2.arg0 = r0; - s.callLocIdx = 64; s.pc = 39; return s.tmp_2; - case 39: - r0 = s.retval; - s.currentDuration___21619 = (r0); - case 27: - case 28: - r0 = pxsim.Math_.idiv(60000, globals.beatsPerMinute___4888); - s.tmp_0 = r0; - r0 = (s.tmp_0 >> 2); - s.beat___21693 = (r0); - r0 = pxsim_numops_toBoolDecr(s.isrest___21628); - if (!r0) { step = 29; continue; } - s.tmp_0 = music_rest__P2686_mk(s); - r0 = (s.currentDuration___21619 * s.beat___21693); - s.tmp_0.arg0 = r0; - s.callLocIdx = 65; s.pc = 41; return s.tmp_0; - case 41: - r0 = s.retval; - { step = 30; continue; } - case 29: - s.tmp_0 = music_playTone__P2684_mk(s); - s.tmp_1 = music_getFrequencyForNote__P2706_mk(s); - s.tmp_1.arg0 = s.currentOctave___21623; - s.tmp_1.arg1 = s.note___21627; - s.callLocIdx = 66; s.pc = 43; return s.tmp_1; - case 43: - r0 = s.retval; - s.tmp_0.arg0 = r0; - r0 = (s.currentDuration___21619 * s.beat___21693); - s.tmp_0.arg1 = r0; - s.callLocIdx = 67; s.pc = 42; return s.tmp_0; - case 42: +switch (step) { + case 0: + + s.str___23600 = undefined; + s.buf___23603 = undefined; + s.i___23610 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_DigitWidgetEditor__C4551_VT)) failedCast(r0, microcode_DigitWidgetEditor__C4551_VT); + s.tmp_0 = if_num_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "num"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["num"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["num"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 1826; s.pc = 3; return s.tmp_0; } + } + case 3: r0 = s.retval; - case 30: - r0 = (s.arg0).fields["currentDuration"] = (s.currentDuration___21619); - r0 = (s.arg0).fields["currentOctave"] = (s.currentOctave___21623); - r0 = s.arg0.fields["repeating"]; + s.str___23600 = (r0); + r0 = pxsim_String_.length(s.str___23600); + s.tmp_1 = r0; + r0 = (s.tmp_1 + 1); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 31; continue; } - r0 = s.tmp_0; - { step = 32; continue; } - case 31: - s.tmp_1 = r0 = s.currentPos___21615; - r0 = s.arg0.fields["melodyArray"]; - s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); + r0 = pxsim.control.createBuffer(s.tmp_0); + s.buf___23603 = (r0); + s.i___23610 = (0); + case 1: + s.tmp_1 = r0 = s.i___23610; + r0 = pxsim_String_.length(s.str___23600); s.tmp_2 = r0; - r0 = (s.tmp_1 == s.tmp_2); - case 32: - // jmp value (already in r0) - s.tmp_5 = r0; - s.repeating___21716 = (s.tmp_5); - r0 = pxsim_numops_toBoolDecr(s.repeating___21716); - if (!r0) { step = 33; continue; } - r0 = 0; - { step = 34; continue; } - case 33: - r0 = (s.currentPos___21615 + 1); - case 34: - // jmp value (already in r0) - s.tmp_0 = r0; - r0 = (s.arg0).fields["currentPos"] = (s.tmp_0); - r0 = s.arg0.fields["background"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 | 1); + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); - r0 = pxsim_numops_toBoolDecr(s.repeating___21716); - if (!r0) { step = 35; continue; } - r0 = s.arg0.fields["background"]; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 2; continue; } + s.tmp_3 = r0 = s.buf___23603; + s.tmp_4 = r0 = s.i___23610; + r0 = pxsim_String_.charCodeAt(s.str___23600, s.i___23610); + s.tmp_5 = r0; + r0 = pxsim.BufferMethods.setUint8(s.tmp_3, s.tmp_4, s.tmp_5); + r0 = (s.i___23610 + 1); + s.i___23610 = (r0); + { step = 1; continue; } + case 2: + s.tmp_0 = r0 = s.buf___23603; + r0 = pxsim_String_.length(s.str___23600); s.tmp_1 = r0; - r0 = (s.tmp_1 | 4); - s.tmp_0 = r0; - r0 = pxsim.control.raiseEvent(2000, s.tmp_0, 1); - case 35: - case 36: - r0 = undefined; + r0 = pxsim.BufferMethods.setUint8(s.tmp_0, s.tmp_1, 0); + r0 = s.buf___23603; return leave(s, r0) default: oops() } } } -music_playNextNote__P4899.info = {"start":19671,"length":2366,"line":571,"column":4,"endLine":618,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"playNextNote","argumentNames":["melody"]} +microcode_DigitWidgetEditor_toBuffer__P4557.info = {"start":2171,"length":317,"line":82,"column":8,"endLine":90,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toBuffer","argumentNames":["this","field"]} -function music_playNextNote__P4899_mk(s) { +function microcode_DigitWidgetEditor_toBuffer__P4557_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_playNextNote__P4899, depth: s.depth + 1, + parent: s, fn: microcode_DigitWidgetEditor_toBuffer__P4557, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -63988,27 +69484,17 @@ function music_playNextNote__P4899_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - currNote___21612: undefined, - currentPos___21615: undefined, - currentDuration___21619: undefined, - currentOctave___21623: undefined, - note___21627: undefined, - isrest___21628: undefined, - beatPos___21629: undefined, - parsingOctave___21630: undefined, - prevNote___21631: undefined, - pos___21632: undefined, - noteChar___21638: undefined, - beat___21693: undefined, - repeating___21716: undefined, + str___23600: undefined, + buf___23603: undefined, + i___23610: undefined, arg0: undefined, + arg1: undefined, } } - -function music_getFrequencyForNote__P2706(s) { +function microcode_DigitWidgetEditor_editor__P4555(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64021,57 +69507,47 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); + s.arg5 = (s.lambdaArgs[5]); s.lambdaArgs = null; } - s.tmp_1 = r0 = globals.freqs___4891; - s.tmp_4 = r0 = s.arg1; - r0 = (s.arg0 - 1); - s.tmp_6 = r0; - r0 = (12 * s.tmp_6); - s.tmp_5 = r0; - r0 = (s.tmp_4 + s.tmp_5); - s.tmp_3 = r0; - r0 = (s.tmp_3 * 2); - s.tmp_2 = r0; - r0 = pxsim.BufferMethods.getNumber(s.tmp_1, 4, s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_DigitWidgetEditor__C4551_VT)) failedCast(r0, microcode_DigitWidgetEditor__C4551_VT); + s.tmp_0 = microcode_digitWidgetEditor__P6023_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.arg3; + s.tmp_0.arg2 = s.arg4; + r0 = s.arg0.fields["posInt"]; + s.tmp_0.arg3 = r0; + s.callLocIdx = 1823; s.pc = 1; return s.tmp_0; case 1: - r0 = 0; - case 2: - // jmp value (already in r0) - s.tmp_7 = r0; - r0 = s.tmp_7; + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -music_getFrequencyForNote__P2706.info = {"start":18887,"length":167,"line":551,"column":4,"endLine":553,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"getFrequencyForNote","argumentNames":["octave","note"]} +microcode_DigitWidgetEditor_editor__P4555.info = {"start":1803,"length":244,"line":70,"column":8,"endLine":78,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"editor","argumentNames":["this","field","picker","onHide","onDelete","param"]} -function music_getFrequencyForNote__P2706_mk(s) { +function microcode_DigitWidgetEditor_editor__P4555_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_getFrequencyForNote__P2706, depth: s.depth + 1, + parent: s, fn: microcode_DigitWidgetEditor_editor__P4555, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, + arg5: undefined, } } - -function music_playTone__P2684(s) { +function microcode_digitWidgetEditor__P6023(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64081,80 +69557,125 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.fixup___23648 = undefined; + s.kb___23656 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - s.tmp_1 = isNaN__P2122_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 46; s.pc = 8; return s.tmp_1; - case 8: - r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, fixup_inline__P23649); s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg3); + s.fixup___23648 = (s.tmp_0); + r0 = pxsim_pxtcore_mkClassInstance(microgui_Keyboard__C3876_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "app", globals.app___4044); + r0 = pxsim_numops_toBoolDecr(s.arg3); if (!r0) { step = 1; continue; } - r0 = s.tmp_0; + r0 = 2; { step = 2; continue; } case 1: - s.tmp_2 = isNaN__P2122_mk(s); - s.tmp_2.arg0 = s.arg1; - s.callLocIdx = 47; s.pc = 9; return s.tmp_2; - case 9: - r0 = s.retval; + r0 = 1; case 2: // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "layout", s.tmp_2); + r0 = pxsim_pxtcore_mkAction(3, cb_inline__P23663); s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); + r0 = pxsim_pxtrt_stclo(s.tmp_3, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_3, 1, s.fixup___23648); + r0 = pxsim_pxtrt_stclo(s.tmp_3, 2, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "cb", s.tmp_3); + r0 = (s.arg2 == undefined); + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); if (!r0) { step = 3; continue; } - { step = 7; continue; } + r0 = undefined; + { step = 4; continue; } case 3: + r0 = pxsim_pxtcore_mkAction(1, deleteFn_inline__P23676); + s.tmp_5 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_5, 0, s.arg2); + r0 = s.tmp_5; case 4: - r0 = pxsim_numops_toBoolDecr(globals._playTone___4892); - if (!r0) { step = 5; continue; } - s.tmp_4 = lambda_3_mk(s); - s.tmp_4.argL = globals._playTone___4892; - s.tmp_4.arg0 = s.arg0; - s.tmp_4.arg1 = s.arg1; - setupLambda(s.tmp_4, s.tmp_4.argL); - s.callLocIdx = 48; s.pc = 10; return s.tmp_4; - case 10: - r0 = s.retval; - { step = 6; continue; } + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "deleteFn", s.tmp_6); + r0 = pxsim_pxtcore_mkAction(3, backBtn_inline__P23680); + s.tmp_7 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_7, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_7, 1, s.fixup___23648); + r0 = pxsim_pxtrt_stclo(s.tmp_7, 2, s.arg1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "backBtn", s.tmp_7); + s.tmp_9 = if_num_1_mk(s); + s.tmp_9.arg0 = s.arg0; + if (!s.tmp_9.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_9.arg0, "num"); + } else { + s.tmp_9.fn = s.tmp_9.arg0.vtable.iface["num"]; + if (s.tmp_9.fn == null) { s.retval = s.tmp_9.arg0.fields["num"]; } + else if (!s.tmp_9.fn.isGetter) { s.retval = bind(s.tmp_9); } + else { s.callLocIdx = 1870; s.pc = 5; return s.tmp_9; } + } case 5: - setupResume(s, 11); - pxsim.pins.analogPitch(s.arg0, s.arg1); - checkResumeConsumed(); - return; - case 11: r0 = s.retval; + s.tmp_8 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "defaultTxt", s.tmp_8); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "maxTxtLength", 8); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "foregroundColor", 10); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "backgroundColor", 12); + s.tmp_10 = microgui_Keyboard_constructor__P3877_mk(s); + s.tmp_10.arg0 = s.tmp_0; + s.tmp_10.arg1 = s.tmp_1; + s.callLocIdx = 1871; s.pc = 6; return s.tmp_10; case 6: + r0 = s.retval; + s.kb___23656 = (s.tmp_0); + s.tmp_0 = microcode_App_pushScene__P4446_mk(s); + s.tmp_0.arg0 = globals.app___4044; + s.tmp_0.arg1 = s.kb___23656; + s.callLocIdx = 1872; s.pc = 7; return s.tmp_0; case 7: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -music_playTone__P2684.info = {"start":6394,"length":215,"line":202,"column":4,"endLine":206,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"playTone","argumentNames":["frequency","ms"]} +microcode_digitWidgetEditor__P6023.info = {"start":10316,"length":1139,"line":333,"column":4,"endLine":370,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"digitWidgetEditor","argumentNames":["bn","onHide","onDelete","posInt"]} -function music_playTone__P2684_mk(s) { +function microcode_digitWidgetEditor__P6023_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_playTone__P2684, depth: s.depth + 1, + parent: s, fn: microcode_digitWidgetEditor__P6023, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + fixup___23648: undefined, + kb___23656: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, } } - -function music_rest__P2686(s) { +function fixup_inline__P23649(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64168,32 +69689,46 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = music_playTone__P2684_mk(s); - s.tmp_0.arg0 = 0; - s.tmp_0.arg1 = s.arg0; - s.callLocIdx = 49; s.pc = 1; return s.tmp_0; + s.tmp_0 = r0 = s.caps[0]; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - r0 = undefined; + r0 = (s.arg0 == "0"); + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 3; continue; } + r0 = "1"; + { step = 4; continue; } + case 3: + r0 = s.arg0; + case 4: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = s.tmp_2; return leave(s, r0) default: oops() } } } -music_rest__P2686.info = {"start":7316,"length":71,"line":229,"column":4,"endLine":231,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"rest","argumentNames":["ms"]} +fixup_inline__P23649.info = {"start":10483,"length":80,"line":339,"column":22,"endLine":341,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["txt"]} -function music_rest__P2686_mk(s) { +function fixup_inline__P23649_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_rest__P2686, depth: s.depth + 1, + parent: s, fn: fixup_inline__P23649, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, arg0: undefined, } } - -function helpers_stringSubstr__P2147(s) { +function cb_inline__P23663(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64205,57 +69740,59 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = (s.arg2 === undefined); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = pxsim_String_.length(s.arg0); - { step = 4; continue; } - case 1: - s.tmp_1 = r0 = s.arg2; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 2; continue; } - r0 = s.tmp_1; - { step = 3; continue; } + s.tmp_0 = if_num_2_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_1 = lambda_2_mk(s); + s.tmp_1.argL = s.caps[1]; + s.tmp_1.arg0 = s.arg0; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 1860; s.pc = 2; return s.tmp_1; case 2: - r0 = 0; + r0 = s.retval; + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapSetByString(s.tmp_0.arg0, "num", s.tmp_0.arg1); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["set/num"]; + if (s.tmp_0.fn === null) { s.tmp_0.arg0.fields["num"] = s.tmp_0.arg1; } + else if (s.tmp_0.fn === undefined) { failedCast(s.tmp_0.arg0) } + else { s.callLocIdx = 1861; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + s.tmp_0 = microcode_App_popScene__P4447_mk(s); + s.tmp_0.arg0 = globals.app___4044; + s.callLocIdx = 1862; s.pc = 3; return s.tmp_0; case 3: - // jmp value (already in r0) - s.tmp_2 = r0; - r0 = s.tmp_2; + r0 = s.retval; + s.tmp_0 = lambda_1_mk(s); + s.tmp_0.argL = s.caps[2]; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1863; s.pc = 4; return s.tmp_0; case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - s.arg2 = (s.tmp_3); - r0 = pxsim_String_.substr(s.arg0, s.arg1, s.arg2); + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_stringSubstr__P2147.info = {"start":11286,"length":204,"line":379,"column":4,"endLine":382,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringSubstr","argumentNames":["s","start","length"]} +cb_inline__P23663.info = {"start":10787,"length":124,"line":347,"column":16,"endLine":351,"endColumn":13,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["txt"]} -function helpers_stringSubstr__P2147_mk(s) { +function cb_inline__P23663_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_stringSubstr__P2147, depth: s.depth + 1, + parent: s, fn: cb_inline__P23663, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function music_parseIntSimple__P4898(s) { +function deleteFn_inline__P23676(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64265,79 +69802,35 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.result___21805 = undefined; - s.i___21806 = undefined; - s.c___21812 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.result___21805 = (0); - s.i___21806 = (0); + s.tmp_0 = microcode_App_popScene__P4447_mk(s); + s.tmp_0.arg0 = globals.app___4044; + s.callLocIdx = 1864; s.pc = 1; return s.tmp_0; case 1: - s.tmp_1 = r0 = s.i___21806; - r0 = pxsim_String_.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = pxsim_String_.charCodeAt(s.arg0, s.i___21806); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 48); - s.c___21812 = (r0); - r0 = (s.c___21812 < 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } + r0 = s.retval; + s.tmp_0 = lambda_1_mk(s); + s.tmp_0.argL = s.caps[0]; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1865; s.pc = 2; return s.tmp_0; case 2: - r0 = (s.c___21812 > 9); - case 3: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 4; continue; } - r0 = NaN; - { step = 7; continue; } - case 4: - case 5: - r0 = (s.result___21805 * 10); - s.tmp_2 = r0; - r0 = (s.tmp_2 + s.c___21812); - s.result___21805 = (r0); - r0 = (s.i___21806 + 1); - s.i___21806 = (r0); - { step = 1; continue; } - case 6: - r0 = s.result___21805; - case 7: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -music_parseIntSimple__P4898.info = {"start":19386,"length":279,"line":561,"column":4,"endLine":569,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"parseIntSimple","argumentNames":["text"]} +deleteFn_inline__P23676.info = {"start":11027,"length":109,"line":355,"column":22,"endLine":358,"endColumn":23,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":[]} -function music_parseIntSimple__P4898_mk(s) { +function deleteFn_inline__P23676_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_parseIntSimple__P4898, depth: s.depth + 1, + parent: s, fn: deleteFn_inline__P23676, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - result___21805: undefined, - i___21806: undefined, - c___21812: undefined, - arg0: undefined, } } - -function music_Melody_nextNote__P4902(s) { +function backBtn_inline__P23680(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64347,41 +69840,61 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.currentNote___21834 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, music_Melody__C4900_VT)) failedCast(r0, music_Melody__C4900_VT); - r0 = s.arg0.fields["melodyArray"]; - s.tmp_0 = r0; - r0 = s.arg0.fields["currentPos"]; - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); - s.currentNote___21834 = (r0); - r0 = s.currentNote___21834; + s.tmp_0 = if_num_2_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_1 = lambda_2_mk(s); + s.tmp_1.argL = s.caps[1]; + s.tmp_1.arg0 = s.arg0; + setupLambda(s.tmp_1, s.tmp_1.argL); + s.callLocIdx = 1866; s.pc = 2; return s.tmp_1; + case 2: + r0 = s.retval; + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapSetByString(s.tmp_0.arg0, "num", s.tmp_0.arg1); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["set/num"]; + if (s.tmp_0.fn === null) { s.tmp_0.arg0.fields["num"] = s.tmp_0.arg1; } + else if (s.tmp_0.fn === undefined) { failedCast(s.tmp_0.arg0) } + else { s.callLocIdx = 1867; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + s.tmp_0 = microcode_App_popScene__P4447_mk(s); + s.tmp_0.arg0 = globals.app___4044; + s.callLocIdx = 1868; s.pc = 3; return s.tmp_0; + case 3: + r0 = s.retval; + s.tmp_0 = lambda_1_mk(s); + s.tmp_0.argL = s.caps[2]; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 1869; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -music_Melody_nextNote__P4902.info = {"start":23003,"length":129,"line":643,"column":8,"endLine":646,"endColumn":9,"fileName":"pxt_modules/core/music.ts","functionName":"nextNote","argumentNames":["this"]} +backBtn_inline__P23680.info = {"start":11159,"length":124,"line":359,"column":21,"endLine":363,"endColumn":13,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["txt"]} -function music_Melody_nextNote__P4902_mk(s) { +function backBtn_inline__P23680_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_Melody_nextNote__P4902, depth: s.depth + 1, + parent: s, fn: backBtn_inline__P23680, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - currentNote___21834: undefined, arg0: undefined, } } - -function music_Melody_hasNextNote__P4901(s) { +function microgui_Keyboard_constructor__P3877(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64393,106 +69906,344 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, music_Melody__C4900_VT)) failedCast(r0, music_Melody__C4900_VT); - r0 = s.arg0.fields["repeating"]; + r0 = s.arg0; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + r0 = (s.arg0).fields["backgroundCaptured_"] = (false); + r0 = (s.arg0).fields["shakeStrength"] = (5); + r0 = (s.arg0).fields["FRAME_COUNTER_CURSOR_ON"] = (20); + r0 = (s.arg0).fields["FRAME_COUNTER_CURSOR_OFF"] = (60); + r0 = (s.arg0).fields["MAX_TEXT_LENGTH"] = (22); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_GridNavigator__C3767_VT); + s.tmp_0 = r0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_Array__mk(); + s.tmp_2 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); + s.tmp_3 = user_interface_base_GridNavigator_constructor__P3768_mk(s); + s.tmp_3.arg0 = s.tmp_0; + s.tmp_3.arg1 = s.tmp_1; + s.callLocIdx = 882; s.pc = 13; return s.tmp_3; + case 13: + r0 = s.retval; + s.tmp_4 = user_interface_base_CursorScene_constructor__P3803_mk(s); + s.tmp_4.arg0 = s.arg0; + s.tmp_5 = if_app_1_mk(s); + s.tmp_5.arg0 = s.arg1; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "app"); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["app"]; + if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["app"]; } + else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } + else { s.callLocIdx = 881; s.pc = 15; return s.tmp_5; } + } + case 15: + r0 = s.retval; + s.tmp_4.arg1 = r0; + s.tmp_4.arg2 = s.tmp_0; + s.callLocIdx = 883; s.pc = 14; return s.tmp_4; + case 14: + r0 = s.retval; + s.tmp_1 = if_defaultTxt_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "defaultTxt"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["defaultTxt"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["defaultTxt"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 884; s.pc = 16; return s.tmp_1; } + } + case 16: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_2 = if_defaultTxt_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "defaultTxt"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["defaultTxt"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["defaultTxt"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 885; s.pc = 17; return s.tmp_2; } + } + case 17: + r0 = s.retval; + { step = 2; continue; } + case 1: + r0 = pxsim_String_.mkEmpty(); + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = (s.arg0).fields["text"] = (s.tmp_3); + r0 = (s.arg0).fields["isUpperCase"] = (true); + s.tmp_1 = if_maxTxtLength_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "maxTxtLength"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["maxTxtLength"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["maxTxtLength"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 886; s.pc = 18; return s.tmp_1; } + } + case 18: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + s.tmp_2 = Math_min__P2160_mk(s); + s.tmp_3 = if_maxTxtLength_1_mk(s); + s.tmp_3.arg0 = s.arg1; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "maxTxtLength"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["maxTxtLength"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["maxTxtLength"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 887; s.pc = 20; return s.tmp_3; } + } + case 20: + r0 = s.retval; + s.tmp_2.arg0 = r0; + r0 = s.arg0.fields["MAX_TEXT_LENGTH"]; + s.tmp_2.arg1 = r0; + s.callLocIdx = 888; s.pc = 19; return s.tmp_2; + case 19: + r0 = s.retval; + { step = 4; continue; } + case 3: + r0 = s.arg0.fields["MAX_TEXT_LENGTH"]; + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = (s.arg0).fields["maxTxtLength"] = (s.tmp_4); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_cb_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "cb"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["cb"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["cb"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 889; s.pc = 21; return s.tmp_2; } + } + case 21: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["nextBtnFn"] = (s.tmp_1); + r0 = (s.arg0).fields["frameCounter"] = (0); + r0 = (s.arg0).fields["shakingText"] = (false); + r0 = (s.arg0).fields["shakeTextCounter"] = (0); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_layout_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "layout"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["layout"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["layout"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 890; s.pc = 22; return s.tmp_2; } + } + case 22: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["keyboardLayout"] = (s.tmp_1); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3336_VT); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mkMap(); + s.tmp_1 = r0; + r0 = (globals.user_interface_base_Screen_WIDTH___3412 - 8); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", 72); + r0 = (globals.user_interface_base_Screen_TOP_EDGE___3418 + 44); + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_3); + r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3416 + 4); + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.tmp_4); + s.tmp_5 = user_interface_base_Bounds_constructor__P3349_mk(s); + s.tmp_5.arg0 = s.tmp_0; + s.tmp_5.arg1 = s.tmp_1; + s.callLocIdx = 891; s.pc = 23; return s.tmp_5; + case 23: + r0 = s.retval; + r0 = (s.arg0).fields["keyboardBounds"] = (s.tmp_0); + s.tmp_1 = if_foregroundColor_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "foregroundColor"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["foregroundColor"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["foregroundColor"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 892; s.pc = 24; return s.tmp_1; } + } + case 24: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_2 = if_foregroundColor_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "foregroundColor"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["foregroundColor"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["foregroundColor"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 893; s.pc = 25; return s.tmp_2; } + } + case 25: + r0 = s.retval; + { step = 6; continue; } + case 5: + r0 = 4; + case 6: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = (s.arg0).fields["foregroundColor"] = (s.tmp_3); + s.tmp_1 = if_backgroundColor_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "backgroundColor"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["backgroundColor"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["backgroundColor"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 894; s.pc = 26; return s.tmp_1; } + } + case 26: + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = s.arg0.fields["currentPos"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["melodyArray"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - case 2: + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.tmp_2 = if_backgroundColor_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "backgroundColor"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["backgroundColor"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["backgroundColor"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 895; s.pc = 27; return s.tmp_2; } + } + case 27: + r0 = s.retval; + { step = 8; continue; } + case 7: + r0 = 6; + case 8: // jmp value (already in r0) - s.tmp_4 = r0; - r0 = s.tmp_4; - return leave(s, r0) - default: oops() -} } } -music_Melody_hasNextNote__P4901.info = {"start":22888,"length":105,"line":639,"column":8,"endLine":641,"endColumn":9,"fileName":"pxt_modules/core/music.ts","functionName":"hasNextNote","argumentNames":["this"]} - -function music_Melody_hasNextNote__P4901_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: music_Melody_hasNextNote__P4901, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, -} } - - - - - -function music_Melody_constructor__P4903(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.lambdaArgs = null; + s.tmp_3 = r0; + s.tmp_4 = user_interface_base_Scene_backgroundColor__P3662_mk(s); + s.tmp_4.arg0 = s.arg0; + s.tmp_4.arg1 = s.tmp_3; + s.callLocIdx = 896; s.pc = 28; return s.tmp_4; + case 28: + r0 = s.retval; + s.tmp_1 = if_txtColor_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "txtColor"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["txtColor"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["txtColor"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 897; s.pc = 29; return s.tmp_1; } } - r0 = s.arg0; - if (!checkSubtype(r0, music_Melody__C4900_VT)) failedCast(r0, music_Melody__C4900_VT); - r0 = (s.arg0).fields["melodyArray"] = (s.arg1); - s.tmp_0 = r0 = s.arg0; - r0 = (s.arg2 & 10); - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - s.tmp_4 = r0; - r0 = pxsim_Boolean__bang(s.tmp_4); + case 29: + r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + s.tmp_2 = if_txtColor_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "txtColor"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["txtColor"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["txtColor"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 898; s.pc = 30; return s.tmp_2; } + } + case 30: + r0 = s.retval; + { step = 10; continue; } + case 9: + r0 = 1; + case 10: + // jmp value (already in r0) s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); + r0 = (s.arg0).fields["txtColor"] = (s.tmp_3); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = if_deleteFn_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "deleteFn"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["deleteFn"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["deleteFn"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 899; s.pc = 31; return s.tmp_2; } + } + case 31: + r0 = s.retval; s.tmp_1 = r0; - r0 = (s.tmp_0).fields["repeating"] = (s.tmp_1); - r0 = (s.arg2 & 12); + r0 = (s.tmp_0).fields["passedDeleteFn"] = (s.tmp_1); + s.tmp_1 = if_backBtn_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "backBtn"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["backBtn"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["backBtn"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 900; s.pc = 32; return s.tmp_1; } + } + case 32: + r0 = s.retval; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = 240; - { step = 2; continue; } - case 1: - r0 = 0; - case 2: + if (!r0) { step = 11; continue; } + s.tmp_2 = if_backBtn_1_mk(s); + s.tmp_2.arg0 = s.arg1; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "backBtn"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["backBtn"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["backBtn"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 901; s.pc = 33; return s.tmp_2; } + } + case 33: + r0 = s.retval; + { step = 12; continue; } + case 11: + r0 = microgui_Keyboard_inline__P23802; + case 12: // jmp value (already in r0) - s.tmp_1 = r0; - r0 = (s.arg0).fields["background"] = (s.tmp_1); - r0 = (s.arg0).fields["currentDuration"] = (4); - r0 = (s.arg0).fields["currentOctave"] = (4); - r0 = (s.arg0).fields["currentPos"] = (0); + s.tmp_3 = r0; + r0 = (s.arg0).fields["passedBackBtn"] = (s.tmp_3); r0 = undefined; return leave(s, r0) default: oops() } } } -music_Melody_constructor__P4903.info = {"start":22384,"length":494,"line":630,"column":8,"endLine":637,"endColumn":9,"fileName":"pxt_modules/core/music.ts","functionName":"inline","argumentNames":["this","melodyArray","options"]} +microgui_Keyboard_constructor__P3877.info = {"start":12305,"length":1387,"line":381,"column":4,"endLine":418,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["this","opts"]} -function music_Melody_constructor__P4903_mk(s) { +function microgui_Keyboard_constructor__P3877_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_Melody_constructor__P4903, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_constructor__P3877, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -64502,14 +70253,12 @@ function music_Melody_constructor__P4903_mk(s) { tmp_5: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function music_init__P4895(s) { +function microgui_Keyboard_inline__P23802(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64519,32 +70268,23 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = (globals.beatsPerMinute___4888 <= 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - globals.beatsPerMinute___4888 = (120); - case 1: - case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -music_init__P4895.info = {"start":7868,"length":78,"line":250,"column":4,"endLine":252,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"init","argumentNames":[]} +microgui_Keyboard_inline__P23802.info = {"start":13676,"length":9,"line":417,"column":59,"endLine":417,"endColumn":68,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":[]} -function music_init__P4895_mk(s) { +function microgui_Keyboard_inline__P23802_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_init__P4895, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_inline__P23802, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, } } - -function music_setTempo__P2691(s) { +function user_interface_base_GridNavigator_constructor__P3768(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64556,60 +70296,62 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - s.tmp_0 = music_init__P4895_mk(s); - s.callLocIdx = 50; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.tmp_1 = isNaN__P2122_mk(s); - s.tmp_1.arg0 = s.arg0; - s.callLocIdx = 51; s.pc = 7; return s.tmp_1; - case 7: + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_GridNavigator__C3767_VT)) failedCast(r0, user_interface_base_GridNavigator__C3767_VT); + s.tmp_0 = user_interface_base_RowNavigator_constructor__P3754_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 776; s.pc = 3; return s.tmp_0; + case 3: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); + r0 = pxsim_numops_toBoolDecr(s.arg1); if (!r0) { step = 1; continue; } - { step = 5; continue; } + r0 = (s.arg0).fields["buttonGroups"] = (s.arg1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = helpers_arrayMap__P2135_mk(s); + s.tmp_2.arg0 = s.arg1; + s.tmp_2.arg1 = user_interface_base_GridNavigator_inline__P23815; + s.callLocIdx = 777; s.pc = 4; return s.tmp_2; + case 4: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["widths"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__length(s.arg1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["height"] = (s.tmp_1); + { step = 2; continue; } case 1: + r0 = (s.arg0).fields["height"] = (0); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["widths"] = (s.tmp_1); case 2: - r0 = (s.arg0 > 0); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 3; continue; } - s.tmp_3 = Math_max__P2159_mk(s); - s.tmp_3.arg0 = 1; - s.tmp_3.arg1 = s.arg0; - s.callLocIdx = 52; s.pc = 8; return s.tmp_3; - case 8: - r0 = s.retval; - globals.beatsPerMinute___4888 = (r0); - case 3: - case 4: - case 5: r0 = undefined; return leave(s, r0) default: oops() } } } -music_setTempo__P2691.info = {"start":9905,"length":179,"line":310,"column":4,"endLine":316,"endColumn":5,"fileName":"pxt_modules/core/music.ts","functionName":"setTempo","argumentNames":["bpm"]} +user_interface_base_GridNavigator_constructor__P3768.info = {"start":7067,"length":329,"line":218,"column":8,"endLine":229,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["this","btns"]} -function music_setTempo__P2691_mk(s) { +function user_interface_base_GridNavigator_constructor__P3768_mk(s) { checkStack(s.depth); return { - parent: s, fn: music_setTempo__P2691, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_constructor__P3768, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_Scene_xfrm__P3687(s) { +function user_interface_base_GridNavigator_inline__P23815(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64623,19 +70365,16 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); - r0 = s.arg0.fields["xfrm_"]; - return leaveAccessor(s, r0) + r0 = pxsim_Array__length(s.arg0); + return leave(s, r0) default: oops() } } } -user_interface_base_Scene_xfrm__P3687.info = {"start":681,"length":59,"line":18,"column":8,"endLine":20,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"xfrm","argumentNames":["this"]} -user_interface_base_Scene_xfrm__P3687.isGetter = true; +user_interface_base_GridNavigator_inline__P23815.info = {"start":7225,"length":17,"line":223,"column":39,"endLine":223,"endColumn":56,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["row"]} -function user_interface_base_Scene_xfrm__P3687_mk(s) { +function user_interface_base_GridNavigator_inline__P23815_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_xfrm__P3687, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_inline__P23815, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, } } @@ -64643,8 +70382,7 @@ function user_interface_base_Scene_xfrm__P3687_mk(s) { - -function user_interface_base_SceneManager_popScene__P3705(s) { +function microcode_IconEditor_getIcon__P4576(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64654,227 +70392,58 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.prevScene___21896 = undefined; - s.currScene___21907 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_SceneManager__C3701_VT)) failedCast(r0, user_interface_base_SceneManager__C3701_VT); - r0 = s.arg0.fields["scenes"]; - s.tmp_0 = r0; - r0 = pxsim_Array_.pop(s.tmp_0); - s.prevScene___21896 = (r0); - r0 = pxsim_numops_toBoolDecr(s.prevScene___21896); - if (!r0) { step = 1; continue; } - s.tmp_0 = user_interface_base_Scene__C3686_v3_1_mk(s); - s.tmp_0.arg0 = s.prevScene___21896; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.deactivate; - s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.tmp_0 = user_interface_base_Scene__C3686_v1_1_mk(s); - s.tmp_0.arg0 = s.prevScene___21896; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.shutdown; - s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - s.tmp_0 = context_popEventContext__P3293_mk(s); - s.callLocIdx = 611; s.pc = 7; return s.tmp_0; - case 7: - r0 = s.retval; - case 1: - case 2: - s.tmp_0 = user_interface_base_SceneManager_currScene__P5269_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 612; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - s.currScene___21907 = (r0); - r0 = pxsim_numops_toBoolDecr(s.currScene___21907); - if (!r0) { step = 3; continue; } - s.tmp_0 = user_interface_base_Scene__C3686_v2_1_mk(s); - s.tmp_0.arg0 = s.currScene___21907; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3686_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.activate; - s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - case 3: - case 4: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -user_interface_base_SceneManager_popScene__P3705.info = {"start":4449,"length":365,"line":139,"column":8,"endLine":150,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"popScene","argumentNames":["this"]} - -function user_interface_base_SceneManager_popScene__P3705_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: user_interface_base_SceneManager_popScene__P3705, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - prevScene___21896: undefined, - currScene___21907: undefined, - arg0: undefined, -} } - - - - - -function context_popEventContext__P3293(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.ctx___21915 = undefined; - s.context___21923 = undefined; - r0 = pxsim_numops_toBoolDecr(globals.eventContexts___5089); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + if (!checkSubtype(r0, microcode_IconEditor__C4572_VT)) failedCast(r0, microcode_IconEditor__C4572_VT); + r0 = s.arg0.fields["firstInstance"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - { step = 7; continue; } - case 1: - case 2: - r0 = pxsim_Array_.pop(globals.eventContexts___5089); - s.ctx___21915 = (r0); - r0 = pxsim_numops_toBoolDecr(s.ctx___21915); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - { step = 7; continue; } + s.tmp_1 = microcode_getIcon__P4195_mk(s); + s.tmp_1.arg0 = 160; + s.callLocIdx = 1837; s.pc = 3; return s.tmp_1; case 3: - case 4: - s.tmp_2 = context_EventContext_unregister__P3285_mk(s); - s.tmp_2.arg0 = s.ctx___21915; - s.callLocIdx = 233; s.pc = 8; return s.tmp_2; - case 8: r0 = s.retval; - s.tmp_0 = r0 = globals.eventContexts___5089; - r0 = pxsim_Array__length(globals.eventContexts___5089); - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); - s.context___21923 = (r0); - r0 = pxsim_numops_toBoolDecr(s.context___21923); - if (!r0) { step = 5; continue; } - s.tmp_0 = context_EventContext_register__P3284_mk(s); - s.tmp_0.arg0 = s.context___21923; - s.callLocIdx = 234; s.pc = 9; return s.tmp_0; - case 9: - r0 = s.retval; - { step = 6; continue; } - case 5: - globals.eventContexts___5089 = (undefined); - case 6: - case 7: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -context_popEventContext__P3293.info = {"start":7412,"length":413,"line":229,"column":4,"endLine":243,"endColumn":5,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"popEventContext","argumentNames":[]} - -function context_popEventContext__P3293_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: context_popEventContext__P3293, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - ctx___21915: undefined, - context___21923: undefined, -} } - - - - - -function context_EventContext_register__P3284(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.h___21936 = undefined; - s.unnamed44___U1 = undefined; - s.unnamed45___U2 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, context_EventContext__C3278_VT)) failedCast(r0, context_EventContext__C3278_VT); - s.h___21936 = (undefined); - r0 = s.arg0.fields["handlers"]; - s.unnamed44___U1 = (r0); - s.unnamed45___U2 = (0); + { step = 2; continue; } case 1: - s.tmp_0 = r0 = s.unnamed45___U2; - r0 = pxsim_Array__length(s.unnamed44___U1); - s.tmp_1 = r0; - r0 = (s.tmp_0 < s.tmp_1); - if (!r0) { step = 2; continue; } - r0 = pxsim_Array__getAt(s.unnamed44___U1, s.unnamed45___U2); - s.h___21936 = (r0); - s.tmp_2 = context_EventHandler_register__P5082_mk(s); - s.tmp_2.arg0 = s.h___21936; - s.callLocIdx = 224; s.pc = 3; return s.tmp_2; - case 3: - r0 = s.retval; - r0 = (s.unnamed45___U2 + 1); - s.unnamed45___U2 = (r0); - { step = 1; continue; } - case 2: - s.unnamed44___U1 = (undefined); - s.tmp_0 = context_EventContext_registerFrameCallbacks__P5087_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 225; s.pc = 4; return s.tmp_0; + s.tmp_2 = microcode_FieldEditor__C5998_v3_2_mk(s); + r0 = s.arg0.fields["fieldEditor"]; + s.tmp_2.arg0 = r0; + r0 = s.arg0.fields["field"]; + s.tmp_2.arg1 = r0; + if (!checkSubtype(s.tmp_2.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_2.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.toImage; + s.pc = 4; return s.tmp_2; case 4: r0 = s.retval; - r0 = undefined; + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -context_EventContext_register__P3284.info = {"start":4230,"length":138,"line":128,"column":8,"endLine":132,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"register","argumentNames":["this"]} +microcode_IconEditor_getIcon__P4576.info = {"start":5362,"length":196,"line":188,"column":8,"endLine":192,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getIcon","argumentNames":["this"]} -function context_EventContext_register__P3284_mk(s) { +function microcode_IconEditor_getIcon__P4576_mk(s) { checkStack(s.depth); return { - parent: s, fn: context_EventContext_register__P3284, depth: s.depth + 1, + parent: s, fn: microcode_IconEditor_getIcon__P4576, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - h___21936: undefined, - unnamed44___U1: undefined, - unnamed45___U2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function user_interface_base_Scene_shutdown__P3692(s) { +function microcode_FieldEditor_toImage__P6002(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64886,29 +70455,30 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_Scene__C3686_VT)) failedCast(r0, user_interface_base_Scene__C3686_VT); + if (!checkSubtype(r0, microcode_FieldEditor__C5998_VT)) failedCast(r0, microcode_FieldEditor__C5998_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_Scene_shutdown__P3692.info = {"start":1466,"length":14,"line":46,"column":23,"endLine":46,"endColumn":37,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"shutdown","argumentNames":["this"]} +microcode_FieldEditor_toImage__P6002.info = {"start":724,"length":68,"line":25,"column":8,"endLine":27,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toImage","argumentNames":["this","field"]} -function user_interface_base_Scene_shutdown__P3692_mk(s) { +function microcode_FieldEditor_toImage__P6002_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_Scene_shutdown__P3692, depth: s.depth + 1, + parent: s, fn: microcode_FieldEditor_toImage__P6002, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, + arg1: undefined, } } - -function microcode_App_popScene__P4296(s) { +function microcode_MelodyEditor_getIcon__P4595(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64923,33 +70493,53 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_App__C4291_VT)) failedCast(r0, microcode_App__C4291_VT); - s.tmp_0 = user_interface_base_SceneManager_popScene__P3705_mk(s); - r0 = s.arg0.fields["sceneManager"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1127; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_MelodyEditor__C4591_VT)) failedCast(r0, microcode_MelodyEditor__C4591_VT); + r0 = s.arg0.fields["firstInstance"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = microcode_getIcon__P4195_mk(s); + s.tmp_1.arg0 = 179; + s.callLocIdx = 1851; s.pc = 3; return s.tmp_1; + case 3: + r0 = s.retval; + { step = 2; continue; } case 1: + s.tmp_2 = microcode_FieldEditor__C5998_v3_2_mk(s); + r0 = s.arg0.fields["fieldEditor"]; + s.tmp_2.arg0 = r0; + r0 = s.arg0.fields["field"]; + s.tmp_2.arg1 = r0; + if (!checkSubtype(s.tmp_2.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_2.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.toImage; + s.pc = 4; return s.tmp_2; + case 4: r0 = s.retval; - r0 = undefined; + case 2: + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -microcode_App_popScene__P4296.info = {"start":1730,"length":70,"line":60,"column":8,"endLine":62,"endColumn":9,"fileName":"app.ts","functionName":"popScene","argumentNames":["this"]} +microcode_MelodyEditor_getIcon__P4595.info = {"start":8211,"length":198,"line":277,"column":8,"endLine":281,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getIcon","argumentNames":["this"]} -function microcode_App_popScene__P4296_mk(s) { +function microcode_MelodyEditor_getIcon__P4595_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_App_popScene__P4296, depth: s.depth + 1, + parent: s, fn: microcode_MelodyEditor_getIcon__P4595, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function microcode_RuleRowNavigator_reportAria__P5840(s) { +function microcode_DigitEditor_getIcon__P4562(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -64959,159 +70549,58 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.accessibilityMessage___21951 = undefined; - s.ruleDef___21959 = undefined; - s.whens___21966 = undefined; - s.dos___21978 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_RuleRowNavigator__C4578_VT)) failedCast(r0, microcode_RuleRowNavigator__C4578_VT); - r0 = pxsim_numops_toBoolDecr(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); + if (!checkSubtype(r0, microcode_DigitEditor__C4559_VT)) failedCast(r0, microcode_DigitEditor__C4559_VT); + r0 = s.arg0.fields["firstInstance"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - { step = 11; continue; } - case 1: - case 2: - r0 = s.arg0.fields["row"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 > 0); - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (r0) { step = 3; continue; } - r0 = s.tmp_2; - { step = 4; continue; } + s.tmp_1 = microcode_getIcon__P4195_mk(s); + s.tmp_1.arg0 = 255; + s.callLocIdx = 1830; s.pc = 3; return s.tmp_1; case 3: - r0 = s.arg0.fields["col"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 == 0); - case 4: - // jmp value (already in r0) - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); - if (!r0) { step = 5; continue; } - r0 = s.arg0.fields["rules"]; - s.tmp_6 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_8 = r0; - r0 = (s.tmp_8 - 1); - s.tmp_7 = r0; - r0 = pxsim_Array__getAt(s.tmp_6, s.tmp_7); - s.ruleDef___21959 = (r0); - s.tmp_0 = helpers_arrayMap__P2135_mk(s); - s.tmp_1 = helpers_arrayConcat__P2142_mk(s); - r0 = s.ruleDef___21959.fields["sensors"]; - s.tmp_1.arg0 = r0; - r0 = s.ruleDef___21959.fields["filters"]; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1653; s.pc = 13; return s.tmp_1; - case 13: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = whens_inline__P21968; - s.callLocIdx = 1655; s.pc = 12; return s.tmp_0; - case 12: r0 = s.retval; - s.whens___21966 = (r0); - s.tmp_0 = helpers_arrayMap__P2135_mk(s); - s.tmp_1 = helpers_arrayConcat__P2142_mk(s); - r0 = s.ruleDef___21959.fields["actuators"]; - s.tmp_1.arg0 = r0; - s.tmp_2 = helpers_arrayMap__P2135_mk(s); - r0 = s.ruleDef___21959.fields["modifiers"]; + { step = 2; continue; } + case 1: + s.tmp_2 = microcode_FieldEditor__C5998_v3_2_mk(s); + r0 = s.arg0.fields["fieldEditor"]; s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = map_inline__P21988; - s.callLocIdx = 1657; s.pc = 16; return s.tmp_2; - case 16: - r0 = s.retval; - s.tmp_1.arg1 = r0; - s.callLocIdx = 1658; s.pc = 15; return s.tmp_1; - case 15: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = dos_inline__P21980; - s.callLocIdx = 1660; s.pc = 14; return s.tmp_0; - case 14: + r0 = s.arg0.fields["field"]; + s.tmp_2.arg1 = r0; + if (!checkSubtype(s.tmp_2.arg0, microcode_FieldEditor__C5998_VT)) failedCast(s.tmp_2.arg0, microcode_FieldEditor__C5998_VT); + s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.toImage; + s.pc = 4; return s.tmp_2; + case 4: r0 = s.retval; - s.dos___21978 = (r0); - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "rule"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "whens", s.whens___21966); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "dos", s.dos___21978); - s.accessibilityMessage___21951 = (s.tmp_0); - { step = 10; continue; } - case 5: - r0 = pxsim_pxtrt.mkMap(); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "tile"); - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 6; continue; } - r0 = s.arg1.fields["_ariaId"]; - { step = 7; continue; } - case 6: - r0 = pxsim_String_.mkEmpty(); - case 7: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBool(s.tmp_1); - if (!r0) { step = 8; continue; } - r0 = s.tmp_1; - { step = 9; continue; } - case 8: - r0 = pxsim_String_.mkEmpty(); - case 9: + case 2: // jmp value (already in r0) - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "value", s.tmp_2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "force", true); - s.accessibilityMessage___21951 = (s.tmp_0); - case 10: - s.tmp_0 = accessibility_setLiveContent__P3518_mk(s); - s.tmp_0.arg0 = s.accessibilityMessage___21951; - s.callLocIdx = 1662; s.pc = 17; return s.tmp_0; - case 17: - r0 = s.retval; - case 11: - r0 = undefined; + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -microcode_RuleRowNavigator_reportAria__P5840.info = {"start":756,"length":1102,"line":29,"column":8,"endLine":59,"endColumn":9,"fileName":"navigator.ts","functionName":"reportAria","argumentNames":["this","ret"]} +microcode_DigitEditor_getIcon__P4562.info = {"start":3100,"length":190,"line":110,"column":8,"endLine":114,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getIcon","argumentNames":["this"]} -function microcode_RuleRowNavigator_reportAria__P5840_mk(s) { +function microcode_DigitEditor_getIcon__P4562_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_RuleRowNavigator_reportAria__P5840, depth: s.depth + 1, + parent: s, fn: microcode_DigitEditor_getIcon__P4562, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - accessibilityMessage___21951: undefined, - ruleDef___21959: undefined, - whens___21966: undefined, - dos___21978: undefined, arg0: undefined, - arg1: undefined, } } - -function whens_inline__P21968(s) { +function user_interface_base_SceneManager_popScene__P3678(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65121,42 +70610,78 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.prevScene___23863 = undefined; + s.currScene___23874 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_numops.toString(s.arg0); - s.tmp_1 = r0; - if ((s.tmp_1) && (s.tmp_1).vtable) { - setupResume(s, 1); - pxsim_String__stringConv(s.tmp_1); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_1) + ""; } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_SceneManager__C3674_VT)) failedCast(r0, user_interface_base_SceneManager__C3674_VT); + r0 = s.arg0.fields["scenes"]; + s.tmp_0 = r0; + r0 = pxsim_Array_.pop(s.tmp_0); + s.prevScene___23863 = (r0); + r0 = pxsim_numops_toBoolDecr(s.prevScene___23863); + if (!r0) { step = 1; continue; } + s.tmp_0 = user_interface_base_Scene__C3659_v3_1_mk(s); + s.tmp_0.arg0 = s.prevScene___23863; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.deactivate; + s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + s.tmp_0 = user_interface_base_Scene__C3659_v1_1_mk(s); + s.tmp_0.arg0 = s.prevScene___23863; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.shutdown; + s.pc = 6; return s.tmp_0; + case 6: + r0 = s.retval; + s.tmp_0 = context_popEventContext__P3266_mk(s); + s.callLocIdx = 603; s.pc = 7; return s.tmp_0; + case 7: + r0 = s.retval; case 1: + case 2: + s.tmp_0 = user_interface_base_SceneManager_currScene__P5258_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 604; s.pc = 8; return s.tmp_0; + case 8: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String__concat("T", s.tmp_0); + s.currScene___23874 = (r0); + r0 = pxsim_numops_toBoolDecr(s.currScene___23874); + if (!r0) { step = 3; continue; } + s.tmp_0 = user_interface_base_Scene__C3659_v2_1_mk(s); + s.tmp_0.arg0 = s.currScene___23874; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Scene__C3659_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.activate; + s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + case 3: + case 4: + r0 = undefined; return leave(s, r0) default: oops() } } } -whens_inline__P21968.info = {"start":1150,"length":19,"line":40,"column":25,"endLine":40,"endColumn":44,"fileName":"navigator.ts","functionName":"inline","argumentNames":["s"]} +user_interface_base_SceneManager_popScene__P3678.info = {"start":4449,"length":365,"line":139,"column":8,"endLine":150,"endColumn":9,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"popScene","argumentNames":["this"]} -function whens_inline__P21968_mk(s) { +function user_interface_base_SceneManager_popScene__P3678_mk(s) { checkStack(s.depth); return { - parent: s, fn: whens_inline__P21968, depth: s.depth + 1, + parent: s, fn: user_interface_base_SceneManager_popScene__P3678, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, + prevScene___23863: undefined, + currScene___23874: undefined, arg0: undefined, } } - -function map_inline__P21988(s) { +function context_popEventContext__P3266(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65166,34 +70691,74 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - s.tmp_0 = microcode_getTid__P4041_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1656; s.pc = 1; return s.tmp_0; + s.ctx___23882 = undefined; + s.context___23890 = undefined; + r0 = pxsim_numops_toBoolDecr(globals.eventContexts___5078); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 7; continue; } case 1: + case 2: + r0 = pxsim_Array_.pop(globals.eventContexts___5078); + s.ctx___23882 = (r0); + r0 = pxsim_numops_toBoolDecr(s.ctx___23882); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + { step = 7; continue; } + case 3: + case 4: + s.tmp_2 = context_EventContext_unregister__P3258_mk(s); + s.tmp_2.arg0 = s.ctx___23882; + s.callLocIdx = 226; s.pc = 8; return s.tmp_2; + case 8: + r0 = s.retval; + s.tmp_0 = r0 = globals.eventContexts___5078; + r0 = pxsim_Array__length(globals.eventContexts___5078); + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_1); + s.context___23890 = (r0); + r0 = pxsim_numops_toBoolDecr(s.context___23890); + if (!r0) { step = 5; continue; } + s.tmp_0 = context_EventContext_register__P3257_mk(s); + s.tmp_0.arg0 = s.context___23890; + s.callLocIdx = 227; s.pc = 9; return s.tmp_0; + case 9: r0 = s.retval; + { step = 6; continue; } + case 5: + globals.eventContexts___5078 = (undefined); + case 6: + case 7: + r0 = undefined; return leave(s, r0) default: oops() } } } -map_inline__P21988.info = {"start":1278,"length":14,"line":43,"column":50,"endLine":43,"endColumn":64,"fileName":"navigator.ts","functionName":"inline","argumentNames":["t"]} +context_popEventContext__P3266.info = {"start":7412,"length":413,"line":229,"column":4,"endLine":243,"endColumn":5,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"popEventContext","argumentNames":[]} -function map_inline__P21988_mk(s) { +function context_popEventContext__P3266_mk(s) { checkStack(s.depth); return { - parent: s, fn: map_inline__P21988, depth: s.depth + 1, + parent: s, fn: context_popEventContext__P3266, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - arg0: undefined, + tmp_1: undefined, + tmp_2: undefined, + ctx___23882: undefined, + context___23890: undefined, } } - -function dos_inline__P21980(s) { +function context_EventContext_register__P3257(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65203,42 +70768,66 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.h___23903 = undefined; + s.unnamed50___U1 = undefined; + s.unnamed51___U2 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_numops.toString(s.arg0); - s.tmp_1 = r0; - if ((s.tmp_1) && (s.tmp_1).vtable) { - setupResume(s, 1); - pxsim_String__stringConv(s.tmp_1); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_1) + ""; } + r0 = s.arg0; + if (!checkSubtype(r0, context_EventContext__C3251_VT)) failedCast(r0, context_EventContext__C3251_VT); + s.h___23903 = (undefined); + r0 = s.arg0.fields["handlers"]; + s.unnamed50___U1 = (r0); + s.unnamed51___U2 = (0); case 1: + s.tmp_0 = r0 = s.unnamed51___U2; + r0 = pxsim_Array__length(s.unnamed50___U1); + s.tmp_1 = r0; + r0 = (s.tmp_0 < s.tmp_1); + if (!r0) { step = 2; continue; } + r0 = pxsim_Array__getAt(s.unnamed50___U1, s.unnamed51___U2); + s.h___23903 = (r0); + s.tmp_2 = context_EventHandler_register__P5071_mk(s); + s.tmp_2.arg0 = s.h___23903; + s.callLocIdx = 217; s.pc = 3; return s.tmp_2; + case 3: r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_String__concat("T", s.tmp_0); + r0 = (s.unnamed51___U2 + 1); + s.unnamed51___U2 = (r0); + { step = 1; continue; } + case 2: + s.unnamed50___U1 = (undefined); + s.tmp_0 = context_EventContext_registerFrameCallbacks__P5076_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 218; s.pc = 4; return s.tmp_0; + case 4: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -dos_inline__P21980.info = {"start":1320,"length":19,"line":44,"column":25,"endLine":44,"endColumn":44,"fileName":"navigator.ts","functionName":"inline","argumentNames":["s"]} +context_EventContext_register__P3257.info = {"start":4230,"length":138,"line":128,"column":8,"endLine":132,"endColumn":9,"fileName":"pxt_modules/display-shield/eventcontext.ts","functionName":"register","argumentNames":["this"]} -function dos_inline__P21980_mk(s) { +function context_EventContext_register__P3257_mk(s) { checkStack(s.depth); return { - parent: s, fn: dos_inline__P21980, depth: s.depth + 1, + parent: s, fn: context_EventContext_register__P3257, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + h___23903: undefined, + unnamed50___U1: undefined, + unnamed51___U2: undefined, arg0: undefined, } } - -function user_interface_base_PickerNavigator_addRow__P3809(s) { +function user_interface_base_Scene_shutdown__P3665(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65250,31 +70839,28 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); + if (!checkSubtype(r0, user_interface_base_Scene__C3659_VT)) failedCast(r0, user_interface_base_Scene__C3659_VT); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_addRow__P3809.info = {"start":11099,"length":33,"line":363,"column":8,"endLine":363,"endColumn":41,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"addRow","argumentNames":["this","btns"]} +user_interface_base_Scene_shutdown__P3665.info = {"start":1466,"length":14,"line":46,"column":23,"endLine":46,"endColumn":37,"fileName":"pxt_modules/user-interface-base/scene.ts","functionName":"shutdown","argumentNames":["this"]} -function user_interface_base_PickerNavigator_addRow__P3809_mk(s) { +function user_interface_base_Scene_shutdown__P3665_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_addRow__P3809, depth: s.depth + 1, + parent: s, fn: user_interface_base_Scene_shutdown__P3665, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, - arg1: undefined, } } - -function microcode_SamplesGallery_shutdown__P4472(s) { +function microcode_App_popScene__P4447(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65289,22 +70875,23 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_SamplesGallery__C4470_VT)) failedCast(r0, microcode_SamplesGallery__C4470_VT); - s.tmp_0 = user_interface_base_CursorScene_shutdown__P3834_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1625; s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_App__C4442_VT)) failedCast(r0, microcode_App__C4442_VT); + s.tmp_0 = user_interface_base_SceneManager_popScene__P3678_mk(s); + r0 = s.arg0.fields["sceneManager"]; + s.tmp_0.arg0 = r0; + s.callLocIdx = 1402; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_SamplesGallery_shutdown__P4472.info = {"start":434,"length":51,"line":12,"column":23,"endLine":14,"endColumn":9,"fileName":"gallery.ts","functionName":"shutdown","argumentNames":["this"]} +microcode_App_popScene__P4447.info = {"start":1730,"length":70,"line":60,"column":8,"endLine":62,"endColumn":9,"fileName":"app.ts","functionName":"popScene","argumentNames":["this"]} -function microcode_SamplesGallery_shutdown__P4472_mk(s) { +function microcode_App_popScene__P4447_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_SamplesGallery_shutdown__P4472, depth: s.depth + 1, + parent: s, fn: microcode_App_popScene__P4447, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -65313,8 +70900,7 @@ function microcode_SamplesGallery_shutdown__P4472_mk(s) { - -function microcode_Editor_shutdown__P4320(s) { +function microcode_App_save__P4444(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65326,39 +70912,43 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_Editor__C4301_VT)) failedCast(r0, microcode_Editor__C4301_VT); - r0 = (s.arg0).fields["progdef"] = (undefined); - s.tmp_0 = microcode_RuleRowNavigator__C4578_v0_1_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; - if (!checkSubtype(s.tmp_0.arg0, microcode_RuleRowNavigator__C4578_VT)) failedCast(s.tmp_0.arg0, microcode_RuleRowNavigator__C4578_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.clear; - s.pc = 1; return s.tmp_0; + if (!checkSubtype(r0, microcode_App__C4442_VT)) failedCast(r0, microcode_App__C4442_VT); + s.tmp_0 = microcode_profile__P4604_mk(s); + s.callLocIdx = 1397; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; - r0 = undefined; + s.tmp_0 = settings_writeBuffer__P4012_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = s.arg2; + s.callLocIdx = 1398; s.pc = 2; return s.tmp_0; + case 2: + r0 = s.retval; + r0 = true; return leave(s, r0) default: oops() } } } -microcode_Editor_shutdown__P4320.info = {"start":14462,"length":94,"line":424,"column":23,"endLine":427,"endColumn":9,"fileName":"editor.ts","functionName":"shutdown","argumentNames":["this"]} +microcode_App_save__P4444.info = {"start":1197,"length":202,"line":40,"column":8,"endLine":45,"endColumn":9,"fileName":"app.ts","functionName":"save","argumentNames":["this","slot","buf"]} -function microcode_Editor_shutdown__P4320_mk(s) { +function microcode_App_save__P4444_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_Editor_shutdown__P4320, depth: s.depth + 1, + parent: s, fn: microcode_App_save__P4444, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } - -function microcode_IconFieldEditor_toBuffer__P4428(s) { +function microcode_profile__P4604(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65368,82 +70958,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ret___22019 = undefined; - s.index___22023 = undefined; - s.byte___22027 = undefined; - s.bit___22030 = undefined; - s.col___22033 = undefined; - s.row___22036 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconFieldEditor__C4423_VT)) failedCast(r0, microcode_IconFieldEditor__C4423_VT); - r0 = pxsim.control.createBuffer(4); - s.ret___22019 = (r0); - s.index___22023 = (0); + r0 = pxsim_numops_toBoolDecr(globals.microcode_Options_profiling___4602); + if (!r0) { step = 1; continue; } + r0 = pxsim.control.heapSnapshot(); + r0 = pxsim.control.gc(); case 1: - r0 = (s.index___22023 < 25); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - r0 = (s.index___22023 >> 3); - s.byte___22027 = (r0); - r0 = (s.index___22023 & 7); - s.bit___22030 = (r0); - r0 = (s.index___22023 % 5); - s.col___22033 = (r0); - r0 = pxsim.Math_.idiv(s.index___22023, 5); - s.row___22036 = (r0); - s.tmp_0 = r0 = s.ret___22019; - s.tmp_1 = r0 = s.byte___22027; - r0 = pxsim.BufferMethods.getByte(s.tmp_0, s.byte___22027); - s.tmp_3 = r0; - r0 = pxsim.BitmapMethods.getPixel(s.arg1, s.col___22033, s.row___22036); - s.tmp_5 = r0; - r0 = (s.tmp_5 << s.bit___22030); - s.tmp_4 = r0; - r0 = (s.tmp_3 | s.tmp_4); - s.tmp_2 = r0; - r0 = pxsim.BufferMethods.setByte(s.tmp_0, s.tmp_1, s.tmp_2); - r0 = (s.index___22023 + 1); - s.index___22023 = (r0); - { step = 1; continue; } case 2: - r0 = s.ret___22019; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_IconFieldEditor_toBuffer__P4428.info = {"start":4007,"length":381,"line":144,"column":8,"endLine":154,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toBuffer","argumentNames":["this","img"]} +microcode_profile__P4604.info = {"start":205,"length":166,"line":7,"column":4,"endLine":12,"endColumn":5,"fileName":"options.ts","functionName":"profile","argumentNames":[]} -function microcode_IconFieldEditor_toBuffer__P4428_mk(s) { +function microcode_profile__P4604_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconFieldEditor_toBuffer__P4428, depth: s.depth + 1, + parent: s, fn: microcode_profile__P4604, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - ret___22019: undefined, - index___22023: undefined, - byte___22027: undefined, - bit___22030: undefined, - col___22033: undefined, - row___22036: undefined, - arg0: undefined, - arg1: undefined, } } - -function microcode_IconFieldEditor_editor__P4426(s) { +function user_interface_base_GridNavigator_getCurrent__P3775(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65455,46 +70992,40 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconFieldEditor__C4423_VT)) failedCast(r0, microcode_IconFieldEditor__C4423_VT); - s.tmp_0 = microcode_iconEditor__P5829_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = s.arg2; - s.tmp_0.arg2 = s.arg3; - s.tmp_0.arg3 = s.arg4; - s.callLocIdx = 1547; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; + if (!checkSubtype(r0, user_interface_base_GridNavigator__C3767_VT)) failedCast(r0, user_interface_base_GridNavigator__C3767_VT); + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0 = r0; + r0 = s.arg0.fields["col"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_3); return leave(s, r0) default: oops() } } } -microcode_IconFieldEditor_editor__P4426.info = {"start":3703,"length":203,"line":133,"column":8,"endLine":140,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"editor","argumentNames":["this","field","picker","onHide","onDelete"]} +user_interface_base_GridNavigator_getCurrent__P3775.info = {"start":10191,"length":97,"line":323,"column":8,"endLine":325,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getCurrent","argumentNames":["this"]} -function microcode_IconFieldEditor_editor__P4426_mk(s) { +function user_interface_base_GridNavigator_getCurrent__P3775_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconFieldEditor_editor__P4426, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_getCurrent__P3775, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function microcode_iconEditor__P5829(s) { +function user_interface_base_GridNavigator_move__P3774(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65504,131 +71035,251 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.getColor___22069 = undefined; - s.defs___22078 = undefined; - s.row___22080 = undefined; - s.col___22084 = undefined; - s.red___22101 = undefined; - s.black___22105 = undefined; + s.btn___24062 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(1, getColor_inline__P22070); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.getColor___22069 = (s.tmp_0); - r0 = pxsim_Array__mk(); - s.defs___22078 = (r0); - s.row___22080 = (0); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_GridNavigator__C3767_VT)) failedCast(r0, user_interface_base_GridNavigator__C3767_VT); + s.tmp_0 = r0 = s.arg1; + r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); + if (r0) { step = 1; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); + if (r0) { step = 7; continue; } + r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); + if (r0) { step = 12; continue; } + r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); + if (r0) { step = 17; continue; } + r0 = s.tmp_0; + { step = 22; continue; } case 1: - r0 = (s.row___22080 < 5); + s.tmp_1 = r0 = s.arg0; + r0 = s.arg0.fields["row"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 - 1); + s.tmp_5 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_7 = r0; + r0 = (s.tmp_5 % s.tmp_7); + s.tmp_4 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_8 = r0; + r0 = (s.tmp_4 + s.tmp_8); + s.tmp_3 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_9 = r0; + r0 = (s.tmp_3 % s.tmp_9); + s.tmp_2 = r0; + r0 = (s.tmp_1).fields["row"] = (s.tmp_2); + r0 = s.arg0.fields["widths"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + s.tmp_1 = r0; + r0 = s.arg0.fields["col"]; + s.tmp_4 = r0; + r0 = (s.tmp_1 <= s.tmp_4); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.col___22084 = (0); + if (!r0) { step = 2; continue; } + s.tmp_5 = r0 = s.arg0; + r0 = s.arg0.fields["widths"]; + s.tmp_8 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_9 = r0; + r0 = pxsim_Array__getAt(s.tmp_8, s.tmp_9); + s.tmp_7 = r0; + r0 = (s.tmp_7 - 1); + s.tmp_6 = r0; + r0 = (s.tmp_5).fields["col"] = (s.tmp_6); case 2: - r0 = (s.col___22084 < 5); + case 3: + { step = 22; continue; } + case 4: + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["row"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = s.arg0.fields["height"]; + s.tmp_4 = r0; + r0 = (s.tmp_2 % s.tmp_4); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["row"] = (s.tmp_1); + r0 = s.arg0.fields["widths"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + s.tmp_1 = r0; + r0 = s.arg0.fields["col"]; + s.tmp_4 = r0; + r0 = (s.tmp_1 <= s.tmp_4); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - s.tmp_3 = lambda_3_mk(s); - s.tmp_3.argL = s.getColor___22069; - s.tmp_3.arg0 = s.col___22084; - s.tmp_3.arg1 = s.row___22080; - setupLambda(s.tmp_3, s.tmp_3.argL); - s.callLocIdx = 1579; s.pc = 5; return s.tmp_3; + if (!r0) { step = 5; continue; } + s.tmp_5 = r0 = s.arg0; + r0 = s.arg0.fields["widths"]; + s.tmp_8 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_9 = r0; + r0 = pxsim_Array__getAt(s.tmp_8, s.tmp_9); + s.tmp_7 = r0; + r0 = (s.tmp_7 - 1); + s.tmp_6 = r0; + r0 = (s.tmp_5).fields["col"] = (s.tmp_6); case 5: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_2); - r0 = pxsim_Array__push(s.defs___22078, s.tmp_1); - r0 = (s.col___22084 + 1); - s.col___22084 = (r0); - { step = 2; continue; } - case 3: - r0 = (s.row___22080 + 1); - s.row___22080 = (r0); - { step = 1; continue; } - case 4: - s.tmp_0 = user_interface_base_Picker_setGroup__P3756_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = s.defs___22078; - s.callLocIdx = 1580; s.pc = 6; return s.tmp_0; case 6: - r0 = s.retval; - s.tmp_0 = microcode_icons_get__P3883_mk(s); - s.tmp_0.arg0 = "solid_red"; - s.tmp_0.arg1 = false; - s.callLocIdx = 1581; s.pc = 7; return s.tmp_0; + { step = 22; continue; } case 7: - r0 = s.retval; - s.red___22101 = (r0); - s.tmp_0 = microcode_icons_get__P3883_mk(s); - s.tmp_0.arg0 = "solid_black"; - s.tmp_0.arg1 = false; - s.callLocIdx = 1582; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - s.black___22105 = (r0); - r0 = pxsim_pxtrt.mkMap(); + r0 = s.arg0.fields["widths"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + s.tmp_1 = r0; + r0 = (s.tmp_1 == 1); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "width", 5); - s.tmp_2 = accessibility_ariaToTooltip__P3519_mk(s); - r0 = pxsim_numops.toString(160); + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + { step = 22; continue; } + { step = 11; continue; } + case 8: + r0 = s.arg0.fields["col"]; + s.tmp_5 = r0; + r0 = (s.tmp_5 == 0); s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 10); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 9; continue; } + s.tmp_6 = r0 = s.arg0; + r0 = s.arg0.fields["widths"]; + s.tmp_9 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_10 = r0; + r0 = pxsim_Array__getAt(s.tmp_9, s.tmp_10); + s.tmp_8 = r0; + r0 = (s.tmp_8 - 1); + s.tmp_7 = r0; + r0 = (s.tmp_6).fields["col"] = (s.tmp_7); + { step = 10; continue; } + case 9: + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["col"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 - 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["col"] = (s.tmp_1); case 10: - r0 = s.retval; + case 11: + { step = 22; continue; } + case 12: + r0 = s.arg0.fields["widths"]; + s.tmp_2 = r0; + r0 = s.arg0.fields["row"]; s.tmp_3 = r0; - r0 = pxsim_String__concat("T", s.tmp_3); - s.tmp_2.arg0 = r0; - s.callLocIdx = 1584; s.pc = 9; return s.tmp_2; - case 9: - r0 = s.retval; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); - r0 = pxsim_pxtcore_mkAction(4, onClick_inline__P22114); + r0 = (s.tmp_1 == 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + { step = 22; continue; } + case 13: + case 14: + r0 = s.arg0.fields["col"]; s.tmp_5 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_5, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_5, 1, s.defs___22078); - r0 = pxsim_pxtrt_stclo(s.tmp_5, 2, s.getColor___22069); - r0 = pxsim_pxtrt_stclo(s.tmp_5, 3, s.arg1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_5); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onHide", s.arg2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onDelete", s.arg3); - r0 = pxsim_pxtcore_mkAction(1, navigator_inline__P22145); + r0 = s.arg0.fields["widths"]; + s.tmp_7 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_8 = r0; + r0 = pxsim_Array__getAt(s.tmp_7, s.tmp_8); s.tmp_6 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_6, 0, s.arg1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "navigator", s.tmp_6); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "style", globals.Transparent___3641); - s.tmp_7 = user_interface_base_Picker_show__P3758_mk(s); - s.tmp_7.arg0 = s.arg1; - s.tmp_7.arg1 = s.tmp_0; - s.tmp_7.arg2 = false; - s.callLocIdx = 1589; s.pc = 11; return s.tmp_7; - case 11: - r0 = s.retval; + r0 = (s.tmp_5 == s.tmp_6); + s.tmp_4 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if (!r0) { step = 15; continue; } + r0 = (s.arg0).fields["col"] = (0); + { step = 16; continue; } + case 15: + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["col"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 + 1); + s.tmp_2 = r0; + r0 = s.arg0.fields["widths"]; + s.tmp_5 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_6 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); + s.tmp_4 = r0; + r0 = (s.tmp_2 % s.tmp_4); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["col"] = (s.tmp_1); + case 16: + { step = 22; continue; } + case 17: + r0 = s.arg0.fields["col"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 18; continue; } + r0 = (s.arg0).fields["col"] = (0); + { step = 21; continue; } + case 18: + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 19; continue; } + s.tmp_2 = r0 = s.arg0; + r0 = s.tmp_2.fields["row"]; + s.tmp_4 = r0; + r0 = (s.tmp_4 - 1); + s.tmp_3 = r0; + r0 = (s.tmp_2).fields["row"] = (s.tmp_3); + { step = 20; continue; } + case 19: r0 = undefined; + { step = 23; continue; } + case 20: + case 21: + case 22: + r0 = s.arg0.fields["buttonGroups"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + s.tmp_0 = r0; + r0 = s.arg0.fields["col"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_3); + s.btn___24062 = (r0); + s.tmp_0 = user_interface_base_RowNavigator__C3753_v6_2_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.btn___24062; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_RowNavigator__C3753_VT)) failedCast(s.tmp_0.arg0, user_interface_base_RowNavigator__C3753_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; + s.pc = 24; return s.tmp_0; + case 24: + r0 = s.retval; + r0 = s.btn___24062; + case 23: return leave(s, r0) default: oops() } } } -microcode_iconEditor__P5829.info = {"start":10545,"length":1485,"line":342,"column":4,"endLine":387,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"iconEditor","argumentNames":["image5x5","picker","onHide","onDelete"]} +user_interface_base_GridNavigator_move__P3774.info = {"start":8315,"length":1866,"line":268,"column":8,"endLine":321,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"move","argumentNames":["this","dir"]} -function microcode_iconEditor__P5829_mk(s) { +function user_interface_base_GridNavigator_move__P3774_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_iconEditor__P5829, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_move__P3774, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -65638,23 +71289,18 @@ function microcode_iconEditor__P5829_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, - getColor___22069: undefined, - defs___22078: undefined, - row___22080: undefined, - col___22084: undefined, - red___22101: undefined, - black___22105: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + btn___24062: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function getColor_inline__P22070(s) { +function user_interface_base_GridNavigator_addRow__P3772(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65669,30 +71315,36 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim.BitmapMethods.getPixel(s.caps[0], s.arg0, s.arg1); + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_GridNavigator__C3767_VT)) failedCast(r0, user_interface_base_GridNavigator__C3767_VT); + r0 = s.arg0.fields["buttonGroups"]; s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = "solid_red"; - { step = 2; continue; } - case 1: - r0 = "solid_black"; - case 2: - // jmp value (already in r0) + r0 = pxsim_Array__push(s.tmp_0, s.arg1); + r0 = s.arg0.fields["widths"]; + s.tmp_0 = r0; + r0 = pxsim_Array__length(s.arg1); s.tmp_1 = r0; - r0 = s.tmp_1; + r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["height"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["height"] = (s.tmp_1); + r0 = undefined; return leave(s, r0) default: oops() } } } -getColor_inline__P22070.info = {"start":10707,"length":118,"line":348,"column":25,"endLine":350,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["col","row"]} +user_interface_base_GridNavigator_addRow__P3772.info = {"start":7805,"length":150,"line":250,"column":8,"endLine":254,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"addRow","argumentNames":["this","btns"]} -function getColor_inline__P22070_mk(s) { +function user_interface_base_GridNavigator_addRow__P3772_mk(s) { checkStack(s.depth); return { - parent: s, fn: getColor_inline__P22070, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_addRow__P3772, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, arg0: undefined, arg1: undefined, } } @@ -65700,8 +71352,7 @@ function getColor_inline__P22070_mk(s) { - -function onClick_inline__P22114(s) { +function user_interface_base_GridNavigator_setBtns__P3771(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65711,117 +71362,49 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.row___22116 = undefined; - s.col___22120 = undefined; - s.on___22123 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim.Math_.idiv(s.arg0, 5); - s.row___22116 = (r0); - r0 = (s.arg0 % 5); - s.col___22120 = (r0); - r0 = pxsim.BitmapMethods.getPixel(s.caps[0], s.col___22120, s.row___22116); - s.on___22123 = (r0); - r0 = pxsim_numops_toBoolDecr(s.on___22123); - if (!r0) { step = 1; continue; } - r0 = 0; - { step = 2; continue; } - case 1: - r0 = 1; - case 2: - // jmp value (already in r0) - s.tmp_0 = r0; - r0 = pxsim.BitmapMethods.setPixel(s.caps[0], s.col___22120, s.row___22116, s.tmp_0); - s.tmp_0 = if_icon_2_mk(s); - r0 = pxsim_Array__getAt(s.caps[1], s.arg0); - s.tmp_0.arg0 = r0; - s.tmp_1 = lambda_3_mk(s); - s.tmp_1.argL = s.caps[2]; - s.tmp_1.arg0 = s.col___22120; - s.tmp_1.arg1 = s.row___22116; - setupLambda(s.tmp_1, s.tmp_1.argL); - s.callLocIdx = 1585; s.pc = 4; return s.tmp_1; - case 4: - r0 = s.retval; - s.tmp_0.arg1 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapSetByString(s.tmp_0.arg0, "icon", s.tmp_0.arg1); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["set/icon"]; - if (s.tmp_0.fn === null) { s.tmp_0.arg0.fields["icon"] = s.tmp_0.arg1; } - else if (s.tmp_0.fn === undefined) { failedCast(s.tmp_0.arg0) } - else { s.callLocIdx = 1586; s.pc = 3; return s.tmp_0; } - } - case 3: - r0 = s.retval; - s.tmp_0 = user_interface_base_Picker_draw__P3760_mk(s); - s.tmp_0.arg0 = s.caps[3]; - s.callLocIdx = 1587; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -onClick_inline__P22114.info = {"start":11483,"length":339,"line":372,"column":25,"endLine":379,"endColumn":17,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["index"]} - -function onClick_inline__P22114_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: onClick_inline__P22114, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - row___22116: undefined, - col___22120: undefined, - on___22123: undefined, - arg0: undefined, -} } - - - - - -function navigator_inline__P22145(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - r0 = pxsim_pxtcore_mkClassInstance(microcode_LEDNavigator__C4585_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_LEDNavigator_constructor__P4586_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.caps[0]; - s.callLocIdx = 1588; s.pc = 1; return s.tmp_1; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_GridNavigator__C3767_VT)) failedCast(r0, user_interface_base_GridNavigator__C3767_VT); + r0 = (s.arg0).fields["buttonGroups"] = (s.arg1); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = helpers_arrayMap__P2135_mk(s); + s.tmp_2.arg0 = s.arg1; + s.tmp_2.arg1 = user_interface_base_GridNavigator_setBtns_inline__P24099; + s.callLocIdx = 778; s.pc = 1; return s.tmp_2; case 1: r0 = s.retval; - r0 = s.tmp_0; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["widths"] = (s.tmp_1); + s.tmp_0 = r0 = s.arg0; + r0 = pxsim_Array__length(s.arg1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["height"] = (s.tmp_1); + r0 = undefined; return leave(s, r0) default: oops() } } } -navigator_inline__P22145.info = {"start":11901,"length":30,"line":382,"column":27,"endLine":382,"endColumn":57,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":[]} +user_interface_base_GridNavigator_setBtns__P3771.info = {"start":7537,"length":173,"line":239,"column":8,"endLine":243,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"setBtns","argumentNames":["this","btns"]} -function navigator_inline__P22145_mk(s) { +function user_interface_base_GridNavigator_setBtns__P3771_mk(s) { checkStack(s.depth); return { - parent: s, fn: navigator_inline__P22145, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_setBtns__P3771, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + arg0: undefined, + arg1: undefined, } } - -function microcode_LEDNavigator_constructor__P4586(s) { +function user_interface_base_GridNavigator_setBtns_inline__P24099(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65833,40 +71416,26 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_LEDNavigator__C4585_VT)) failedCast(r0, microcode_LEDNavigator__C4585_VT); - s.tmp_0 = user_interface_base_PickerNavigator_constructor__P3804_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 1667; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = (s.arg0).fields["row"] = (2); - r0 = (s.arg0).fields["col"] = (2); - r0 = undefined; + r0 = pxsim_Array__length(s.arg0); return leave(s, r0) default: oops() } } } -microcode_LEDNavigator_constructor__P4586.info = {"start":2656,"length":115,"line":87,"column":8,"endLine":91,"endColumn":9,"fileName":"navigator.ts","functionName":"inline","argumentNames":["this","picker"]} +user_interface_base_GridNavigator_setBtns_inline__P24099.info = {"start":7644,"length":17,"line":241,"column":35,"endLine":241,"endColumn":52,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["row"]} -function microcode_LEDNavigator_constructor__P4586_mk(s) { +function user_interface_base_GridNavigator_setBtns_inline__P24099_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_LEDNavigator_constructor__P4586, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_setBtns_inline__P24099, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_MelodyFieldEditor_toBuffer__P4447(s) { +function user_interface_base_GridNavigator_getCol__P3770(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -65876,146 +71445,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.buf___22160 = undefined; - s.notes___22169 = undefined; - s.i___22176 = undefined; - s.byte___22181 = undefined; - s.bit___22184 = undefined; - s.note___22193 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4442_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4442_VT); - r0 = pxsim.control.createBuffer(3); - s.buf___22160 = (r0); - s.tmp_0 = r0 = s.buf___22160; - s.tmp_2 = if_tempo_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "tempo"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["tempo"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["tempo"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1558; s.pc = 7; return s.tmp_2; } - } - case 7: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim.BufferMethods.setUint8(s.tmp_0, 0, s.tmp_1); - s.tmp_0 = helpers_stringSplit__P2151_mk(s); - s.tmp_1 = if_notes_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "notes"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["notes"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["notes"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1559; s.pc = 9; return s.tmp_1; } - } - case 9: - r0 = s.retval; - s.tmp_0.arg0 = r0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = undefined; - s.callLocIdx = 1560; s.pc = 8; return s.tmp_0; - case 8: - r0 = s.retval; - s.notes___22169 = (r0); - s.i___22176 = (0); - case 1: - r0 = (s.i___22176 < 4); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = (s.i___22176 >> 1); - s.byte___22181 = (r0); - r0 = (s.i___22176 & 1); - s.tmp_0 = r0; - r0 = (s.tmp_0 << 2); - s.bit___22184 = (r0); - r0 = pxsim_Array__getAt(s.notes___22169, s.i___22176); - s.tmp_1 = r0; - r0 = (s.tmp_1 != "."); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.tmp_3 = parseInt__P2126_mk(s); - r0 = pxsim_Array__getAt(s.notes___22169, s.i___22176); - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = undefined; - s.callLocIdx = 1561; s.pc = 10; return s.tmp_3; - case 10: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_numops_toBool(s.tmp_2); - if (!r0) { step = 2; continue; } - r0 = s.tmp_2; - { step = 3; continue; } - case 2: - r0 = 0; - case 3: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = (s.tmp_4 + 1); - s.note___22193 = (r0); - s.tmp_0 = r0 = s.buf___22160; - r0 = (s.byte___22181 + 1); - s.tmp_1 = r0; - s.tmp_4 = r0 = s.buf___22160; - r0 = (s.byte___22181 + 1); - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.getUint8(s.tmp_4, s.tmp_5); - s.tmp_3 = r0; - r0 = (s.note___22193 << s.bit___22184); - s.tmp_6 = r0; - r0 = (s.tmp_3 | s.tmp_6); - s.tmp_2 = r0; - r0 = pxsim.BufferMethods.setUint8(s.tmp_0, s.tmp_1, s.tmp_2); - case 4: - case 5: - r0 = (s.i___22176 + 1); - s.i___22176 = (r0); - { step = 1; continue; } - case 6: - r0 = s.buf___22160; + if (!checkSubtype(r0, user_interface_base_GridNavigator__C3767_VT)) failedCast(r0, user_interface_base_GridNavigator__C3767_VT); + r0 = s.arg0.fields["col"]; return leave(s, r0) default: oops() } } } -microcode_MelodyFieldEditor_toBuffer__P4447.info = {"start":6374,"length":739,"line":222,"column":8,"endLine":240,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toBuffer","argumentNames":["this","melody"]} +user_interface_base_GridNavigator_getCol__P3770.info = {"start":7473,"length":54,"line":235,"column":8,"endLine":237,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getCol","argumentNames":["this"]} -function microcode_MelodyFieldEditor_toBuffer__P4447_mk(s) { +function user_interface_base_GridNavigator_getCol__P3770_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyFieldEditor_toBuffer__P4447, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_getCol__P3770, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - buf___22160: undefined, - notes___22169: undefined, - i___22176: undefined, - byte___22181: undefined, - bit___22184: undefined, - note___22193: undefined, arg0: undefined, - arg1: undefined, } } - -function microcode_MelodyFieldEditor_editor__P4445(s) { +function user_interface_base_GridNavigator_getRow__P3769(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66027,46 +71480,28 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4442_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4442_VT); - s.tmp_0 = microcode_melodyEditor__P5830_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = s.arg2; - s.tmp_0.arg2 = s.arg3; - s.tmp_0.arg3 = s.arg4; - s.callLocIdx = 1556; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; + if (!checkSubtype(r0, user_interface_base_GridNavigator__C3767_VT)) failedCast(r0, user_interface_base_GridNavigator__C3767_VT); + r0 = s.arg0.fields["row"]; return leave(s, r0) default: oops() } } } -microcode_MelodyFieldEditor_editor__P4445.info = {"start":6073,"length":205,"line":211,"column":8,"endLine":218,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"editor","argumentNames":["this","field","picker","onHide","onDelete"]} +user_interface_base_GridNavigator_getRow__P3769.info = {"start":7406,"length":55,"line":231,"column":8,"endLine":233,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getRow","argumentNames":["this"]} -function microcode_MelodyFieldEditor_editor__P4445_mk(s) { +function user_interface_base_GridNavigator_getRow__P3769_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyFieldEditor_editor__P4445, depth: s.depth + 1, + parent: s, fn: user_interface_base_GridNavigator_getRow__P3769, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function microcode_melodyEditor__P5830(s) { +function microgui_Keyboard_draw__P3888(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66076,115 +71511,385 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.getIcon___22237 = undefined; - s.defs___22262 = undefined; - s.row___22264 = undefined; - s.col___22269 = undefined; + s.charWidth___24119 = undefined; + s.charHeight___24122 = undefined; + s.txtXpos___24155 = undefined; + s.i___24269 = undefined; + s.j___24277 = undefined; + s.btn___24285 = undefined; + s.btnText___24292 = undefined; + s.x___24303 = undefined; + s.y___24320 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(1, getIcon_inline__P22238); + r0 = s.arg0; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["frameCounter"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["frameCounter"] = (s.tmp_1); + s.tmp_0 = if_charWidth_1_mk(s); + s.tmp_0.arg0 = globals.font8___3300; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charWidth"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charWidth"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charWidth"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 948; s.pc = 19; return s.tmp_0; } + } + case 19: + r0 = s.retval; + s.charWidth___24119 = (r0); + s.tmp_0 = if_charHeight_1_mk(s); + s.tmp_0.arg0 = globals.font8___3300; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charHeight"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charHeight"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charHeight"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 949; s.pc = 20; return s.tmp_0; } + } + case 20: + r0 = s.retval; + s.charHeight___24122 = (r0); + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + s.tmp_0.arg0 = globals.user_interface_base_Screen_LEFT_EDGE___3416; + s.tmp_0.arg1 = globals.user_interface_base_Screen_TOP_EDGE___3418; + s.tmp_0.arg2 = globals.user_interface_base_Screen_WIDTH___3412; + s.tmp_0.arg3 = globals.user_interface_base_Screen_HEIGHT___3413; + r0 = s.arg0.fields["color_"]; + s.tmp_0.arg4 = r0; + s.callLocIdx = 951; s.pc = 21; return s.tmp_0; + case 21: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3416 + 3); + s.tmp_0.arg0 = r0; + r0 = (globals.user_interface_base_Screen_TOP_EDGE___3418 + 4); + s.tmp_0.arg1 = r0; + r0 = (globals.user_interface_base_Screen_WIDTH___3412 - 7); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = 34; + s.tmp_0.arg4 = 15; + s.callLocIdx = 952; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3416 + 6); + s.tmp_0.arg0 = r0; + r0 = (globals.user_interface_base_Screen_TOP_EDGE___3418 + 6); + s.tmp_0.arg1 = r0; + r0 = (globals.user_interface_base_Screen_WIDTH___3412 - 12); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = 32; + s.tmp_0.arg4 = 1; + s.callLocIdx = 953; s.pc = 23; return s.tmp_0; + case 23: + r0 = s.retval; + r0 = s.arg0.fields["text"]; + s.tmp_2 = r0; + r0 = pxsim_String_.length(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_1 * s.charWidth___24119); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.getIcon___22237 = (s.tmp_0); - r0 = pxsim_Array__mk(); - s.defs___22262 = (r0); - s.row___22264 = (0); - case 1: - r0 = (s.row___22264 < 5); + r0 = (s.tmp_0 >> 1); + s.txtXpos___24155 = (r0); + r0 = s.arg0.fields["shakingText"]; s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - s.col___22269 = (0); + if (!r0) { step = 5; continue; } + r0 = s.arg0.fields["shakeTextCounter"]; + s.tmp_3 = r0; + r0 = (s.tmp_3 % 5); + s.tmp_2 = r0; + r0 = (s.tmp_2 == 0); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 1; continue; } + s.tmp_4 = helpers_imagePrint__P3315_mk(s); + r0 = globals.theScreen___3281; + s.tmp_4.arg0 = r0; + r0 = s.arg0.fields["text"]; + s.tmp_4.arg1 = r0; + r0 = (globals.user_interface_base_Screen_HALF_WIDTH___3414 - s.txtXpos___24155); + s.tmp_5 = r0; + r0 = s.arg0.fields["shakeStrength"]; + s.tmp_6 = r0; + r0 = (s.tmp_5 - s.tmp_6); + s.tmp_4.arg2 = r0; + s.tmp_4.arg3 = 17; + s.tmp_4.arg4 = 15; + s.tmp_4.arg5 = undefined; + s.tmp_4.arg6 = undefined; + s.callLocIdx = 955; s.pc = 24; return s.tmp_4; + case 24: + r0 = s.retval; + { step = 2; continue; } + case 1: + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + r0 = globals.theScreen___3281; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["text"]; + s.tmp_0.arg1 = r0; + r0 = (globals.user_interface_base_Screen_HALF_WIDTH___3414 - s.txtXpos___24155); + s.tmp_0.arg2 = r0; + s.tmp_0.arg3 = 17; + s.tmp_0.arg4 = 15; + s.tmp_0.arg5 = undefined; + s.tmp_0.arg6 = undefined; + s.callLocIdx = 957; s.pc = 25; return s.tmp_0; + case 25: + r0 = s.retval; case 2: - r0 = (s.col___22269 < 4); + r0 = s.arg0.fields["shakeTextCounter"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 >= 5); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - r0 = pxsim_pxtrt.mkMap(); + r0 = (s.arg0).fields["shakingText"] = (false); + r0 = (s.arg0).fields["shakeTextCounter"] = (0); + { step = 4; continue; } + case 3: + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["shakeTextCounter"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 1); s.tmp_1 = r0; - s.tmp_3 = lambda_3_mk(s); - s.tmp_3.argL = s.getIcon___22237; - s.tmp_3.arg0 = s.col___22269; - s.tmp_3.arg1 = s.row___22264; - setupLambda(s.tmp_3, s.tmp_3.argL); - s.callLocIdx = 1593; s.pc = 5; return s.tmp_3; + r0 = (s.tmp_0).fields["shakeTextCounter"] = (s.tmp_1); + case 4: + { step = 10; continue; } case 5: + s.tmp_0 = helpers_imagePrintCenter__P3314_mk(s); + r0 = globals.theScreen___3281; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["text"]; + s.tmp_0.arg1 = r0; + s.tmp_0.arg2 = 17; + s.tmp_0.arg3 = 15; + s.tmp_0.arg4 = undefined; + s.callLocIdx = 959; s.pc = 26; return s.tmp_0; + case 26: r0 = s.retval; + r0 = s.arg0.fields["frameCounter"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["FRAME_COUNTER_CURSOR_ON"]; s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_2); - r0 = pxsim_Array__push(s.defs___22262, s.tmp_1); - r0 = (s.col___22269 + 1); - s.col___22269 = (r0); - { step = 2; continue; } - case 3: - r0 = (s.row___22264 + 1); - s.row___22264 = (r0); - { step = 1; continue; } - case 4: - s.tmp_0 = user_interface_base_Picker_setGroup__P3756_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = s.defs___22262; - s.callLocIdx = 1594; s.pc = 6; return s.tmp_0; - case 6: + r0 = (s.tmp_1 >= s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + s.tmp_3 = helpers_imagePrint__P3315_mk(s); + r0 = globals.theScreen___3281; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = "_"; + r0 = (globals.user_interface_base_Screen_HALF_WIDTH___3414 + s.txtXpos___24155); + s.tmp_3.arg2 = r0; + s.tmp_3.arg3 = 17; + s.tmp_3.arg4 = 15; + s.tmp_3.arg5 = undefined; + s.tmp_3.arg6 = undefined; + s.callLocIdx = 961; s.pc = 27; return s.tmp_3; + case 27: r0 = s.retval; - r0 = pxsim_pxtrt.mkMap(); + r0 = s.arg0.fields["frameCounter"]; + s.tmp_1 = r0; + r0 = s.arg0.fields["FRAME_COUNTER_CURSOR_OFF"]; + s.tmp_2 = r0; + r0 = (s.tmp_1 >= s.tmp_2); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "width", 4); - s.tmp_2 = accessibility_ariaToTooltip__P3519_mk(s); - r0 = pxsim_numops.toString(179); - s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 8); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = (s.arg0).fields["frameCounter"] = (0); + case 6: + case 7: case 8: + case 9: + case 10: + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["left"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["top"]; + s.tmp_0.arg1 = r0; + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["width"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 + 2); + s.tmp_0.arg2 = r0; + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["height"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 + 2); + s.tmp_0.arg3 = r0; + s.tmp_0.arg4 = 15; + s.callLocIdx = 962; s.pc = 28; return s.tmp_0; + case 28: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat("T", s.tmp_3); - s.tmp_2.arg0 = r0; - s.callLocIdx = 1596; s.pc = 7; return s.tmp_2; - case 7: + s.tmp_0 = user_interface_base_Screen_fillRect__P3434_mk(s); + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["left"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["top"]; + s.tmp_0.arg1 = r0; + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["width"]; + s.tmp_0.arg2 = r0; + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["height"]; + s.tmp_0.arg3 = r0; + r0 = s.arg0.fields["foregroundColor"]; + s.tmp_0.arg4 = r0; + s.callLocIdx = 963; s.pc = 29; return s.tmp_0; + case 29: r0 = s.retval; + s.i___24269 = (0); + case 11: + s.tmp_1 = r0 = s.i___24269; + r0 = s.arg0.fields["btns"]; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 18; continue; } + s.j___24277 = (0); + case 12: + s.tmp_1 = r0 = s.j___24277; + r0 = s.arg0.fields["btns"]; + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.i___24269); + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 17; continue; } + r0 = s.arg0.fields["btns"]; + s.tmp_6 = r0; + r0 = pxsim_Array__getAt(s.tmp_6, s.i___24269); + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.j___24277); + s.btn___24285 = (r0); + r0 = s.btn___24285.fields["state"]; + s.tmp_2 = r0; + r0 = pxsim_Array__length(s.tmp_2); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "title", s.tmp_1); - r0 = pxsim_pxtcore_mkAction(4, onClick_inline__P22293); + r0 = (s.tmp_1 > 0); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 13; continue; } + r0 = s.btn___24285.fields["state"]; + s.tmp_3 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, 0); + { step = 14; continue; } + case 13: + r0 = null; + case 14: + // jmp value (already in r0) + s.tmp_4 = r0; + s.btnText___24292 = (s.tmp_4); + r0 = globals.theScreen___3281; + s.tmp_4 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 / 2); + s.tmp_2 = r0; + r0 = s.btn___24285.fields["xfrm_"]; + s.tmp_7 = r0; + r0 = s.tmp_7.fields["localPos_"]; + s.tmp_6 = r0; + r0 = s.tmp_6.fields["x_"]; s.tmp_5 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_5, 0, s.getIcon___22237); - r0 = pxsim_pxtrt_stclo(s.tmp_5, 1, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_5, 2, s.defs___22262); - r0 = pxsim_pxtrt_stclo(s.tmp_5, 3, s.arg1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onClick", s.tmp_5); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onHide", s.arg2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "onDelete", s.arg3); - r0 = pxsim_pxtcore_mkAction(1, navigator_inline__P22379); + r0 = (s.tmp_2 + s.tmp_5); + s.tmp_1 = r0; + r0 = s.btn___24285.fields["icon"]; + s.tmp_10 = r0; + r0 = s.tmp_10.fields["image"]; + s.tmp_11 = r0; + r0 = pxsim.BitmapMethods.width(s.tmp_11); + s.tmp_9 = r0; + r0 = (s.tmp_9 / 2); + s.tmp_8 = r0; + r0 = (s.tmp_1 - s.tmp_8); + s.tmp_0 = r0; + r0 = (s.tmp_0 + 3); + s.x___24303 = (r0); + r0 = globals.theScreen___3281; + s.tmp_4 = r0; + r0 = pxsim.BitmapMethods.height(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 / 2); + s.tmp_2 = r0; + r0 = s.btn___24285.fields["xfrm_"]; + s.tmp_7 = r0; + r0 = s.tmp_7.fields["localPos_"]; s.tmp_6 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_6, 0, s.arg1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "navigator", s.tmp_6); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "style", globals.Transparent___3641); - s.tmp_7 = user_interface_base_Picker_show__P3758_mk(s); - s.tmp_7.arg0 = s.arg1; - s.tmp_7.arg1 = s.tmp_0; - s.tmp_7.arg2 = false; - s.callLocIdx = 1609; s.pc = 9; return s.tmp_7; - case 9: + r0 = s.tmp_6.fields["y_"]; + s.tmp_5 = r0; + r0 = (s.tmp_2 + s.tmp_5); + s.tmp_1 = r0; + r0 = (s.tmp_1 + s.charHeight___24122); + s.tmp_0 = r0; + r0 = (s.tmp_0 - 12); + s.y___24320 = (r0); + s.tmp_0 = user_interface_base_Button__C3638_v0_1_mk(s); + s.tmp_0.arg0 = s.btn___24285; + if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3638_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3638_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; + s.pc = 30; return s.tmp_0; + case 30: + r0 = s.retval; + r0 = pxsim_numops_toBoolDecr(s.btnText___24292); + if (!r0) { step = 15; continue; } + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + r0 = globals.theScreen___3281; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = s.btnText___24292; + s.tmp_0.arg2 = s.x___24303; + s.tmp_0.arg3 = s.y___24320; + r0 = s.arg0.fields["txtColor"]; + s.tmp_0.arg4 = r0; + s.tmp_0.arg5 = undefined; + s.tmp_0.arg6 = undefined; + s.callLocIdx = 974; s.pc = 31; return s.tmp_0; + case 31: + r0 = s.retval; + case 15: + case 16: + r0 = (s.j___24277 + 1); + s.j___24277 = (r0); + { step = 12; continue; } + case 17: + r0 = (s.i___24269 + 1); + s.i___24269 = (r0); + { step = 11; continue; } + case 18: + s.tmp_0 = user_interface_base_CursorScene_draw__P3810_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 975; s.pc = 32; return s.tmp_0; + case 32: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_melodyEditor__P5830.info = {"start":12036,"length":2230,"line":389,"column":4,"endLine":449,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"melodyEditor","argumentNames":["melody","picker","onHide","onDelete"]} +microgui_Keyboard_draw__P3888.info = {"start":19156,"length":3291,"line":575,"column":4,"endLine":700,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"draw","argumentNames":["this"]} -function microcode_melodyEditor__P5830_mk(s) { +function microgui_Keyboard_draw__P3888_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_melodyEditor__P5830, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_draw__P3888, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -66194,21 +71899,26 @@ function microcode_melodyEditor__P5830_mk(s) { tmp_5: undefined, tmp_6: undefined, tmp_7: undefined, - getIcon___22237: undefined, - defs___22262: undefined, - row___22264: undefined, - col___22269: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + charWidth___24119: undefined, + charHeight___24122: undefined, + txtXpos___24155: undefined, + i___24269: undefined, + j___24277: undefined, + btn___24285: undefined, + btnText___24292: undefined, + x___24303: undefined, + y___24320: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, } } - -function getIcon_inline__P22238(s) { +function helpers_imagePrintCenter__P3314(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66218,106 +71928,91 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.note_icon___22241 = undefined; + s.w___24360 = undefined; + s.x___24366 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); + s.arg2 = (s.lambdaArgs[2]); + s.arg3 = (s.lambdaArgs[3]); + s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - s.tmp_3 = if_notes_1_mk(s); - s.tmp_3.arg0 = s.caps[0]; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "notes"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["notes"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["notes"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1590; s.pc = 5; return s.tmp_3; } - } - case 5: - r0 = s.retval; - s.tmp_2 = r0; - r0 = pxsim_String_.charAt(s.tmp_2, s.arg0); + r0 = pxsim_numops_toBoolDecr(s.arg4); s.tmp_1 = r0; - r0 = (s.tmp_1 === "."); + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = "note_off"; - { step = 4; continue; } + s.tmp_2 = bitmaps_getFontForText__P3302_mk(s); + s.tmp_2.arg0 = s.arg1; + s.callLocIdx = 280; s.pc = 3; return s.tmp_2; + case 3: + r0 = s.retval; + s.arg4 = (r0); case 1: - s.tmp_6 = parseInt__P2126_mk(s); - s.tmp_8 = if_notes_1_mk(s); - s.tmp_8.arg0 = s.caps[0]; - if (!s.tmp_8.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "notes"); + case 2: + r0 = pxsim_String_.length(s.arg1); + s.tmp_0 = r0; + s.tmp_2 = if_charWidth_1_mk(s); + s.tmp_2.arg0 = s.arg4; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "charWidth"); } else { - s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["notes"]; - if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["notes"]; } - else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } - else { s.callLocIdx = 1591; s.pc = 7; return s.tmp_8; } + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["charWidth"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["charWidth"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 281; s.pc = 4; return s.tmp_2; } } - case 7: - r0 = s.retval; - s.tmp_7 = r0; - r0 = pxsim_String_.charAt(s.tmp_7, s.arg0); - s.tmp_6.arg0 = r0; - s.tmp_6.arg1 = undefined; - s.callLocIdx = 1592; s.pc = 6; return s.tmp_6; - case 6: - r0 = s.retval; - s.tmp_5 = r0; - r0 = (4 - s.arg1); - s.tmp_9 = r0; - r0 = (s.tmp_5 === s.tmp_9); - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 2; continue; } - r0 = "note_on"; - { step = 3; continue; } - case 2: - r0 = "note_off"; - case 3: - // jmp value (already in r0) - s.tmp_10 = r0; - r0 = s.tmp_10; case 4: - // jmp value (already in r0) - s.tmp_11 = r0; - s.note_icon___22241 = (s.tmp_11); - r0 = s.note_icon___22241; + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0 * s.tmp_1); + s.w___24360 = (r0); + r0 = pxsim.BitmapMethods.width(s.arg0); + s.tmp_1 = r0; + r0 = (s.tmp_1 - s.w___24360); + s.tmp_0 = r0; + r0 = (s.tmp_0 / 2); + s.x___24366 = (r0); + s.tmp_0 = helpers_imagePrint__P3315_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.tmp_0.arg2 = s.x___24366; + s.tmp_0.arg3 = s.arg2; + s.tmp_0.arg4 = s.arg3; + s.tmp_0.arg5 = s.arg4; + s.tmp_0.arg6 = undefined; + s.callLocIdx = 282; s.pc = 5; return s.tmp_0; + case 5: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -getIcon_inline__P22238.info = {"start":12197,"length":314,"line":395,"column":24,"endLine":403,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["col","row"]} +helpers_imagePrintCenter__P3314.info = {"start":15036,"length":300,"line":206,"column":4,"endLine":211,"endColumn":5,"fileName":"pxt_modules/display-shield/text.ts","functionName":"imagePrintCenter","argumentNames":["img","text","y","color","font"]} -function getIcon_inline__P22238_mk(s) { +function helpers_imagePrintCenter__P3314_mk(s) { checkStack(s.depth); return { - parent: s, fn: getIcon_inline__P22238, depth: s.depth + 1, + parent: s, fn: helpers_imagePrintCenter__P3314, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - note_icon___22241: undefined, + w___24360: undefined, + x___24366: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, } } - -function onClick_inline__P22293(s) { +function microgui_Keyboard_shakeText__P3887(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66327,242 +72022,80 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.row___22295 = undefined; - s.col___22300 = undefined; - s.note___22309 = undefined; - s.buf___22317 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim.Math_.idiv(s.arg0, 4); - s.row___22295 = (r0); - r0 = (s.arg0 % 4); - s.col___22300 = (r0); - s.tmp_2 = lambda_3_mk(s); - s.tmp_2.argL = s.caps[0]; - s.tmp_2.arg0 = s.col___22300; - s.tmp_2.arg1 = s.row___22295; - setupLambda(s.tmp_2, s.tmp_2.argL); - s.callLocIdx = 1597; s.pc = 7; return s.tmp_2; - case 7: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 !== "note_on"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = (4 - s.row___22295); - s.tmp_3 = r0; - r0 = pxsim_numops.toString(s.tmp_3); - s.note___22309 = (r0); - r0 = pxsim.control.createBuffer(6); - s.buf___22317 = (r0); - case 1: - case 2: - s.tmp_2 = lambda_3_mk(s); - s.tmp_2.argL = s.caps[0]; - s.tmp_2.arg0 = s.col___22300; - s.tmp_2.arg1 = s.row___22295; - setupLambda(s.tmp_2, s.tmp_2.argL); - s.callLocIdx = 1600; s.pc = 8; return s.tmp_2; - case 8: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_1 === "note_on"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = "."; - { step = 4; continue; } - case 3: - r0 = (4 - s.row___22295); - s.tmp_3 = r0; - r0 = pxsim_numops.toString(s.tmp_3); - case 4: - // jmp value (already in r0) - s.tmp_4 = r0; - s.tmp_5 = if_notes_2_mk(s); - s.tmp_5.arg0 = s.caps[1]; - s.tmp_10 = helpers_stringSlice__P2148_mk(s); - s.tmp_11 = if_notes_1_mk(s); - s.tmp_11.arg0 = s.caps[1]; - if (!s.tmp_11.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_11.arg0, "notes"); - } else { - s.tmp_11.fn = s.tmp_11.arg0.vtable.iface["notes"]; - if (s.tmp_11.fn == null) { s.retval = s.tmp_11.arg0.fields["notes"]; } - else if (!s.tmp_11.fn.isGetter) { s.retval = bind(s.tmp_11); } - else { s.callLocIdx = 1598; s.pc = 11; return s.tmp_11; } - } - case 11: - r0 = s.retval; - s.tmp_10.arg0 = r0; - s.tmp_10.arg1 = 0; - s.tmp_10.arg2 = s.col___22300; - s.callLocIdx = 1599; s.pc = 10; return s.tmp_10; - case 10: - r0 = s.retval; - s.tmp_9 = r0; - if ((s.tmp_9) && (s.tmp_9).vtable) { - setupResume(s, 12); - pxsim_String__stringConv(s.tmp_9); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_9) + ""; } - case 12: - r0 = s.retval; - s.tmp_8 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 13); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 13: - r0 = s.retval; - s.tmp_12 = r0; - r0 = pxsim_String__concat(s.tmp_8, s.tmp_12); - s.tmp_7 = r0; - if ((s.tmp_7) && (s.tmp_7).vtable) { - setupResume(s, 14); - pxsim_String__stringConv(s.tmp_7); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_7) + ""; } - case 14: - r0 = s.retval; - s.tmp_6 = r0; - s.tmp_15 = helpers_stringSlice__P2148_mk(s); - s.tmp_16 = if_notes_1_mk(s); - s.tmp_16.arg0 = s.caps[1]; - if (!s.tmp_16.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_16.arg0, "notes"); - } else { - s.tmp_16.fn = s.tmp_16.arg0.vtable.iface["notes"]; - if (s.tmp_16.fn == null) { s.retval = s.tmp_16.arg0.fields["notes"]; } - else if (!s.tmp_16.fn.isGetter) { s.retval = bind(s.tmp_16); } - else { s.callLocIdx = 1601; s.pc = 16; return s.tmp_16; } - } - case 16: - r0 = s.retval; - s.tmp_15.arg0 = r0; - r0 = (s.col___22300 + 1); - s.tmp_15.arg1 = r0; - s.tmp_15.arg2 = undefined; - s.callLocIdx = 1602; s.pc = 15; return s.tmp_15; - case 15: - r0 = s.retval; - s.tmp_14 = r0; - if ((s.tmp_14) && (s.tmp_14).vtable) { - setupResume(s, 17); - pxsim_String__stringConv(s.tmp_14); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_14) + ""; } - case 17: - r0 = s.retval; - s.tmp_13 = r0; - r0 = pxsim_String__concat(s.tmp_6, s.tmp_13); - s.tmp_5.arg1 = r0; - if (!s.tmp_5.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapSetByString(s.tmp_5.arg0, "notes", s.tmp_5.arg1); - } else { - s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["set/notes"]; - if (s.tmp_5.fn === null) { s.tmp_5.arg0.fields["notes"] = s.tmp_5.arg1; } - else if (s.tmp_5.fn === undefined) { failedCast(s.tmp_5.arg0) } - else { s.callLocIdx = 1603; s.pc = 9; return s.tmp_5; } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + r0 = (s.arg0).fields["shakingText"] = (true); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microgui_Keyboard_shakeText__P3887.info = {"start":19087,"length":62,"line":570,"column":4,"endLine":572,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"shakeText","argumentNames":["this"]} + +function microgui_Keyboard_shakeText__P3887_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microgui_Keyboard_shakeText__P3887, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + + +function microgui_Keyboard_nextScene__P3886(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; } - case 9: - r0 = s.retval; - s.row___22295 = (0); - case 5: - r0 = (s.row___22295 < 5); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - s.tmp_1 = if_icon_2_mk(s); - s.tmp_2 = r0 = s.caps[2]; - r0 = (s.row___22295 * 4); - s.tmp_4 = r0; - r0 = (s.tmp_4 + s.col___22300); - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); - s.tmp_1.arg0 = r0; - s.tmp_5 = lambda_3_mk(s); - s.tmp_5.argL = s.caps[0]; - s.tmp_5.arg0 = s.col___22300; - s.tmp_5.arg1 = s.row___22295; - setupLambda(s.tmp_5, s.tmp_5.argL); - s.callLocIdx = 1604; s.pc = 19; return s.tmp_5; - case 19: - r0 = s.retval; - s.tmp_1.arg1 = r0; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapSetByString(s.tmp_1.arg0, "icon", s.tmp_1.arg1); + r0 = s.arg0; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + s.tmp_0 = if_nextBtnFn_2_mk(s); + s.tmp_0.arg0 = s.arg0; + r0 = s.arg0.fields["text"]; + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "nextBtnFn"), 2); + s.callLocIdx = 947; s.pc = 1; return s.tmp_0; } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["set/icon"]; - if (s.tmp_1.fn === null) { s.tmp_1.arg0.fields["icon"] = s.tmp_1.arg1; } - else if (s.tmp_1.fn === undefined) { failedCast(s.tmp_1.arg0) } - else { s.callLocIdx = 1605; s.pc = 18; return s.tmp_1; } + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["nextBtnFn"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["nextBtnFn"], 2); s.callLocIdx = 947; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 947; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 947; s.pc = 1; return s.tmp_0; } } - case 18: - r0 = s.retval; - r0 = (s.row___22295 + 1); - s.row___22295 = (r0); - { step = 5; continue; } - case 6: - s.tmp_0 = user_interface_base_Picker_draw__P3760_mk(s); - s.tmp_0.arg0 = s.caps[3]; - s.callLocIdx = 1606; s.pc = 20; return s.tmp_0; - case 20: - r0 = s.retval; - s.tmp_0 = user_interface_base_PickerNavigator_updateAria__P3820_mk(s); - r0 = s.caps[3].fields["navigator"]; - s.tmp_0.arg0 = r0; - s.callLocIdx = 1607; s.pc = 21; return s.tmp_0; - case 21: + case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P22293.info = {"start":13046,"length":1009,"line":421,"column":25,"endLine":441,"endColumn":17,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["index"]} +microgui_Keyboard_nextScene__P3886.info = {"start":19017,"length":64,"line":566,"column":4,"endLine":568,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"nextScene","argumentNames":["this"]} -function onClick_inline__P22293_mk(s) { +function microgui_Keyboard_nextScene__P3886_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P22293, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_nextScene__P3886, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - row___22295: undefined, - col___22300: undefined, - note___22309: undefined, - buf___22317: undefined, arg0: undefined, } } - -function navigator_inline__P22379(s) { +function microgui_Keyboard_getText__P3884(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66572,34 +72105,30 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_pxtcore_mkClassInstance(microcode_MelodyNavigator__C4583_VT); - s.tmp_0 = r0; - s.tmp_1 = microcode_MelodyNavigator_constructor__P4584_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.tmp_1.arg1 = s.caps[0]; - s.callLocIdx = 1608; s.pc = 1; return s.tmp_1; - case 1: - r0 = s.retval; - r0 = s.tmp_0; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + r0 = s.arg0.fields["text"]; return leave(s, r0) default: oops() } } } -navigator_inline__P22379.info = {"start":14134,"length":33,"line":444,"column":27,"endLine":444,"endColumn":60,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":[]} +microgui_Keyboard_getText__P3884.info = {"start":18903,"length":47,"line":558,"column":4,"endLine":560,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"getText","argumentNames":["this"]} -function navigator_inline__P22379_mk(s) { +function microgui_Keyboard_getText__P3884_mk(s) { checkStack(s.depth); return { - parent: s, fn: navigator_inline__P22379, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_getText__P3884, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, + arg0: undefined, } } - -function microcode_MelodyNavigator_constructor__P4584(s) { +function microgui_Keyboard_deleteFn__P3883(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66611,40 +72140,51 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyNavigator__C4583_VT)) failedCast(r0, microcode_MelodyNavigator__C4583_VT); - s.tmp_0 = user_interface_base_PickerNavigator_constructor__P3804_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.callLocIdx = 1663; s.pc = 1; return s.tmp_0; - case 1: + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + r0 = s.arg0.fields["passedDeleteFn"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_1 = if_passedDeleteFn_2_mk(s); + s.tmp_1.arg0 = s.arg0; + r0 = s.arg0.fields["text"]; + s.tmp_1.arg1 = r0; + if (!s.tmp_1.arg0.vtable.iface) { + setupLambda(s.tmp_1, pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "passedDeleteFn"), 2); + s.callLocIdx = 946; s.pc = 3; return s.tmp_1; + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["passedDeleteFn"]; + if (s.tmp_1.fn == null) { setupLambda(s.tmp_1, s.tmp_1.arg0.fields["passedDeleteFn"], 2); s.callLocIdx = 946; s.pc = 3; return s.tmp_1; } + else if (s.tmp_1.fn.isGetter) { s.tmp_1.stage2Call = true; s.callLocIdx = 946; s.pc = 3; return s.tmp_1;; } + else { s.callLocIdx = 946; s.pc = 3; return s.tmp_1; } + } + case 3: r0 = s.retval; - r0 = (s.arg0).fields["row"] = (2); - r0 = (s.arg0).fields["col"] = (2); + case 1: + case 2: r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_MelodyNavigator_constructor__P4584.info = {"start":1965,"length":115,"line":64,"column":8,"endLine":68,"endColumn":9,"fileName":"navigator.ts","functionName":"inline","argumentNames":["this","picker"]} +microgui_Keyboard_deleteFn__P3883.info = {"start":18795,"length":102,"line":553,"column":4,"endLine":556,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"deleteFn","argumentNames":["this"]} -function microcode_MelodyNavigator_constructor__P4584_mk(s) { +function microgui_Keyboard_deleteFn__P3883_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyNavigator_constructor__P4584, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_deleteFn__P3883, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_PickerNavigator_updateAria__P3820(s) { +function microgui_Keyboard_setText__P3881(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66656,37 +72196,31 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0 = user_interface_base_PickerNavigator__C3803_v0_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(s.tmp_0.arg0, user_interface_base_PickerNavigator__C3803_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; - s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + r0 = (s.arg0).fields["text"] = (s.arg1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_updateAria__P3820.info = {"start":15168,"length":61,"line":484,"column":8,"endLine":486,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"updateAria","argumentNames":["this"]} +microgui_Keyboard_setText__P3881.info = {"start":17743,"length":66,"line":522,"column":4,"endLine":524,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"setText","argumentNames":["this","text"]} -function user_interface_base_PickerNavigator_updateAria__P3820_mk(s) { +function microgui_Keyboard_setText__P3881_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_updateAria__P3820, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_setText__P3881, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function microcode_DecimalFieldEditor_toBuffer__P4415(s) { +function microgui_Keyboard_appendText__P3879(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66696,77 +72230,68 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.str___22396 = undefined; - s.buf___22399 = undefined; - s.i___22406 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalFieldEditor__C4410_VT)) failedCast(r0, microcode_DecimalFieldEditor__C4410_VT); - s.tmp_0 = if_num_1_mk(s); - s.tmp_0.arg0 = s.arg1; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "num"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["num"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["num"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1542; s.pc = 3; return s.tmp_0; } - } + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + r0 = s.arg0.fields["text"]; + s.tmp_2 = r0; + r0 = pxsim_String_.length(s.tmp_2); + s.tmp_1 = r0; + r0 = s.arg0.fields["maxTxtLength"]; + s.tmp_3 = r0; + r0 = (s.tmp_1 < s.tmp_3); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = (s.arg0).fields["frameCounter"] = (20); + s.tmp_0 = r0 = s.arg0; + r0 = s.tmp_0.fields["text"]; + s.tmp_3 = r0; + if ((s.tmp_3) && (s.tmp_3).vtable) { + setupResume(s, 3); + pxsim_String__stringConv(s.tmp_3); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_3) + ""; } case 3: r0 = s.retval; - s.str___22396 = (r0); - r0 = pxsim_String_.length(s.str___22396); + s.tmp_2 = r0; + if ((s.arg1) && (s.arg1).vtable) { + setupResume(s, 4); + pxsim_String__stringConv(s.arg1); + checkResumeConsumed(); + return; + } else { s.retval = (s.arg1) + ""; } + case 4: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_String__concat(s.tmp_2, s.tmp_4); s.tmp_1 = r0; - r0 = (s.tmp_1 + 1); - s.tmp_0 = r0; - r0 = pxsim.control.createBuffer(s.tmp_0); - s.buf___22399 = (r0); - s.i___22406 = (0); + r0 = (s.tmp_0).fields["text"] = (s.tmp_1); + { step = 2; continue; } case 1: - s.tmp_1 = r0 = s.i___22406; - r0 = pxsim_String_.length(s.str___22396); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_3 = r0 = s.buf___22399; - s.tmp_4 = r0 = s.i___22406; - r0 = pxsim_String_.charCodeAt(s.str___22396, s.i___22406); - s.tmp_5 = r0; - r0 = pxsim.BufferMethods.setUint8(s.tmp_3, s.tmp_4, s.tmp_5); - r0 = (s.i___22406 + 1); - s.i___22406 = (r0); - { step = 1; continue; } + r0 = (s.arg0).fields["shakingText"] = (true); case 2: - s.tmp_0 = r0 = s.buf___22399; - r0 = pxsim_String_.length(s.str___22396); - s.tmp_1 = r0; - r0 = pxsim.BufferMethods.setUint8(s.tmp_0, s.tmp_1, 0); - r0 = s.buf___22399; + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_DecimalFieldEditor_toBuffer__P4415.info = {"start":2157,"length":370,"line":79,"column":8,"endLine":88,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toBuffer","argumentNames":["this","field"]} +microgui_Keyboard_appendText__P3879.info = {"start":17272,"length":228,"line":505,"column":4,"endLine":512,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"appendText","argumentNames":["this","str"]} -function microcode_DecimalFieldEditor_toBuffer__P4415_mk(s) { +function microgui_Keyboard_appendText__P3879_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalFieldEditor_toBuffer__P4415, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_appendText__P3879, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - str___22396: undefined, - buf___22399: undefined, - i___22406: undefined, arg0: undefined, arg1: undefined, } } @@ -66774,8 +72299,7 @@ function microcode_DecimalFieldEditor_toBuffer__P4415_mk(s) { - -function microcode_DecimalFieldEditor_editor__P4413(s) { +function microgui_Keyboard_textLen__P3885(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66787,45 +72311,31 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalFieldEditor__C4410_VT)) failedCast(r0, microcode_DecimalFieldEditor__C4410_VT); - s.tmp_0 = microcode_decimalEditor__P5828_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = s.arg3; - s.tmp_0.arg2 = s.arg4; - s.callLocIdx = 1539; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - r0 = undefined; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + r0 = s.arg0.fields["text"]; + s.tmp_0 = r0; + r0 = pxsim_String_.length(s.tmp_0); return leave(s, r0) default: oops() } } } -microcode_DecimalFieldEditor_editor__P4413.info = {"start":1834,"length":198,"line":67,"column":8,"endLine":74,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"editor","argumentNames":["this","field","picker","onHide","onDelete"]} +microgui_Keyboard_textLen__P3885.info = {"start":18956,"length":55,"line":562,"column":4,"endLine":564,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"textLen","argumentNames":["this"]} -function microcode_DecimalFieldEditor_editor__P4413_mk(s) { +function microgui_Keyboard_textLen__P3885_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalFieldEditor_editor__P4413, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_textLen__P3885, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function microcode_decimalEditor__P5828(s) { +function microgui_Keyboard_startup__P3878(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66835,64 +72345,451 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.kb___22440 = undefined; + s.data___24427 = undefined; + s.charWidth___24445 = undefined; + s.charHeight___24448 = undefined; + s.ySpacing___24451 = undefined; + s.btnXPositions___24462 = undefined; + s.btnBitmapWidths___24487 = undefined; + s.btnXPositionAnchor___24512 = undefined; + s.longestRowLen___24533 = undefined; + s.row___24549 = undefined; + s.xSpacing___24556 = undefined; + s.x___24568 = undefined; + s.col___24580 = undefined; + s.btnState___24588 = undefined; + s.bitmapWidth___24595 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkClassInstance(microgui_Keyboard__C4755_VT); + r0 = s.arg0; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + s.tmp_0 = user_interface_base_CursorScene_startup__P3805_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 902; s.pc = 9; return s.tmp_0; + case 9: + r0 = s.retval; + s.tmp_0 = microgui___keyboardLayout__P5517_mk(s); + r0 = s.arg0.fields["keyboardLayout"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["passedDeleteFn"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 !== undefined); + s.tmp_0.arg1 = r0; + s.callLocIdx = 903; s.pc = 10; return s.tmp_0; + case 10: + r0 = s.retval; + s.data___24427 = (r0); + s.tmp_0 = r0 = s.arg0; + s.tmp_2 = helpers_arrayMap__P2135_mk(s); + s.tmp_3 = if_btnTexts_1_mk(s); + s.tmp_3.arg0 = s.data___24427; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "btnTexts"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["btnTexts"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["btnTexts"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 904; s.pc = 12; return s.tmp_3; } + } + case 12: + r0 = s.retval; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = microgui_Keyboard_startup_inline__P24442; + s.callLocIdx = 905; s.pc = 11; return s.tmp_2; + case 11: + r0 = s.retval; + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["btns"] = (s.tmp_1); + s.tmp_0 = if_charWidth_1_mk(s); + s.tmp_0.arg0 = globals.font8___3300; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charWidth"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charWidth"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charWidth"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 906; s.pc = 13; return s.tmp_0; } + } + case 13: + r0 = s.retval; + s.charWidth___24445 = (r0); + s.tmp_0 = if_charHeight_1_mk(s); + s.tmp_0.arg0 = globals.font8___3300; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charHeight"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charHeight"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charHeight"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 907; s.pc = 14; return s.tmp_0; } + } + case 14: + r0 = s.retval; + s.charHeight___24448 = (r0); + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["height"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 - s.charHeight___24448); + s.tmp_0 = r0; + s.tmp_4 = if_btnTexts_1_mk(s); + s.tmp_4.arg0 = s.data___24427; + if (!s.tmp_4.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "btnTexts"); + } else { + s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["btnTexts"]; + if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["btnTexts"]; } + else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } + else { s.callLocIdx = 908; s.pc = 15; return s.tmp_4; } + } + case 15: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_0 / s.tmp_2); + s.ySpacing___24451 = (r0); + r0 = pxsim_pxtcore_mkAction(1, btnXPositions_inline__P24464); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.charWidth___24445); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); + s.tmp_2 = if_btnTexts_1_mk(s); + s.tmp_2.arg0 = s.data___24427; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "btnTexts"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["btnTexts"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["btnTexts"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 909; s.pc = 17; return s.tmp_2; } + } + case 17: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 911; s.pc = 16; return s.tmp_1; + case 16: + r0 = s.retval; + s.btnXPositions___24462 = (r0); + r0 = pxsim_pxtcore_mkAction(1, btnBitmapWidths_inline__P24489); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.charWidth___24445); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); + s.tmp_2 = if_btnTexts_1_mk(s); + s.tmp_2.arg0 = s.data___24427; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "btnTexts"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["btnTexts"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["btnTexts"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 912; s.pc = 19; return s.tmp_2; } + } + case 19: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 914; s.pc = 18; return s.tmp_1; + case 18: + r0 = s.retval; + s.btnBitmapWidths___24487 = (r0); + s.tmp_0 = helpers_arrayReduce__P2141_mk(s); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); + s.tmp_1.arg0 = s.btnXPositions___24462; + s.tmp_1.arg1 = reduce_inline__P24517; + s.callLocIdx = 916; s.pc = 21; return s.tmp_1; + case 21: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = btnXPositionAnchor_inline__P24527; + s.tmp_0.arg2 = 0; + s.callLocIdx = 918; s.pc = 20; return s.tmp_0; + case 20: + r0 = s.retval; + s.btnXPositionAnchor___24512 = (r0); + s.tmp_0 = helpers_arrayReduce__P2141_mk(s); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); + s.tmp_2 = if_btnTexts_1_mk(s); + s.tmp_2.arg0 = s.data___24427; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "btnTexts"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["btnTexts"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["btnTexts"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 919; s.pc = 24; return s.tmp_2; } + } + case 24: + r0 = s.retval; + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = reduce_inline__P24539; + s.callLocIdx = 920; s.pc = 23; return s.tmp_1; + case 23: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = longestRowLen_inline__P24543; + s.tmp_0.arg2 = 0; + s.callLocIdx = 922; s.pc = 22; return s.tmp_0; + case 22: + r0 = s.retval; + s.longestRowLen___24533 = (r0); + s.row___24549 = (0); + case 1: + s.tmp_1 = r0 = s.row___24549; + s.tmp_4 = if_btnTexts_1_mk(s); + s.tmp_4.arg0 = s.data___24427; + if (!s.tmp_4.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "btnTexts"); + } else { + s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["btnTexts"]; + if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["btnTexts"]; } + else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } + else { s.callLocIdx = 923; s.pc = 25; return s.tmp_4; } + } + case 25: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + r0 = s.arg0.fields["keyboardBounds"]; + r0 = r0.fields["width"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 - s.btnXPositionAnchor___24512); + s.tmp_5 = r0; + r0 = (s.longestRowLen___24533 + 1); + s.tmp_7 = r0; + r0 = (s.tmp_5 / s.tmp_7); + s.xSpacing___24556 = (r0); + r0 = (0 - globals.user_interface_base_Screen_HALF_WIDTH___3414); + s.tmp_1 = r0; + r0 = (s.tmp_1 + s.xSpacing___24556); + s.tmp_0 = r0; + s.tmp_6 = if_btnTexts_1_mk(s); + s.tmp_6.arg0 = s.data___24427; + if (!s.tmp_6.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_6.arg0, "btnTexts"); + } else { + s.tmp_6.fn = s.tmp_6.arg0.vtable.iface["btnTexts"]; + if (s.tmp_6.fn == null) { s.retval = s.tmp_6.arg0.fields["btnTexts"]; } + else if (!s.tmp_6.fn.isGetter) { s.retval = bind(s.tmp_6); } + else { s.callLocIdx = 924; s.pc = 26; return s.tmp_6; } + } + case 26: + r0 = s.retval; + s.tmp_5 = r0; + r0 = pxsim_Array__getAt(s.tmp_5, s.row___24549); + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 >> 1); + s.tmp_2 = r0; + r0 = (s.tmp_0 + s.tmp_2); + s.x___24568 = (r0); + s.col___24580 = (0); + case 2: + s.tmp_1 = r0 = s.col___24580; + s.tmp_5 = if_btnTexts_1_mk(s); + s.tmp_5.arg0 = s.data___24427; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "btnTexts"); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["btnTexts"]; + if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["btnTexts"]; } + else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } + else { s.callLocIdx = 925; s.pc = 27; return s.tmp_5; } + } + case 27: + r0 = s.retval; + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.row___24549); + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 7; continue; } + s.tmp_8 = if_btnTexts_1_mk(s); + s.tmp_8.arg0 = s.data___24427; + if (!s.tmp_8.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "btnTexts"); + } else { + s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["btnTexts"]; + if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["btnTexts"]; } + else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } + else { s.callLocIdx = 926; s.pc = 28; return s.tmp_8; } + } + case 28: + r0 = s.retval; + s.tmp_7 = r0; + r0 = pxsim_Array__getAt(s.tmp_7, s.row___24549); + s.tmp_6 = r0; + r0 = pxsim_Array__getAt(s.tmp_6, s.col___24580); + s.btnState___24588 = (r0); + r0 = pxsim_Array__getAt(s.btnBitmapWidths___24487, s.row___24549); + s.tmp_0 = r0; + r0 = pxsim_Array__getAt(s.tmp_0, s.col___24580); + s.bitmapWidth___24595 = (r0); + s.tmp_0 = r0 = s.x___24568; + r0 = pxsim_Array__getAt(s.btnXPositions___24462, s.row___24549); + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.col___24580); + s.tmp_3 = r0; + r0 = (s.tmp_3 + s.xSpacing___24556); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); + s.x___24568 = (r0); + r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3638_VT); s.tmp_0 = r0; r0 = pxsim_pxtrt.mkMap(); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "app", globals.app___3880); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "layout", 1); - r0 = pxsim_pxtcore_mkAction(2, cb_inline__P22445); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", null); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.Transparent___3614); + r0 = pxsim_pxtcore.typeOf(s.btnState___24588); + s.tmp_3 = r0; + r0 = (s.tmp_3 == "string"); s.tmp_2 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_2, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_2, 1, s.arg1); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "cb", s.tmp_2); - s.tmp_4 = if_num_1_mk(s); - s.tmp_4.arg0 = s.arg0; - if (!s.tmp_4.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "num"); + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + r0 = pxsim.bitmaps.create(s.bitmapWidth___24595, s.charHeight___24448); + { step = 4; continue; } + case 3: + r0 = s.btnState___24588; + case 4: + // jmp value (already in r0) + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_4); + r0 = pxsim_String_.mkEmpty(); + s.tmp_5 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", s.tmp_5); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.x___24568); + r0 = (s.charHeight___24448 >> 1); + s.tmp_8 = r0; + r0 = (0 - s.tmp_8); + s.tmp_7 = r0; + r0 = (s.ySpacing___24451 * s.row___24549); + s.tmp_9 = r0; + r0 = (s.tmp_7 + s.tmp_9); + s.tmp_6 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", s.tmp_6); + r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P24641); + s.tmp_10 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_10, 0, s.data___24427); + r0 = pxsim_pxtrt_stclo(s.tmp_10, 1, s.arg0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_10); + r0 = pxsim_pxtcore.typeOf(s.btnState___24588); + s.tmp_12 = r0; + r0 = (s.tmp_12 == "string"); + s.tmp_11 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_11); + if (!r0) { step = 5; continue; } + r0 = pxsim_Array__mk(); + s.tmp_13 = r0; + r0 = pxsim_Array__push(s.tmp_13, s.btnState___24588); + r0 = s.tmp_13; + { step = 6; continue; } + case 5: + r0 = pxsim_Array__mk(); + case 6: + // jmp value (already in r0) + s.tmp_14 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "state", s.tmp_14); + s.tmp_15 = user_interface_base_Button_constructor__P3650_mk(s); + s.tmp_15.arg0 = s.tmp_0; + s.tmp_15.arg1 = s.tmp_1; + s.callLocIdx = 928; s.pc = 29; return s.tmp_15; + case 29: + r0 = s.retval; + r0 = s.arg0.fields["btns"]; + s.tmp_17 = r0; + r0 = pxsim_Array__getAt(s.tmp_17, s.row___24549); + s.tmp_16 = r0; + r0 = pxsim_Array_.setAt(s.tmp_16, s.col___24580, s.tmp_0); + s.tmp_0 = r0 = s.x___24568; + r0 = pxsim_Array__getAt(s.btnXPositions___24462, s.row___24549); + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.col___24580); + s.tmp_3 = r0; + r0 = (s.tmp_3 + s.xSpacing___24556); + s.tmp_2 = r0; + r0 = (s.tmp_2 >> 1); + s.tmp_1 = r0; + r0 = (s.tmp_0 + s.tmp_1); + s.x___24568 = (r0); + r0 = (s.col___24580 + 1); + s.col___24580 = (r0); + { step = 2; continue; } + case 7: + r0 = (s.row___24549 + 1); + s.row___24549 = (r0); + { step = 1; continue; } + case 8: + r0 = pxsim_pxtcore_mkAction(1, microgui_Keyboard_startup_inline__P24673); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = helpers_arrayForEach__P2138_mk(s); + s.tmp_2 = if_specialBtnBehaviours_1_mk(s); + s.tmp_2.arg0 = s.data___24427; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "specialBtnBehaviours"); } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["num"]; - if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["num"]; } - else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 1576; s.pc = 1; return s.tmp_4; } + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["specialBtnBehaviours"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["specialBtnBehaviours"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 929; s.pc = 31; return s.tmp_2; } } - case 1: + case 31: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "init", s.tmp_3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "foregroundColor", 3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "backgroundColor", 6); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "maxTxtLength", 5); - s.tmp_5 = microgui_Keyboard_constructor__P4756_mk(s); - s.tmp_5.arg0 = s.tmp_0; - s.tmp_5.arg1 = s.tmp_1; - s.callLocIdx = 1577; s.pc = 2; return s.tmp_5; - case 2: + s.tmp_1.arg0 = r0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 933; s.pc = 30; return s.tmp_1; + case 30: r0 = s.retval; - s.kb___22440 = (s.tmp_0); - s.tmp_0 = microcode_App_pushScene__P4295_mk(s); - s.tmp_0.arg0 = globals.app___3880; - s.tmp_0.arg1 = s.kb___22440; - s.callLocIdx = 1578; s.pc = 3; return s.tmp_0; - case 3: + r0 = pxsim_pxtcore_mkAction(1, microgui_Keyboard_startup_inline__P24697); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + s.tmp_1 = context_onEvent__P3247_mk(s); + s.tmp_1.arg0 = 2049; + r0 = globals.B___3240.fields["id"]; + s.tmp_1.arg1 = r0; + s.tmp_1.arg2 = s.tmp_0; + s.tmp_1.arg3 = 16; + s.callLocIdx = 935; s.pc = 32; return s.tmp_1; + case 32: + r0 = s.retval; + s.tmp_0 = if_setBtns_2_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + r0 = s.arg0.fields["btns"]; + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "setBtns"), 2); + s.callLocIdx = 936; s.pc = 33; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["setBtns"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["setBtns"], 2); s.callLocIdx = 936; s.pc = 33; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 936; s.pc = 33; return s.tmp_0;; } + else { s.callLocIdx = 936; s.pc = 33; return s.tmp_0; } + } + case 33: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_decimalEditor__P5828.info = {"start":9879,"length":660,"line":320,"column":4,"endLine":340,"endColumn":5,"fileName":"fieldeditors.ts","functionName":"decimalEditor","argumentNames":["bn","onHide","onDelete"]} +microgui_Keyboard_startup__P3878.info = {"start":13698,"length":3489,"line":420,"column":4,"endLine":499,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"startup","argumentNames":["this"]} -function microcode_decimalEditor__P5828_mk(s) { +function microgui_Keyboard_startup__P3878_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_decimalEditor__P5828, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_startup__P3878, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -66900,17 +72797,39 @@ function microcode_decimalEditor__P5828_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, - kb___22440: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + tmp_11: undefined, + tmp_12: undefined, + tmp_13: undefined, + tmp_14: undefined, + tmp_15: undefined, + tmp_16: undefined, + tmp_17: undefined, + data___24427: undefined, + charWidth___24445: undefined, + charHeight___24448: undefined, + ySpacing___24451: undefined, + btnXPositions___24462: undefined, + btnBitmapWidths___24487: undefined, + btnXPositionAnchor___24512: undefined, + longestRowLen___24533: undefined, + row___24549: undefined, + xSpacing___24556: undefined, + x___24568: undefined, + col___24580: undefined, + btnState___24588: undefined, + bitmapWidth___24595: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function cb_inline__P22445(s) { +function microgui_Keyboard_startup_inline__P24442(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -66924,76 +72843,24 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = helpers_stringReplace__P2145_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = " "; - r0 = pxsim_String_.mkEmpty(); - s.tmp_0.arg2 = r0; - s.callLocIdx = 1572; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - s.tmp_1 = r0 = s.arg0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_2 = r0; - r0 = (s.tmp_1 == s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = "0"; - { step = 2; continue; } - case 1: - r0 = s.arg0; - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - s.tmp_4 = if_num_2_mk(s); - s.tmp_4.arg0 = s.caps[0]; - s.tmp_4.arg1 = s.tmp_3; - if (!s.tmp_4.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapSetByString(s.tmp_4.arg0, "num", s.tmp_4.arg1); - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["set/num"]; - if (s.tmp_4.fn === null) { s.tmp_4.arg0.fields["num"] = s.tmp_4.arg1; } - else if (s.tmp_4.fn === undefined) { failedCast(s.tmp_4.arg0) } - else { s.callLocIdx = 1573; s.pc = 4; return s.tmp_4; } - } - case 4: - r0 = s.retval; - s.tmp_0 = microcode_App_popScene__P4296_mk(s); - s.tmp_0.arg0 = globals.app___3880; - s.callLocIdx = 1574; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - s.tmp_0 = lambda_1_mk(s); - s.tmp_0.argL = s.caps[1]; - setupLambda(s.tmp_0, s.tmp_0.argL); - s.callLocIdx = 1575; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - r0 = undefined; + r0 = pxsim_Array__mk(); return leave(s, r0) default: oops() } } } -cb_inline__P22445.info = {"start":10126,"length":202,"line":328,"column":16,"endLine":333,"endColumn":13,"fileName":"fieldeditors.ts","functionName":"inline","argumentNames":["txt"]} +microgui_Keyboard_startup_inline__P24442.info = {"start":13862,"length":7,"line":424,"column":36,"endLine":424,"endColumn":43,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["_"]} -function cb_inline__P22445_mk(s) { +function microgui_Keyboard_startup_inline__P24442_mk(s) { checkStack(s.depth); return { - parent: s, fn: cb_inline__P22445, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_startup_inline__P24442, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, } } - -function helpers_stringReplace__P2145(s) { +function btnXPositions_inline__P24464(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67003,207 +72870,38 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.ind___22471 = undefined; - s.begin___22482 = undefined; - s.end___22487 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 8); - pxsim_String__stringConv(s.arg1); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg1) + ""; } - case 8: - r0 = s.retval; + r0 = pxsim_pxtcore_mkAction(1, btnXPositions_inline__P24471); s.tmp_0 = r0; - r0 = pxsim_String_.mkEmpty(); - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.arg1 = (r0); - r0 = pxsim_String_.indexOf(s.arg0, s.arg1, undefined); - s.ind___22471 = (r0); - r0 = (s.ind___22471 == -1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = s.arg0; - { step = 7; continue; } - case 1: - case 2: - s.tmp_1 = helpers_stringSlice__P2148_mk(s); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); s.tmp_1.arg0 = s.arg0; - s.tmp_1.arg1 = 0; - s.tmp_1.arg2 = s.ind___22471; - s.callLocIdx = 11; s.pc = 9; return s.tmp_1; - case 9: - r0 = s.retval; - s.begin___22482 = (r0); - s.tmp_0 = helpers_stringSlice__P2148_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_1 = r0 = s.ind___22471; - r0 = pxsim_String_.length(s.arg1); - s.tmp_2 = r0; - r0 = (s.tmp_1 + s.tmp_2); - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = undefined; - s.callLocIdx = 12; s.pc = 10; return s.tmp_0; - case 10: - r0 = s.retval; - s.end___22487 = (r0); - r0 = pxsim_pxtcore.typeOf(s.arg2); - s.tmp_1 = r0; - r0 = (s.tmp_1 == "string"); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = s.tmp_0; - { step = 4; continue; } - case 3: - r0 = pxsim_numops_toBoolDecr(s.arg2); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); - case 4: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - if (!r0) { step = 5; continue; } - if ((s.begin___22482) && (s.begin___22482).vtable) { - setupResume(s, 11); - pxsim_String__stringConv(s.begin___22482); - checkResumeConsumed(); - return; - } else { s.retval = (s.begin___22482) + ""; } - case 11: - r0 = s.retval; - s.tmp_6 = r0; - if ((s.arg2) && (s.arg2).vtable) { - setupResume(s, 12); - pxsim_String__stringConv(s.arg2); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg2) + ""; } - case 12: - r0 = s.retval; - s.tmp_7 = r0; - r0 = pxsim_String__concat(s.tmp_6, s.tmp_7); - s.tmp_5 = r0; - if ((s.tmp_5) && (s.tmp_5).vtable) { - setupResume(s, 13); - pxsim_String__stringConv(s.tmp_5); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_5) + ""; } - case 13: - r0 = s.retval; - s.tmp_4 = r0; - if ((s.end___22487) && (s.end___22487).vtable) { - setupResume(s, 14); - pxsim_String__stringConv(s.end___22487); - checkResumeConsumed(); - return; - } else { s.retval = (s.end___22487) + ""; } - case 14: - r0 = s.retval; - s.tmp_8 = r0; - r0 = pxsim_String__concat(s.tmp_4, s.tmp_8); - { step = 7; continue; } - { step = 6; continue; } - case 5: - if ((s.begin___22482) && (s.begin___22482).vtable) { - setupResume(s, 15); - pxsim_String__stringConv(s.begin___22482); - checkResumeConsumed(); - return; - } else { s.retval = (s.begin___22482) + ""; } - case 15: - r0 = s.retval; - s.tmp_11 = r0; - s.tmp_14 = lambda_2_mk(s); - s.tmp_14.argL = s.arg2; - s.tmp_14.arg0 = s.arg1; - setupLambda(s.tmp_14, s.tmp_14.argL); - s.callLocIdx = 13; s.pc = 16; return s.tmp_14; - case 16: - r0 = s.retval; - s.tmp_13 = r0; - if ((s.tmp_13) && (s.tmp_13).vtable) { - setupResume(s, 17); - pxsim_String__stringConv(s.tmp_13); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_13) + ""; } - case 17: - r0 = s.retval; - s.tmp_12 = r0; - r0 = pxsim_String__concat(s.tmp_11, s.tmp_12); - s.tmp_10 = r0; - if ((s.tmp_10) && (s.tmp_10).vtable) { - setupResume(s, 18); - pxsim_String__stringConv(s.tmp_10); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_10) + ""; } - case 18: - r0 = s.retval; - s.tmp_9 = r0; - if ((s.end___22487) && (s.end___22487).vtable) { - setupResume(s, 19); - pxsim_String__stringConv(s.end___22487); - checkResumeConsumed(); - return; - } else { s.retval = (s.end___22487) + ""; } - case 19: + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 910; s.pc = 1; return s.tmp_1; + case 1: r0 = s.retval; - s.tmp_15 = r0; - r0 = pxsim_String__concat(s.tmp_9, s.tmp_15); - { step = 7; continue; } - case 6: - r0 = undefined; - case 7: return leave(s, r0) default: oops() } } } -helpers_stringReplace__P2145.info = {"start":9723,"length":510,"line":330,"column":4,"endLine":344,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringReplace","argumentNames":["s","toReplace","replacer"]} +btnXPositions_inline__P24464.info = {"start":14130,"length":398,"line":432,"column":26,"endLine":440,"endColumn":12,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["row"]} -function helpers_stringReplace__P2145_mk(s) { +function btnXPositions_inline__P24464_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_stringReplace__P2145, depth: s.depth + 1, + parent: s, fn: btnXPositions_inline__P24464, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - ind___22471: undefined, - begin___22482: undefined, - end___22487: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } - -function microgui_Keyboard_constructor__P4756(s) { +function btnXPositions_inline__P24471(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67215,261 +72913,41 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - r0 = (s.arg0).fields["backgroundCaptured_"] = (false); - r0 = (s.arg0).fields["shakeStrength"] = (5); - r0 = (s.arg0).fields["FRAME_COUNTER_CURSOR_ON"] = (20); - r0 = (s.arg0).fields["FRAME_COUNTER_CURSOR_OFF"] = (60); - r0 = (s.arg0).fields["MAX_TEXT_LENGTH"] = (22); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_GridNavigator__C3794_VT); - s.tmp_0 = r0; - r0 = pxsim_Array__mk(); + r0 = pxsim_pxtcore.typeOf(s.arg0); s.tmp_1 = r0; - r0 = pxsim_Array__mk(); - s.tmp_2 = r0; - r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); - s.tmp_3 = user_interface_base_GridNavigator_constructor__P3795_mk(s); - s.tmp_3.arg0 = s.tmp_0; - s.tmp_3.arg1 = s.tmp_1; - s.callLocIdx = 1909; s.pc = 9; return s.tmp_3; - case 9: - r0 = s.retval; - s.tmp_4 = user_interface_base_CursorScene_constructor__P3830_mk(s); - s.tmp_4.arg0 = s.arg0; - s.tmp_5 = if_app_1_mk(s); - s.tmp_5.arg0 = s.arg1; - if (!s.tmp_5.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "app"); - } else { - s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["app"]; - if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["app"]; } - else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } - else { s.callLocIdx = 1908; s.pc = 11; return s.tmp_5; } - } - case 11: - r0 = s.retval; - s.tmp_4.arg1 = r0; - s.tmp_4.arg2 = s.tmp_0; - s.callLocIdx = 1910; s.pc = 10; return s.tmp_4; - case 10: - r0 = s.retval; - s.tmp_1 = if_init_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "init"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["init"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["init"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1911; s.pc = 12; return s.tmp_1; } - } - case 12: - r0 = s.retval; + r0 = (s.tmp_1 == "string"); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - s.tmp_2 = if_init_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "init"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["init"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["init"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1912; s.pc = 13; return s.tmp_2; } - } - case 13: - r0 = s.retval; - { step = 2; continue; } - case 1: - r0 = pxsim_String_.mkEmpty(); - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = (s.arg0).fields["text"] = (s.tmp_3); - r0 = (s.arg0).fields["isUpperCase"] = (true); - s.tmp_1 = if_maxTxtLength_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "maxTxtLength"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["maxTxtLength"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["maxTxtLength"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1913; s.pc = 14; return s.tmp_1; } - } - case 14: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - s.tmp_2 = Math_min__P2160_mk(s); - s.tmp_3 = if_maxTxtLength_1_mk(s); - s.tmp_3.arg0 = s.arg1; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "maxTxtLength"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["maxTxtLength"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["maxTxtLength"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1914; s.pc = 16; return s.tmp_3; } - } - case 16: - r0 = s.retval; - s.tmp_2.arg0 = r0; - r0 = s.arg0.fields["MAX_TEXT_LENGTH"]; - s.tmp_2.arg1 = r0; - s.callLocIdx = 1915; s.pc = 15; return s.tmp_2; - case 15: - r0 = s.retval; - { step = 4; continue; } - case 3: - r0 = s.arg0.fields["MAX_TEXT_LENGTH"]; - case 4: - // jmp value (already in r0) - s.tmp_4 = r0; - r0 = (s.arg0).fields["maxTxtLength"] = (s.tmp_4); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_cb_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "cb"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["cb"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["cb"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1916; s.pc = 17; return s.tmp_2; } - } - case 17: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["nextBtnFn"] = (s.tmp_1); - r0 = (s.arg0).fields["frameCounter"] = (0); - r0 = (s.arg0).fields["shakingText"] = (false); - r0 = (s.arg0).fields["shakeTextCounter"] = (0); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = if_layout_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "layout"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["layout"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["layout"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1917; s.pc = 18; return s.tmp_2; } - } - case 18: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["keyboardLayout"] = (s.tmp_1); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Bounds__C3363_VT); - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); - s.tmp_1 = r0; - r0 = (globals.user_interface_base_Screen_WIDTH___3439 - 8); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "width", s.tmp_2); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "height", 72); - r0 = (globals.user_interface_base_Screen_TOP_EDGE___3445 + 44); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "top", s.tmp_3); - r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3443 + 4); - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "left", s.tmp_4); - s.tmp_5 = user_interface_base_Bounds_constructor__P3376_mk(s); - s.tmp_5.arg0 = s.tmp_0; - s.tmp_5.arg1 = s.tmp_1; - s.callLocIdx = 1918; s.pc = 19; return s.tmp_5; - case 19: - r0 = s.retval; - r0 = (s.arg0).fields["keyboardBounds"] = (s.tmp_0); - s.tmp_1 = if_foregroundColor_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "foregroundColor"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["foregroundColor"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["foregroundColor"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1919; s.pc = 20; return s.tmp_1; } - } - case 20: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.tmp_2 = if_foregroundColor_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "foregroundColor"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["foregroundColor"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["foregroundColor"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1920; s.pc = 21; return s.tmp_2; } - } - case 21: - r0 = s.retval; - { step = 6; continue; } - case 5: - r0 = 4; - case 6: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = (s.arg0).fields["foregroundColor"] = (s.tmp_3); - s.tmp_1 = if_backgroundColor_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "backgroundColor"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["backgroundColor"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["backgroundColor"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1921; s.pc = 22; return s.tmp_1; } - } - case 22: - r0 = s.retval; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.tmp_2 = if_backgroundColor_1_mk(s); - s.tmp_2.arg0 = s.arg1; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "backgroundColor"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["backgroundColor"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["backgroundColor"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1922; s.pc = 23; return s.tmp_2; } - } - case 23: - r0 = s.retval; - { step = 8; continue; } - case 7: - r0 = 6; - case 8: - // jmp value (already in r0) - s.tmp_3 = r0; - s.tmp_4 = user_interface_base_Scene_backgroundColor__P3689_mk(s); - s.tmp_4.arg0 = s.arg0; - s.tmp_4.arg1 = s.tmp_3; - s.callLocIdx = 1923; s.pc = 24; return s.tmp_4; - case 24: - r0 = s.retval; + s.tmp_2 = r0 = s.caps[0]; + r0 = pxsim_String_.length(s.arg0); + s.tmp_4 = r0; + r0 = (s.tmp_4 + 1); + s.tmp_3 = r0; + r0 = (s.tmp_2 * s.tmp_3); + { step = 3; continue; } + { step = 2; continue; } + case 1: + r0 = pxsim.BitmapMethods.width(s.arg0); + s.tmp_5 = r0; + r0 = pxsim.BitmapMethods.width(s.arg0); + s.tmp_6 = r0; + r0 = (s.tmp_5 - s.tmp_6); + { step = 3; continue; } + case 2: r0 = undefined; + case 3: return leave(s, r0) default: oops() } } } -microgui_Keyboard_constructor__P4756.info = {"start":11683,"length":1325,"line":359,"column":8,"endLine":395,"endColumn":9,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["this","opts"]} +btnXPositions_inline__P24471.info = {"start":14155,"length":372,"line":433,"column":18,"endLine":440,"endColumn":11,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["txtOrBitmap"]} -function microgui_Keyboard_constructor__P4756_mk(s) { +function btnXPositions_inline__P24471_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_constructor__P4756, depth: s.depth + 1, + parent: s, fn: btnXPositions_inline__P24471, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -67477,15 +72955,14 @@ function microgui_Keyboard_constructor__P4756_mk(s) { tmp_3: undefined, tmp_4: undefined, tmp_5: undefined, + tmp_6: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_GridNavigator_constructor__P3795(s) { +function btnBitmapWidths_inline__P24489(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67497,63 +72974,36 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_GridNavigator__C3794_VT)) failedCast(r0, user_interface_base_GridNavigator__C3794_VT); - s.tmp_0 = user_interface_base_RowNavigator_constructor__P3781_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 784; s.pc = 3; return s.tmp_0; - case 3: - r0 = s.retval; - r0 = pxsim_numops_toBoolDecr(s.arg1); - if (!r0) { step = 1; continue; } - r0 = (s.arg0).fields["buttonGroups"] = (s.arg1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = helpers_arrayMap__P2135_mk(s); - s.tmp_2.arg0 = s.arg1; - s.tmp_2.arg1 = user_interface_base_GridNavigator_inline__P22620; - s.callLocIdx = 785; s.pc = 4; return s.tmp_2; - case 4: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["widths"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__length(s.arg1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["height"] = (s.tmp_1); - { step = 2; continue; } + r0 = pxsim_pxtcore_mkAction(1, btnBitmapWidths_inline__P24496); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.caps[0]); + s.tmp_1 = helpers_arrayMap__P2135_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = s.tmp_0; + s.callLocIdx = 913; s.pc = 1; return s.tmp_1; case 1: - r0 = (s.arg0).fields["height"] = (0); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__mk(); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["widths"] = (s.tmp_1); - case 2: - r0 = undefined; + r0 = s.retval; return leave(s, r0) default: oops() } } } -user_interface_base_GridNavigator_constructor__P3795.info = {"start":7067,"length":329,"line":218,"column":8,"endLine":229,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["this","btns"]} +btnBitmapWidths_inline__P24489.info = {"start":14609,"length":256,"line":444,"column":26,"endLine":450,"endColumn":12,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["row"]} -function user_interface_base_GridNavigator_constructor__P3795_mk(s) { +function btnBitmapWidths_inline__P24489_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_GridNavigator_constructor__P3795, depth: s.depth + 1, + parent: s, fn: btnBitmapWidths_inline__P24489, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, arg0: undefined, - arg1: undefined, } } - -function user_interface_base_GridNavigator_inline__P22620(s) { +function btnBitmapWidths_inline__P24496(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67567,25 +73017,51 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_Array__length(s.arg0); + r0 = pxsim_pxtcore.typeOf(s.arg0); + s.tmp_1 = r0; + r0 = (s.tmp_1 == "string"); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = r0 = s.caps[0]; + r0 = pxsim_String_.length(s.arg0); + s.tmp_4 = r0; + r0 = (s.tmp_3 * s.tmp_4); + s.tmp_2 = r0; + r0 = (s.caps[0] >> 1); + s.tmp_5 = r0; + r0 = (s.tmp_2 + s.tmp_5); + { step = 3; continue; } + { step = 2; continue; } + case 1: + r0 = pxsim.BitmapMethods.width(s.arg0); + { step = 3; continue; } + case 2: + r0 = undefined; + case 3: return leave(s, r0) default: oops() } } } -user_interface_base_GridNavigator_inline__P22620.info = {"start":7225,"length":17,"line":223,"column":39,"endLine":223,"endColumn":56,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["row"]} +btnBitmapWidths_inline__P24496.info = {"start":14634,"length":230,"line":445,"column":18,"endLine":450,"endColumn":11,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["txtOrBitmap"]} -function user_interface_base_GridNavigator_inline__P22620_mk(s) { +function btnBitmapWidths_inline__P24496_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_GridNavigator_inline__P22620, depth: s.depth + 1, + parent: s, fn: btnBitmapWidths_inline__P24496, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, arg0: undefined, } } - -function microcode_IconEditor_getIcon__P4434(s) { +function reduce_inline__P24517(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67599,55 +73075,31 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconEditor__C4430_VT)) failedCast(r0, microcode_IconEditor__C4430_VT); - r0 = s.arg0.fields["firstInstance"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_getIcon__P4042_mk(s); - s.tmp_1.arg0 = 160; - s.callLocIdx = 1551; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - { step = 2; continue; } + s.tmp_0 = helpers_arrayReduce__P2141_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = reduce_inline__P24521; + s.tmp_0.arg2 = 0; + s.callLocIdx = 915; s.pc = 1; return s.tmp_0; case 1: - s.tmp_2 = microcode_FieldEditor__C5806_v3_2_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_2.arg0 = r0; - r0 = s.arg0.fields["field"]; - s.tmp_2.arg1 = r0; - if (!checkSubtype(s.tmp_2.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_2.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.toImage; - s.pc = 4; return s.tmp_2; - case 4: r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -microcode_IconEditor_getIcon__P4434.info = {"start":5262,"length":196,"line":183,"column":8,"endLine":187,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getIcon","argumentNames":["this"]} +reduce_inline__P24517.info = {"start":14945,"length":89,"line":454,"column":26,"endLine":455,"endColumn":77,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["rowWidth"]} -function microcode_IconEditor_getIcon__P4434_mk(s) { +function reduce_inline__P24517_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconEditor_getIcon__P4434, depth: s.depth + 1, + parent: s, fn: reduce_inline__P24517, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, } } - -function microcode_FieldEditor_toImage__P5810(s) { +function reduce_inline__P24521(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67662,18 +73114,16 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_FieldEditor__C5806_VT)) failedCast(r0, microcode_FieldEditor__C5806_VT); - r0 = undefined; + r0 = (s.arg0 + s.arg1); return leave(s, r0) default: oops() } } } -microcode_FieldEditor_toImage__P5810.info = {"start":674,"length":68,"line":23,"column":8,"endLine":25,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toImage","argumentNames":["this","field"]} +reduce_inline__P24521.info = {"start":14983,"length":47,"line":455,"column":26,"endLine":455,"endColumn":73,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["sum","current"]} -function microcode_FieldEditor_toImage__P5810_mk(s) { +function reduce_inline__P24521_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_FieldEditor_toImage__P5810, depth: s.depth + 1, + parent: s, fn: reduce_inline__P24521, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, arg0: undefined, arg1: undefined, @@ -67682,8 +73132,7 @@ function microcode_FieldEditor_toImage__P5810_mk(s) { - -function microcode_MelodyEditor_getIcon__P4453(s) { +function btnXPositionAnchor_inline__P24527(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67695,57 +73144,65 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyEditor__C4449_VT)) failedCast(r0, microcode_MelodyEditor__C4449_VT); - r0 = s.arg0.fields["firstInstance"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_getIcon__P4042_mk(s); - s.tmp_1.arg0 = 179; - s.callLocIdx = 1564; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - { step = 2; continue; } + s.tmp_0 = Math_max__P2159_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 917; s.pc = 1; return s.tmp_0; case 1: - s.tmp_2 = microcode_FieldEditor__C5806_v3_2_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_2.arg0 = r0; - r0 = s.arg0.fields["field"]; - s.tmp_2.arg1 = r0; - if (!checkSubtype(s.tmp_2.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_2.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.toImage; - s.pc = 4; return s.tmp_2; - case 4: r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -microcode_MelodyEditor_getIcon__P4453.info = {"start":8086,"length":198,"line":271,"column":8,"endLine":275,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getIcon","argumentNames":["this"]} +btnXPositionAnchor_inline__P24527.info = {"start":15063,"length":62,"line":457,"column":18,"endLine":457,"endColumn":80,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["widest","current"]} -function microcode_MelodyEditor_getIcon__P4453_mk(s) { +function btnXPositionAnchor_inline__P24527_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyEditor_getIcon__P4453, depth: s.depth + 1, + parent: s, fn: btnXPositionAnchor_inline__P24527, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, + arg1: undefined, } } +function reduce_inline__P24539(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_Array__length(s.arg0); + return leave(s, r0) + default: oops() +} } } +reduce_inline__P24539.info = {"start":15178,"length":27,"line":459,"column":46,"endLine":459,"endColumn":73,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btnTexts"]} + +function reduce_inline__P24539_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: reduce_inline__P24539, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + arg0: undefined, +} } + + + -function microcode_DecimalEditor_getIcon__P4421(s) { +function longestRowLen_inline__P24543(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67757,57 +73214,34 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalEditor__C4417_VT)) failedCast(r0, microcode_DecimalEditor__C4417_VT); - r0 = s.arg0.fields["firstInstance"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_1 = microcode_getIcon__P4042_mk(s); - s.tmp_1.arg0 = 255; - s.callLocIdx = 1545; s.pc = 3; return s.tmp_1; - case 3: - r0 = s.retval; - { step = 2; continue; } + s.tmp_0 = Math_max__P2159_mk(s); + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + s.callLocIdx = 921; s.pc = 1; return s.tmp_0; case 1: - s.tmp_2 = microcode_FieldEditor__C5806_v3_2_mk(s); - r0 = s.arg0.fields["fieldEditor"]; - s.tmp_2.arg0 = r0; - r0 = s.arg0.fields["field"]; - s.tmp_2.arg1 = r0; - if (!checkSubtype(s.tmp_2.arg0, microcode_FieldEditor__C5806_VT)) failedCast(s.tmp_2.arg0, microcode_FieldEditor__C5806_VT); - s.tmp_2.fn = s.tmp_2.arg0.vtable.methods.toImage; - s.pc = 4; return s.tmp_2; - case 4: r0 = s.retval; - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -microcode_DecimalEditor_getIcon__P4421.info = {"start":3100,"length":190,"line":109,"column":8,"endLine":113,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"getIcon","argumentNames":["this"]} +longestRowLen_inline__P24543.info = {"start":15214,"length":48,"line":459,"column":82,"endLine":459,"endColumn":130,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["longest","current"]} -function microcode_DecimalEditor_getIcon__P4421_mk(s) { +function longestRowLen_inline__P24543_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalEditor_getIcon__P4421, depth: s.depth + 1, + parent: s, fn: longestRowLen_inline__P24543, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_CursorScene_shutdown__P3834(s) { +function onClick_inline__P24641(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67821,19 +73255,18 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_CursorScene__C3826_VT)) failedCast(r0, user_interface_base_CursorScene__C3826_VT); - s.tmp_0 = if_clear_1_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; + s.tmp_0 = if_defaultBtnBehaviour_3_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = s.arg0; + s.tmp_0.arg2 = s.caps[1]; if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "clear"), 1); - s.callLocIdx = 840; s.pc = 1; return s.tmp_0; + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "defaultBtnBehaviour"), 3); + s.callLocIdx = 927; s.pc = 1; return s.tmp_0; } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["clear"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["clear"], 1); s.callLocIdx = 840; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 840; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 840; s.pc = 1; return s.tmp_0; } + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["defaultBtnBehaviour"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["defaultBtnBehaviour"], 3); s.callLocIdx = 927; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 927; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 927; s.pc = 1; return s.tmp_0; } } case 1: r0 = s.retval; @@ -67841,12 +73274,12 @@ switch (step) { return leave(s, r0) default: oops() } } } -user_interface_base_CursorScene_shutdown__P3834.info = {"start":3653,"length":47,"line":138,"column":23,"endLine":140,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"shutdown","argumentNames":["this"]} +onClick_inline__P24641.info = {"start":16497,"length":52,"line":482,"column":23,"endLine":482,"endColumn":75,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn"]} -function user_interface_base_CursorScene_shutdown__P3834_mk(s) { +function onClick_inline__P24641_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_CursorScene_shutdown__P3834, depth: s.depth + 1, + parent: s, fn: onClick_inline__P24641, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -67855,8 +73288,7 @@ function user_interface_base_CursorScene_shutdown__P3834_mk(s) { - -function microcode_App_save__P4293(s) { +function microgui_Keyboard_startup_inline__P24673(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67869,43 +73301,72 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_App__C4291_VT)) failedCast(r0, microcode_App__C4291_VT); - s.tmp_0 = microcode_profile__P4462_mk(s); - s.callLocIdx = 1122; s.pc = 1; return s.tmp_0; + r0 = pxsim_pxtcore_mkAction(2, microgui_Keyboard_startup_inline__P24687); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); + r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.caps[0]); + r0 = s.caps[0].fields["btns"]; + s.tmp_3 = r0; + s.tmp_5 = if_btnRow_1_mk(s); + s.tmp_5.arg0 = s.arg0; + if (!s.tmp_5.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "btnRow"); + } else { + s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["btnRow"]; + if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["btnRow"]; } + else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } + else { s.callLocIdx = 930; s.pc = 1; return s.tmp_5; } + } case 1: r0 = s.retval; - s.tmp_0 = settings_writeBuffer__P3093_mk(s); - s.tmp_0.arg0 = s.arg1; - s.tmp_0.arg1 = s.arg2; - s.callLocIdx = 1123; s.pc = 2; return s.tmp_0; + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_3, s.tmp_4); + s.tmp_2 = r0; + s.tmp_7 = if_btnCol_1_mk(s); + s.tmp_7.arg0 = s.arg0; + if (!s.tmp_7.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "btnCol"); + } else { + s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["btnCol"]; + if (s.tmp_7.fn == null) { s.retval = s.tmp_7.arg0.fields["btnCol"]; } + else if (!s.tmp_7.fn.isGetter) { s.retval = bind(s.tmp_7); } + else { s.callLocIdx = 931; s.pc = 2; return s.tmp_7; } + } case 2: r0 = s.retval; - r0 = true; + s.tmp_6 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_6); + s.tmp_1 = r0; + r0 = (s.tmp_1).fields["onClick"] = (s.tmp_0); + r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_App_save__P4293.info = {"start":1197,"length":202,"line":40,"column":8,"endLine":45,"endColumn":9,"fileName":"app.ts","functionName":"save","argumentNames":["this","slot","buf"]} +microgui_Keyboard_startup_inline__P24673.info = {"start":16871,"length":152,"line":491,"column":8,"endLine":494,"endColumn":9,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["data","i"]} -function microcode_App_save__P4293_mk(s) { +function microgui_Keyboard_startup_inline__P24673_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_App_save__P4293, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_startup_inline__P24673, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } - -function microcode_profile__P4462(s) { +function microgui_Keyboard_startup_inline__P24687(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67915,30 +73376,44 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - r0 = pxsim_numops_toBoolDecr(globals.microcode_Options_profiling___4460); - if (!r0) { step = 1; continue; } - r0 = pxsim.control.heapSnapshot(); - r0 = pxsim.control.gc(); + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = if_behaviour_3_mk(s); + s.tmp_0.arg0 = s.caps[0]; + s.tmp_0.arg1 = s.arg0; + s.tmp_0.arg2 = s.caps[1]; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "behaviour"), 3); + s.callLocIdx = 932; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["behaviour"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["behaviour"], 3); s.callLocIdx = 932; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 932; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 932; s.pc = 1; return s.tmp_0; } + } case 1: - case 2: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microcode_profile__P4462.info = {"start":205,"length":166,"line":7,"column":4,"endLine":12,"endColumn":5,"fileName":"options.ts","functionName":"profile","argumentNames":[]} +microgui_Keyboard_startup_inline__P24687.info = {"start":16970,"length":42,"line":493,"column":12,"endLine":493,"endColumn":54,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn"]} -function microcode_profile__P4462_mk(s) { +function microgui_Keyboard_startup_inline__P24687_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_profile__P4462, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_startup_inline__P24687, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, } } - -function user_interface_base_GridNavigator_getCurrent__P3802(s) { +function microgui_Keyboard_startup_inline__P24697(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67948,43 +73423,39 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; + s.tmp_0 = if_passedBackBtn_2_mk(s); + s.tmp_0.arg0 = s.caps[0]; + r0 = s.caps[0].fields["text"]; + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "passedBackBtn"), 2); + s.callLocIdx = 934; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["passedBackBtn"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["passedBackBtn"], 2); s.callLocIdx = 934; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 934; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 934; s.pc = 1; return s.tmp_0; } } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_GridNavigator__C3794_VT)) failedCast(r0, user_interface_base_GridNavigator__C3794_VT); - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); - s.tmp_0 = r0; - r0 = s.arg0.fields["col"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_3); + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_GridNavigator_getCurrent__P3802.info = {"start":10191,"length":97,"line":323,"column":8,"endLine":325,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getCurrent","argumentNames":["this"]} +microgui_Keyboard_startup_inline__P24697.info = {"start":17103,"length":35,"line":497,"column":70,"endLine":497,"endColumn":105,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":[]} -function user_interface_base_GridNavigator_getCurrent__P3802_mk(s) { +function microgui_Keyboard_startup_inline__P24697_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_GridNavigator_getCurrent__P3802, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_startup_inline__P24697, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - arg0: undefined, } } - -function user_interface_base_GridNavigator_move__P3801(s) { +function microgui___keyboardLayout__P5517(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -67994,251 +73465,331 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.btn___22819 = undefined; + s.ret___24713 = undefined; + s.ret___24768 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_GridNavigator__C3794_VT)) failedCast(r0, user_interface_base_GridNavigator__C3794_VT); - s.tmp_0 = r0 = s.arg1; + s.tmp_0 = r0 = s.arg0; r0 = pxsim_pxtcore.switch_eq(0, s.tmp_0); if (r0) { step = 1; continue; } - r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); - if (r0) { step = 4; continue; } r0 = pxsim_pxtcore.switch_eq(2, s.tmp_0); - if (r0) { step = 7; continue; } - r0 = pxsim_pxtcore.switch_eq(3, s.tmp_0); - if (r0) { step = 12; continue; } - r0 = pxsim_pxtcore.switch_eq(4, s.tmp_0); - if (r0) { step = 17; continue; } + if (r0) { step = 4; continue; } + r0 = pxsim_pxtcore.switch_eq(1, s.tmp_0); + if (r0) { step = 5; continue; } r0 = s.tmp_0; - { step = 22; continue; } + { step = 10; continue; } case 1: - s.tmp_1 = r0 = s.arg0; - r0 = s.arg0.fields["row"]; - s.tmp_6 = r0; - r0 = (s.tmp_6 - 1); + r0 = pxsim_Array__mk(); + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_1, "0"); + r0 = pxsim_Array__push(s.tmp_1, "1"); + r0 = pxsim_Array__push(s.tmp_1, "2"); + r0 = pxsim_Array__push(s.tmp_1, "3"); + r0 = pxsim_Array__push(s.tmp_1, "4"); + r0 = pxsim_Array__push(s.tmp_1, "5"); + r0 = pxsim_Array__push(s.tmp_1, "6"); + r0 = pxsim_Array__push(s.tmp_1, "7"); + r0 = pxsim_Array__push(s.tmp_1, "8"); + r0 = pxsim_Array__push(s.tmp_1, "9"); + r0 = pxsim_Array__mk(); + s.tmp_2 = r0; + r0 = pxsim_Array__push(s.tmp_2, s.tmp_1); + r0 = pxsim_Array__mk(); + s.tmp_3 = r0; + r0 = pxsim_Array__push(s.tmp_3, "Q"); + r0 = pxsim_Array__push(s.tmp_3, "W"); + r0 = pxsim_Array__push(s.tmp_3, "E"); + r0 = pxsim_Array__push(s.tmp_3, "R"); + r0 = pxsim_Array__push(s.tmp_3, "T"); + r0 = pxsim_Array__push(s.tmp_3, "Y"); + r0 = pxsim_Array__push(s.tmp_3, "U"); + r0 = pxsim_Array__push(s.tmp_3, "I"); + r0 = pxsim_Array__push(s.tmp_3, "O"); + r0 = pxsim_Array__push(s.tmp_3, "P"); + r0 = pxsim_Array__push(s.tmp_2, s.tmp_3); + r0 = pxsim_Array__mk(); + s.tmp_4 = r0; + r0 = pxsim_Array__push(s.tmp_4, "A"); + r0 = pxsim_Array__push(s.tmp_4, "S"); + r0 = pxsim_Array__push(s.tmp_4, "D"); + r0 = pxsim_Array__push(s.tmp_4, "F"); + r0 = pxsim_Array__push(s.tmp_4, "G"); + r0 = pxsim_Array__push(s.tmp_4, "H"); + r0 = pxsim_Array__push(s.tmp_4, "J"); + r0 = pxsim_Array__push(s.tmp_4, "K"); + r0 = pxsim_Array__push(s.tmp_4, "L"); + r0 = pxsim_Array__push(s.tmp_4, ";"); + r0 = pxsim_Array__push(s.tmp_2, s.tmp_4); + r0 = pxsim_Array__mk(); s.tmp_5 = r0; - r0 = s.arg0.fields["height"]; + r0 = pxsim_Array__push(s.tmp_5, "Z"); + r0 = pxsim_Array__push(s.tmp_5, "X"); + r0 = pxsim_Array__push(s.tmp_5, "C"); + r0 = pxsim_Array__push(s.tmp_5, "V"); + r0 = pxsim_Array__push(s.tmp_5, "B"); + r0 = pxsim_Array__push(s.tmp_5, "N"); + r0 = pxsim_Array__push(s.tmp_5, "M"); + r0 = pxsim_Array__push(s.tmp_5, ","); + r0 = pxsim_Array__push(s.tmp_5, "."); + r0 = pxsim_Array__push(s.tmp_5, "/"); + r0 = pxsim_Array__push(s.tmp_2, s.tmp_5); + r0 = pxsim_Array__mk(); + s.tmp_6 = r0; + r0 = pxsim_Array__push(s.tmp_6, "<-"); + r0 = pxsim_Array__push(s.tmp_6, "^"); + r0 = pxsim_Array__push(s.tmp_6, " _______ "); + r0 = pxsim_Array__push(s.tmp_6, "ENTER"); + r0 = pxsim_Array__push(s.tmp_2, s.tmp_6); + r0 = pxsim_pxtrt.mkMap(); s.tmp_7 = r0; - r0 = (s.tmp_5 % s.tmp_7); - s.tmp_4 = r0; - r0 = s.arg0.fields["height"]; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "btnTexts", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "defaultBtnBehaviour", defaultBtnBehaviour_inline__P24721); + r0 = pxsim_pxtrt.mkMap(); s.tmp_8 = r0; - r0 = (s.tmp_4 + s.tmp_8); - s.tmp_3 = r0; - r0 = s.arg0.fields["height"]; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "btnRow", 4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "btnCol", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_8, "behaviour", behaviour_inline__P24729); + r0 = pxsim_Array__mk(); s.tmp_9 = r0; - r0 = (s.tmp_3 % s.tmp_9); - s.tmp_2 = r0; - r0 = (s.tmp_1).fields["row"] = (s.tmp_2); - r0 = s.arg0.fields["widths"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + r0 = pxsim_Array__push(s.tmp_9, s.tmp_8); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_10 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "btnRow", 4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "btnCol", 1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_10, "behaviour", behaviour_inline__P24735); + r0 = pxsim_Array__push(s.tmp_9, s.tmp_10); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_11 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "btnRow", 4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "btnCol", 2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_11, "behaviour", behaviour_inline__P24741); + r0 = pxsim_Array__push(s.tmp_9, s.tmp_11); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_12 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "btnRow", 4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "btnCol", 3); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_12, "behaviour", behaviour_inline__P24746); + r0 = pxsim_Array__push(s.tmp_9, s.tmp_12); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "specialBtnBehaviours", s.tmp_9); + s.ret___24713 = (s.tmp_7); + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 2; continue; } + s.tmp_2 = if_btnTexts_1_mk(s); + s.tmp_2.arg0 = s.ret___24713; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "btnTexts"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["btnTexts"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["btnTexts"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 867; s.pc = 12; return s.tmp_2; } + } + case 12: + r0 = s.retval; s.tmp_1 = r0; - r0 = s.arg0.fields["col"]; - s.tmp_4 = r0; - r0 = (s.tmp_1 <= s.tmp_4); + r0 = pxsim_Array__getAt(s.tmp_1, 4); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 2; continue; } - s.tmp_5 = r0 = s.arg0; - r0 = s.arg0.fields["widths"]; - s.tmp_8 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_9 = r0; - r0 = pxsim_Array__getAt(s.tmp_8, s.tmp_9); - s.tmp_7 = r0; - r0 = (s.tmp_7 - 1); - s.tmp_6 = r0; - r0 = (s.tmp_5).fields["col"] = (s.tmp_6); + r0 = pxsim_Array_.insertAt(s.tmp_0, 0, globals.btn_delete___5365); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "btnRow", 4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "btnCol", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "behaviour", behaviour_inline__P24761); + s.tmp_2 = if_specialBtnBehaviours_1_mk(s); + s.tmp_2.arg0 = s.ret___24713; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "specialBtnBehaviours"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["specialBtnBehaviours"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["specialBtnBehaviours"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 868; s.pc = 13; return s.tmp_2; } + } + case 13: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); case 2: case 3: - { step = 22; continue; } + r0 = s.ret___24713; + { step = 11; continue; } case 4: - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["row"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); - s.tmp_2 = r0; - r0 = s.arg0.fields["height"]; - s.tmp_4 = r0; - r0 = (s.tmp_2 % s.tmp_4); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["row"] = (s.tmp_1); - r0 = s.arg0.fields["widths"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); - s.tmp_1 = r0; - r0 = s.arg0.fields["col"]; - s.tmp_4 = r0; - r0 = (s.tmp_1 <= s.tmp_4); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.tmp_5 = r0 = s.arg0; - r0 = s.arg0.fields["widths"]; - s.tmp_8 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_9 = r0; - r0 = pxsim_Array__getAt(s.tmp_8, s.tmp_9); - s.tmp_7 = r0; - r0 = (s.tmp_7 - 1); - s.tmp_6 = r0; - r0 = (s.tmp_5).fields["col"] = (s.tmp_6); case 5: - case 6: - { step = 22; continue; } - case 7: - r0 = s.arg0.fields["widths"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); - s.tmp_1 = r0; - r0 = (s.tmp_1 == 1); + r0 = pxsim_Array__mk(); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - { step = 22; continue; } - { step = 11; continue; } - case 8: - r0 = s.arg0.fields["col"]; - s.tmp_5 = r0; - r0 = (s.tmp_5 == 0); - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 9; continue; } - s.tmp_6 = r0 = s.arg0; - r0 = s.arg0.fields["widths"]; - s.tmp_9 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_10 = r0; - r0 = pxsim_Array__getAt(s.tmp_9, s.tmp_10); - s.tmp_8 = r0; - r0 = (s.tmp_8 - 1); - s.tmp_7 = r0; - r0 = (s.tmp_6).fields["col"] = (s.tmp_7); - { step = 10; continue; } - case 9: - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["col"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 - 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["col"] = (s.tmp_1); - case 10: - case 11: - { step = 22; continue; } - case 12: - r0 = s.arg0.fields["widths"]; - s.tmp_2 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_3); + r0 = pxsim_Array__push(s.tmp_0, "1"); + r0 = pxsim_Array__push(s.tmp_0, "2"); + r0 = pxsim_Array__push(s.tmp_0, "3"); + r0 = pxsim_Array__push(s.tmp_0, "<-"); + r0 = pxsim_Array__mk(); s.tmp_1 = r0; - r0 = (s.tmp_1 == 1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - { step = 22; continue; } - case 13: - case 14: - r0 = s.arg0.fields["col"]; - s.tmp_5 = r0; - r0 = s.arg0.fields["widths"]; - s.tmp_7 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_8 = r0; - r0 = pxsim_Array__getAt(s.tmp_7, s.tmp_8); - s.tmp_6 = r0; - r0 = (s.tmp_5 == s.tmp_6); - s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); - if (!r0) { step = 15; continue; } - r0 = (s.arg0).fields["col"] = (0); - { step = 16; continue; } - case 15: - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["col"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); + r0 = pxsim_Array__mk(); s.tmp_2 = r0; - r0 = s.arg0.fields["widths"]; + r0 = pxsim_Array__push(s.tmp_2, "4"); + r0 = pxsim_Array__push(s.tmp_2, "5"); + r0 = pxsim_Array__push(s.tmp_2, "6"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_2); + r0 = pxsim_Array__mk(); + s.tmp_3 = r0; + r0 = pxsim_Array__push(s.tmp_3, "7"); + r0 = pxsim_Array__push(s.tmp_3, "8"); + r0 = pxsim_Array__push(s.tmp_3, "9"); + r0 = pxsim_Array__push(s.tmp_3, "0"); + r0 = pxsim_Array__push(s.tmp_3, "ENTER"); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_3); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "btnTexts", s.tmp_1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "defaultBtnBehaviour", globals.__kbBehaviourNumericDefault___5369); + r0 = pxsim_pxtrt.mkMap(); s.tmp_5 = r0; - r0 = s.arg0.fields["row"]; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "btnRow", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "btnCol", 3); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_5, "behaviour", behaviour_inline__P24776); + r0 = pxsim_Array__mk(); s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_5, s.tmp_6); - s.tmp_4 = r0; - r0 = (s.tmp_2 % s.tmp_4); + r0 = pxsim_Array__push(s.tmp_6, s.tmp_5); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_7 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "btnRow", 2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "btnCol", 4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_7, "behaviour", behaviour_inline__P24781); + r0 = pxsim_Array__push(s.tmp_6, s.tmp_7); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_4, "specialBtnBehaviours", s.tmp_6); + s.ret___24768 = (s.tmp_4); + r0 = (s.arg0 == 1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + s.tmp_3 = if_btnTexts_1_mk(s); + s.tmp_3.arg0 = s.ret___24768; + if (!s.tmp_3.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "btnTexts"); + } else { + s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["btnTexts"]; + if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["btnTexts"]; } + else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } + else { s.callLocIdx = 872; s.pc = 14; return s.tmp_3; } + } + case 14: + r0 = s.retval; + s.tmp_2 = r0; + r0 = pxsim_Array__getAt(s.tmp_2, 1); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["col"] = (s.tmp_1); + r0 = pxsim_Array__push(s.tmp_1, "."); + s.tmp_2 = if_btnTexts_1_mk(s); + s.tmp_2.arg0 = s.ret___24768; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "btnTexts"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["btnTexts"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["btnTexts"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 873; s.pc = 15; return s.tmp_2; } + } + case 15: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, 1); + s.tmp_0 = r0; + r0 = pxsim_Array__push(s.tmp_0, "-"); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "btnRow", 1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "btnCol", 4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "behaviour", behaviour_inline__P24802); + s.tmp_2 = if_specialBtnBehaviours_1_mk(s); + s.tmp_2.arg0 = s.ret___24768; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "specialBtnBehaviours"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["specialBtnBehaviours"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["specialBtnBehaviours"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 874; s.pc = 16; return s.tmp_2; } + } case 16: - { step = 22; continue; } - case 17: - r0 = s.arg0.fields["col"]; + r0 = s.retval; s.tmp_1 = r0; - r0 = (s.tmp_1 > 0); + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 18; continue; } - r0 = (s.arg0).fields["col"] = (0); - { step = 21; continue; } + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "btnRow", 1); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "btnCol", 3); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "behaviour", behaviour_inline__P24812); + s.tmp_2 = if_specialBtnBehaviours_1_mk(s); + s.tmp_2.arg0 = s.ret___24768; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "specialBtnBehaviours"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["specialBtnBehaviours"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["specialBtnBehaviours"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 876; s.pc = 17; return s.tmp_2; } + } + case 17: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); + case 6: + case 7: + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 8; continue; } + s.tmp_2 = if_btnTexts_1_mk(s); + s.tmp_2.arg0 = s.ret___24768; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "btnTexts"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["btnTexts"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["btnTexts"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 878; s.pc = 18; return s.tmp_2; } + } case 18: - r0 = s.arg0.fields["row"]; + r0 = s.retval; s.tmp_1 = r0; - r0 = (s.tmp_1 > 0); + r0 = pxsim_Array__getAt(s.tmp_1, 0); s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 19; continue; } - s.tmp_2 = r0 = s.arg0; - r0 = s.tmp_2.fields["row"]; - s.tmp_4 = r0; - r0 = (s.tmp_4 - 1); - s.tmp_3 = r0; - r0 = (s.tmp_2).fields["row"] = (s.tmp_3); - { step = 20; continue; } - case 19: - r0 = undefined; - { step = 23; continue; } - case 20: - case 21: - case 22: - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["row"]; - s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.tmp_2); + r0 = pxsim_Array__push(s.tmp_0, globals.btn_delete___5365); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - r0 = s.arg0.fields["col"]; - s.tmp_3 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, s.tmp_3); - s.btn___22819 = (r0); - s.tmp_0 = user_interface_base_RowNavigator__C3780_v5_2_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.btn___22819; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_RowNavigator__C3780_VT)) failedCast(s.tmp_0.arg0, user_interface_base_RowNavigator__C3780_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.reportAria; - s.pc = 24; return s.tmp_0; - case 24: + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "btnRow", 0); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "btnCol", 4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "behaviour", behaviour_inline__P24828); + s.tmp_2 = if_specialBtnBehaviours_1_mk(s); + s.tmp_2.arg0 = s.ret___24768; + if (!s.tmp_2.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "specialBtnBehaviours"); + } else { + s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["specialBtnBehaviours"]; + if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["specialBtnBehaviours"]; } + else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } + else { s.callLocIdx = 879; s.pc = 19; return s.tmp_2; } + } + case 19: r0 = s.retval; - r0 = s.btn___22819; - case 23: + s.tmp_1 = r0; + r0 = pxsim_Array__push(s.tmp_1, s.tmp_0); + case 8: + case 9: + r0 = s.ret___24768; + { step = 11; continue; } + case 10: + r0 = undefined; + case 11: return leave(s, r0) default: oops() } } } -user_interface_base_GridNavigator_move__P3801.info = {"start":8315,"length":1866,"line":268,"column":8,"endLine":321,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"move","argumentNames":["this","dir"]} +microgui___keyboardLayout__P5517.info = {"start":8335,"length":2823,"line":290,"column":2,"endLine":351,"endColumn":3,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"__keyboardLayout","argumentNames":["layout","del"]} -function user_interface_base_GridNavigator_move__P3801_mk(s) { +function microgui___keyboardLayout__P5517_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_GridNavigator_move__P3801, depth: s.depth + 1, + parent: s, fn: microgui___keyboardLayout__P5517, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -68251,7 +73802,10 @@ function user_interface_base_GridNavigator_move__P3801_mk(s) { tmp_8: undefined, tmp_9: undefined, tmp_10: undefined, - btn___22819: undefined, + tmp_11: undefined, + tmp_12: undefined, + ret___24713: undefined, + ret___24768: undefined, arg0: undefined, arg1: undefined, } } @@ -68259,8 +73813,7 @@ function user_interface_base_GridNavigator_move__P3801_mk(s) { - -function user_interface_base_GridNavigator_addRow__P3799(s) { +function defaultBtnBehaviour_inline__P24721(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -68275,36 +73828,36 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_GridNavigator__C3794_VT)) failedCast(r0, user_interface_base_GridNavigator__C3794_VT); - r0 = s.arg0.fields["buttonGroups"]; - s.tmp_0 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.arg1); - r0 = s.arg0.fields["widths"]; - s.tmp_0 = r0; - r0 = pxsim_Array__length(s.arg1); - s.tmp_1 = r0; - r0 = pxsim_Array__push(s.tmp_0, s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["height"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); + s.tmp_0 = if_appendText_2_mk(s); + s.tmp_0.arg0 = s.arg1; + r0 = s.arg0.fields["state"]; s.tmp_1 = r0; - r0 = (s.tmp_0).fields["height"] = (s.tmp_1); + r0 = pxsim_Array__getAt(s.tmp_1, 0); + s.tmp_0.arg1 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "appendText"), 2); + s.callLocIdx = 862; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["appendText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["appendText"], 2); s.callLocIdx = 862; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 862; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 862; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_GridNavigator_addRow__P3799.info = {"start":7805,"length":150,"line":250,"column":8,"endLine":254,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"addRow","argumentNames":["this","btns"]} +defaultBtnBehaviour_inline__P24721.info = {"start":8890,"length":85,"line":301,"column":31,"endLine":303,"endColumn":11,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function user_interface_base_GridNavigator_addRow__P3799_mk(s) { +function defaultBtnBehaviour_inline__P24721_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_GridNavigator_addRow__P3799, depth: s.depth + 1, + parent: s, fn: defaultBtnBehaviour_inline__P24721, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, arg0: undefined, arg1: undefined, } } @@ -68312,8 +73865,7 @@ function user_interface_base_GridNavigator_addRow__P3799_mk(s) { - -function user_interface_base_GridNavigator_setBtns__P3798(s) { +function behaviour_inline__P24729(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -68328,36 +73880,32 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_GridNavigator__C3794_VT)) failedCast(r0, user_interface_base_GridNavigator__C3794_VT); - r0 = (s.arg0).fields["buttonGroups"] = (s.arg1); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = helpers_arrayMap__P2135_mk(s); - s.tmp_2.arg0 = s.arg1; - s.tmp_2.arg1 = user_interface_base_GridNavigator_setBtns_inline__P22856; - s.callLocIdx = 786; s.pc = 1; return s.tmp_2; + s.tmp_0 = if_deletePriorCharacters_2_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = 1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "deletePriorCharacters"), 2); + s.callLocIdx = 863; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["deletePriorCharacters"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["deletePriorCharacters"], 2); s.callLocIdx = 863; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 863; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 863; s.pc = 1; return s.tmp_0; } + } case 1: r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["widths"] = (s.tmp_1); - s.tmp_0 = r0 = s.arg0; - r0 = pxsim_Array__length(s.arg1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["height"] = (s.tmp_1); r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_GridNavigator_setBtns__P3798.info = {"start":7537,"length":173,"line":239,"column":8,"endLine":243,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"setBtns","argumentNames":["this","btns"]} +behaviour_inline__P24729.info = {"start":9058,"length":59,"line":305,"column":47,"endLine":305,"endColumn":106,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function user_interface_base_GridNavigator_setBtns__P3798_mk(s) { +function behaviour_inline__P24729_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_GridNavigator_setBtns__P3798, depth: s.depth + 1, + parent: s, fn: behaviour_inline__P24729, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, arg0: undefined, arg1: undefined, } } @@ -68365,8 +73913,7 @@ function user_interface_base_GridNavigator_setBtns__P3798_mk(s) { - -function user_interface_base_GridNavigator_setBtns_inline__P22856(s) { +function behaviour_inline__P24735(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -68378,27 +73925,42 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__length(s.arg0); + s.tmp_0 = if_swapCase_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "swapCase"), 1); + s.callLocIdx = 864; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["swapCase"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["swapCase"], 1); s.callLocIdx = 864; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 864; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 864; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_GridNavigator_setBtns_inline__P22856.info = {"start":7644,"length":17,"line":241,"column":35,"endLine":241,"endColumn":52,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"inline","argumentNames":["row"]} +behaviour_inline__P24735.info = {"start":9181,"length":45,"line":306,"column":47,"endLine":306,"endColumn":92,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function user_interface_base_GridNavigator_setBtns_inline__P22856_mk(s) { +function behaviour_inline__P24735_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_GridNavigator_setBtns_inline__P22856, depth: s.depth + 1, + parent: s, fn: behaviour_inline__P24735, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function user_interface_base_GridNavigator_getRow__P3796(s) { +function behaviour_inline__P24741(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -68410,29 +73972,43 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_GridNavigator__C3794_VT)) failedCast(r0, user_interface_base_GridNavigator__C3794_VT); - r0 = s.arg0.fields["row"]; + s.tmp_0 = if_appendText_2_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = " "; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "appendText"), 2); + s.callLocIdx = 865; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["appendText"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["appendText"], 2); s.callLocIdx = 865; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 865; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 865; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -user_interface_base_GridNavigator_getRow__P3796.info = {"start":7406,"length":55,"line":231,"column":8,"endLine":233,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"getRow","argumentNames":["this"]} +behaviour_inline__P24741.info = {"start":9292,"length":50,"line":307,"column":47,"endLine":307,"endColumn":97,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function user_interface_base_GridNavigator_getRow__P3796_mk(s) { +function behaviour_inline__P24741_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_GridNavigator_getRow__P3796, depth: s.depth + 1, + parent: s, fn: behaviour_inline__P24741, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function microgui_Keyboard_draw__P4765(s) { +function behaviour_inline__P24746(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -68442,396 +74018,91 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.charWidth___22873 = undefined; - s.charHeight___22876 = undefined; - s.txtXpos___22909 = undefined; - s.i___23023 = undefined; - s.j___23031 = undefined; - s.btn___23039 = undefined; - s.btnText___23046 = undefined; - s.x___23050 = undefined; - s.y___23066 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["frameCounter"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["frameCounter"] = (s.tmp_1); - s.tmp_0 = if_charWidth_1_mk(s); - s.tmp_0.arg0 = globals.font8___3327; + s.tmp_0 = if_nextScene_1_mk(s); + s.tmp_0.arg0 = s.arg1; if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charWidth"); + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "nextScene"), 1); + s.callLocIdx = 866; s.pc = 1; return s.tmp_0; } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charWidth"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charWidth"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1955; s.pc = 15; return s.tmp_0; } + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["nextScene"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["nextScene"], 1); s.callLocIdx = 866; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 866; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 866; s.pc = 1; return s.tmp_0; } } - case 15: + case 1: r0 = s.retval; - s.charWidth___22873 = (r0); - s.tmp_0 = if_charHeight_1_mk(s); - s.tmp_0.arg0 = globals.font8___3327; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +behaviour_inline__P24746.info = {"start":9405,"length":46,"line":308,"column":47,"endLine":308,"endColumn":93,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} + +function behaviour_inline__P24746_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: behaviour_inline__P24746, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function behaviour_inline__P24761(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; + } + s.tmp_0 = if_deleteFn_1_mk(s); + s.tmp_0.arg0 = s.arg1; if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charHeight"); + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "deleteFn"), 1); + s.callLocIdx = 869; s.pc = 1; return s.tmp_0; } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charHeight"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charHeight"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1956; s.pc = 16; return s.tmp_0; } + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["deleteFn"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["deleteFn"], 1); s.callLocIdx = 869; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 869; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 869; s.pc = 1; return s.tmp_0; } } - case 16: - r0 = s.retval; - s.charHeight___22876 = (r0); - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - s.tmp_0.arg0 = globals.user_interface_base_Screen_LEFT_EDGE___3443; - s.tmp_0.arg1 = globals.user_interface_base_Screen_TOP_EDGE___3445; - s.tmp_0.arg2 = globals.user_interface_base_Screen_WIDTH___3439; - s.tmp_0.arg3 = globals.user_interface_base_Screen_HEIGHT___3440; - r0 = s.arg0.fields["color_"]; - s.tmp_0.arg4 = r0; - s.callLocIdx = 1958; s.pc = 17; return s.tmp_0; - case 17: - r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3443 + 3); - s.tmp_0.arg0 = r0; - r0 = (globals.user_interface_base_Screen_TOP_EDGE___3445 + 4); - s.tmp_0.arg1 = r0; - r0 = (globals.user_interface_base_Screen_WIDTH___3439 - 7); - s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = 34; - s.tmp_0.arg4 = 15; - s.callLocIdx = 1959; s.pc = 18; return s.tmp_0; - case 18: - r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - r0 = (globals.user_interface_base_Screen_LEFT_EDGE___3443 + 6); - s.tmp_0.arg0 = r0; - r0 = (globals.user_interface_base_Screen_TOP_EDGE___3445 + 6); - s.tmp_0.arg1 = r0; - r0 = (globals.user_interface_base_Screen_WIDTH___3439 - 12); - s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = 32; - s.tmp_0.arg4 = 1; - s.callLocIdx = 1960; s.pc = 19; return s.tmp_0; - case 19: - r0 = s.retval; - r0 = s.arg0.fields["text"]; - s.tmp_2 = r0; - r0 = pxsim_String_.length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 * s.charWidth___22873); - s.tmp_0 = r0; - r0 = (s.tmp_0 >> 1); - s.txtXpos___22909 = (r0); - r0 = s.arg0.fields["shakingText"]; - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - r0 = s.arg0.fields["shakeTextCounter"]; - s.tmp_3 = r0; - r0 = (s.tmp_3 % 5); - s.tmp_2 = r0; - r0 = (s.tmp_2 == 0); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 1; continue; } - s.tmp_4 = helpers_imagePrint__P3342_mk(s); - r0 = globals.theScreen___3308; - s.tmp_4.arg0 = r0; - r0 = s.arg0.fields["text"]; - s.tmp_4.arg1 = r0; - r0 = (globals.user_interface_base_Screen_HALF_WIDTH___3441 - s.txtXpos___22909); - s.tmp_5 = r0; - r0 = s.arg0.fields["shakeStrength"]; - s.tmp_6 = r0; - r0 = (s.tmp_5 - s.tmp_6); - s.tmp_4.arg2 = r0; - s.tmp_4.arg3 = 17; - s.tmp_4.arg4 = 15; - s.tmp_4.arg5 = undefined; - s.tmp_4.arg6 = undefined; - s.callLocIdx = 1962; s.pc = 20; return s.tmp_4; - case 20: - r0 = s.retval; - { step = 2; continue; } case 1: - s.tmp_0 = helpers_imagePrint__P3342_mk(s); - r0 = globals.theScreen___3308; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["text"]; - s.tmp_0.arg1 = r0; - r0 = (globals.user_interface_base_Screen_HALF_WIDTH___3441 - s.txtXpos___22909); - s.tmp_0.arg2 = r0; - s.tmp_0.arg3 = 17; - s.tmp_0.arg4 = 15; - s.tmp_0.arg5 = undefined; - s.tmp_0.arg6 = undefined; - s.callLocIdx = 1964; s.pc = 21; return s.tmp_0; - case 21: - r0 = s.retval; - case 2: - r0 = s.arg0.fields["shakeTextCounter"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 >= 5); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - r0 = (s.arg0).fields["shakingText"] = (false); - r0 = (s.arg0).fields["shakeTextCounter"] = (0); - { step = 4; continue; } - case 3: - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["shakeTextCounter"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 1); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["shakeTextCounter"] = (s.tmp_1); - case 4: - { step = 10; continue; } - case 5: - s.tmp_0 = helpers_imagePrintCenter__P3341_mk(s); - r0 = globals.theScreen___3308; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["text"]; - s.tmp_0.arg1 = r0; - s.tmp_0.arg2 = 17; - s.tmp_0.arg3 = 15; - s.tmp_0.arg4 = undefined; - s.callLocIdx = 1966; s.pc = 22; return s.tmp_0; - case 22: - r0 = s.retval; - r0 = s.arg0.fields["frameCounter"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["FRAME_COUNTER_CURSOR_ON"]; - s.tmp_2 = r0; - r0 = (s.tmp_1 >= s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - s.tmp_3 = helpers_imagePrint__P3342_mk(s); - r0 = globals.theScreen___3308; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = "_"; - r0 = (globals.user_interface_base_Screen_HALF_WIDTH___3441 + s.txtXpos___22909); - s.tmp_3.arg2 = r0; - s.tmp_3.arg3 = 17; - s.tmp_3.arg4 = 15; - s.tmp_3.arg5 = undefined; - s.tmp_3.arg6 = undefined; - s.callLocIdx = 1968; s.pc = 23; return s.tmp_3; - case 23: - r0 = s.retval; - r0 = s.arg0.fields["frameCounter"]; - s.tmp_1 = r0; - r0 = s.arg0.fields["FRAME_COUNTER_CURSOR_OFF"]; - s.tmp_2 = r0; - r0 = (s.tmp_1 >= s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = (s.arg0).fields["frameCounter"] = (0); - case 6: - case 7: - case 8: - case 9: - case 10: - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["left"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["top"]; - s.tmp_0.arg1 = r0; - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["width"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 + 2); - s.tmp_0.arg2 = r0; - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["height"]; - s.tmp_2 = r0; - r0 = (s.tmp_2 + 2); - s.tmp_0.arg3 = r0; - s.tmp_0.arg4 = 15; - s.callLocIdx = 1969; s.pc = 24; return s.tmp_0; - case 24: - r0 = s.retval; - s.tmp_0 = user_interface_base_Screen_fillRect__P3461_mk(s); - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["left"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["top"]; - s.tmp_0.arg1 = r0; - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["width"]; - s.tmp_0.arg2 = r0; - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["height"]; - s.tmp_0.arg3 = r0; - r0 = s.arg0.fields["foregroundColor"]; - s.tmp_0.arg4 = r0; - s.callLocIdx = 1970; s.pc = 25; return s.tmp_0; - case 25: - r0 = s.retval; - s.i___23023 = (0); - case 11: - s.tmp_1 = r0 = s.i___23023; - r0 = s.arg0.fields["btns"]; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 14; continue; } - s.j___23031 = (0); - case 12: - s.tmp_1 = r0 = s.j___23031; - r0 = s.arg0.fields["btns"]; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.i___23023); - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 13; continue; } - r0 = s.arg0.fields["btns"]; - s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_6, s.i___23023); - s.tmp_5 = r0; - r0 = pxsim_Array__getAt(s.tmp_5, s.j___23031); - s.btn___23039 = (r0); - r0 = s.btn___23039.fields["state"]; - s.tmp_0 = r0; - r0 = pxsim_Array__getAt(s.tmp_0, 0); - s.btnText___23046 = (r0); - r0 = globals.theScreen___3308; - s.tmp_4 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 / 2); - s.tmp_2 = r0; - r0 = s.btn___23039.fields["xfrm_"]; - s.tmp_7 = r0; - r0 = s.tmp_7.fields["localPos_"]; - s.tmp_6 = r0; - r0 = s.tmp_6.fields["x_"]; - s.tmp_5 = r0; - r0 = (s.tmp_2 + s.tmp_5); - s.tmp_1 = r0; - r0 = s.btn___23039.fields["icon"]; - s.tmp_10 = r0; - r0 = s.tmp_10.fields["image"]; - s.tmp_11 = r0; - r0 = pxsim.BitmapMethods.width(s.tmp_11); - s.tmp_9 = r0; - r0 = (s.tmp_9 / 2); - s.tmp_8 = r0; - r0 = (s.tmp_1 - s.tmp_8); - s.tmp_0 = r0; - r0 = (s.tmp_0 + 1); - s.x___23050 = (r0); - r0 = globals.theScreen___3308; - s.tmp_4 = r0; - r0 = pxsim.BitmapMethods.height(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 / 2); - s.tmp_2 = r0; - r0 = s.btn___23039.fields["xfrm_"]; - s.tmp_7 = r0; - r0 = s.tmp_7.fields["localPos_"]; - s.tmp_6 = r0; - r0 = s.tmp_6.fields["y_"]; - s.tmp_5 = r0; - r0 = (s.tmp_2 + s.tmp_5); - s.tmp_1 = r0; - r0 = (s.tmp_1 + s.charHeight___22876); - s.tmp_0 = r0; - r0 = (s.tmp_0 - 12); - s.y___23066 = (r0); - s.tmp_0 = user_interface_base_Button__C3665_v0_1_mk(s); - s.tmp_0.arg0 = s.btn___23039; - if (!checkSubtype(s.tmp_0.arg0, user_interface_base_Button__C3665_VT)) failedCast(s.tmp_0.arg0, user_interface_base_Button__C3665_VT); - s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.draw; - s.pc = 26; return s.tmp_0; - case 26: - r0 = s.retval; - s.tmp_0 = helpers_imagePrint__P3342_mk(s); - r0 = globals.theScreen___3308; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = s.btnText___23046; - s.tmp_0.arg2 = s.x___23050; - s.tmp_0.arg3 = s.y___23066; - s.tmp_0.arg4 = 1; - s.tmp_0.arg5 = undefined; - s.tmp_0.arg6 = undefined; - s.callLocIdx = 1981; s.pc = 27; return s.tmp_0; - case 27: - r0 = s.retval; - r0 = (s.j___23031 + 1); - s.j___23031 = (r0); - { step = 12; continue; } - case 13: - r0 = (s.i___23023 + 1); - s.i___23023 = (r0); - { step = 11; continue; } - case 14: - s.tmp_0 = user_interface_base_CursorScene_draw__P3837_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1982; s.pc = 28; return s.tmp_0; - case 28: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microgui_Keyboard_draw__P4765.info = {"start":17467,"length":3995,"line":524,"column":8,"endLine":646,"endColumn":9,"fileName":"inputmethods.ts","functionName":"draw","argumentNames":["this"]} +behaviour_inline__P24761.info = {"start":9629,"length":43,"line":313,"column":75,"endLine":313,"endColumn":118,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["b","kb"]} -function microgui_Keyboard_draw__P4765_mk(s) { +function behaviour_inline__P24761_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_draw__P4765, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - charWidth___22873: undefined, - charHeight___22876: undefined, - txtXpos___22909: undefined, - i___23023: undefined, - j___23031: undefined, - btn___23039: undefined, - btnText___23046: undefined, - x___23050: undefined, - y___23066: undefined, + parent: s, fn: behaviour_inline__P24761, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function helpers_imagePrintCenter__P3341(s) { +function behaviour_inline__P24776(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -68841,92 +74112,45 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.w___23103 = undefined; - s.x___23109 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.arg1 = (s.lambdaArgs[1]); - s.arg2 = (s.lambdaArgs[2]); - s.arg3 = (s.lambdaArgs[3]); - s.arg4 = (s.lambdaArgs[4]); s.lambdaArgs = null; } - r0 = pxsim_numops_toBoolDecr(s.arg4); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_2 = bitmaps_getFontForText__P3329_mk(s); - s.tmp_2.arg0 = s.arg1; - s.callLocIdx = 287; s.pc = 3; return s.tmp_2; - case 3: - r0 = s.retval; - s.arg4 = (r0); - case 1: - case 2: - r0 = pxsim_String_.length(s.arg1); - s.tmp_0 = r0; - s.tmp_2 = if_charWidth_1_mk(s); - s.tmp_2.arg0 = s.arg4; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "charWidth"); + s.tmp_0 = if_deletePriorCharacters_2_mk(s); + s.tmp_0.arg0 = s.arg1; + s.tmp_0.arg1 = 1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "deletePriorCharacters"), 2); + s.callLocIdx = 870; s.pc = 1; return s.tmp_0; } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["charWidth"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["charWidth"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 288; s.pc = 4; return s.tmp_2; } + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["deletePriorCharacters"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["deletePriorCharacters"], 2); s.callLocIdx = 870; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 870; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 870; s.pc = 1; return s.tmp_0; } } - case 4: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0 * s.tmp_1); - s.w___23103 = (r0); - r0 = pxsim.BitmapMethods.width(s.arg0); - s.tmp_1 = r0; - r0 = (s.tmp_1 - s.w___23103); - s.tmp_0 = r0; - r0 = (s.tmp_0 / 2); - s.x___23109 = (r0); - s.tmp_0 = helpers_imagePrint__P3342_mk(s); - s.tmp_0.arg0 = s.arg0; - s.tmp_0.arg1 = s.arg1; - s.tmp_0.arg2 = s.x___23109; - s.tmp_0.arg3 = s.arg2; - s.tmp_0.arg4 = s.arg3; - s.tmp_0.arg5 = s.arg4; - s.tmp_0.arg6 = undefined; - s.callLocIdx = 289; s.pc = 5; return s.tmp_0; - case 5: + case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -helpers_imagePrintCenter__P3341.info = {"start":15036,"length":300,"line":206,"column":4,"endLine":211,"endColumn":5,"fileName":"pxt_modules/display-shield/text.ts","functionName":"imagePrintCenter","argumentNames":["img","text","y","color","font"]} +behaviour_inline__P24776.info = {"start":10277,"length":59,"line":332,"column":47,"endLine":332,"endColumn":106,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["btn","kb"]} -function helpers_imagePrintCenter__P3341_mk(s) { +function behaviour_inline__P24776_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_imagePrintCenter__P3341, depth: s.depth + 1, + parent: s, fn: behaviour_inline__P24776, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - w___23103: undefined, - x___23109: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } - -function microgui_Keyboard_shakeText__P4764(s) { +function behaviour_inline__P24781(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -68938,30 +74162,37 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - r0 = (s.arg0).fields["shakingText"] = (true); + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = globals.__kbBehaviourNumericEnter___5480; + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 871; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microgui_Keyboard_shakeText__P4764.info = {"start":17385,"length":72,"line":520,"column":8,"endLine":522,"endColumn":9,"fileName":"inputmethods.ts","functionName":"shakeText","argumentNames":["this"]} +behaviour_inline__P24781.info = {"start":10400,"length":62,"line":333,"column":47,"endLine":333,"endColumn":109,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["b","kb"]} -function microgui_Keyboard_shakeText__P4764_mk(s) { +function behaviour_inline__P24781_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_shakeText__P4764, depth: s.depth + 1, + parent: s, fn: behaviour_inline__P24781, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function microgui_Keyboard_nextScene__P4763(s) { +function behaviour_inline__P24802(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -68973,45 +74204,37 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - s.tmp_0 = if_nextBtnFn_2_mk(s); + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = globals.__kbBehaviourNumericMinus___5418; s.tmp_0.arg0 = s.arg0; - r0 = s.arg0.fields["text"]; - s.tmp_0.arg1 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "nextBtnFn"), 2); - s.callLocIdx = 1954; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["nextBtnFn"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["nextBtnFn"], 2); s.callLocIdx = 1954; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1954; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1954; s.pc = 1; return s.tmp_0; } - } + s.tmp_0.arg1 = s.arg1; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 875; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microgui_Keyboard_nextScene__P4763.info = {"start":17301,"length":74,"line":516,"column":8,"endLine":518,"endColumn":9,"fileName":"inputmethods.ts","functionName":"nextScene","argumentNames":["this"]} +behaviour_inline__P24802.info = {"start":10696,"length":62,"line":340,"column":47,"endLine":340,"endColumn":109,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["b","kb"]} -function microgui_Keyboard_nextScene__P4763_mk(s) { +function behaviour_inline__P24802_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_nextScene__P4763, depth: s.depth + 1, + parent: s, fn: behaviour_inline__P24802, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function microgui_Keyboard_textLen__P4762(s) { +function behaviour_inline__P24812(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69023,32 +74246,37 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - r0 = s.arg0.fields["text"]; - s.tmp_0 = r0; - r0 = pxsim_String_.length(s.tmp_0); + s.tmp_0 = lambda_3_mk(s); + s.tmp_0.argL = globals.__kbBehaviourNumericDecimal___5449; + s.tmp_0.arg0 = s.arg0; + s.tmp_0.arg1 = s.arg1; + setupLambda(s.tmp_0, s.tmp_0.argL); + s.callLocIdx = 877; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microgui_Keyboard_textLen__P4762.info = {"start":17227,"length":64,"line":512,"column":8,"endLine":514,"endColumn":9,"fileName":"inputmethods.ts","functionName":"textLen","argumentNames":["this"]} +behaviour_inline__P24812.info = {"start":10850,"length":64,"line":342,"column":47,"endLine":342,"endColumn":111,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["b","kb"]} -function microgui_Keyboard_textLen__P4762_mk(s) { +function behaviour_inline__P24812_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_textLen__P4762, depth: s.depth + 1, + parent: s, fn: behaviour_inline__P24812, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function microgui_Keyboard_getText__P4761(s) { +function behaviour_inline__P24828(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69060,29 +74288,42 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - r0 = s.arg0.fields["text"]; + s.tmp_0 = if_deleteFn_1_mk(s); + s.tmp_0.arg0 = s.arg1; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "deleteFn"), 1); + s.callLocIdx = 880; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["deleteFn"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["deleteFn"], 1); s.callLocIdx = 880; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 880; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 880; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -microgui_Keyboard_getText__P4761.info = {"start":17160,"length":57,"line":508,"column":8,"endLine":510,"endColumn":9,"fileName":"inputmethods.ts","functionName":"getText","argumentNames":["this"]} +behaviour_inline__P24828.info = {"start":11065,"length":43,"line":346,"column":75,"endLine":346,"endColumn":118,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["b","kb"]} -function microgui_Keyboard_getText__P4761_mk(s) { +function behaviour_inline__P24828_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_getText__P4761, depth: s.depth + 1, + parent: s, fn: behaviour_inline__P24828, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, + arg1: undefined, } } - -function microgui_Keyboard_swapCase__P4760(s) { +function microcode_MelodyNavigator_reportAria__P6037(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69092,153 +74333,80 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.swapCaseFn___23144 = undefined; - s.specialBtnData___23156 = undefined; - s.specialBtnRows___23162 = undefined; - s.specialBtnCols___23171 = undefined; - s.isSpecialBtn___23180 = undefined; - s.i___23201 = undefined; - s.j___23209 = undefined; - s.btnText___23219 = undefined; + s.index___24845 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - s.tmp_0 = r0 = s.arg0; - r0 = s.arg0.fields["isUpperCase"]; - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); + if (!checkSubtype(r0, microcode_MelodyNavigator__C4726_VT)) failedCast(r0, microcode_MelodyNavigator__C4726_VT); + r0 = pxsim_numops_toBoolDecr(globals.reportAria___4787); s.tmp_1 = r0; - r0 = (s.tmp_0).fields["isUpperCase"] = (s.tmp_1); - r0 = s.arg0.fields["isUpperCase"]; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 1; continue; } - r0 = swapCaseFn_inline__P23148; - { step = 2; continue; } + { step = 7; continue; } case 1: - r0 = swapCaseFn_inline__P23152; case 2: - // jmp value (already in r0) - s.tmp_1 = r0; - s.swapCaseFn___23144 = (s.tmp_1); - s.tmp_0 = if_specialBtnBehaviours_1_mk(s); - r0 = s.arg0.fields["keyboardLayout"]; - s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(globals.__keyboardLayout___6021, s.tmp_1); - s.tmp_0.arg0 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "specialBtnBehaviours"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["specialBtnBehaviours"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["specialBtnBehaviours"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1948; s.pc = 10; return s.tmp_0; } - } - case 10: - r0 = s.retval; - s.specialBtnData___23156 = (r0); - s.tmp_0 = helpers_arrayMap__P2135_mk(s); - s.tmp_0.arg0 = s.specialBtnData___23156; - s.tmp_0.arg1 = specialBtnRows_inline__P23164; - s.callLocIdx = 1950; s.pc = 11; return s.tmp_0; - case 11: - r0 = s.retval; - s.specialBtnRows___23162 = (r0); - s.tmp_0 = helpers_arrayMap__P2135_mk(s); - s.tmp_0.arg0 = s.specialBtnData___23156; - s.tmp_0.arg1 = specialBtnCols_inline__P23173; - s.callLocIdx = 1952; s.pc = 12; return s.tmp_0; - case 12: + s.tmp_2 = user_interface_base_PickerNavigator_reportAria__P5281_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1958; s.pc = 8; return s.tmp_2; + case 8: r0 = s.retval; - s.specialBtnCols___23171 = (r0); - r0 = pxsim_pxtcore_mkAction(1, isSpecialBtn_inline__P23181); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.specialBtnRows___23162); - s.isSpecialBtn___23180 = (s.tmp_0); - s.i___23201 = (0); - case 3: - s.tmp_1 = r0 = s.i___23201; - r0 = s.arg0.fields["btns"]; - s.tmp_4 = r0; - r0 = pxsim_Array__length(s.tmp_4); - s.tmp_3 = r0; - r0 = (s.tmp_3 - 1); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 == -1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 9; continue; } - s.j___23209 = (0); + if (!r0) { step = 3; continue; } + { step = 7; continue; } + case 3: case 4: - s.tmp_1 = r0 = s.j___23209; - r0 = s.arg0.fields["btns"]; + r0 = s.arg0.fields["deleteButton"]; + s.tmp_6 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_6); + s.tmp_5 = r0; + r0 = pxsim_Boolean__bang(s.tmp_5); s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.i___23201); + r0 = pxsim_numops_toBoolDecr(s.tmp_4); s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); + r0 = pxsim_Boolean__bang(s.tmp_3); s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 8; continue; } - r0 = pxsim_numops_toBoolDecr(s.isSpecialBtn___23180); - s.tmp_6 = r0; - r0 = pxsim_Boolean__bang(s.tmp_6); - s.tmp_5 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_5); + r0 = pxsim_numops_toBoolDecr(s.tmp_2); if (!r0) { step = 5; continue; } - { step = 7; continue; } + r0 = s.arg0.fields["row"]; + s.tmp_7 = r0; + r0 = (s.tmp_7 - 1); + { step = 6; continue; } case 5: + r0 = s.arg0.fields["row"]; case 6: - r0 = s.arg0.fields["btns"]; - s.tmp_9 = r0; - r0 = pxsim_Array__getAt(s.tmp_9, s.i___23201); + // jmp value (already in r0) s.tmp_8 = r0; - r0 = pxsim_Array__getAt(s.tmp_8, s.j___23209); - r0 = r0.fields["state"]; - s.tmp_7 = r0; - r0 = pxsim_Array__getAt(s.tmp_7, 0); - s.btnText___23219 = (r0); - r0 = s.arg0.fields["btns"]; - s.tmp_2 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.i___23201); - s.tmp_1 = r0; - r0 = pxsim_Array__getAt(s.tmp_1, s.j___23209); - r0 = r0.fields["state"]; + s.index___24845 = (s.tmp_8); + r0 = pxsim_pxtrt.mkMap(); s.tmp_0 = r0; - s.tmp_4 = lambda_2_mk(s); - s.tmp_4.argL = s.swapCaseFn___23144; - s.tmp_4.arg0 = s.btnText___23219; - setupLambda(s.tmp_4, s.tmp_4.argL); - s.callLocIdx = 1953; s.pc = 13; return s.tmp_4; - case 13: + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "note"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "on", true); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "index", s.index___24845); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "force", true); + s.tmp_1 = accessibility_setLiveContent__P3491_mk(s); + s.tmp_1.arg0 = s.tmp_0; + s.callLocIdx = 1960; s.pc = 9; return s.tmp_1; + case 9: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_Array_.setAt(s.tmp_0, 0, s.tmp_3); case 7: - r0 = (s.j___23209 + 1); - s.j___23209 = (r0); - { step = 4; continue; } - case 8: - r0 = (s.i___23201 + 1); - s.i___23201 = (r0); - { step = 3; continue; } - case 9: r0 = undefined; return leave(s, r0) default: oops() } } } -microgui_Keyboard_swapCase__P4760.info = {"start":15792,"length":1358,"line":470,"column":8,"endLine":506,"endColumn":9,"fileName":"inputmethods.ts","functionName":"swapCase","argumentNames":["this"]} +microcode_MelodyNavigator_reportAria__P6037.info = {"start":2204,"length":501,"line":74,"column":8,"endLine":88,"endColumn":9,"fileName":"navigator.ts","functionName":"reportAria","argumentNames":["this"]} -function microgui_Keyboard_swapCase__P4760_mk(s) { +function microcode_MelodyNavigator_reportAria__P6037_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_swapCase__P4760, depth: s.depth + 1, + parent: s, fn: microcode_MelodyNavigator_reportAria__P6037, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -69249,23 +74417,14 @@ function microgui_Keyboard_swapCase__P4760_mk(s) { tmp_6: undefined, tmp_7: undefined, tmp_8: undefined, - tmp_9: undefined, - swapCaseFn___23144: undefined, - specialBtnData___23156: undefined, - specialBtnRows___23162: undefined, - specialBtnCols___23171: undefined, - isSpecialBtn___23180: undefined, - i___23201: undefined, - j___23209: undefined, - btnText___23219: undefined, + index___24845: undefined, arg0: undefined, } } - -function swapCaseFn_inline__P23148(s) { +function accessibility_setLiveContent__P3491(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69275,34 +74434,42 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.data___24857 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = helpers_stringToUpperCase__P2149_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1946; s.pc = 1; return s.tmp_0; + s.tmp_1 = JSON_stringify__P2807_mk(s); + s.tmp_1.arg0 = s.arg0; + s.tmp_1.arg1 = null; + s.tmp_1.arg2 = 0; + s.callLocIdx = 480; s.pc = 1; return s.tmp_1; case 1: r0 = s.retval; + s.tmp_0 = r0; + r0 = pxsim.control.createBufferFromUTF8(s.tmp_0); + s.data___24857 = (r0); + r0 = undefined; return leave(s, r0) default: oops() } } } -swapCaseFn_inline__P23148.info = {"start":15934,"length":81,"line":474,"column":18,"endLine":476,"endColumn":19,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["t"]} +accessibility_setLiveContent__P3491.info = {"start":971,"length":238,"line":40,"column":4,"endLine":44,"endColumn":5,"fileName":"pxt_modules/user-interface-base/accessibility.ts","functionName":"setLiveContent","argumentNames":["msg"]} -function swapCaseFn_inline__P23148_mk(s) { +function accessibility_setLiveContent__P3491_mk(s) { checkStack(s.depth); return { - parent: s, fn: swapCaseFn_inline__P23148, depth: s.depth + 1, + parent: s, fn: accessibility_setLiveContent__P3491, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + data___24857: undefined, arg0: undefined, } } - -function swapCaseFn_inline__P23152(s) { +function user_interface_base_PickerNavigator_hasDelete__P3778(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69316,30 +74483,39 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = helpers_stringToLowerCase__P2150_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1947; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - return leave(s, r0) + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = s.arg0.fields["deleteButton"]; + s.tmp_3 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_Boolean__bang(s.tmp_0); + return leaveAccessor(s, r0) default: oops() } } } -swapCaseFn_inline__P23152.info = {"start":16034,"length":81,"line":477,"column":18,"endLine":479,"endColumn":19,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["t"]} +user_interface_base_PickerNavigator_hasDelete__P3778.info = {"start":10847,"length":66,"line":350,"column":8,"endLine":352,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"hasDelete","argumentNames":["this"]} +user_interface_base_PickerNavigator_hasDelete__P3778.isGetter = true; -function swapCaseFn_inline__P23152_mk(s) { +function user_interface_base_PickerNavigator_hasDelete__P3778_mk(s) { checkStack(s.depth); return { - parent: s, fn: swapCaseFn_inline__P23152, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_hasDelete__P3778, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, arg0: undefined, } } - -function specialBtnRows_inline__P23164(s) { +function microcode_LEDNavigator_reportAria__P6039(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69353,37 +74529,72 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = if_btnRow_1_mk(s); - s.tmp_0.arg0 = s.arg0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "btnRow"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["btnRow"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["btnRow"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1949; s.pc = 1; return s.tmp_0; } - } + r0 = s.arg0; + if (!checkSubtype(r0, microcode_LEDNavigator__C4728_VT)) failedCast(r0, microcode_LEDNavigator__C4728_VT); + r0 = pxsim_numops_toBoolDecr(globals.reportAria___4787); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + { step = 5; continue; } case 1: + case 2: + s.tmp_2 = user_interface_base_PickerNavigator_reportAria__P5281_mk(s); + s.tmp_2.arg0 = s.arg0; + s.callLocIdx = 1962; s.pc = 6; return s.tmp_2; + case 6: + r0 = s.retval; + r0 = s.arg0.fields["row"]; + s.tmp_1 = r0; + r0 = (s.tmp_1 == -1); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 3; continue; } + { step = 5; continue; } + case 3: + case 4: + r0 = pxsim_pxtrt.mkMap(); + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "type", "led"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "on", true); + r0 = s.arg0.fields["col"]; + s.tmp_3 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "x", s.tmp_3); + r0 = s.arg0.fields["row"]; + s.tmp_4 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "y", s.tmp_4); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "force", true); + s.tmp_5 = accessibility_setLiveContent__P3491_mk(s); + s.tmp_5.arg0 = s.tmp_2; + s.callLocIdx = 1963; s.pc = 7; return s.tmp_5; + case 7: r0 = s.retval; + case 5: + r0 = undefined; return leave(s, r0) default: oops() } } } -specialBtnRows_inline__P23164.info = {"start":16326,"length":35,"line":484,"column":16,"endLine":484,"endColumn":51,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["sbd"]} +microcode_LEDNavigator_reportAria__P6039.info = {"start":2931,"length":469,"line":98,"column":8,"endLine":112,"endColumn":9,"fileName":"navigator.ts","functionName":"reportAria","argumentNames":["this"]} -function specialBtnRows_inline__P23164_mk(s) { +function microcode_LEDNavigator_reportAria__P6039_mk(s) { checkStack(s.depth); return { - parent: s, fn: specialBtnRows_inline__P23164, depth: s.depth + 1, + parent: s, fn: microcode_LEDNavigator_reportAria__P6039, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, arg0: undefined, } } - -function specialBtnCols_inline__P23173(s) { +function microcode_SamplesGallery_shutdown__P4614(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69397,27 +74608,23 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = if_btnCol_1_mk(s); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_SamplesGallery__C4612_VT)) failedCast(r0, microcode_SamplesGallery__C4612_VT); + s.tmp_0 = user_interface_base_CursorScene_shutdown__P3807_mk(s); s.tmp_0.arg0 = s.arg0; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "btnCol"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["btnCol"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["btnCol"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1951; s.pc = 1; return s.tmp_0; } - } + s.callLocIdx = 1919; s.pc = 1; return s.tmp_0; case 1: r0 = s.retval; + r0 = undefined; return leave(s, r0) default: oops() } } } -specialBtnCols_inline__P23173.info = {"start":16457,"length":35,"line":487,"column":16,"endLine":487,"endColumn":51,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["sbd"]} +microcode_SamplesGallery_shutdown__P4614.info = {"start":434,"length":51,"line":12,"column":23,"endLine":14,"endColumn":9,"fileName":"gallery.ts","functionName":"shutdown","argumentNames":["this"]} -function specialBtnCols_inline__P23173_mk(s) { +function microcode_SamplesGallery_shutdown__P4614_mk(s) { checkStack(s.depth); return { - parent: s, fn: specialBtnCols_inline__P23173, depth: s.depth + 1, + parent: s, fn: microcode_SamplesGallery_shutdown__P4614, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -69426,8 +74633,7 @@ function specialBtnCols_inline__P23173_mk(s) { - -function isSpecialBtn_inline__P23181(s) { +function user_interface_base_PickerNavigator_addRow__P3782(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69442,36 +74648,19 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array_.indexOf(s.caps[0], s.arg0, undefined); - s.tmp_1 = r0; - r0 = (s.tmp_1 != -1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 1; continue; } - r0 = s.tmp_0; - { step = 2; continue; } - case 1: - r0 = pxsim_Array_.indexOf(s.caps[0], s.arg1, undefined); - s.tmp_2 = r0; - r0 = (s.tmp_2 != -1); - case 2: - // jmp value (already in r0) - s.tmp_3 = r0; - r0 = s.tmp_3; + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3776_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3776_VT); + r0 = undefined; return leave(s, r0) default: oops() } } } -isSpecialBtn_inline__P23181.info = {"start":16541,"length":208,"line":490,"column":33,"endLine":495,"endColumn":13,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["row","col"]} +user_interface_base_PickerNavigator_addRow__P3782.info = {"start":11099,"length":33,"line":363,"column":8,"endLine":363,"endColumn":41,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"addRow","argumentNames":["this","btns"]} -function isSpecialBtn_inline__P23181_mk(s) { +function user_interface_base_PickerNavigator_addRow__P3782_mk(s) { checkStack(s.depth); return { - parent: s, fn: isSpecialBtn_inline__P23181, depth: s.depth + 1, + parent: s, fn: user_interface_base_PickerNavigator_addRow__P3782, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, arg0: undefined, arg1: undefined, } } @@ -69479,8 +74668,7 @@ function isSpecialBtn_inline__P23181_mk(s) { - -function helpers_stringToLowerCase__P2150(s) { +function microcode_RuleRowNavigator_reportAria__P6035(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69490,163 +74678,213 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___23244 = undefined; - s.prev___23245 = undefined; - s.i___23246 = undefined; - s.c___23252 = undefined; + s.accessibilityMessage___24895 = undefined; + s.ruleDef___24903 = undefined; + s.whens___24910 = undefined; + s.dos___24922 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_String_.mkEmpty(); - s.r___23244 = (r0); - s.prev___23245 = (0); - s.i___23246 = (0); - case 1: - s.tmp_1 = r0 = s.i___23246; - r0 = pxsim_String_.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_RuleRowNavigator__C4720_VT)) failedCast(r0, microcode_RuleRowNavigator__C4720_VT); + r0 = pxsim_numops_toBoolDecr(globals.reportAria___4787); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = pxsim_String_.charCodeAt(s.arg0, s.i___23246); - s.c___23252 = (r0); - r0 = (65 <= s.c___23252); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } + if (!r0) { step = 1; continue; } + { step = 13; continue; } + case 1: case 2: - r0 = (s.c___23252 <= 90); + r0 = pxsim_numops_toBoolDecr(s.arg1); + s.tmp_3 = r0; + r0 = pxsim_Boolean__bang(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_2); + if (!r0) { step = 3; continue; } + { step = 13; continue; } case 3: + case 4: + r0 = s.arg0.fields["row"]; + s.tmp_5 = r0; + r0 = (s.tmp_5 > 0); + s.tmp_4 = r0; + r0 = pxsim_numops_toBool(s.tmp_4); + if (r0) { step = 5; continue; } + r0 = s.tmp_4; + { step = 6; continue; } + case 5: + r0 = s.arg0.fields["col"]; + s.tmp_6 = r0; + r0 = (s.tmp_6 == 0); + case 6: // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 4; continue; } - if ((s.r___23244) && (s.r___23244).vtable) { - setupResume(s, 7); - pxsim_String__stringConv(s.r___23244); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___23244) + ""; } - case 7: + s.tmp_7 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_7); + if (!r0) { step = 7; continue; } + r0 = s.arg0.fields["rules"]; + s.tmp_8 = r0; + r0 = s.arg0.fields["row"]; + s.tmp_10 = r0; + r0 = (s.tmp_10 - 1); + s.tmp_9 = r0; + r0 = pxsim_Array__getAt(s.tmp_8, s.tmp_9); + s.ruleDef___24903 = (r0); + s.tmp_0 = helpers_arrayMap__P2135_mk(s); + s.tmp_1 = helpers_arrayConcat__P2142_mk(s); + r0 = s.ruleDef___24903.fields["sensors"]; + s.tmp_1.arg0 = r0; + r0 = s.ruleDef___24903.fields["filters"]; + s.tmp_1.arg1 = r0; + s.callLocIdx = 1947; s.pc = 15; return s.tmp_1; + case 15: r0 = s.retval; - s.tmp_2 = r0; - s.tmp_7 = helpers_stringSlice__P2148_mk(s); - s.tmp_7.arg0 = s.arg0; - s.tmp_7.arg1 = s.prev___23245; - s.tmp_7.arg2 = s.i___23246; - s.callLocIdx = 24; s.pc = 8; return s.tmp_7; - case 8: + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = whens_inline__P24912; + s.callLocIdx = 1949; s.pc = 14; return s.tmp_0; + case 14: r0 = s.retval; - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 9); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 9: + s.whens___24910 = (r0); + s.tmp_0 = helpers_arrayMap__P2135_mk(s); + s.tmp_1 = helpers_arrayConcat__P2142_mk(s); + r0 = s.ruleDef___24903.fields["actuators"]; + s.tmp_1.arg0 = r0; + s.tmp_2 = helpers_arrayMap__P2135_mk(s); + r0 = s.ruleDef___24903.fields["modifiers"]; + s.tmp_2.arg0 = r0; + s.tmp_2.arg1 = map_inline__P24932; + s.callLocIdx = 1951; s.pc = 18; return s.tmp_2; + case 18: r0 = s.retval; - s.tmp_5 = r0; - r0 = (s.c___23252 + 32); - s.tmp_10 = r0; - r0 = pxsim_String_.fromCharCode(s.tmp_10); - s.tmp_9 = r0; - if ((s.tmp_9) && (s.tmp_9).vtable) { - setupResume(s, 10); - pxsim_String__stringConv(s.tmp_9); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_9) + ""; } - case 10: + s.tmp_1.arg1 = r0; + s.callLocIdx = 1952; s.pc = 17; return s.tmp_1; + case 17: r0 = s.retval; - s.tmp_8 = r0; - r0 = pxsim_String__concat(s.tmp_5, s.tmp_8); - s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 11); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 11: + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = dos_inline__P24924; + s.callLocIdx = 1954; s.pc = 16; return s.tmp_0; + case 16: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_2, s.tmp_3); - s.r___23244 = (r0); - r0 = (s.i___23246 + 1); - s.prev___23245 = (r0); - case 4: - case 5: - r0 = (s.i___23246 + 1); - s.i___23246 = (r0); - { step = 1; continue; } - case 6: - if ((s.r___23244) && (s.r___23244).vtable) { - setupResume(s, 12); - pxsim_String__stringConv(s.r___23244); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___23244) + ""; } + s.dos___24922 = (r0); + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "rule"); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "whens", s.whens___24910); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "dos", s.dos___24922); + s.accessibilityMessage___24895 = (s.tmp_0); + { step = 12; continue; } + case 7: + r0 = pxsim_pxtrt.mkMap(); + s.tmp_0 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "tile"); + r0 = pxsim_numops_toBoolDecr(s.arg1); + if (!r0) { step = 8; continue; } + r0 = s.arg1.fields["_ariaId"]; + { step = 9; continue; } + case 8: + r0 = pxsim_String_.mkEmpty(); + case 9: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBool(s.tmp_1); + if (!r0) { step = 10; continue; } + r0 = s.tmp_1; + { step = 11; continue; } + case 10: + r0 = pxsim_String_.mkEmpty(); + case 11: + // jmp value (already in r0) + s.tmp_2 = r0; + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "value", s.tmp_2); + r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "force", true); + s.accessibilityMessage___24895 = (s.tmp_0); case 12: + s.tmp_0 = accessibility_setLiveContent__P3491_mk(s); + s.tmp_0.arg0 = s.accessibilityMessage___24895; + s.callLocIdx = 1956; s.pc = 19; return s.tmp_0; + case 19: r0 = s.retval; - s.tmp_0 = r0; - s.tmp_3 = helpers_stringSlice__P2148_mk(s); - s.tmp_3.arg0 = s.arg0; - s.tmp_3.arg1 = s.prev___23245; - s.tmp_3.arg2 = undefined; - s.callLocIdx = 25; s.pc = 13; return s.tmp_3; case 13: - r0 = s.retval; - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 14); - pxsim_String__stringConv(s.tmp_2); + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +microcode_RuleRowNavigator_reportAria__P6035.info = {"start":835,"length":1138,"line":33,"column":8,"endLine":64,"endColumn":9,"fileName":"navigator.ts","functionName":"reportAria","argumentNames":["this","ret"]} + +function microcode_RuleRowNavigator_reportAria__P6035_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_RuleRowNavigator_reportAria__P6035, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + accessibilityMessage___24895: undefined, + ruleDef___24903: undefined, + whens___24910: undefined, + dos___24922: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function whens_inline__P24912(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_numops.toString(s.arg0); + s.tmp_1 = r0; + if ((s.tmp_1) && (s.tmp_1).vtable) { + setupResume(s, 1); + pxsim_String__stringConv(s.tmp_1); checkResumeConsumed(); return; - } else { s.retval = (s.tmp_2) + ""; } - case 14: + } else { s.retval = (s.tmp_1) + ""; } + case 1: r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___23244 = (r0); - r0 = s.r___23244; + s.tmp_0 = r0; + r0 = pxsim_String__concat("T", s.tmp_0); return leave(s, r0) default: oops() } } } -helpers_stringToLowerCase__P2150.info = {"start":12527,"length":386,"line":420,"column":4,"endLine":432,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringToLowerCase","argumentNames":["s"]} +whens_inline__P24912.info = {"start":1265,"length":19,"line":45,"column":25,"endLine":45,"endColumn":44,"fileName":"navigator.ts","functionName":"inline","argumentNames":["s"]} -function helpers_stringToLowerCase__P2150_mk(s) { +function whens_inline__P24912_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_stringToLowerCase__P2150, depth: s.depth + 1, + parent: s, fn: whens_inline__P24912, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - r___23244: undefined, - prev___23245: undefined, - i___23246: undefined, - c___23252: undefined, arg0: undefined, } } - -function helpers_stringToUpperCase__P2149(s) { +function map_inline__P24932(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69656,163 +74894,77 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.r___23299 = undefined; - s.prev___23300 = undefined; - s.i___23301 = undefined; - s.c___23307 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = pxsim_String_.mkEmpty(); - s.r___23299 = (r0); - s.prev___23300 = (0); - s.i___23301 = (0); + s.tmp_0 = microcode_getTid__P4194_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 1950; s.pc = 1; return s.tmp_0; case 1: - s.tmp_1 = r0 = s.i___23301; - r0 = pxsim_String_.length(s.arg0); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = pxsim_String_.charCodeAt(s.arg0, s.i___23301); - s.c___23307 = (r0); - r0 = (97 <= s.c___23307); - s.tmp_0 = r0; - r0 = pxsim_numops_toBool(s.tmp_0); - if (r0) { step = 2; continue; } - r0 = s.tmp_0; - { step = 3; continue; } - case 2: - r0 = (s.c___23307 <= 122); - case 3: - // jmp value (already in r0) - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 4; continue; } - if ((s.r___23299) && (s.r___23299).vtable) { - setupResume(s, 7); - pxsim_String__stringConv(s.r___23299); - checkResumeConsumed(); - return; - } else { s.retval = (s.r___23299) + ""; } - case 7: - r0 = s.retval; - s.tmp_2 = r0; - s.tmp_7 = helpers_stringSlice__P2148_mk(s); - s.tmp_7.arg0 = s.arg0; - s.tmp_7.arg1 = s.prev___23300; - s.tmp_7.arg2 = s.i___23301; - s.callLocIdx = 22; s.pc = 8; return s.tmp_7; - case 8: - r0 = s.retval; - s.tmp_6 = r0; - if ((s.tmp_6) && (s.tmp_6).vtable) { - setupResume(s, 9); - pxsim_String__stringConv(s.tmp_6); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_6) + ""; } - case 9: - r0 = s.retval; - s.tmp_5 = r0; - r0 = (s.c___23307 - 32); - s.tmp_10 = r0; - r0 = pxsim_String_.fromCharCode(s.tmp_10); - s.tmp_9 = r0; - if ((s.tmp_9) && (s.tmp_9).vtable) { - setupResume(s, 10); - pxsim_String__stringConv(s.tmp_9); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_9) + ""; } - case 10: - r0 = s.retval; - s.tmp_8 = r0; - r0 = pxsim_String__concat(s.tmp_5, s.tmp_8); - s.tmp_4 = r0; - if ((s.tmp_4) && (s.tmp_4).vtable) { - setupResume(s, 11); - pxsim_String__stringConv(s.tmp_4); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_4) + ""; } - case 11: r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String__concat(s.tmp_2, s.tmp_3); - s.r___23299 = (r0); - r0 = (s.i___23301 + 1); - s.prev___23300 = (r0); - case 4: - case 5: - r0 = (s.i___23301 + 1); - s.i___23301 = (r0); - { step = 1; continue; } - case 6: - if ((s.r___23299) && (s.r___23299).vtable) { - setupResume(s, 12); - pxsim_String__stringConv(s.r___23299); + return leave(s, r0) + default: oops() +} } } +map_inline__P24932.info = {"start":1393,"length":14,"line":48,"column":50,"endLine":48,"endColumn":64,"fileName":"navigator.ts","functionName":"inline","argumentNames":["t"]} + +function map_inline__P24932_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: map_inline__P24932, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + + +function dos_inline__P24924(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim_numops.toString(s.arg0); + s.tmp_1 = r0; + if ((s.tmp_1) && (s.tmp_1).vtable) { + setupResume(s, 1); + pxsim_String__stringConv(s.tmp_1); checkResumeConsumed(); return; - } else { s.retval = (s.r___23299) + ""; } - case 12: + } else { s.retval = (s.tmp_1) + ""; } + case 1: r0 = s.retval; s.tmp_0 = r0; - s.tmp_3 = helpers_stringSlice__P2148_mk(s); - s.tmp_3.arg0 = s.arg0; - s.tmp_3.arg1 = s.prev___23300; - s.tmp_3.arg2 = undefined; - s.callLocIdx = 23; s.pc = 13; return s.tmp_3; - case 13: - r0 = s.retval; - s.tmp_2 = r0; - if ((s.tmp_2) && (s.tmp_2).vtable) { - setupResume(s, 14); - pxsim_String__stringConv(s.tmp_2); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_2) + ""; } - case 14: - r0 = s.retval; - s.tmp_1 = r0; - r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); - s.r___23299 = (r0); - r0 = s.r___23299; + r0 = pxsim_String__concat("T", s.tmp_0); return leave(s, r0) default: oops() } } } -helpers_stringToUpperCase__P2149.info = {"start":12038,"length":387,"line":405,"column":4,"endLine":417,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringToUpperCase","argumentNames":["s"]} +dos_inline__P24924.info = {"start":1435,"length":19,"line":49,"column":25,"endLine":49,"endColumn":44,"fileName":"navigator.ts","functionName":"inline","argumentNames":["s"]} -function helpers_stringToUpperCase__P2149_mk(s) { +function dos_inline__P24924_mk(s) { checkStack(s.depth); return { - parent: s, fn: helpers_stringToUpperCase__P2149, depth: s.depth + 1, + parent: s, fn: dos_inline__P24924, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - r___23299: undefined, - prev___23300: undefined, - i___23301: undefined, - c___23307: undefined, arg0: undefined, } } - -function microgui_Keyboard_deletePriorCharacters__P4759(s) { +function microcode_Editor_shutdown__P4476(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69824,67 +74976,38 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - r0 = s.arg0.fields["text"]; - s.tmp_2 = r0; - r0 = pxsim_String_.length(s.tmp_2); - s.tmp_1 = r0; - r0 = (s.tmp_1 > 0); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - s.tmp_3 = helpers_stringSubstr__P2147_mk(s); - r0 = s.arg0.fields["text"]; - s.tmp_3.arg0 = r0; - s.tmp_3.arg1 = 0; - r0 = s.arg0.fields["text"]; - s.tmp_5 = r0; - r0 = pxsim_String_.length(s.tmp_5); - s.tmp_4 = r0; - r0 = (s.tmp_4 - s.arg1); - s.tmp_3.arg2 = r0; - s.callLocIdx = 1945; s.pc = 3; return s.tmp_3; - case 3: - r0 = s.retval; - { step = 2; continue; } + if (!checkSubtype(r0, microcode_Editor__C4454_VT)) failedCast(r0, microcode_Editor__C4454_VT); + r0 = (s.arg0).fields["progdef"] = (undefined); + s.tmp_0 = microcode_RuleRowNavigator__C4720_v0_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + if (!checkSubtype(s.tmp_0.arg0, microcode_RuleRowNavigator__C4720_VT)) failedCast(s.tmp_0.arg0, microcode_RuleRowNavigator__C4720_VT); + s.tmp_0.fn = s.tmp_0.arg0.vtable.methods.clear; + s.pc = 1; return s.tmp_0; case 1: - r0 = s.arg0.fields["text"]; - case 2: - // jmp value (already in r0) - s.tmp_6 = r0; - r0 = (s.arg0).fields["text"] = (s.tmp_6); - r0 = (s.arg0).fields["frameCounter"] = (20); + r0 = s.retval; r0 = undefined; return leave(s, r0) default: oops() } } } -microgui_Keyboard_deletePriorCharacters__P4759.info = {"start":15509,"length":273,"line":462,"column":8,"endLine":468,"endColumn":9,"fileName":"inputmethods.ts","functionName":"deletePriorCharacters","argumentNames":["this","n"]} +microcode_Editor_shutdown__P4476.info = {"start":13844,"length":94,"line":409,"column":23,"endLine":412,"endColumn":9,"fileName":"editor.ts","functionName":"shutdown","argumentNames":["this"]} -function microgui_Keyboard_deletePriorCharacters__P4759_mk(s) { +function microcode_Editor_shutdown__P4476_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_deletePriorCharacters__P4759, depth: s.depth + 1, + parent: s, fn: microcode_Editor_shutdown__P4476, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, arg0: undefined, - arg1: undefined, } } - -function microgui_Keyboard_appendText__P4758(s) { +function microcode_IconFieldEditor_toImage__P4569(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69900,62 +75023,23 @@ switch (step) { s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - r0 = s.arg0.fields["text"]; - s.tmp_2 = r0; - r0 = pxsim_String_.length(s.tmp_2); - s.tmp_1 = r0; - r0 = s.arg0.fields["maxTxtLength"]; - s.tmp_3 = r0; - r0 = (s.tmp_1 < s.tmp_3); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - r0 = (s.arg0).fields["frameCounter"] = (20); - s.tmp_0 = r0 = s.arg0; - r0 = s.tmp_0.fields["text"]; - s.tmp_3 = r0; - if ((s.tmp_3) && (s.tmp_3).vtable) { - setupResume(s, 3); - pxsim_String__stringConv(s.tmp_3); - checkResumeConsumed(); - return; - } else { s.retval = (s.tmp_3) + ""; } - case 3: - r0 = s.retval; - s.tmp_2 = r0; - if ((s.arg1) && (s.arg1).vtable) { - setupResume(s, 4); - pxsim_String__stringConv(s.arg1); - checkResumeConsumed(); - return; - } else { s.retval = (s.arg1) + ""; } - case 4: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_String__concat(s.tmp_2, s.tmp_4); - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["text"] = (s.tmp_1); - { step = 2; continue; } + if (!checkSubtype(r0, microcode_IconFieldEditor__C4565_VT)) failedCast(r0, microcode_IconFieldEditor__C4565_VT); + s.tmp_0 = icondb_renderMicrobitLEDs__P4059_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 1833; s.pc = 1; return s.tmp_0; case 1: - r0 = (s.arg0).fields["shakingText"] = (true); - case 2: - r0 = undefined; + r0 = s.retval; return leave(s, r0) default: oops() } } } -microgui_Keyboard_appendText__P4758.info = {"start":15226,"length":273,"line":453,"column":8,"endLine":460,"endColumn":9,"fileName":"inputmethods.ts","functionName":"appendText","argumentNames":["this","str"]} +microcode_IconFieldEditor_toImage__P4569.info = {"start":4015,"length":83,"line":146,"column":8,"endLine":148,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toImage","argumentNames":["this","field"]} -function microgui_Keyboard_appendText__P4758_mk(s) { +function microcode_IconFieldEditor_toImage__P4569_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_appendText__P4758, depth: s.depth + 1, + parent: s, fn: microcode_IconFieldEditor_toImage__P4569, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, arg0: undefined, arg1: undefined, } } @@ -69963,8 +75047,7 @@ function microgui_Keyboard_appendText__P4758_mk(s) { - -function microgui_Keyboard_startup__P4757(s) { +function icondb_renderMicrobitLEDs__P4059(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -69974,328 +75057,236 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.data___23394 = undefined; - s.charWidth___23408 = undefined; - s.charHeight___23411 = undefined; - s.ySpacing___23414 = undefined; - s.row___23425 = undefined; - s.bitmapWidths___23432 = undefined; - s.totalWidth___23447 = undefined; - s.xSpacing___23457 = undefined; - s.x___23469 = undefined; - s.col___23474 = undefined; - s.bitmapWidth___23482 = undefined; + s.ret___24962 = undefined; + s.row___24968 = undefined; + s.col___24972 = undefined; + s.on___24976 = undefined; + s.nrow___24988 = undefined; + s.ncol___24993 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microgui_Keyboard__C4755_VT)) failedCast(r0, microgui_Keyboard__C4755_VT); - s.tmp_0 = user_interface_base_CursorScene_startup__P3832_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1924; s.pc = 5; return s.tmp_0; - case 5: - r0 = s.retval; - r0 = s.arg0.fields["keyboardLayout"]; - s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapGetGeneric(globals.__keyboardLayout___6021, s.tmp_0); - s.data___23394 = (r0); - s.tmp_0 = r0 = s.arg0; - s.tmp_2 = helpers_arrayMap__P2135_mk(s); - s.tmp_3 = if_btnTexts_1_mk(s); - s.tmp_3.arg0 = s.data___23394; - if (!s.tmp_3.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_3.arg0, "btnTexts"); - } else { - s.tmp_3.fn = s.tmp_3.arg0.vtable.iface["btnTexts"]; - if (s.tmp_3.fn == null) { s.retval = s.tmp_3.arg0.fields["btnTexts"]; } - else if (!s.tmp_3.fn.isGetter) { s.retval = bind(s.tmp_3); } - else { s.callLocIdx = 1925; s.pc = 7; return s.tmp_3; } - } - case 7: - r0 = s.retval; - s.tmp_2.arg0 = r0; - s.tmp_2.arg1 = microgui_Keyboard_startup_inline__P23405; - s.callLocIdx = 1926; s.pc = 6; return s.tmp_2; - case 6: - r0 = s.retval; - s.tmp_1 = r0; - r0 = (s.tmp_0).fields["btns"] = (s.tmp_1); - s.tmp_0 = if_charWidth_1_mk(s); - s.tmp_0.arg0 = globals.font8___3327; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charWidth"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charWidth"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charWidth"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1927; s.pc = 8; return s.tmp_0; } - } - case 8: - r0 = s.retval; - s.charWidth___23408 = (r0); - s.tmp_0 = if_charHeight_1_mk(s); - s.tmp_0.arg0 = globals.font8___3327; - if (!s.tmp_0.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "charHeight"); - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["charHeight"]; - if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["charHeight"]; } - else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } - else { s.callLocIdx = 1928; s.pc = 9; return s.tmp_0; } - } - case 9: - r0 = s.retval; - s.charHeight___23411 = (r0); - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["height"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 - s.charHeight___23411); - s.tmp_0 = r0; - s.tmp_4 = if_btnTexts_1_mk(s); - s.tmp_4.arg0 = s.data___23394; - if (!s.tmp_4.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "btnTexts"); - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["btnTexts"]; - if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["btnTexts"]; } - else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 1929; s.pc = 10; return s.tmp_4; } - } - case 10: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_0 / s.tmp_2); - s.ySpacing___23414 = (r0); - s.row___23425 = (0); + r0 = pxsim.bitmaps.create(16, 16); + s.ret___24962 = (r0); + r0 = pxsim.BitmapMethods.fill(s.ret___24962, 15); + s.row___24968 = (0); case 1: - s.tmp_1 = r0 = s.row___23425; - s.tmp_4 = if_btnTexts_1_mk(s); - s.tmp_4.arg0 = s.data___23394; - if (!s.tmp_4.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "btnTexts"); - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["btnTexts"]; - if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["btnTexts"]; } - else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 1930; s.pc = 11; return s.tmp_4; } - } - case 11: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = (s.row___24968 < 5); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 4; continue; } - r0 = pxsim_pxtcore_mkAction(1, bitmapWidths_inline__P23434); - s.tmp_5 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_5, 0, s.charWidth___23408); - s.tmp_6 = helpers_arrayMap__P2135_mk(s); - s.tmp_8 = if_btnTexts_1_mk(s); - s.tmp_8.arg0 = s.data___23394; - if (!s.tmp_8.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "btnTexts"); - } else { - s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["btnTexts"]; - if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["btnTexts"]; } - else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } - else { s.callLocIdx = 1931; s.pc = 13; return s.tmp_8; } - } - case 13: - r0 = s.retval; - s.tmp_7 = r0; - r0 = pxsim_Array__getAt(s.tmp_7, s.row___23425); - s.tmp_6.arg0 = r0; - s.tmp_6.arg1 = s.tmp_5; - s.callLocIdx = 1932; s.pc = 12; return s.tmp_6; - case 12: - r0 = s.retval; - s.bitmapWidths___23432 = (r0); - s.tmp_0 = helpers_arrayReduce__P2141_mk(s); - s.tmp_0.arg0 = s.bitmapWidths___23432; - s.tmp_0.arg1 = totalWidth_inline__P23451; - s.tmp_0.arg2 = 0; - s.callLocIdx = 1933; s.pc = 14; return s.tmp_0; - case 14: - r0 = s.retval; - s.totalWidth___23447 = (r0); - r0 = s.arg0.fields["keyboardBounds"]; - r0 = r0.fields["width"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 - s.totalWidth___23447); - s.tmp_0 = r0; - r0 = pxsim_Array__length(s.bitmapWidths___23432); - s.tmp_3 = r0; - r0 = (s.tmp_3 + 2); - s.tmp_2 = r0; - r0 = (s.tmp_0 / s.tmp_2); - s.xSpacing___23457 = (r0); - r0 = (0 - globals.user_interface_base_Screen_HALF_WIDTH___3441); - s.tmp_0 = r0; - r0 = (s.tmp_0 + s.xSpacing___23457); - s.x___23469 = (r0); - s.col___23474 = (0); + if (!r0) { step = 7; continue; } + s.col___24972 = (0); case 2: - s.tmp_1 = r0 = s.col___23474; - s.tmp_5 = if_btnTexts_1_mk(s); - s.tmp_5.arg0 = s.data___23394; - if (!s.tmp_5.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "btnTexts"); - } else { - s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["btnTexts"]; - if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["btnTexts"]; } - else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } - else { s.callLocIdx = 1934; s.pc = 15; return s.tmp_5; } - } - case 15: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_4, s.row___23425); - s.tmp_3 = r0; - r0 = pxsim_Array__length(s.tmp_3); - s.tmp_2 = r0; - r0 = (s.tmp_1 < s.tmp_2); + r0 = (s.col___24972 < 5); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = pxsim.BitmapMethods.getPixel(s.arg0, s.row___24968, s.col___24972); + s.on___24976 = (r0); + r0 = pxsim_numops_toBoolDecr(s.on___24976); + s.tmp_1 = r0; + r0 = pxsim_Boolean__bang(s.tmp_1); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); if (!r0) { step = 3; continue; } - r0 = pxsim_Array__getAt(s.bitmapWidths___23432, s.col___23474); - s.bitmapWidth___23482 = (r0); - s.tmp_0 = r0 = s.x___23469; - r0 = pxsim_Array__getAt(s.bitmapWidths___23432, s.col___23474); - s.tmp_3 = r0; - r0 = (s.tmp_3 + s.xSpacing___23457); + { step = 5; continue; } + case 3: + case 4: + r0 = (s.row___24968 * 3); s.tmp_2 = r0; - r0 = (s.tmp_2 >> 1); - s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.x___23469 = (r0); - r0 = pxsim_pxtcore_mkClassInstance(user_interface_base_Button__C3665_VT); + r0 = (1 + s.tmp_2); + s.nrow___24988 = (r0); + r0 = (s.col___24972 * 3); s.tmp_0 = r0; - r0 = pxsim_pxtrt.mkMap(); + r0 = (1 + s.tmp_0); + s.ncol___24993 = (r0); + r0 = pxsim.BitmapMethods.setPixel(s.ret___24962, s.nrow___24988, s.ncol___24993, 2); + s.tmp_0 = r0 = s.ret___24962; + r0 = (s.nrow___24988 + 1); s.tmp_1 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "parent", null); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "style", globals.Transparent___3641); - r0 = pxsim.bitmaps.create(s.bitmapWidth___23482, s.charHeight___23411); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "icon", s.tmp_2); - r0 = pxsim_String_.mkEmpty(); - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "ariaId", s.tmp_3); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "x", s.x___23469); - r0 = (s.charHeight___23411 >> 1); - s.tmp_6 = r0; - r0 = (0 - s.tmp_6); - s.tmp_5 = r0; - r0 = (s.ySpacing___23414 * s.row___23425); - s.tmp_7 = r0; - r0 = (s.tmp_5 + s.tmp_7); - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "y", s.tmp_4); - r0 = pxsim_pxtcore_mkAction(2, onClick_inline__P23519); - s.tmp_8 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_8, 0, s.data___23394); - r0 = pxsim_pxtrt_stclo(s.tmp_8, 1, s.arg0); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "onClick", s.tmp_8); - r0 = pxsim_Array__mk(); - s.tmp_9 = r0; - s.tmp_13 = if_btnTexts_1_mk(s); - s.tmp_13.arg0 = s.data___23394; - if (!s.tmp_13.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_13.arg0, "btnTexts"); - } else { - s.tmp_13.fn = s.tmp_13.arg0.vtable.iface["btnTexts"]; - if (s.tmp_13.fn == null) { s.retval = s.tmp_13.arg0.fields["btnTexts"]; } - else if (!s.tmp_13.fn.isGetter) { s.retval = bind(s.tmp_13); } - else { s.callLocIdx = 1936; s.pc = 16; return s.tmp_13; } - } - case 16: - r0 = s.retval; - s.tmp_12 = r0; - r0 = pxsim_Array__getAt(s.tmp_12, s.row___23425); - s.tmp_11 = r0; - r0 = pxsim_Array__getAt(s.tmp_11, s.col___23474); - s.tmp_10 = r0; - r0 = pxsim_Array__push(s.tmp_9, s.tmp_10); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_1, "state", s.tmp_9); - s.tmp_14 = user_interface_base_Button_constructor__P3677_mk(s); - s.tmp_14.arg0 = s.tmp_0; - s.tmp_14.arg1 = s.tmp_1; - s.callLocIdx = 1937; s.pc = 17; return s.tmp_14; - case 17: - r0 = s.retval; - r0 = s.arg0.fields["btns"]; - s.tmp_16 = r0; - r0 = pxsim_Array__getAt(s.tmp_16, s.row___23425); - s.tmp_15 = r0; - r0 = pxsim_Array_.setAt(s.tmp_15, s.col___23474, s.tmp_0); - s.tmp_0 = r0 = s.x___23469; - r0 = pxsim_Array__getAt(s.bitmapWidths___23432, s.col___23474); - s.tmp_3 = r0; - r0 = (s.tmp_3 + s.xSpacing___23457); + r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, s.ncol___24993, 2); + s.tmp_0 = r0 = s.ret___24962; + s.tmp_1 = r0 = s.nrow___24988; + r0 = (s.ncol___24993 + 1); s.tmp_2 = r0; - r0 = (s.tmp_2 >> 1); + r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, s.tmp_2, 2); + s.tmp_0 = r0 = s.ret___24962; + r0 = (s.nrow___24988 + 1); s.tmp_1 = r0; - r0 = (s.tmp_0 + s.tmp_1); - s.x___23469 = (r0); - r0 = (s.col___23474 + 1); - s.col___23474 = (r0); + r0 = (s.ncol___24993 + 1); + s.tmp_2 = r0; + r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, s.tmp_2, 2); + case 5: + r0 = (s.col___24972 + 1); + s.col___24972 = (r0); { step = 2; continue; } - case 3: - r0 = (s.row___23425 + 1); - s.row___23425 = (r0); + case 6: + r0 = (s.row___24968 + 1); + s.row___24968 = (r0); { step = 1; continue; } - case 4: - r0 = pxsim_pxtcore_mkAction(1, microgui_Keyboard_startup_inline__P23548); - s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - s.tmp_1 = helpers_arrayForEach__P2138_mk(s); - s.tmp_2 = if_specialBtnBehaviours_1_mk(s); - s.tmp_2.arg0 = s.data___23394; - if (!s.tmp_2.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_2.arg0, "specialBtnBehaviours"); - } else { - s.tmp_2.fn = s.tmp_2.arg0.vtable.iface["specialBtnBehaviours"]; - if (s.tmp_2.fn == null) { s.retval = s.tmp_2.arg0.fields["specialBtnBehaviours"]; } - else if (!s.tmp_2.fn.isGetter) { s.retval = bind(s.tmp_2); } - else { s.callLocIdx = 1938; s.pc = 19; return s.tmp_2; } + case 7: + r0 = s.ret___24962; + return leave(s, r0) + default: oops() +} } } +icondb_renderMicrobitLEDs__P4059.info = {"start":20514,"length":699,"line":347,"column":4,"endLine":366,"endColumn":5,"fileName":"assets.ts","functionName":"renderMicrobitLEDs","argumentNames":["led55"]} + +function icondb_renderMicrobitLEDs__P4059_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: icondb_renderMicrobitLEDs__P4059, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + ret___24962: undefined, + row___24968: undefined, + col___24972: undefined, + on___24976: undefined, + nrow___24988: undefined, + ncol___24993: undefined, + arg0: undefined, +} } + + + + +function microcode_MelodyFieldEditor_toImage__P4588(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); + s.lambdaArgs = null; } - case 19: + r0 = s.arg0; + if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4584_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4584_VT); + s.tmp_0 = icondb_melodyToImage__P4058_mk(s); + s.tmp_0.arg0 = s.arg1; + s.callLocIdx = 1843; s.pc = 1; return s.tmp_0; + case 1: r0 = s.retval; - s.tmp_1.arg0 = r0; - s.tmp_1.arg1 = s.tmp_0; - s.callLocIdx = 1942; s.pc = 18; return s.tmp_1; - case 18: + return leave(s, r0) + default: oops() +} } } +microcode_MelodyFieldEditor_toImage__P4588.info = {"start":6412,"length":78,"line":225,"column":8,"endLine":227,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toImage","argumentNames":["this","field"]} + +function microcode_MelodyFieldEditor_toImage__P4588_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: microcode_MelodyFieldEditor_toImage__P4588, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, + arg1: undefined, +} } + + + + +function icondb_melodyToImage__P4058(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + s.ret___25040 = undefined; + s.col___25046 = undefined; + s.row___25056 = undefined; + s.ncol___25070 = undefined; + s.nrow___25073 = undefined; + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = pxsim.bitmaps.create(16, 16); + s.ret___25040 = (r0); + r0 = pxsim.BitmapMethods.fill(s.ret___25040, 1); + s.col___25046 = (0); + case 1: + r0 = (s.col___25046 < 4); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 5; continue; } + s.tmp_4 = if_notes_1_mk(s); + s.tmp_4.arg0 = s.arg0; + if (!s.tmp_4.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "notes"); + } else { + s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["notes"]; + if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["notes"]; } + else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } + else { s.callLocIdx = 1142; s.pc = 6; return s.tmp_4; } + } + case 6: r0 = s.retval; - s.tmp_0 = if_setBtns_2_mk(s); - r0 = s.arg0.fields["navigator"]; - s.tmp_0.arg0 = r0; - r0 = s.arg0.fields["btns"]; - s.tmp_0.arg1 = r0; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "setBtns"), 2); - s.callLocIdx = 1943; s.pc = 20; return s.tmp_0; + s.tmp_3 = r0; + r0 = pxsim_String_.charAt(s.tmp_3, s.col___25046); + s.tmp_2 = r0; + r0 = (s.tmp_2 === "."); + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 2; continue; } + { step = 4; continue; } + case 2: + case 3: + s.tmp_6 = parseInt__P2126_mk(s); + s.tmp_8 = if_notes_1_mk(s); + s.tmp_8.arg0 = s.arg0; + if (!s.tmp_8.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "notes"); } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["setBtns"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["setBtns"], 2); s.callLocIdx = 1943; s.pc = 20; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1943; s.pc = 20; return s.tmp_0;; } - else { s.callLocIdx = 1943; s.pc = 20; return s.tmp_0; } + s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["notes"]; + if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["notes"]; } + else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } + else { s.callLocIdx = 1143; s.pc = 8; return s.tmp_8; } } - case 20: + case 8: r0 = s.retval; - r0 = undefined; + s.tmp_7 = r0; + r0 = pxsim_String_.charAt(s.tmp_7, s.col___25046); + s.tmp_6.arg0 = r0; + s.tmp_6.arg1 = undefined; + s.callLocIdx = 1144; s.pc = 7; return s.tmp_6; + case 7: + r0 = s.retval; + s.tmp_5 = r0; + r0 = (4 - s.tmp_5); + s.row___25056 = (r0); + r0 = (s.col___25046 << 2); + s.ncol___25070 = (r0); + r0 = (s.row___25056 * 3); + s.tmp_0 = r0; + r0 = (s.tmp_0 + 1); + s.nrow___25073 = (r0); + r0 = pxsim.BitmapMethods.drawTransparentBitmap(s.ret___25040, globals.note4x3___5621, s.ncol___25070, s.nrow___25073); + case 4: + r0 = (s.col___25046 + 1); + s.col___25046 = (r0); + { step = 1; continue; } + case 5: + r0 = s.ret___25040; return leave(s, r0) default: oops() } } } -microgui_Keyboard_startup__P4757.info = {"start":13018,"length":2107,"line":397,"column":8,"endLine":447,"endColumn":9,"fileName":"inputmethods.ts","functionName":"startup","argumentNames":["this"]} +icondb_melodyToImage__P4058.info = {"start":19951,"length":509,"line":332,"column":4,"endLine":344,"endColumn":5,"fileName":"assets.ts","functionName":"melodyToImage","argumentNames":["melody"]} -function microgui_Keyboard_startup__P4757_mk(s) { +function icondb_melodyToImage__P4058_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_startup__P4757, depth: s.depth + 1, + parent: s, fn: icondb_melodyToImage__P4058, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -70306,33 +75297,18 @@ function microgui_Keyboard_startup__P4757_mk(s) { tmp_6: undefined, tmp_7: undefined, tmp_8: undefined, - tmp_9: undefined, - tmp_10: undefined, - tmp_11: undefined, - tmp_12: undefined, - tmp_13: undefined, - tmp_14: undefined, - tmp_15: undefined, - tmp_16: undefined, - data___23394: undefined, - charWidth___23408: undefined, - charHeight___23411: undefined, - ySpacing___23414: undefined, - row___23425: undefined, - bitmapWidths___23432: undefined, - totalWidth___23447: undefined, - xSpacing___23457: undefined, - x___23469: undefined, - col___23474: undefined, - bitmapWidth___23482: undefined, + ret___25040: undefined, + col___25046: undefined, + row___25056: undefined, + ncol___25070: undefined, + nrow___25073: undefined, arg0: undefined, } } - -function microgui_Keyboard_startup_inline__P23405(s) { +function microcode_DigitWidgetEditor_toImage__P4556(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -70344,27 +75320,97 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_Array__mk(); + r0 = s.arg0; + if (!checkSubtype(r0, microcode_DigitWidgetEditor__C4551_VT)) failedCast(r0, microcode_DigitWidgetEditor__C4551_VT); + s.tmp_0 = icondb_numberToDecimalImage__P4168_mk(s); + s.tmp_1 = if_num_1_mk(s); + s.tmp_1.arg0 = s.arg1; + if (!s.tmp_1.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "num"); + } else { + s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["num"]; + if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["num"]; } + else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } + else { s.callLocIdx = 1824; s.pc = 2; return s.tmp_1; } + } + case 2: + r0 = s.retval; + s.tmp_0.arg0 = r0; + s.tmp_0.arg1 = false; + s.callLocIdx = 1825; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; return leave(s, r0) default: oops() } } } -microgui_Keyboard_startup_inline__P23405.info = {"start":13164,"length":7,"line":401,"column":42,"endLine":401,"endColumn":49,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["_"]} +microcode_DigitWidgetEditor_toImage__P4556.info = {"start":2056,"length":106,"line":79,"column":8,"endLine":81,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toImage","argumentNames":["this","field"]} -function microgui_Keyboard_startup_inline__P23405_mk(s) { +function microcode_DigitWidgetEditor_toImage__P4556_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_startup_inline__P23405, depth: s.depth + 1, + parent: s, fn: microcode_DigitWidgetEditor_toImage__P4556, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, arg0: undefined, + arg1: undefined, } } +function user_interface_base_CursorScene_shutdown__P3807(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + r0 = s.arg0; + if (!checkSubtype(r0, user_interface_base_CursorScene__C3799_VT)) failedCast(r0, user_interface_base_CursorScene__C3799_VT); + s.tmp_0 = if_clear_1_mk(s); + r0 = s.arg0.fields["navigator"]; + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "clear"), 1); + s.callLocIdx = 831; s.pc = 1; return s.tmp_0; + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["clear"]; + if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["clear"], 1); s.callLocIdx = 831; s.pc = 1; return s.tmp_0; } + else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 831; s.pc = 1; return s.tmp_0;; } + else { s.callLocIdx = 831; s.pc = 1; return s.tmp_0; } + } + case 1: + r0 = s.retval; + r0 = undefined; + return leave(s, r0) + default: oops() +} } } +user_interface_base_CursorScene_shutdown__P3807.info = {"start":3653,"length":47,"line":138,"column":23,"endLine":140,"endColumn":5,"fileName":"pxt_modules/user-interface-base/cursorscene.ts","functionName":"shutdown","argumentNames":["this"]} + +function user_interface_base_CursorScene_shutdown__P3807_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: user_interface_base_CursorScene_shutdown__P3807, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + -function bitmapWidths_inline__P23434(s) { +function microgui_Keyboard_swapCase__P3882(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -70374,40 +75420,177 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.swapCaseFn___25102 = undefined; + s.specialBtnData___25114 = undefined; + s.specialBtnRows___25123 = undefined; + s.isSpecialBtn___25131 = undefined; + s.i___25153 = undefined; + s.j___25161 = undefined; + s.btnText___25171 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_1 = r0 = s.caps[0]; - r0 = pxsim_String_.length(s.arg0); + r0 = s.arg0; + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + s.tmp_0 = r0 = s.arg0; + r0 = s.arg0.fields["isUpperCase"]; s.tmp_3 = r0; - r0 = (s.tmp_3 + 1); + r0 = pxsim_numops_toBoolDecr(s.tmp_3); + s.tmp_2 = r0; + r0 = pxsim_Boolean__bang(s.tmp_2); + s.tmp_1 = r0; + r0 = (s.tmp_0).fields["isUpperCase"] = (s.tmp_1); + r0 = s.arg0.fields["isUpperCase"]; + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + r0 = swapCaseFn_inline__P25106; + { step = 2; continue; } + case 1: + r0 = swapCaseFn_inline__P25110; + case 2: + // jmp value (already in r0) + s.tmp_1 = r0; + s.swapCaseFn___25102 = (s.tmp_1); + s.tmp_0 = if_specialBtnBehaviours_1_mk(s); + s.tmp_1 = microgui___keyboardLayout__P5517_mk(s); + r0 = s.arg0.fields["keyboardLayout"]; + s.tmp_1.arg0 = r0; + r0 = s.arg0.fields["passedDeleteFn"]; + s.tmp_2 = r0; + r0 = (s.tmp_2 !== undefined); + s.tmp_1.arg1 = r0; + s.callLocIdx = 941; s.pc = 11; return s.tmp_1; + case 11: + r0 = s.retval; + s.tmp_0.arg0 = r0; + if (!s.tmp_0.arg0.vtable.iface) { + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "specialBtnBehaviours"); + } else { + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["specialBtnBehaviours"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["specialBtnBehaviours"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 942; s.pc = 10; return s.tmp_0; } + } + case 10: + r0 = s.retval; + s.specialBtnData___25114 = (r0); + s.tmp_0 = helpers_arrayMap__P2135_mk(s); + s.tmp_0.arg0 = s.specialBtnData___25114; + s.tmp_0.arg1 = specialBtnRows_inline__P25125; + s.callLocIdx = 944; s.pc = 12; return s.tmp_0; + case 12: + r0 = s.retval; + s.specialBtnRows___25123 = (r0); + r0 = pxsim_pxtcore_mkAction(1, isSpecialBtn_inline__P25132); + s.tmp_0 = r0; + r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.specialBtnRows___25123); + s.isSpecialBtn___25131 = (s.tmp_0); + s.i___25153 = (0); + case 3: + s.tmp_1 = r0 = s.i___25153; + r0 = s.arg0.fields["btns"]; + s.tmp_4 = r0; + r0 = pxsim_Array__length(s.tmp_4); + s.tmp_3 = r0; + r0 = (s.tmp_3 - 1); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 9; continue; } + s.j___25161 = (0); + case 4: + s.tmp_1 = r0 = s.j___25161; + r0 = s.arg0.fields["btns"]; + s.tmp_4 = r0; + r0 = pxsim_Array__getAt(s.tmp_4, s.i___25153); + s.tmp_3 = r0; + r0 = pxsim_Array__length(s.tmp_3); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 8; continue; } + r0 = pxsim_numops_toBoolDecr(s.isSpecialBtn___25131); + s.tmp_6 = r0; + r0 = pxsim_Boolean__bang(s.tmp_6); + s.tmp_5 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_5); + if (!r0) { step = 5; continue; } + { step = 7; continue; } + case 5: + case 6: + r0 = s.arg0.fields["btns"]; + s.tmp_9 = r0; + r0 = pxsim_Array__getAt(s.tmp_9, s.i___25153); + s.tmp_8 = r0; + r0 = pxsim_Array__getAt(s.tmp_8, s.j___25161); + r0 = r0.fields["state"]; + s.tmp_7 = r0; + r0 = pxsim_Array__getAt(s.tmp_7, 0); + s.btnText___25171 = (r0); + r0 = s.arg0.fields["btns"]; s.tmp_2 = r0; - r0 = (s.tmp_1 * s.tmp_2); + r0 = pxsim_Array__getAt(s.tmp_2, s.i___25153); + s.tmp_1 = r0; + r0 = pxsim_Array__getAt(s.tmp_1, s.j___25161); + r0 = r0.fields["state"]; s.tmp_0 = r0; - r0 = (s.tmp_0 - 4); + s.tmp_4 = lambda_2_mk(s); + s.tmp_4.argL = s.swapCaseFn___25102; + s.tmp_4.arg0 = s.btnText___25171; + setupLambda(s.tmp_4, s.tmp_4.argL); + s.callLocIdx = 945; s.pc = 13; return s.tmp_4; + case 13: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_Array_.setAt(s.tmp_0, 0, s.tmp_3); + case 7: + r0 = (s.j___25161 + 1); + s.j___25161 = (r0); + { step = 4; continue; } + case 8: + r0 = (s.i___25153 + 1); + s.i___25153 = (r0); + { step = 3; continue; } + case 9: + r0 = undefined; return leave(s, r0) default: oops() } } } -bitmapWidths_inline__P23434.info = {"start":13544,"length":49,"line":411,"column":20,"endLine":411,"endColumn":69,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["txt"]} +microgui_Keyboard_swapCase__P3882.info = {"start":17815,"length":974,"line":526,"column":4,"endLine":551,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"swapCase","argumentNames":["this"]} -function bitmapWidths_inline__P23434_mk(s) { +function microgui_Keyboard_swapCase__P3882_mk(s) { checkStack(s.depth); return { - parent: s, fn: bitmapWidths_inline__P23434, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_swapCase__P3882, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + swapCaseFn___25102: undefined, + specialBtnData___25114: undefined, + specialBtnRows___25123: undefined, + isSpecialBtn___25131: undefined, + i___25153: undefined, + j___25161: undefined, + btnText___25171: undefined, arg0: undefined, } } - -function totalWidth_inline__P23451(s) { +function swapCaseFn_inline__P25106(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -70419,29 +75602,67 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = (s.arg0 + s.arg1); + s.tmp_0 = helpers_stringToUpperCase__P2149_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 939; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; return leave(s, r0) default: oops() } } } -totalWidth_inline__P23451.info = {"start":13696,"length":39,"line":414,"column":20,"endLine":414,"endColumn":59,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["total","w"]} +swapCaseFn_inline__P25106.info = {"start":17940,"length":41,"line":530,"column":10,"endLine":530,"endColumn":51,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["t"]} -function totalWidth_inline__P23451_mk(s) { +function swapCaseFn_inline__P25106_mk(s) { checkStack(s.depth); return { - parent: s, fn: totalWidth_inline__P23451, depth: s.depth + 1, + parent: s, fn: swapCaseFn_inline__P25106, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, arg0: undefined, - arg1: undefined, } } +function swapCaseFn_inline__P25110(s) { +let r0 = s.r0, step = s.pc; +s.pc = -1; + + +while (true) { +if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; +switch (step) { + case 0: + + if (s.lambdaArgs) { + s.arg0 = (s.lambdaArgs[0]); + s.lambdaArgs = null; + } + s.tmp_0 = helpers_stringToLowerCase__P2150_mk(s); + s.tmp_0.arg0 = s.arg0; + s.callLocIdx = 940; s.pc = 1; return s.tmp_0; + case 1: + r0 = s.retval; + return leave(s, r0) + default: oops() +} } } +swapCaseFn_inline__P25110.info = {"start":17992,"length":41,"line":531,"column":10,"endLine":531,"endColumn":51,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["t"]} + +function swapCaseFn_inline__P25110_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: swapCaseFn_inline__P25110, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + arg0: undefined, +} } + + + -function onClick_inline__P23519(s) { +function specialBtnRows_inline__P25125(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -70455,31 +75676,27 @@ switch (step) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = if_defaultBtnBehaviour_3_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = s.arg0; - s.tmp_0.arg2 = s.caps[1]; + s.tmp_0 = if_btnRow_1_mk(s); + s.tmp_0.arg0 = s.arg0; if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "defaultBtnBehaviour"), 3); - s.callLocIdx = 1935; s.pc = 1; return s.tmp_0; + s.retval = pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "btnRow"); } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["defaultBtnBehaviour"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["defaultBtnBehaviour"], 3); s.callLocIdx = 1935; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1935; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1935; s.pc = 1; return s.tmp_0; } + s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["btnRow"]; + if (s.tmp_0.fn == null) { s.retval = s.tmp_0.arg0.fields["btnRow"]; } + else if (!s.tmp_0.fn.isGetter) { s.retval = bind(s.tmp_0); } + else { s.callLocIdx = 943; s.pc = 1; return s.tmp_0; } } case 1: r0 = s.retval; - r0 = undefined; return leave(s, r0) default: oops() } } } -onClick_inline__P23519.info = {"start":14551,"length":80,"line":433,"column":33,"endLine":434,"endColumn":63,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn"]} +specialBtnRows_inline__P25125.info = {"start":18236,"length":35,"line":535,"column":58,"endLine":535,"endColumn":93,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["sbd"]} -function onClick_inline__P23519_mk(s) { +function specialBtnRows_inline__P25125_mk(s) { checkStack(s.depth); return { - parent: s, fn: onClick_inline__P23519, depth: s.depth + 1, + parent: s, fn: specialBtnRows_inline__P25125, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, arg0: undefined, @@ -70488,8 +75705,7 @@ function onClick_inline__P23519_mk(s) { - -function microgui_Keyboard_startup_inline__P23548(s) { +function isSpecialBtn_inline__P25132(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -70504,62 +75720,36 @@ switch (step) { s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } - r0 = pxsim_pxtcore_mkAction(2, microgui_Keyboard_startup_inline__P23560); + r0 = pxsim_Array_.indexOf(s.caps[0], s.arg0, undefined); + s.tmp_1 = r0; + r0 = (s.tmp_1 != -1); s.tmp_0 = r0; - r0 = pxsim_pxtrt_stclo(s.tmp_0, 0, s.arg0); - r0 = pxsim_pxtrt_stclo(s.tmp_0, 1, s.caps[0]); - r0 = s.caps[0].fields["btns"]; - s.tmp_3 = r0; - s.tmp_5 = if_btnRow_1_mk(s); - s.tmp_5.arg0 = s.arg0; - if (!s.tmp_5.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_5.arg0, "btnRow"); - } else { - s.tmp_5.fn = s.tmp_5.arg0.vtable.iface["btnRow"]; - if (s.tmp_5.fn == null) { s.retval = s.tmp_5.arg0.fields["btnRow"]; } - else if (!s.tmp_5.fn.isGetter) { s.retval = bind(s.tmp_5); } - else { s.callLocIdx = 1939; s.pc = 1; return s.tmp_5; } - } + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 1; continue; } + r0 = s.tmp_0; + { step = 2; continue; } case 1: - r0 = s.retval; - s.tmp_4 = r0; - r0 = pxsim_Array__getAt(s.tmp_3, s.tmp_4); + r0 = pxsim_Array_.indexOf(s.caps[0], s.arg1, undefined); s.tmp_2 = r0; - s.tmp_7 = if_btnCol_1_mk(s); - s.tmp_7.arg0 = s.arg0; - if (!s.tmp_7.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_7.arg0, "btnCol"); - } else { - s.tmp_7.fn = s.tmp_7.arg0.vtable.iface["btnCol"]; - if (s.tmp_7.fn == null) { s.retval = s.tmp_7.arg0.fields["btnCol"]; } - else if (!s.tmp_7.fn.isGetter) { s.retval = bind(s.tmp_7); } - else { s.callLocIdx = 1940; s.pc = 2; return s.tmp_7; } - } + r0 = (s.tmp_2 != -1); case 2: - r0 = s.retval; - s.tmp_6 = r0; - r0 = pxsim_Array__getAt(s.tmp_2, s.tmp_6); - s.tmp_1 = r0; - r0 = (s.tmp_1).fields["onClick"] = (s.tmp_0); - r0 = undefined; + // jmp value (already in r0) + s.tmp_3 = r0; + r0 = s.tmp_3; return leave(s, r0) default: oops() } } } -microgui_Keyboard_startup_inline__P23548.info = {"start":14899,"length":169,"line":442,"column":46,"endLine":445,"endColumn":13,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["data","i"]} +isSpecialBtn_inline__P25132.info = {"start":18302,"length":139,"line":537,"column":27,"endLine":539,"endColumn":7,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"inline","argumentNames":["row","col"]} -function microgui_Keyboard_startup_inline__P23548_mk(s) { +function isSpecialBtn_inline__P25132_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_startup_inline__P23548, depth: s.depth + 1, + parent: s, fn: isSpecialBtn_inline__P25132, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, - tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, arg0: undefined, arg1: undefined, } } @@ -70567,8 +75757,7 @@ function microgui_Keyboard_startup_inline__P23548_mk(s) { - -function microgui_Keyboard_startup_inline__P23560(s) { +function helpers_stringToLowerCase__P2150(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -70578,45 +75767,162 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: + s.r___25195 = undefined; + s.prev___25196 = undefined; + s.i___25197 = undefined; + s.c___25203 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - s.tmp_0 = if_behaviour_3_mk(s); - s.tmp_0.arg0 = s.caps[0]; - s.tmp_0.arg1 = s.arg0; - s.tmp_0.arg2 = s.caps[1]; - if (!s.tmp_0.arg0.vtable.iface) { - setupLambda(s.tmp_0, pxsim_pxtrt.mapGetByString(s.tmp_0.arg0, "behaviour"), 3); - s.callLocIdx = 1941; s.pc = 1; return s.tmp_0; - } else { - s.tmp_0.fn = s.tmp_0.arg0.vtable.iface["behaviour"]; - if (s.tmp_0.fn == null) { setupLambda(s.tmp_0, s.tmp_0.arg0.fields["behaviour"], 3); s.callLocIdx = 1941; s.pc = 1; return s.tmp_0; } - else if (s.tmp_0.fn.isGetter) { s.tmp_0.stage2Call = true; s.callLocIdx = 1941; s.pc = 1; return s.tmp_0;; } - else { s.callLocIdx = 1941; s.pc = 1; return s.tmp_0; } - } + r0 = pxsim_String_.mkEmpty(); + s.r___25195 = (r0); + s.prev___25196 = (0); + s.i___25197 = (0); case 1: + s.tmp_1 = r0 = s.i___25197; + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); + s.tmp_0 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 6; continue; } + r0 = pxsim_String_.charCodeAt(s.arg0, s.i___25197); + s.c___25203 = (r0); + r0 = (65 <= s.c___25203); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } + case 2: + r0 = (s.c___25203 <= 90); + case 3: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + if ((s.r___25195) && (s.r___25195).vtable) { + setupResume(s, 7); + pxsim_String__stringConv(s.r___25195); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___25195) + ""; } + case 7: r0 = s.retval; - r0 = undefined; + s.tmp_2 = r0; + s.tmp_7 = helpers_stringSlice__P2148_mk(s); + s.tmp_7.arg0 = s.arg0; + s.tmp_7.arg1 = s.prev___25196; + s.tmp_7.arg2 = s.i___25197; + s.callLocIdx = 21; s.pc = 8; return s.tmp_7; + case 8: + r0 = s.retval; + s.tmp_6 = r0; + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 9); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 9: + r0 = s.retval; + s.tmp_5 = r0; + r0 = (s.c___25203 + 32); + s.tmp_10 = r0; + r0 = pxsim_String_.fromCharCode(s.tmp_10); + s.tmp_9 = r0; + if ((s.tmp_9) && (s.tmp_9).vtable) { + setupResume(s, 10); + pxsim_String__stringConv(s.tmp_9); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_9) + ""; } + case 10: + r0 = s.retval; + s.tmp_8 = r0; + r0 = pxsim_String__concat(s.tmp_5, s.tmp_8); + s.tmp_4 = r0; + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 11); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 11: + r0 = s.retval; + s.tmp_3 = r0; + r0 = pxsim_String__concat(s.tmp_2, s.tmp_3); + s.r___25195 = (r0); + r0 = (s.i___25197 + 1); + s.prev___25196 = (r0); + case 4: + case 5: + r0 = (s.i___25197 + 1); + s.i___25197 = (r0); + { step = 1; continue; } + case 6: + if ((s.r___25195) && (s.r___25195).vtable) { + setupResume(s, 12); + pxsim_String__stringConv(s.r___25195); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___25195) + ""; } + case 12: + r0 = s.retval; + s.tmp_0 = r0; + s.tmp_3 = helpers_stringSlice__P2148_mk(s); + s.tmp_3.arg0 = s.arg0; + s.tmp_3.arg1 = s.prev___25196; + s.tmp_3.arg2 = undefined; + s.callLocIdx = 22; s.pc = 13; return s.tmp_3; + case 13: + r0 = s.retval; + s.tmp_2 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 14); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 14: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___25195 = (r0); + r0 = s.r___25195; return leave(s, r0) default: oops() } } } -microgui_Keyboard_startup_inline__P23560.info = {"start":14992,"length":62,"line":443,"column":62,"endLine":444,"endColumn":45,"fileName":"inputmethods.ts","functionName":"inline","argumentNames":["btn"]} +helpers_stringToLowerCase__P2150.info = {"start":12527,"length":386,"line":420,"column":4,"endLine":432,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringToLowerCase","argumentNames":["s"]} -function microgui_Keyboard_startup_inline__P23560_mk(s) { +function helpers_stringToLowerCase__P2150_mk(s) { checkStack(s.depth); return { - parent: s, fn: microgui_Keyboard_startup_inline__P23560, depth: s.depth + 1, + parent: s, fn: helpers_stringToLowerCase__P2150, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, + tmp_7: undefined, + tmp_8: undefined, + tmp_9: undefined, + tmp_10: undefined, + r___25195: undefined, + prev___25196: undefined, + i___25197: undefined, + c___25203: undefined, arg0: undefined, } } - -function microcode_MelodyNavigator_reportAria__P5842(s) { +function helpers_stringToUpperCase__P2149(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -70626,71 +75932,139 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re switch (step) { case 0: - s.index___23580 = undefined; + s.r___25250 = undefined; + s.prev___25251 = undefined; + s.i___25252 = undefined; + s.c___25258 = undefined; if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); s.lambdaArgs = null; } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyNavigator__C4583_VT)) failedCast(r0, microcode_MelodyNavigator__C4583_VT); - s.tmp_0 = user_interface_base_PickerNavigator_reportAria__P5292_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1664; s.pc = 6; return s.tmp_0; - case 6: - r0 = s.retval; - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 == -1); + r0 = pxsim_String_.mkEmpty(); + s.r___25250 = (r0); + s.prev___25251 = (0); + s.i___25252 = (0); + case 1: + s.tmp_1 = r0 = s.i___25252; + r0 = pxsim_String_.length(s.arg0); + s.tmp_2 = r0; + r0 = (s.tmp_1 < s.tmp_2); s.tmp_0 = r0; r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 5; continue; } - case 1: + if (!r0) { step = 6; continue; } + r0 = pxsim_String_.charCodeAt(s.arg0, s.i___25252); + s.c___25258 = (r0); + r0 = (97 <= s.c___25258); + s.tmp_0 = r0; + r0 = pxsim_numops_toBool(s.tmp_0); + if (r0) { step = 2; continue; } + r0 = s.tmp_0; + { step = 3; continue; } case 2: - r0 = s.arg0.fields["deleteButton"]; + r0 = (s.c___25258 <= 122); + case 3: + // jmp value (already in r0) + s.tmp_1 = r0; + r0 = pxsim_numops_toBoolDecr(s.tmp_1); + if (!r0) { step = 4; continue; } + if ((s.r___25250) && (s.r___25250).vtable) { + setupResume(s, 7); + pxsim_String__stringConv(s.r___25250); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___25250) + ""; } + case 7: + r0 = s.retval; + s.tmp_2 = r0; + s.tmp_7 = helpers_stringSlice__P2148_mk(s); + s.tmp_7.arg0 = s.arg0; + s.tmp_7.arg1 = s.prev___25251; + s.tmp_7.arg2 = s.i___25252; + s.callLocIdx = 19; s.pc = 8; return s.tmp_7; + case 8: + r0 = s.retval; s.tmp_6 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_6); + if ((s.tmp_6) && (s.tmp_6).vtable) { + setupResume(s, 9); + pxsim_String__stringConv(s.tmp_6); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_6) + ""; } + case 9: + r0 = s.retval; s.tmp_5 = r0; - r0 = pxsim_Boolean__bang(s.tmp_5); + r0 = (s.c___25258 - 32); + s.tmp_10 = r0; + r0 = pxsim_String_.fromCharCode(s.tmp_10); + s.tmp_9 = r0; + if ((s.tmp_9) && (s.tmp_9).vtable) { + setupResume(s, 10); + pxsim_String__stringConv(s.tmp_9); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_9) + ""; } + case 10: + r0 = s.retval; + s.tmp_8 = r0; + r0 = pxsim_String__concat(s.tmp_5, s.tmp_8); s.tmp_4 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_4); + if ((s.tmp_4) && (s.tmp_4).vtable) { + setupResume(s, 11); + pxsim_String__stringConv(s.tmp_4); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_4) + ""; } + case 11: + r0 = s.retval; s.tmp_3 = r0; - r0 = pxsim_Boolean__bang(s.tmp_3); - s.tmp_2 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_2); - if (!r0) { step = 3; continue; } - r0 = s.arg0.fields["row"]; - s.tmp_7 = r0; - r0 = (s.tmp_7 - 1); - { step = 4; continue; } - case 3: - r0 = s.arg0.fields["row"]; + r0 = pxsim_String__concat(s.tmp_2, s.tmp_3); + s.r___25250 = (r0); + r0 = (s.i___25252 + 1); + s.prev___25251 = (r0); case 4: - // jmp value (already in r0) - s.tmp_8 = r0; - s.index___23580 = (s.tmp_8); - r0 = pxsim_pxtrt.mkMap(); + case 5: + r0 = (s.i___25252 + 1); + s.i___25252 = (r0); + { step = 1; continue; } + case 6: + if ((s.r___25250) && (s.r___25250).vtable) { + setupResume(s, 12); + pxsim_String__stringConv(s.r___25250); + checkResumeConsumed(); + return; + } else { s.retval = (s.r___25250) + ""; } + case 12: + r0 = s.retval; s.tmp_0 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "type", "note"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "on", true); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "index", s.index___23580); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_0, "force", true); - s.tmp_1 = accessibility_setLiveContent__P3518_mk(s); - s.tmp_1.arg0 = s.tmp_0; - s.callLocIdx = 1666; s.pc = 7; return s.tmp_1; - case 7: + s.tmp_3 = helpers_stringSlice__P2148_mk(s); + s.tmp_3.arg0 = s.arg0; + s.tmp_3.arg1 = s.prev___25251; + s.tmp_3.arg2 = undefined; + s.callLocIdx = 20; s.pc = 13; return s.tmp_3; + case 13: r0 = s.retval; - case 5: - r0 = undefined; + s.tmp_2 = r0; + if ((s.tmp_2) && (s.tmp_2).vtable) { + setupResume(s, 14); + pxsim_String__stringConv(s.tmp_2); + checkResumeConsumed(); + return; + } else { s.retval = (s.tmp_2) + ""; } + case 14: + r0 = s.retval; + s.tmp_1 = r0; + r0 = pxsim_String__concat(s.tmp_0, s.tmp_1); + s.r___25250 = (r0); + r0 = s.r___25250; return leave(s, r0) default: oops() } } } -microcode_MelodyNavigator_reportAria__P5842.info = {"start":2089,"length":465,"line":69,"column":8,"endLine":82,"endColumn":9,"fileName":"navigator.ts","functionName":"reportAria","argumentNames":["this"]} +helpers_stringToUpperCase__P2149.info = {"start":12038,"length":387,"line":405,"column":4,"endLine":417,"endColumn":5,"fileName":"pxt_modules/core/pxt-helpers.ts","functionName":"stringToUpperCase","argumentNames":["s"]} -function microcode_MelodyNavigator_reportAria__P5842_mk(s) { +function helpers_stringToUpperCase__P2149_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyNavigator_reportAria__P5842, depth: s.depth + 1, + parent: s, fn: helpers_stringToUpperCase__P2149, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, @@ -70701,15 +76075,19 @@ function microcode_MelodyNavigator_reportAria__P5842_mk(s) { tmp_6: undefined, tmp_7: undefined, tmp_8: undefined, - index___23580: undefined, + tmp_9: undefined, + tmp_10: undefined, + r___25250: undefined, + prev___25251: undefined, + i___25252: undefined, + c___25258: undefined, arg0: undefined, } } - -function user_interface_base_PickerNavigator_hasDelete__P3805(s) { +function microgui_Keyboard_deletePriorCharacters__P3880(s) { let r0 = s.r0, step = s.pc; s.pc = -1; @@ -70721,472 +76099,347 @@ switch (step) { if (s.lambdaArgs) { s.arg0 = (s.lambdaArgs[0]); + s.arg1 = (s.lambdaArgs[1]); s.lambdaArgs = null; } r0 = s.arg0; - if (!checkSubtype(r0, user_interface_base_PickerNavigator__C3803_VT)) failedCast(r0, user_interface_base_PickerNavigator__C3803_VT); - r0 = s.arg0.fields["deleteButton"]; - s.tmp_3 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_3); + if (!checkSubtype(r0, microgui_Keyboard__C3876_VT)) failedCast(r0, microgui_Keyboard__C3876_VT); + r0 = s.arg0.fields["text"]; s.tmp_2 = r0; - r0 = pxsim_Boolean__bang(s.tmp_2); + r0 = pxsim_String_.length(s.tmp_2); s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); + r0 = (s.tmp_1 > 0); s.tmp_0 = r0; - r0 = pxsim_Boolean__bang(s.tmp_0); - return leaveAccessor(s, r0) + r0 = pxsim_numops_toBoolDecr(s.tmp_0); + if (!r0) { step = 1; continue; } + s.tmp_3 = helpers_stringSubstr__P2147_mk(s); + r0 = s.arg0.fields["text"]; + s.tmp_3.arg0 = r0; + s.tmp_3.arg1 = 0; + r0 = s.arg0.fields["text"]; + s.tmp_5 = r0; + r0 = pxsim_String_.length(s.tmp_5); + s.tmp_4 = r0; + r0 = (s.tmp_4 - s.arg1); + s.tmp_3.arg2 = r0; + s.callLocIdx = 938; s.pc = 3; return s.tmp_3; + case 3: + r0 = s.retval; + { step = 2; continue; } + case 1: + r0 = s.arg0.fields["text"]; + case 2: + // jmp value (already in r0) + s.tmp_6 = r0; + r0 = (s.arg0).fields["text"] = (s.tmp_6); + r0 = (s.arg0).fields["frameCounter"] = (20); + r0 = undefined; + return leave(s, r0) default: oops() } } } -user_interface_base_PickerNavigator_hasDelete__P3805.info = {"start":10847,"length":66,"line":350,"column":8,"endLine":352,"endColumn":9,"fileName":"pxt_modules/user-interface-base/navigator.ts","functionName":"hasDelete","argumentNames":["this"]} -user_interface_base_PickerNavigator_hasDelete__P3805.isGetter = true; +microgui_Keyboard_deletePriorCharacters__P3880.info = {"start":17506,"length":231,"line":514,"column":4,"endLine":520,"endColumn":5,"fileName":"pxt_modules/microgui/inputMethods.ts","functionName":"deletePriorCharacters","argumentNames":["this","n"]} -function user_interface_base_PickerNavigator_hasDelete__P3805_mk(s) { +function microgui_Keyboard_deletePriorCharacters__P3880_mk(s) { checkStack(s.depth); return { - parent: s, fn: user_interface_base_PickerNavigator_hasDelete__P3805, depth: s.depth + 1, + parent: s, fn: microgui_Keyboard_deletePriorCharacters__P3880, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, + tmp_4: undefined, + tmp_5: undefined, + tmp_6: undefined, arg0: undefined, + arg1: undefined, } } - - -function microcode_LEDNavigator_reportAria__P5844(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_LEDNavigator__C4585_VT)) failedCast(r0, microcode_LEDNavigator__C4585_VT); - s.tmp_0 = user_interface_base_PickerNavigator_reportAria__P5292_mk(s); - s.tmp_0.arg0 = s.arg0; - s.callLocIdx = 1668; s.pc = 4; return s.tmp_0; - case 4: - r0 = s.retval; - r0 = s.arg0.fields["row"]; - s.tmp_1 = r0; - r0 = (s.tmp_1 == -1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 1; continue; } - { step = 3; continue; } - case 1: - case 2: - r0 = pxsim_pxtrt.mkMap(); - s.tmp_2 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "type", "led"); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "on", true); - r0 = s.arg0.fields["col"]; - s.tmp_3 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "x", s.tmp_3); - r0 = s.arg0.fields["row"]; - s.tmp_4 = r0; - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "y", s.tmp_4); - r0 = pxsim_pxtrt.mapSetByString(s.tmp_2, "force", true); - s.tmp_5 = accessibility_setLiveContent__P3518_mk(s); - s.tmp_5.arg0 = s.tmp_2; - s.callLocIdx = 1669; s.pc = 5; return s.tmp_5; - case 5: - r0 = s.retval; - case 3: - r0 = undefined; - return leave(s, r0) - default: oops() -} } } -microcode_LEDNavigator_reportAria__P5844.info = {"start":2780,"length":433,"line":92,"column":8,"endLine":105,"endColumn":9,"fileName":"navigator.ts","functionName":"reportAria","argumentNames":["this"]} - -function microcode_LEDNavigator_reportAria__P5844_mk(s) { +function if_getText_1_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_LEDNavigator_reportAria__P5844, depth: s.depth + 1, + parent: s, fn: null, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, arg0: undefined, } } +function if_appendText_2_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, + arg1: undefined, +} } +function if_shakeText_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } -function microcode_IconFieldEditor_toImage__P4427(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_IconFieldEditor__C4423_VT)) failedCast(r0, microcode_IconFieldEditor__C4423_VT); - s.tmp_0 = icondb_renderMicrobitLEDs__P3895_mk(s); - s.tmp_0.arg0 = s.arg1; - s.callLocIdx = 1548; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - return leave(s, r0) - default: oops() -} } } -microcode_IconFieldEditor_toImage__P4427.info = {"start":3915,"length":83,"line":141,"column":8,"endLine":143,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toImage","argumentNames":["this","field"]} -function microcode_IconFieldEditor_toImage__P4427_mk(s) { +function if_setText_2_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_IconFieldEditor_toImage__P4427, depth: s.depth + 1, + parent: s, fn: null, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, arg1: undefined, } } +function if_nextScene_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } +function user_interface_base_Scene__C3659_v3_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } -function icondb_renderMicrobitLEDs__P3895(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; - - -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: - - s.ret___23616 = undefined; - s.row___23622 = undefined; - s.col___23626 = undefined; - s.on___23630 = undefined; - s.nrow___23642 = undefined; - s.ncol___23647 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim.bitmaps.create(16, 16); - s.ret___23616 = (r0); - r0 = pxsim.BitmapMethods.fill(s.ret___23616, 15); - s.row___23622 = (0); - case 1: - r0 = (s.row___23622 < 5); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 7; continue; } - s.col___23626 = (0); - case 2: - r0 = (s.col___23626 < 5); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 6; continue; } - r0 = pxsim.BitmapMethods.getPixel(s.arg0, s.row___23622, s.col___23626); - s.on___23630 = (r0); - r0 = pxsim_numops_toBoolDecr(s.on___23630); - s.tmp_1 = r0; - r0 = pxsim_Boolean__bang(s.tmp_1); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 3; continue; } - { step = 5; continue; } - case 3: - case 4: - r0 = (s.row___23622 * 3); - s.tmp_2 = r0; - r0 = (1 + s.tmp_2); - s.nrow___23642 = (r0); - r0 = (s.col___23626 * 3); - s.tmp_0 = r0; - r0 = (1 + s.tmp_0); - s.ncol___23647 = (r0); - r0 = pxsim.BitmapMethods.setPixel(s.ret___23616, s.nrow___23642, s.ncol___23647, 2); - s.tmp_0 = r0 = s.ret___23616; - r0 = (s.nrow___23642 + 1); - s.tmp_1 = r0; - r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, s.ncol___23647, 2); - s.tmp_0 = r0 = s.ret___23616; - s.tmp_1 = r0 = s.nrow___23642; - r0 = (s.ncol___23647 + 1); - s.tmp_2 = r0; - r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, s.tmp_2, 2); - s.tmp_0 = r0 = s.ret___23616; - r0 = (s.nrow___23642 + 1); - s.tmp_1 = r0; - r0 = (s.ncol___23647 + 1); - s.tmp_2 = r0; - r0 = pxsim.BitmapMethods.setPixel(s.tmp_0, s.tmp_1, s.tmp_2, 2); - case 5: - r0 = (s.col___23626 + 1); - s.col___23626 = (r0); - { step = 2; continue; } - case 6: - r0 = (s.row___23622 + 1); - s.row___23622 = (r0); - { step = 1; continue; } - case 7: - r0 = s.ret___23616; - return leave(s, r0) - default: oops() -} } } -icondb_renderMicrobitLEDs__P3895.info = {"start":22421,"length":699,"line":383,"column":4,"endLine":402,"endColumn":5,"fileName":"assets.ts","functionName":"renderMicrobitLEDs","argumentNames":["led55"]} -function icondb_renderMicrobitLEDs__P3895_mk(s) { +function user_interface_base_Scene__C3659_v0_1_mk(s) { checkStack(s.depth); return { - parent: s, fn: icondb_renderMicrobitLEDs__P3895, depth: s.depth + 1, + parent: s, fn: null, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, - ret___23616: undefined, - row___23622: undefined, - col___23626: undefined, - on___23630: undefined, - nrow___23642: undefined, - ncol___23647: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, } } +function user_interface_base_Scene__C3659_v2_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } - -function microcode_MelodyFieldEditor_toImage__P4446(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; +function user_interface_base_Scene__C3659_v4_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: +function user_interface_base_Scene__C3659_v5_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_MelodyFieldEditor__C4442_VT)) failedCast(r0, microcode_MelodyFieldEditor__C4442_VT); - s.tmp_0 = icondb_melodyToImage__P3894_mk(s); - s.tmp_0.arg0 = s.arg1; - s.callLocIdx = 1557; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - return leave(s, r0) - default: oops() -} } } -microcode_MelodyFieldEditor_toImage__P4446.info = {"start":6287,"length":78,"line":219,"column":8,"endLine":221,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toImage","argumentNames":["this","field"]} -function microcode_MelodyFieldEditor_toImage__P4446_mk(s) { +function if_multiplier_1_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_MelodyFieldEditor_toImage__P4446, depth: s.depth + 1, + parent: s, fn: null, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, - arg1: undefined, } } +function if_charWidth_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } - -function icondb_melodyToImage__P3894(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; +function if_charHeight_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: +function if_data_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } - s.ret___23694 = undefined; - s.col___23700 = undefined; - s.row___23710 = undefined; - s.ncol___23724 = undefined; - s.nrow___23727 = undefined; - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.lambdaArgs = null; - } - r0 = pxsim.bitmaps.create(16, 16); - s.ret___23694 = (r0); - r0 = pxsim.BitmapMethods.fill(s.ret___23694, 1); - s.col___23700 = (0); - case 1: - r0 = (s.col___23700 < 4); - s.tmp_0 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_0); - if (!r0) { step = 5; continue; } - s.tmp_4 = if_notes_1_mk(s); - s.tmp_4.arg0 = s.arg0; - if (!s.tmp_4.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_4.arg0, "notes"); - } else { - s.tmp_4.fn = s.tmp_4.arg0.vtable.iface["notes"]; - if (s.tmp_4.fn == null) { s.retval = s.tmp_4.arg0.fields["notes"]; } - else if (!s.tmp_4.fn.isGetter) { s.retval = bind(s.tmp_4); } - else { s.callLocIdx = 874; s.pc = 6; return s.tmp_4; } - } - case 6: - r0 = s.retval; - s.tmp_3 = r0; - r0 = pxsim_String_.charAt(s.tmp_3, s.col___23700); - s.tmp_2 = r0; - r0 = (s.tmp_2 === "."); - s.tmp_1 = r0; - r0 = pxsim_numops_toBoolDecr(s.tmp_1); - if (!r0) { step = 2; continue; } - { step = 4; continue; } - case 2: - case 3: - s.tmp_6 = parseInt__P2126_mk(s); - s.tmp_8 = if_notes_1_mk(s); - s.tmp_8.arg0 = s.arg0; - if (!s.tmp_8.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_8.arg0, "notes"); - } else { - s.tmp_8.fn = s.tmp_8.arg0.vtable.iface["notes"]; - if (s.tmp_8.fn == null) { s.retval = s.tmp_8.arg0.fields["notes"]; } - else if (!s.tmp_8.fn.isGetter) { s.retval = bind(s.tmp_8); } - else { s.callLocIdx = 875; s.pc = 8; return s.tmp_8; } - } - case 8: - r0 = s.retval; - s.tmp_7 = r0; - r0 = pxsim_String_.charAt(s.tmp_7, s.col___23700); - s.tmp_6.arg0 = r0; - s.tmp_6.arg1 = undefined; - s.callLocIdx = 876; s.pc = 7; return s.tmp_6; - case 7: - r0 = s.retval; - s.tmp_5 = r0; - r0 = (4 - s.tmp_5); - s.row___23710 = (r0); - r0 = (s.col___23700 << 2); - s.ncol___23724 = (r0); - r0 = (s.row___23710 * 3); - s.tmp_0 = r0; - r0 = (s.tmp_0 + 1); - s.nrow___23727 = (r0); - r0 = pxsim.BitmapMethods.drawTransparentBitmap(s.ret___23694, globals.note4x3___5410, s.ncol___23724, s.nrow___23727); - case 4: - r0 = (s.col___23700 + 1); - s.col___23700 = (r0); - { step = 1; continue; } - case 5: - r0 = s.ret___23694; - return leave(s, r0) - default: oops() -} } } -icondb_melodyToImage__P3894.info = {"start":21858,"length":509,"line":368,"column":4,"endLine":380,"endColumn":5,"fileName":"assets.ts","functionName":"melodyToImage","argumentNames":["melody"]} -function icondb_melodyToImage__P3894_mk(s) { +function if_xOffset_1_mk(s) { checkStack(s.depth); return { - parent: s, fn: icondb_melodyToImage__P3894, depth: s.depth + 1, + parent: s, fn: null, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, tmp_2: undefined, tmp_3: undefined, tmp_4: undefined, - tmp_5: undefined, - tmp_6: undefined, - tmp_7: undefined, - tmp_8: undefined, - ret___23694: undefined, - col___23700: undefined, - row___23710: undefined, - ncol___23724: undefined, - nrow___23727: undefined, arg0: undefined, } } +function if_yOffset_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } - -function microcode_DecimalFieldEditor_toImage__P4414(s) { -let r0 = s.r0, step = s.pc; -s.pc = -1; +function if_handler_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } -while (true) { -if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) return null; -switch (step) { - case 0: +function lambda_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } - if (s.lambdaArgs) { - s.arg0 = (s.lambdaArgs[0]); - s.arg1 = (s.lambdaArgs[1]); - s.lambdaArgs = null; - } - r0 = s.arg0; - if (!checkSubtype(r0, microcode_DecimalFieldEditor__C4410_VT)) failedCast(r0, microcode_DecimalFieldEditor__C4410_VT); - s.tmp_0 = icondb_numberToDecimalImage__P4004_mk(s); - s.tmp_1 = if_num_1_mk(s); - s.tmp_1.arg0 = s.arg1; - if (!s.tmp_1.arg0.vtable.iface) { - s.retval = pxsim_pxtrt.mapGetByString(s.tmp_1.arg0, "num"); - } else { - s.tmp_1.fn = s.tmp_1.arg0.vtable.iface["num"]; - if (s.tmp_1.fn == null) { s.retval = s.tmp_1.arg0.fields["num"]; } - else if (!s.tmp_1.fn.isGetter) { s.retval = bind(s.tmp_1); } - else { s.callLocIdx = 1540; s.pc = 2; return s.tmp_1; } - } - case 2: - r0 = s.retval; - s.tmp_0.arg0 = r0; - s.tmp_0.arg1 = false; - s.callLocIdx = 1541; s.pc = 1; return s.tmp_0; - case 1: - r0 = s.retval; - return leave(s, r0) - default: oops() -} } } -microcode_DecimalFieldEditor_toImage__P4414.info = {"start":2041,"length":106,"line":75,"column":8,"endLine":77,"endColumn":9,"fileName":"fieldeditors.ts","functionName":"toImage","argumentNames":["this","field"]} -function microcode_DecimalFieldEditor_toImage__P4414_mk(s) { +function if_condition_1_mk(s) { checkStack(s.depth); return { - parent: s, fn: microcode_DecimalFieldEditor_toImage__P4414, depth: s.depth + 1, + parent: s, fn: null, depth: s.depth + 1, pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, tmp_0: undefined, tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, arg0: undefined, - arg1: undefined, } } +function if_emitClearScreen_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } -function if_appendText_2_mk(s) { +function if_registerOnSensorEvent_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71201,7 +76454,7 @@ function if_appendText_2_mk(s) { } } -function if_deletePriorCharacters_2_mk(s) { +function lambda_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71216,7 +76469,7 @@ function if_deletePriorCharacters_2_mk(s) { } } -function if_swapCase_1_mk(s) { +function lambda_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71227,10 +76480,12 @@ function if_swapCase_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } -function if_nextScene_1_mk(s) { +function if_fun_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71241,10 +76496,12 @@ function if_nextScene_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } -function if_textLen_1_mk(s) { +function if_prec_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71258,7 +76515,7 @@ function if_textLen_1_mk(s) { } } -function if_shakeText_1_mk(s) { +function lambda_4_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71269,10 +76526,13 @@ function if_shakeText_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, + arg3: undefined, } } -function if_getText_1_mk(s) { +function if_num_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71286,7 +76546,7 @@ function if_getText_1_mk(s) { } } -function user_interface_base_Scene__C3686_v3_1_mk(s) { +function microcode_DigitEditor__C4559_v0_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71300,7 +76560,7 @@ function user_interface_base_Scene__C3686_v3_1_mk(s) { } } -function user_interface_base_Scene__C3686_v0_1_mk(s) { +function microcode_ModifierEditor__C4543_v0_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71314,7 +76574,7 @@ function user_interface_base_Scene__C3686_v0_1_mk(s) { } } -function user_interface_base_Scene__C3686_v2_1_mk(s) { +function if_execute_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71325,10 +76585,12 @@ function user_interface_base_Scene__C3686_v2_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } -function user_interface_base_Scene__C3686_v4_1_mk(s) { +function if_notes_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71342,7 +76604,7 @@ function user_interface_base_Scene__C3686_v4_1_mk(s) { } } -function user_interface_base_Scene__C3686_v5_1_mk(s) { +function microcode_FieldEditor__C5998_v0_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71356,21 +76618,7 @@ function user_interface_base_Scene__C3686_v5_1_mk(s) { } } -function if_multiplier_1_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: null, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, -} } - - -function if_charWidth_1_mk(s) { +function microcode_FieldEditor__C5998_v1_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71381,10 +76629,11 @@ function if_charWidth_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_charHeight_1_mk(s) { +function if_kind_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71398,7 +76647,7 @@ function if_charHeight_1_mk(s) { } } -function if_data_1_mk(s) { +function if_updatedVars_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71412,7 +76661,7 @@ function if_data_1_mk(s) { } } -function if_xOffset_1_mk(s) { +function if_sensor_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71426,7 +76675,7 @@ function if_xOffset_1_mk(s) { } } -function if_yOffset_1_mk(s) { +function if_filter_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71440,7 +76689,7 @@ function if_yOffset_1_mk(s) { } } -function if_handler_1_mk(s) { +function if_index_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71454,7 +76703,7 @@ function if_handler_1_mk(s) { } } -function lambda_1_mk(s) { +function if_ruleIndex_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71468,7 +76717,7 @@ function lambda_1_mk(s) { } } -function if_condition_1_mk(s) { +function if_getSensorValue_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71479,10 +76728,12 @@ function if_condition_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } -function if_emitClearScreen_1_mk(s) { +function if_stopOngoingActions_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71496,7 +76747,7 @@ function if_emitClearScreen_1_mk(s) { } } -function if_registerOnSensorEvent_2_mk(s) { +function microcode_FieldEditor__C5998_v5_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71511,21 +76762,7 @@ function if_registerOnSensorEvent_2_mk(s) { } } -function if_normalized_1_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: null, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, -} } - - -function if_tid_1_mk(s) { +function microcode_ModifierEditor__C4543_v2_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71536,10 +76773,11 @@ function if_tid_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function lambda_2_mk(s) { +function if__handler_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71551,10 +76789,11 @@ function lambda_2_mk(s) { tmp_4: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } -function if_sensorFn_1_mk(s) { +function if_setupFn_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71568,7 +76807,7 @@ function if_sensorFn_1_mk(s) { } } -function lambda_3_mk(s) { +function if_parent_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71579,12 +76818,10 @@ function lambda_3_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } -function if_name_1_mk(s) { +function if_xfrm_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71598,7 +76835,7 @@ function if_name_1_mk(s) { } } -function if_rName_1_mk(s) { +function if_img_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71612,7 +76849,7 @@ function if_rName_1_mk(s) { } } -function if_min_1_mk(s) { +function if_width_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71626,7 +76863,7 @@ function if_min_1_mk(s) { } } -function if_max_1_mk(s) { +function if_height_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71640,7 +76877,7 @@ function if_max_1_mk(s) { } } -function if_f_1_mk(s) { +function if_left_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71654,7 +76891,7 @@ function if_f_1_mk(s) { } } -function if_isJacdacSensor_1_mk(s) { +function if_top_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71668,7 +76905,7 @@ function if_isJacdacSensor_1_mk(s) { } } -function if_setupFn_1_mk(s) { +function if_type_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71682,7 +76919,7 @@ function if_setupFn_1_mk(s) { } } -function if_num_1_mk(s) { +function if_buttonId_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71696,7 +76933,7 @@ function if_num_1_mk(s) { } } -function microcode_DecimalEditor__C4417_v0_1_mk(s) { +function user_interface_base_Button__C3638_v0_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71710,7 +76947,7 @@ function microcode_DecimalEditor__C4417_v0_1_mk(s) { } } -function microcode_ModifierEditor__C4403_v0_1_mk(s) { +function if_right_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71724,7 +76961,7 @@ function microcode_ModifierEditor__C4403_v0_1_mk(s) { } } -function if_execute_3_mk(s) { +function if_bottom_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71735,12 +76972,10 @@ function if_execute_3_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } -function if_fun_3_mk(s) { +function user_interface_base_ButtonBase__C3621_v0_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71751,12 +76986,10 @@ function if_fun_3_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } -function if_prec_1_mk(s) { +function if_icon_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71770,7 +77003,7 @@ function if_prec_1_mk(s) { } } -function lambda_4_mk(s) { +function user_interface_base_RowNavigator__C3753_v2_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71781,13 +77014,10 @@ function lambda_4_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, } } -function if_notes_1_mk(s) { +function user_interface_base_RowNavigator__C3753_v1_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71801,7 +77031,7 @@ function if_notes_1_mk(s) { } } -function microcode_FieldEditor__C5806_v0_1_mk(s) { +function microcode_RuleRowNavigator__C4720_v0_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71815,7 +77045,7 @@ function microcode_FieldEditor__C5806_v0_1_mk(s) { } } -function microcode_FieldEditor__C5806_v1_2_mk(s) { +function user_interface_base_RowNavigator__C3753_v3_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71830,7 +77060,7 @@ function microcode_FieldEditor__C5806_v1_2_mk(s) { } } -function if_kind_1_mk(s) { +function user_interface_base_RowNavigator__C3753_v7_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71844,7 +77074,7 @@ function if_kind_1_mk(s) { } } -function if_updatedVars_1_mk(s) { +function if_sensors_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71858,7 +77088,7 @@ function if_updatedVars_1_mk(s) { } } -function if_sensor_1_mk(s) { +function if_filters_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71872,7 +77102,7 @@ function if_sensor_1_mk(s) { } } -function if_filter_1_mk(s) { +function if_actuators_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71886,7 +77116,7 @@ function if_filter_1_mk(s) { } } -function if_index_1_mk(s) { +function if_modifiers_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71900,7 +77130,7 @@ function if_index_1_mk(s) { } } -function if_ruleIndex_1_mk(s) { +function user_interface_base_RowNavigator__C3753_v4_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71911,10 +77141,11 @@ function if_ruleIndex_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if__handler_3_mk(s) { +function if_save_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71930,7 +77161,7 @@ function if__handler_3_mk(s) { } } -function microcode_FieldEditor__C5806_v5_2_mk(s) { +function microcode_FieldEditor__C5998_v4_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71945,7 +77176,7 @@ function microcode_FieldEditor__C5806_v5_2_mk(s) { } } -function microcode_ModifierEditor__C4403_v2_2_mk(s) { +function microcode_FieldEditor__C5998_v2_6_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -71957,38 +77188,14 @@ function microcode_ModifierEditor__C4403_v2_2_mk(s) { tmp_4: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, + arg3: undefined, + arg4: undefined, + arg5: undefined, } } -function if_width_1_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: null, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, -} } - - -function if_height_1_mk(s) { - checkStack(s.depth); - return { - parent: s, fn: null, depth: s.depth + 1, - pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, - tmp_0: undefined, - tmp_1: undefined, - tmp_2: undefined, - tmp_3: undefined, - tmp_4: undefined, - arg0: undefined, -} } - - -function if_left_1_mk(s) { +function if_selected_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72002,7 +77209,7 @@ function if_left_1_mk(s) { } } -function if_top_1_mk(s) { +function if_onClick_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72016,7 +77223,7 @@ function if_top_1_mk(s) { } } -function if_type_1_mk(s) { +function if_onHide_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72030,7 +77237,7 @@ function if_type_1_mk(s) { } } -function if_buttonId_1_mk(s) { +function if_onDelete_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72044,7 +77251,7 @@ function if_buttonId_1_mk(s) { } } -function if_tempo_1_mk(s) { +function if_navigator_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72058,7 +77265,7 @@ function if_tempo_1_mk(s) { } } -function music_Playable__C2953_v0_2_mk(s) { +function if_title_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72069,11 +77276,10 @@ function music_Playable__C2953_v0_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_drawComponents_1_mk(s) { +function if_style_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72087,7 +77293,7 @@ function if_drawComponents_1_mk(s) { } } -function if_setBtns_2_mk(s) { +function user_interface_base_PickerNavigator__C3776_v0_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72098,11 +77304,10 @@ function if_setBtns_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_popScene_1_mk(s) { +function if_ariaId_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72116,7 +77321,7 @@ function if_popScene_1_mk(s) { } } -function if_pushScene_2_mk(s) { +function if_pos_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72127,11 +77332,10 @@ function if_pushScene_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_icon_1_mk(s) { +function if_size_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72145,7 +77349,7 @@ function if_icon_1_mk(s) { } } -function if_selected_1_mk(s) { +function if_only_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72159,7 +77363,7 @@ function if_selected_1_mk(s) { } } -function if_onClick_1_mk(s) { +function if_allow_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72173,7 +77377,7 @@ function if_onClick_1_mk(s) { } } -function if_onHide_1_mk(s) { +function if_disallow_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72187,7 +77391,7 @@ function if_onHide_1_mk(s) { } } -function if_onDelete_1_mk(s) { +function if_requires_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72201,7 +77405,7 @@ function if_onDelete_1_mk(s) { } } -function if_navigator_1_mk(s) { +function if_provides_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72215,7 +77419,7 @@ function if_navigator_1_mk(s) { } } -function if_title_1_mk(s) { +function if_x_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72229,7 +77433,7 @@ function if_title_1_mk(s) { } } -function if_style_1_mk(s) { +function if_y_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72243,7 +77447,7 @@ function if_style_1_mk(s) { } } -function user_interface_base_PickerNavigator__C3803_v0_1_mk(s) { +function if_flipIcon_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72257,7 +77461,7 @@ function user_interface_base_PickerNavigator__C3803_v0_1_mk(s) { } } -function if_ariaId_1_mk(s) { +function if_dynamicBoundaryColorsOn_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72271,7 +77475,7 @@ function if_ariaId_1_mk(s) { } } -function if_parent_1_mk(s) { +function if_dynamicBoundaryColorsOn_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72282,10 +77486,11 @@ function if_parent_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_xfrm_1_mk(s) { +function if_boundaryColor_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72299,7 +77504,7 @@ function if_xfrm_1_mk(s) { } } -function if_img_1_mk(s) { +function if_state_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72313,7 +77518,7 @@ function if_img_1_mk(s) { } } -function user_interface_base_ButtonBase__C3648_v0_1_mk(s) { +function microcode_ModifierEditor__C4543_v1_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72327,7 +77532,7 @@ function user_interface_base_ButtonBase__C3648_v0_1_mk(s) { } } -function if_right_1_mk(s) { +function if_load_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72338,10 +77543,11 @@ function if_right_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_bottom_1_mk(s) { +function if_popScene_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72355,7 +77561,7 @@ function if_bottom_1_mk(s) { } } -function if_pos_1_mk(s) { +function if_pushScene_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72366,10 +77572,11 @@ function if_pos_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_size_1_mk(s) { +function if_getCurrent_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72383,7 +77590,7 @@ function if_size_1_mk(s) { } } -function if_x_1_mk(s) { +function if_onClick_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72394,10 +77601,11 @@ function if_x_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_y_1_mk(s) { +function if_s_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72411,7 +77619,7 @@ function if_y_1_mk(s) { } } -function if_flipIcon_1_mk(s) { +function if_label_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72425,7 +77633,7 @@ function if_flipIcon_1_mk(s) { } } -function if_dynamicBoundaryColorsOn_1_mk(s) { +function if_b64_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72439,7 +77647,7 @@ function if_dynamicBoundaryColorsOn_1_mk(s) { } } -function if_dynamicBoundaryColorsOn_2_mk(s) { +function if_s_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72454,7 +77662,7 @@ function if_dynamicBoundaryColorsOn_2_mk(s) { } } -function if_boundaryColor_1_mk(s) { +function if_move_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72465,10 +77673,11 @@ function if_boundaryColor_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_state_1_mk(s) { +function if_tempo_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72482,7 +77691,7 @@ function if_state_1_mk(s) { } } -function user_interface_base_Button__C3665_v0_1_mk(s) { +function if_drawComponents_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72496,7 +77705,7 @@ function user_interface_base_Button__C3665_v0_1_mk(s) { } } -function if_initialCursor_3_mk(s) { +function if_setBtns_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72508,11 +77717,10 @@ function if_initialCursor_3_mk(s) { tmp_4: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } -function user_interface_base_CursorScene__C3826_v6_2_mk(s) { +function if_text_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72523,11 +77731,10 @@ function user_interface_base_CursorScene__C3826_v6_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_getCurrent_1_mk(s) { +function if_colour_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72541,7 +77748,7 @@ function if_getCurrent_1_mk(s) { } } -function if_onClick_2_mk(s) { +function if_alignment_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72552,11 +77759,10 @@ function if_onClick_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_move_2_mk(s) { +function if_isActive_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72567,11 +77773,10 @@ function if_move_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function user_interface_base_RowNavigator__C3780_v5_2_mk(s) { +function if_isHidden_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72582,11 +77787,10 @@ function user_interface_base_RowNavigator__C3780_v5_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_addRow_2_mk(s) { +function if_xScaling_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72597,11 +77801,10 @@ function if_addRow_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_save_3_mk(s) { +function if_yScaling_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72612,12 +77815,10 @@ function if_save_3_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } -function if_s_1_mk(s) { +function if_border_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72631,7 +77832,7 @@ function if_s_1_mk(s) { } } -function if_label_1_mk(s) { +function if_btns_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72645,7 +77846,7 @@ function if_label_1_mk(s) { } } -function if_b64_1_mk(s) { +function if_backBtn_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72659,7 +77860,7 @@ function if_b64_1_mk(s) { } } -function if_s_2_mk(s) { +function if_backBtn_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72674,7 +77875,7 @@ function if_s_2_mk(s) { } } -function microcode_RuleRowNavigator__C4578_v0_1_mk(s) { +function if_showBackground_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72688,7 +77889,7 @@ function microcode_RuleRowNavigator__C4578_v0_1_mk(s) { } } -function user_interface_base_RowNavigator__C3780_v2_2_mk(s) { +function if_app_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72699,11 +77900,10 @@ function user_interface_base_RowNavigator__C3780_v2_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_sensors_1_mk(s) { +function if_components_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72717,7 +77917,7 @@ function if_sensors_1_mk(s) { } } -function if_filters_1_mk(s) { +function if_initialCursor_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72728,10 +77928,12 @@ function if_filters_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } -function if_actuators_1_mk(s) { +function user_interface_base_CursorScene__C3799_v6_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72742,10 +77944,11 @@ function if_actuators_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_modifiers_1_mk(s) { +function music_Playable__C2953_v0_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72756,10 +77959,11 @@ function if_modifiers_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function user_interface_base_RowNavigator__C3780_v3_2_mk(s) { +function if_sensorFn_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72770,11 +77974,10 @@ function user_interface_base_RowNavigator__C3780_v3_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function microcode_FieldEditor__C5806_v2_5_mk(s) { +function if_tid_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72785,14 +77988,10 @@ function microcode_FieldEditor__C5806_v2_5_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, - arg3: undefined, - arg4: undefined, } } -function microcode_FieldEditor__C5806_v4_2_mk(s) { +function microgui_GUIComponentAbstract__C3930_v5_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72803,11 +78002,10 @@ function microcode_FieldEditor__C5806_v4_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_only_1_mk(s) { +function microgui_GUIComponentAbstract__C3930_v7_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72821,7 +78019,7 @@ function if_only_1_mk(s) { } } -function if_allow_1_mk(s) { +function microgui_GUIComponentAbstract__C3930_v6_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72835,7 +78033,7 @@ function if_allow_1_mk(s) { } } -function if_disallow_1_mk(s) { +function if_addRow_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72846,10 +78044,11 @@ function if_disallow_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_requires_1_mk(s) { +function user_interface_base_RowNavigator__C3753_v6_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72860,10 +78059,11 @@ function if_requires_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_provides_1_mk(s) { +function if_icon_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72874,10 +78074,11 @@ function if_provides_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function microcode_ModifierEditor__C4403_v1_1_mk(s) { +function if_notes_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72888,10 +78089,11 @@ function microcode_ModifierEditor__C4403_v1_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_load_2_mk(s) { +function if_num_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72906,7 +78108,7 @@ function if_load_2_mk(s) { } } -function user_interface_base_RowNavigator__C3780_v1_1_mk(s) { +function if_defaultTxt_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72920,7 +78122,7 @@ function user_interface_base_RowNavigator__C3780_v1_1_mk(s) { } } -function user_interface_base_Scene__C3686_v1_1_mk(s) { +function if_maxTxtLength_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72934,7 +78136,7 @@ function user_interface_base_Scene__C3686_v1_1_mk(s) { } } -function if_icon_2_mk(s) { +function if_cb_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72945,11 +78147,10 @@ function if_icon_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_notes_2_mk(s) { +function if_layout_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72960,11 +78161,10 @@ function if_notes_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_num_2_mk(s) { +function if_foregroundColor_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72975,11 +78175,10 @@ function if_num_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_app_1_mk(s) { +function if_backgroundColor_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -72993,7 +78192,7 @@ function if_app_1_mk(s) { } } -function if_init_1_mk(s) { +function if_txtColor_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73007,7 +78206,7 @@ function if_init_1_mk(s) { } } -function if_maxTxtLength_1_mk(s) { +function if_deleteFn_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73021,7 +78220,7 @@ function if_maxTxtLength_1_mk(s) { } } -function if_cb_1_mk(s) { +function microcode_FieldEditor__C5998_v3_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73032,10 +78231,11 @@ function if_cb_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_layout_1_mk(s) { +function user_interface_base_Scene__C3659_v1_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73049,7 +78249,7 @@ function if_layout_1_mk(s) { } } -function if_foregroundColor_1_mk(s) { +function if_nextBtnFn_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73060,10 +78260,11 @@ function if_foregroundColor_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_backgroundColor_1_mk(s) { +function if_passedDeleteFn_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73074,10 +78275,11 @@ function if_backgroundColor_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function microcode_FieldEditor__C5806_v3_2_mk(s) { +function if_btnTexts_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73088,11 +78290,10 @@ function microcode_FieldEditor__C5806_v3_2_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, } } -function if_clear_1_mk(s) { +function if_specialBtnBehaviours_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73106,7 +78307,7 @@ function if_clear_1_mk(s) { } } -function if_nextBtnFn_2_mk(s) { +function if_defaultBtnBehaviour_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73118,10 +78319,11 @@ function if_nextBtnFn_2_mk(s) { tmp_4: undefined, arg0: undefined, arg1: undefined, + arg2: undefined, } } -function if_specialBtnBehaviours_1_mk(s) { +function if_btnRow_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73135,7 +78337,7 @@ function if_specialBtnBehaviours_1_mk(s) { } } -function if_btnRow_1_mk(s) { +function if_btnCol_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73149,7 +78351,7 @@ function if_btnRow_1_mk(s) { } } -function if_btnCol_1_mk(s) { +function if_behaviour_3_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73160,10 +78362,12 @@ function if_btnCol_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, + arg2: undefined, } } -function if_btnTexts_1_mk(s) { +function if_passedBackBtn_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73174,10 +78378,11 @@ function if_btnTexts_1_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, + arg1: undefined, } } -function if_defaultBtnBehaviour_3_mk(s) { +function if_deletePriorCharacters_2_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73189,11 +78394,10 @@ function if_defaultBtnBehaviour_3_mk(s) { tmp_4: undefined, arg0: undefined, arg1: undefined, - arg2: undefined, } } -function if_behaviour_3_mk(s) { +function if_swapCase_1_mk(s) { checkStack(s.depth); return { parent: s, fn: null, depth: s.depth + 1, @@ -73204,11 +78408,23 @@ function if_behaviour_3_mk(s) { tmp_3: undefined, tmp_4: undefined, arg0: undefined, - arg1: undefined, - arg2: undefined, } } -const user_interface_base_Bounds__C3363_VT = mkVTable({ + +function if_clear_1_mk(s) { + checkStack(s.depth); + return { + parent: s, fn: null, depth: s.depth + 1, + pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null, + tmp_0: undefined, + tmp_1: undefined, + tmp_2: undefined, + tmp_3: undefined, + tmp_4: undefined, + arg0: undefined, +} } + +const user_interface_base_Bounds__C3336_VT = mkVTable({ name: "Bounds", numFields: 4, classNo: 16, @@ -73225,23 +78441,24 @@ const user_interface_base_Bounds__C3363_VT = mkVTable({ "set/left": null, "top": null, "set/top": null, - "right": user_interface_base_Bounds_right__P3368, - "set/right": user_interface_base_Bounds_right__P3369, - "bottom": user_interface_base_Bounds_bottom__P3370, - "set/bottom": user_interface_base_Bounds_bottom__P3371, - "clone": user_interface_base_Bounds_clone__P3377, - "copyFrom": user_interface_base_Bounds_copyFrom__P3378, - "GrowXY": user_interface_base_Bounds_GrowXY__P3381, - "grow": user_interface_base_Bounds_grow__P3382, - "growxy": user_interface_base_Bounds_growxy__P3383, - "Translate": user_interface_base_Bounds_Translate__P3384, - "translate": user_interface_base_Bounds_translate__P3385, - "add": user_interface_base_Bounds_add__P3388, - "toString": user_interface_base_Bounds_toString__P3393, + "right": user_interface_base_Bounds_right__P3341, + "set/right": user_interface_base_Bounds_right__P3342, + "bottom": user_interface_base_Bounds_bottom__P3343, + "set/bottom": user_interface_base_Bounds_bottom__P3344, + "clone": user_interface_base_Bounds_clone__P3350, + "copyFrom": user_interface_base_Bounds_copyFrom__P3351, + "GrowXY": user_interface_base_Bounds_GrowXY__P3354, + "grow": user_interface_base_Bounds_grow__P3355, + "growxy": user_interface_base_Bounds_growxy__P3356, + "Translate": user_interface_base_Bounds_Translate__P3357, + "translate": user_interface_base_Bounds_translate__P3358, + "add": user_interface_base_Bounds_add__P3361, + "fillRect": user_interface_base_Bounds_fillRect__P3365, + "toString": user_interface_base_Bounds_toString__P3366, }, - toStringMethod: user_interface_base_Bounds_toString__P3393, + toStringMethod: user_interface_base_Bounds_toString__P3366, }); -const user_interface_base_Vec2__C3411_VT = mkVTable({ +const user_interface_base_Vec2__C3384_VT = mkVTable({ name: "Vec2", numFields: 2, classNo: 17, @@ -73254,18 +78471,18 @@ const user_interface_base_Vec2__C3411_VT = mkVTable({ "set/x_": null, "y_": null, "set/y_": null, - "x": user_interface_base_Vec2_x__P3412, - "set/x": user_interface_base_Vec2_x__P3413, - "y": user_interface_base_Vec2_y__P3414, - "set/y": user_interface_base_Vec2_y__P3415, - "clone": user_interface_base_Vec2_clone__P3417, - "copyFrom": user_interface_base_Vec2_copyFrom__P3418, - "TranslateToRef": user_interface_base_Vec2_TranslateToRef__P3425, - "toString": user_interface_base_Vec2_toString__P3435, + "x": user_interface_base_Vec2_x__P3385, + "set/x": user_interface_base_Vec2_x__P3386, + "y": user_interface_base_Vec2_y__P3387, + "set/y": user_interface_base_Vec2_y__P3388, + "clone": user_interface_base_Vec2_clone__P3390, + "copyFrom": user_interface_base_Vec2_copyFrom__P3391, + "TranslateToRef": user_interface_base_Vec2_TranslateToRef__P3398, + "toString": user_interface_base_Vec2_toString__P3408, }, - toStringMethod: user_interface_base_Vec2_toString__P3435, + toStringMethod: user_interface_base_Vec2_toString__P3408, }); -const controller_Button__C3246_VT = mkVTable({ +const controller_Button__C3219_VT = mkVTable({ name: "Button", numFields: 8, classNo: 18, @@ -73290,16 +78507,16 @@ const controller_Button__C3246_VT = mkVTable({ "set/_repeatCount": null, "handlerState": null, "set/handlerState": null, - "toString": controller_Button_toString__P3251, - "raiseButtonUp": controller_Button_raiseButtonUp__P3253, - "raiseButtonDown": controller_Button_raiseButtonDown__P3254, - "raiseButtonRepeat": controller_Button_raiseButtonRepeat__P5071, - "setPressed": controller_Button_setPressed__P3260, - "__update": controller_Button___update__P3261, + "toString": controller_Button_toString__P3224, + "raiseButtonUp": controller_Button_raiseButtonUp__P3226, + "raiseButtonDown": controller_Button_raiseButtonDown__P3227, + "raiseButtonRepeat": controller_Button_raiseButtonRepeat__P5060, + "setPressed": controller_Button_setPressed__P3233, + "__update": controller_Button___update__P3234, }, - toStringMethod: controller_Button_toString__P3251, + toStringMethod: controller_Button_toString__P3224, }); -const user_interface_base_ButtonStyle__C3633_VT = mkVTable({ +const user_interface_base_ButtonStyle__C3606_VT = mkVTable({ name: "ButtonStyle", numFields: 3, classNo: 19, @@ -73316,7 +78533,7 @@ const user_interface_base_ButtonStyle__C3633_VT = mkVTable({ "set/shadow": null, }, }); -const user_interface_base_Borders__C3631_VT = mkVTable({ +const user_interface_base_Borders__C3604_VT = mkVTable({ name: "Borders", numFields: 4, classNo: 20, @@ -73335,28 +78552,52 @@ const user_interface_base_Borders__C3631_VT = mkVTable({ "set/right": null, }, }); -const microcode_App__C4291_VT = mkVTable({ - name: "App", - numFields: 1, +const microcode_MicrobitHost__C4736_VT = mkVTable({ + name: "MicrobitHost", + numFields: 2, classNo: 21, lastSubtypeNo: 21, maxBgInstances: null, methods: { }, + iface: { + "sensors": null, + "set/sensors": null, + "_handler": null, + "set/_handler": null, + "getSensorValue": microcode_MicrobitHost_getSensorValue__P4738, + "startSensors": microcode_MicrobitHost_startSensors__P6084, + "registerOnSensorEvent": microcode_MicrobitHost_registerOnSensorEvent__P4739, + "emitClearScreen": microcode_MicrobitHost_emitClearScreen__P4740, + "stopOngoingActions": microcode_MicrobitHost_stopOngoingActions__P4741, + "execute": microcode_MicrobitHost_execute__P4742, + "showIcon": microcode_MicrobitHost_showIcon__P6085, + "getSound": microcode_MicrobitHost_getSound__P6086, + }, +}); +const microcode_App__C4442_VT = mkVTable({ + name: "App", + numFields: 1, + classNo: 22, + lastSubtypeNo: 22, + maxBgInstances: null, + methods: { + }, iface: { "sceneManager": null, "set/sceneManager": null, - "save": microcode_App_save__P4293, - "load": microcode_App_load__P4294, - "pushScene": microcode_App_pushScene__P4295, - "popScene": microcode_App_popScene__P4296, + "save": microcode_App_save__P4444, + "load": microcode_App_load__P4445, + "pushScene": microcode_App_pushScene__P4446, + "popScene": microcode_App_popScene__P4447, + "runFromEditor": microcode_App_runFromEditor__P4448, }, }); -const microcode_BufferReader__C4485_VT = mkVTable({ +const microcode_BufferReader__C4627_VT = mkVTable({ name: "BufferReader", numFields: 2, - classNo: 22, - lastSubtypeNo: 22, + classNo: 23, + lastSubtypeNo: 23, maxBgInstances: null, methods: { }, @@ -73365,42 +78606,42 @@ const microcode_BufferReader__C4485_VT = mkVTable({ "set/buf": null, "ptr": null, "set/ptr": null, - "eof": microcode_BufferReader_eof__P4488, - "peekByte": microcode_BufferReader_peekByte__P4489, - "readByte": microcode_BufferReader_readByte__P4490, - "readBuffer": microcode_BufferReader_readBuffer__P4491, - "readString": microcode_BufferReader_readString__P4492, + "eof": microcode_BufferReader_eof__P4630, + "peekByte": microcode_BufferReader_peekByte__P4631, + "readByte": microcode_BufferReader_readByte__P4632, + "readBuffer": microcode_BufferReader_readBuffer__P4633, + "readString": microcode_BufferReader_readString__P4634, }, }); -const user_interface_base_SceneManager__C3701_VT = mkVTable({ +const user_interface_base_SceneManager__C3674_VT = mkVTable({ name: "SceneManager", numFields: 1, - classNo: 23, - lastSubtypeNo: 23, + classNo: 24, + lastSubtypeNo: 24, maxBgInstances: null, methods: { }, iface: { "scenes": null, "set/scenes": null, - "pushScene": user_interface_base_SceneManager_pushScene__P3704, - "popScene": user_interface_base_SceneManager_popScene__P3705, - "currScene": user_interface_base_SceneManager_currScene__P5269, + "pushScene": user_interface_base_SceneManager_pushScene__P3677, + "popScene": user_interface_base_SceneManager_popScene__P3678, + "currScene": user_interface_base_SceneManager_currScene__P5258, }, }); -const user_interface_base_Scene__C3686_VT = mkVTable({ +const user_interface_base_Scene__C3659_VT = mkVTable({ name: "Scene", numFields: 5, - classNo: 24, - lastSubtypeNo: 29, + classNo: 25, + lastSubtypeNo: 34, maxBgInstances: null, methods: { - "startup": user_interface_base_Scene_startup__P3691, - "shutdown": user_interface_base_Scene_shutdown__P3692, - "activate": user_interface_base_Scene_activate__P3693, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "update": user_interface_base_Scene_update__P3695, - "draw": user_interface_base_Scene_draw__P3696, + "startup": user_interface_base_Scene_startup__P3664, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "activate": user_interface_base_Scene_activate__P3666, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_Scene_update__P3668, + "draw": user_interface_base_Scene_draw__P3669, }, iface: { "xfrm_": null, @@ -73413,35 +78654,34 @@ const user_interface_base_Scene__C3686_VT = mkVTable({ "set/app": null, "name": null, "set/name": null, - "xfrm": user_interface_base_Scene_xfrm__P3687, - "backgroundColor": user_interface_base_Scene_backgroundColor__P3688, - "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3689, - "startup": user_interface_base_Scene_startup__P3691, - "shutdown": user_interface_base_Scene_shutdown__P3692, - "activate": user_interface_base_Scene_activate__P3693, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "update": user_interface_base_Scene_update__P3695, - "draw": user_interface_base_Scene_draw__P3696, - "backgroundCaptured": user_interface_base_Scene_backgroundCaptured__P3697, - "captureBackground": user_interface_base_Scene_captureBackground__P3698, - "releaseBackground": user_interface_base_Scene_releaseBackground__P3699, - "__init": user_interface_base_Scene___init__P3700, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "startup": user_interface_base_Scene_startup__P3664, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "activate": user_interface_base_Scene_activate__P3666, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_Scene_update__P3668, + "draw": user_interface_base_Scene_draw__P3669, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, }, }); -const user_interface_base_CursorScene__C3826_VT = mkVTable({ +const user_interface_base_CursorScene__C3799_VT = mkVTable({ name: "CursorScene", numFields: 8, - classNo: 25, - lastSubtypeNo: 28, + classNo: 26, + lastSubtypeNo: 29, maxBgInstances: null, methods: { - "startup": user_interface_base_CursorScene_startup__P3832, - "shutdown": user_interface_base_CursorScene_shutdown__P3834, - "activate": user_interface_base_CursorScene_activate__P3835, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "update": user_interface_base_CursorScene_update__P3836, - "draw": user_interface_base_CursorScene_draw__P3837, - "moveCursor": user_interface_base_CursorScene_moveCursor__P3831, + "startup": user_interface_base_CursorScene_startup__P3805, + "shutdown": user_interface_base_CursorScene_shutdown__P3807, + "activate": user_interface_base_CursorScene_activate__P3808, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_CursorScene_update__P3809, + "draw": user_interface_base_CursorScene_draw__P3810, + "moveCursor": user_interface_base_CursorScene_moveCursor__P3804, }, iface: { "xfrm_": null, @@ -73460,38 +78700,37 @@ const user_interface_base_CursorScene__C3826_VT = mkVTable({ "set/cursor": null, "picker": null, "set/picker": null, - "moveCursor": user_interface_base_CursorScene_moveCursor__P3831, - "moveTo": user_interface_base_CursorScene_moveTo__P5298, - "startup": user_interface_base_CursorScene_startup__P3832, - "back": user_interface_base_CursorScene_back__P3833, - "shutdown": user_interface_base_CursorScene_shutdown__P3834, - "activate": user_interface_base_CursorScene_activate__P3835, - "update": user_interface_base_CursorScene_update__P3836, - "draw": user_interface_base_CursorScene_draw__P3837, - "xfrm": user_interface_base_Scene_xfrm__P3687, - "backgroundColor": user_interface_base_Scene_backgroundColor__P3688, - "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3689, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "backgroundCaptured": user_interface_base_Scene_backgroundCaptured__P3697, - "captureBackground": user_interface_base_Scene_captureBackground__P3698, - "releaseBackground": user_interface_base_Scene_releaseBackground__P3699, - "__init": user_interface_base_Scene___init__P3700, + "moveCursor": user_interface_base_CursorScene_moveCursor__P3804, + "moveTo": user_interface_base_CursorScene_moveTo__P5287, + "startup": user_interface_base_CursorScene_startup__P3805, + "back": user_interface_base_CursorScene_back__P3806, + "shutdown": user_interface_base_CursorScene_shutdown__P3807, + "activate": user_interface_base_CursorScene_activate__P3808, + "update": user_interface_base_CursorScene_update__P3809, + "draw": user_interface_base_CursorScene_draw__P3810, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, }, }); -const microcode_Home__C4359_VT = mkVTable({ +const microcode_Home__C4514_VT = mkVTable({ name: "Home", numFields: 9, - classNo: 26, - lastSubtypeNo: 26, + classNo: 27, + lastSubtypeNo: 27, maxBgInstances: null, methods: { - "startup": microcode_Home_startup__P4361, - "shutdown": user_interface_base_CursorScene_shutdown__P3834, - "activate": microcode_Home_activate__P4362, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "update": user_interface_base_CursorScene_update__P3836, - "draw": microcode_Home_draw__P4363, - "moveCursor": user_interface_base_CursorScene_moveCursor__P3831, + "startup": microcode_Home_startup__P4516, + "shutdown": user_interface_base_CursorScene_shutdown__P3807, + "activate": microcode_Home_activate__P4517, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_CursorScene_update__P3809, + "draw": microcode_Home_draw__P4518, + "moveCursor": user_interface_base_CursorScene_moveCursor__P3804, }, iface: { "xfrm_": null, @@ -73512,31 +78751,30 @@ const microcode_Home__C4359_VT = mkVTable({ "set/picker": null, "yOffset": null, "set/yOffset": null, - "startup": microcode_Home_startup__P4361, - "pickDiskSLot": microcode_Home_pickDiskSLot__P5802, - "activate": microcode_Home_activate__P4362, - "drawVersion": microcode_Home_drawVersion__P5803, - "draw": microcode_Home_draw__P4363, - "moveCursor": user_interface_base_CursorScene_moveCursor__P3831, - "moveTo": user_interface_base_CursorScene_moveTo__P5298, - "back": user_interface_base_CursorScene_back__P3833, - "shutdown": user_interface_base_CursorScene_shutdown__P3834, - "update": user_interface_base_CursorScene_update__P3836, - "xfrm": user_interface_base_Scene_xfrm__P3687, - "backgroundColor": user_interface_base_Scene_backgroundColor__P3688, - "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3689, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "backgroundCaptured": user_interface_base_Scene_backgroundCaptured__P3697, - "captureBackground": user_interface_base_Scene_captureBackground__P3698, - "releaseBackground": user_interface_base_Scene_releaseBackground__P3699, - "__init": user_interface_base_Scene___init__P3700, + "startup": microcode_Home_startup__P4516, + "pickDiskSLot": microcode_Home_pickDiskSLot__P5996, + "activate": microcode_Home_activate__P4517, + "drawVersion": microcode_Home_drawVersion__P5997, + "draw": microcode_Home_draw__P4518, + "moveCursor": user_interface_base_CursorScene_moveCursor__P3804, + "moveTo": user_interface_base_CursorScene_moveTo__P5287, + "back": user_interface_base_CursorScene_back__P3806, + "shutdown": user_interface_base_CursorScene_shutdown__P3807, + "update": user_interface_base_CursorScene_update__P3809, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, }, }); -const context_EventContext__C3278_VT = mkVTable({ +const context_EventContext__C3251_VT = mkVTable({ name: "EventContext", numFields: 10, - classNo: 30, - lastSubtypeNo: 30, + classNo: 35, + lastSubtypeNo: 35, maxBgInstances: null, methods: { }, @@ -73561,20 +78799,20 @@ const context_EventContext__C3278_VT = mkVTable({ "set/idleCallbacks": null, "runningCallbacks": null, "set/runningCallbacks": null, - "deltaTime": context_EventContext_deltaTime__P3283, - "runCallbacks": context_EventContext_runCallbacks__P5086, - "registerFrameCallbacks": context_EventContext_registerFrameCallbacks__P5087, - "register": context_EventContext_register__P3284, - "unregister": context_EventContext_unregister__P3285, - "registerFrameHandler": context_EventContext_registerFrameHandler__P3286, - "registerHandler": context_EventContext_registerHandler__P3288, + "deltaTime": context_EventContext_deltaTime__P3256, + "runCallbacks": context_EventContext_runCallbacks__P5075, + "registerFrameCallbacks": context_EventContext_registerFrameCallbacks__P5076, + "register": context_EventContext_register__P3257, + "unregister": context_EventContext_unregister__P3258, + "registerFrameHandler": context_EventContext_registerFrameHandler__P3259, + "registerHandler": context_EventContext_registerHandler__P3261, }, }); -const context_FrameCallback__C3275_VT = mkVTable({ +const context_FrameCallback__C3248_VT = mkVTable({ name: "FrameCallback", numFields: 2, - classNo: 31, - lastSubtypeNo: 31, + classNo: 36, + lastSubtypeNo: 36, maxBgInstances: null, methods: { }, @@ -73585,11 +78823,11 @@ const context_FrameCallback__C3275_VT = mkVTable({ "set/handler": null, }, }); -const control_PollEvent__C4927_VT = mkVTable({ +const control_PollEvent__C4939_VT = mkVTable({ name: "PollEvent", numFields: 6, - classNo: 32, - lastSubtypeNo: 32, + classNo: 37, + lastSubtypeNo: 37, maxBgInstances: null, methods: { }, @@ -73608,11 +78846,11 @@ const control_PollEvent__C4927_VT = mkVTable({ "set/once": null, }, }); -const context_EventHandler__C5081_VT = mkVTable({ +const context_EventHandler__C5070_VT = mkVTable({ name: "EventHandler", numFields: 4, - classNo: 33, - lastSubtypeNo: 33, + classNo: 38, + lastSubtypeNo: 38, maxBgInstances: null, methods: { }, @@ -73625,15 +78863,15 @@ const context_EventHandler__C5081_VT = mkVTable({ "set/handler": null, "flags": null, "set/flags": null, - "register": context_EventHandler_register__P5082, - "unregister": context_EventHandler_unregister__P5083, + "register": context_EventHandler_register__P5071, + "unregister": context_EventHandler_unregister__P5072, }, }); -const user_interface_base_Affine__C3351_VT = mkVTable({ +const user_interface_base_Affine__C3324_VT = mkVTable({ name: "Affine", numFields: 2, - classNo: 34, - lastSubtypeNo: 34, + classNo: 39, + lastSubtypeNo: 39, maxBgInstances: null, methods: { }, @@ -73642,20 +78880,20 @@ const user_interface_base_Affine__C3351_VT = mkVTable({ "set/localPos_": null, "parent_": null, "set/parent_": null, - "worldPos": user_interface_base_Affine_worldPos__P3352, - "localPos": user_interface_base_Affine_localPos__P3353, - "set/localPos": user_interface_base_Affine_localPos__P3354, - "parent": user_interface_base_Affine_parent__P3355, - "set/parent": user_interface_base_Affine_parent__P3356, - "root": user_interface_base_Affine_root__P3357, - "computeWorldPos": user_interface_base_Affine_computeWorldPos__P5162, + "worldPos": user_interface_base_Affine_worldPos__P3325, + "localPos": user_interface_base_Affine_localPos__P3326, + "set/localPos": user_interface_base_Affine_localPos__P3327, + "parent": user_interface_base_Affine_parent__P3328, + "set/parent": user_interface_base_Affine_parent__P3329, + "root": user_interface_base_Affine_root__P3330, + "computeWorldPos": user_interface_base_Affine_computeWorldPos__P5151, }, }); -const microcode_Interpreter__C4605_VT = mkVTable({ +const microcode_Interpreter__C4754_VT = mkVTable({ name: "Interpreter", - numFields: 10, - classNo: 35, - lastSubtypeNo: 35, + numFields: 12, + classNo: 40, + lastSubtypeNo: 40, maxBgInstances: null, methods: { }, @@ -73668,88 +78906,44 @@ const microcode_Interpreter__C4605_VT = mkVTable({ "set/currentPage": null, "ruleClosures": null, "set/ruleClosures": null, - "sensors": null, - "set/sensors": null, "state": null, "set/state": null, "newState": null, "set/newState": null, + "sensors": null, + "set/sensors": null, "program": null, "set/program": null, "host": null, "set/host": null, + "eventQueueActive": null, + "set/eventQueueActive": null, "eventQueue": null, "set/eventQueue": null, - "stopAllRules": microcode_Interpreter_stopAllRules__P5913, - "switchPage": microcode_Interpreter_switchPage__P5914, - "runAction": microcode_Interpreter_runAction__P4609, - "updateState": microcode_Interpreter_updateState__P5915, - "processNewState": microcode_Interpreter_processNewState__P4610, - "processNewRules": microcode_Interpreter_processNewRules__P5916, - "addEvent": microcode_Interpreter_addEvent__P4611, - "setupEventQueue": microcode_Interpreter_setupEventQueue__P5917, - "onSensorEvent": microcode_Interpreter_onSensorEvent__P4612, - "getSensorValue": microcode_Interpreter_getSensorValue__P5918, - "startSensors": microcode_Interpreter_startSensors__P5919, - "stop": microcode_Interpreter_stop__P4613, - "error": microcode_Interpreter_error__P4614, - "getExprValue": microcode_Interpreter_getExprValue__P5920, - "constantFold": microcode_Interpreter_constantFold__P4615, - "getValue": microcode_Interpreter_getValue__P4616, + "startSensorsActive": null, + "set/startSensorsActive": null, + "stopAllRules": microcode_Interpreter_stopAllRules__P6140, + "switchPage": microcode_Interpreter_switchPage__P6141, + "runAction": microcode_Interpreter_runAction__P4760, + "updateState": microcode_Interpreter_updateState__P6142, + "processNewState": microcode_Interpreter_processNewState__P4761, + "processNewRules": microcode_Interpreter_processNewRules__P6143, + "addEvent": microcode_Interpreter_addEvent__P4762, + "setupEventQueue": microcode_Interpreter_setupEventQueue__P6144, + "onSensorEvent": microcode_Interpreter_onSensorEvent__P4763, + "getSensorValue": microcode_Interpreter_getSensorValue__P6145, + "startSensors": microcode_Interpreter_startSensors__P6146, + "stop": microcode_Interpreter_stop__P4764, + "error": microcode_Interpreter_error__P4765, + "getExprValue": microcode_Interpreter_getExprValue__P6147, + "getValue": microcode_Interpreter_getValue__P4766, }, }); -const microcode_MicrobitHost__C4592_VT = mkVTable({ - name: "MicrobitHost", - numFields: 1, - classNo: 36, - lastSubtypeNo: 36, - maxBgInstances: null, - methods: { - }, - iface: { - "_handler": null, - "set/_handler": null, - "registerOnSensorEvent": microcode_MicrobitHost_registerOnSensorEvent__P4594, - "emitClearScreen": microcode_MicrobitHost_emitClearScreen__P4595, - "execute": microcode_MicrobitHost_execute__P4596, - "showIcon": microcode_MicrobitHost_showIcon__P5869, - "getSound": microcode_MicrobitHost_getSound__P5870, - }, -}); -const Sensor__C4617_VT = mkVTable({ - name: "Sensor", - numFields: 7, - classNo: 37, - lastSubtypeNo: 37, - maxBgInstances: null, - methods: { - }, - iface: { - "name": null, - "set/name": null, - "radioName": null, - "set/radioName": null, - "minimum": null, - "set/minimum": null, - "maximum": null, - "set/maximum": null, - "range": null, - "set/range": null, - "sensorFn": null, - "set/sensorFn": null, - "isJacdacSensor": null, - "set/isJacdacSensor": null, - "getFromName": Sensor_getFromName__P4619, - "getName": Sensor_getName__P4620, - "getReading": Sensor_getReading__P4622, - "getNormalisedReading": Sensor_getNormalisedReading__P4623, - }, -}); -const microcode_RuleClosure__C5877_VT = mkVTable({ +const microcode_RuleClosure__C6095_VT = mkVTable({ name: "RuleClosure", numFields: 9, - classNo: 38, - lastSubtypeNo: 38, + classNo: 41, + lastSubtypeNo: 41, maxBgInstances: null, methods: { }, @@ -73772,28 +78966,32 @@ const microcode_RuleClosure__C5877_VT = mkVTable({ "set/rule": null, "interp": null, "set/interp": null, - "active": microcode_RuleClosure_active__P5878, - "start": microcode_RuleClosure_start__P5879, - "kill": microcode_RuleClosure_kill__P5880, - "matchWhen": microcode_RuleClosure_matchWhen__P5881, - "filterViaCompare": microcode_RuleClosure_filterViaCompare__P5882, - "lookupEventCode": microcode_RuleClosure_lookupEventCode__P5883, - "timerOrSequenceRule": microcode_RuleClosure_timerOrSequenceRule__P5884, - "checkForLoopFinish": microcode_RuleClosure_checkForLoopFinish__P5885, - "releaseTimer": microcode_RuleClosure_releaseTimer__P5886, - "getOutputResource": microcode_RuleClosure_getOutputResource__P5887, - "getActionKind": microcode_RuleClosure_getActionKind__P5888, - "getParamInstant": microcode_RuleClosure_getParamInstant__P5889, - "runInstant": microcode_RuleClosure_runInstant__P5890, - "runAction": microcode_RuleClosure_runAction__P5891, - "getWakeTime": microcode_RuleClosure_getWakeTime__P5892, + "active": microcode_RuleClosure_active__P6096, + "start": microcode_RuleClosure_start__P6097, + "reset": microcode_RuleClosure_reset__P6098, + "kill": microcode_RuleClosure_kill__P6099, + "matchWhen": microcode_RuleClosure_matchWhen__P6100, + "lookupEventCode": microcode_RuleClosure_lookupEventCode__P6101, + "filterViaCompare": microcode_RuleClosure_filterViaCompare__P6102, + "ok": microcode_RuleClosure_ok__P6103, + "timerOrSequenceRule": microcode_RuleClosure_timerOrSequenceRule__P6104, + "atLoop": microcode_RuleClosure_atLoop__P6105, + "checkForLoopFinish": microcode_RuleClosure_checkForLoopFinish__P6106, + "releaseTimer": microcode_RuleClosure_releaseTimer__P6107, + "getOutputResource": microcode_RuleClosure_getOutputResource__P6108, + "getActionKind": microcode_RuleClosure_getActionKind__P6109, + "getParamInstant": microcode_RuleClosure_getParamInstant__P6110, + "runInstant": microcode_RuleClosure_runInstant__P6111, + "runAction": microcode_RuleClosure_runAction__P6112, + "waitingOnTimer": microcode_RuleClosure_waitingOnTimer__P6113, + "getWakeTime": microcode_RuleClosure_getWakeTime__P6114, }, }); -const microcode_RuleDefn__C4043_VT = mkVTable({ +const microcode_RuleDefn__C4196_VT = mkVTable({ name: "RuleDefn", numFields: 4, - classNo: 39, - lastSubtypeNo: 39, + classNo: 42, + lastSubtypeNo: 42, maxBgInstances: null, methods: { }, @@ -73806,31 +79004,66 @@ const microcode_RuleDefn__C4043_VT = mkVTable({ "set/actuators": null, "modifiers": null, "set/modifiers": null, - "sensor": microcode_RuleDefn_sensor__P4049, - "getRuleRep": microcode_RuleDefn_getRuleRep__P4050, - "isEmpty": microcode_RuleDefn_isEmpty__P4051, - "supportsMath": microcode_RuleDefn_supportsMath__P5710, - "fixupMath": microcode_RuleDefn_fixupMath__P5711, - "fixup": microcode_RuleDefn_fixup__P4052, - "push": microcode_RuleDefn_push__P4053, - "deleteAt": microcode_RuleDefn_deleteAt__P4054, - "getSuggestions": microcode_RuleDefn_getSuggestions__P5712, - "deleteIncompatibleTiles": microcode_RuleDefn_deleteIncompatibleTiles__P5713, - "updateAt": microcode_RuleDefn_updateAt__P4055, - "toBuffer": microcode_RuleDefn_toBuffer__P4056, - "fromBuffer": microcode_RuleDefn_fromBuffer__P4057, + "sensor": microcode_RuleDefn_sensor__P4202, + "getRuleRep": microcode_RuleDefn_getRuleRep__P4203, + "isEmpty": microcode_RuleDefn_isEmpty__P4204, + "supportsMath": microcode_RuleDefn_supportsMath__P5899, + "fixupMath": microcode_RuleDefn_fixupMath__P5900, + "fixup": microcode_RuleDefn_fixup__P4205, + "push": microcode_RuleDefn_push__P4206, + "deleteAt": microcode_RuleDefn_deleteAt__P4207, + "getSuggestions": microcode_RuleDefn_getSuggestions__P5901, + "deleteIncompatibleTiles": microcode_RuleDefn_deleteIncompatibleTiles__P5902, + "updateAt": microcode_RuleDefn_updateAt__P4208, + "toBuffer": microcode_RuleDefn_toBuffer__P4209, + "fromBuffer": microcode_RuleDefn_fromBuffer__P4210, + }, +}); +const parser_Parser__C4779_VT = mkVTable({ + name: "Parser", + numFields: 2, + classNo: 43, + lastSubtypeNo: 43, + maxBgInstances: null, + methods: { + }, + iface: { + "index": null, + "set/index": null, + "tokens": null, + "set/tokens": null, + "next": parser_Parser_next__P6212, + "peek": parser_Parser_peek__P6213, + "prefixParser": parser_Parser_prefixParser__P6214, + "infixParser": parser_Parser_infixParser__P6215, + "postfixParser": parser_Parser_postfixParser__P6216, + "precOf": parser_Parser_precOf__P4781, + "parse": parser_Parser_parse__P4782, }, }); -const microcode_ModifierEditor__C4403_VT = mkVTable({ +const parser_Error__C6148_VT = mkVTable({ + name: "Error", + numFields: 1, + classNo: 44, + lastSubtypeNo: 44, + maxBgInstances: null, + methods: { + }, + iface: { + "msg": null, + "set/msg": null, + }, +}); +const microcode_ModifierEditor__C4543_VT = mkVTable({ name: "ModifierEditor", numFields: 3, - classNo: 40, - lastSubtypeNo: 43, + classNo: 45, + lastSubtypeNo: 48, maxBgInstances: null, methods: { - "getField": microcode_ModifierEditor_getField__P4407, - "getIcon": microcode_ModifierEditor_getIcon__P4408, - "getNewInstance": microcode_ModifierEditor_getNewInstance__P4409, + "getField": microcode_ModifierEditor_getField__P4547, + "getIcon": microcode_ModifierEditor_getIcon__P4548, + "getNewInstance": microcode_ModifierEditor_getNewInstance__P4549, }, iface: { "tid": null, @@ -73839,21 +79072,21 @@ const microcode_ModifierEditor__C4403_VT = mkVTable({ "set/fieldEditor": null, "firstInstance": null, "set/firstInstance": null, - "getField": microcode_ModifierEditor_getField__P4407, - "getIcon": microcode_ModifierEditor_getIcon__P4408, - "getNewInstance": microcode_ModifierEditor_getNewInstance__P4409, + "getField": microcode_ModifierEditor_getField__P4547, + "getIcon": microcode_ModifierEditor_getIcon__P4548, + "getNewInstance": microcode_ModifierEditor_getNewInstance__P4549, }, }); -const microcode_DecimalEditor__C4417_VT = mkVTable({ - name: "DecimalEditor", - numFields: 4, - classNo: 41, - lastSubtypeNo: 41, +const microcode_DigitEditor__C4559_VT = mkVTable({ + name: "DigitEditor", + numFields: 5, + classNo: 46, + lastSubtypeNo: 46, maxBgInstances: null, methods: { - "getField": microcode_DecimalEditor_getField__P4420, - "getIcon": microcode_DecimalEditor_getIcon__P4421, - "getNewInstance": microcode_DecimalEditor_getNewInstance__P4422, + "getField": microcode_DigitEditor_getField__P4561, + "getIcon": microcode_DigitEditor_getIcon__P4562, + "getNewInstance": microcode_DigitEditor_getNewInstance__P4563, }, iface: { "tid": null, @@ -73864,21 +79097,23 @@ const microcode_DecimalEditor__C4417_VT = mkVTable({ "set/firstInstance": null, "field": null, "set/field": null, - "getField": microcode_DecimalEditor_getField__P4420, - "getIcon": microcode_DecimalEditor_getIcon__P4421, - "getNewInstance": microcode_DecimalEditor_getNewInstance__P4422, + "posInt": null, + "set/posInt": null, + "getField": microcode_DigitEditor_getField__P4561, + "getIcon": microcode_DigitEditor_getIcon__P4562, + "getNewInstance": microcode_DigitEditor_getNewInstance__P4563, }, }); -const microcode_MelodyEditor__C4449_VT = mkVTable({ +const microcode_MelodyEditor__C4591_VT = mkVTable({ name: "MelodyEditor", numFields: 4, - classNo: 42, - lastSubtypeNo: 42, + classNo: 47, + lastSubtypeNo: 47, maxBgInstances: null, methods: { - "getField": microcode_MelodyEditor_getField__P4452, - "getIcon": microcode_MelodyEditor_getIcon__P4453, - "getNewInstance": microcode_MelodyEditor_getNewInstance__P4454, + "getField": microcode_MelodyEditor_getField__P4594, + "getIcon": microcode_MelodyEditor_getIcon__P4595, + "getNewInstance": microcode_MelodyEditor_getNewInstance__P4596, }, iface: { "tid": null, @@ -73889,57 +79124,22 @@ const microcode_MelodyEditor__C4449_VT = mkVTable({ "set/firstInstance": null, "field": null, "set/field": null, - "getField": microcode_MelodyEditor_getField__P4452, - "getIcon": microcode_MelodyEditor_getIcon__P4453, - "getNewInstance": microcode_MelodyEditor_getNewInstance__P4454, - "getNoteSequence": microcode_MelodyEditor_getNoteSequence__P4455, - }, -}); -const parser_Parser__C4628_VT = mkVTable({ - name: "Parser", - numFields: 2, - classNo: 44, - lastSubtypeNo: 44, - maxBgInstances: null, - methods: { - }, - iface: { - "index": null, - "set/index": null, - "tokens": null, - "set/tokens": null, - "next": parser_Parser_next__P5985, - "peek": parser_Parser_peek__P5986, - "prefixParser": parser_Parser_prefixParser__P5987, - "infixParser": parser_Parser_infixParser__P5988, - "postfixParser": parser_Parser_postfixParser__P5989, - "precOf": parser_Parser_precOf__P4630, - "parse": parser_Parser_parse__P4631, - }, -}); -const parser_Error__C5921_VT = mkVTable({ - name: "Error", - numFields: 1, - classNo: 45, - lastSubtypeNo: 45, - maxBgInstances: null, - methods: { - }, - iface: { - "msg": null, - "set/msg": null, + "getField": microcode_MelodyEditor_getField__P4594, + "getIcon": microcode_MelodyEditor_getIcon__P4595, + "getNewInstance": microcode_MelodyEditor_getNewInstance__P4596, + "getNoteSequence": microcode_MelodyEditor_getNoteSequence__P4597, }, }); -const microcode_IconEditor__C4430_VT = mkVTable({ +const microcode_IconEditor__C4572_VT = mkVTable({ name: "IconEditor", numFields: 4, - classNo: 43, - lastSubtypeNo: 43, + classNo: 48, + lastSubtypeNo: 48, maxBgInstances: null, methods: { - "getField": microcode_IconEditor_getField__P4433, - "getIcon": microcode_IconEditor_getIcon__P4434, - "getNewInstance": microcode_IconEditor_getNewInstance__P4435, + "getField": microcode_IconEditor_getField__P4575, + "getIcon": microcode_IconEditor_getIcon__P4576, + "getNewInstance": microcode_IconEditor_getNewInstance__P4577, }, iface: { "tid": null, @@ -73950,393 +79150,230 @@ const microcode_IconEditor__C4430_VT = mkVTable({ "set/firstInstance": null, "field": null, "set/field": null, - "getField": microcode_IconEditor_getField__P4433, - "getIcon": microcode_IconEditor_getIcon__P4434, - "getNewInstance": microcode_IconEditor_getNewInstance__P4435, + "getField": microcode_IconEditor_getField__P4575, + "getIcon": microcode_IconEditor_getIcon__P4576, + "getNewInstance": microcode_IconEditor_getNewInstance__P4577, }, }); -const microcode_FieldEditor__C5806_VT = mkVTable({ +const microcode_FieldEditor__C5998_VT = mkVTable({ name: "FieldEditor", numFields: 0, - classNo: 46, - lastSubtypeNo: 49, - maxBgInstances: null, - methods: { - "init": microcode_FieldEditor_init__P5807, - "clone": microcode_FieldEditor_clone__P5808, - "editor": microcode_FieldEditor_editor__P5809, - "toImage": microcode_FieldEditor_toImage__P5810, - "toBuffer": microcode_FieldEditor_toBuffer__P5811, - "fromBuffer": microcode_FieldEditor_fromBuffer__P5812, - }, - iface: { - "init": microcode_FieldEditor_init__P5807, - "clone": microcode_FieldEditor_clone__P5808, - "editor": microcode_FieldEditor_editor__P5809, - "toImage": microcode_FieldEditor_toImage__P5810, - "toBuffer": microcode_FieldEditor_toBuffer__P5811, - "fromBuffer": microcode_FieldEditor_fromBuffer__P5812, - }, -}); -const microcode_DecimalFieldEditor__C4410_VT = mkVTable({ - name: "DecimalFieldEditor", - numFields: 0, - classNo: 47, - lastSubtypeNo: 47, - maxBgInstances: null, - methods: { - "init": microcode_DecimalFieldEditor_init__P4411, - "clone": microcode_DecimalFieldEditor_clone__P4412, - "editor": microcode_DecimalFieldEditor_editor__P4413, - "toImage": microcode_DecimalFieldEditor_toImage__P4414, - "toBuffer": microcode_DecimalFieldEditor_toBuffer__P4415, - "fromBuffer": microcode_DecimalFieldEditor_fromBuffer__P4416, - }, - iface: { - "init": microcode_DecimalFieldEditor_init__P4411, - "clone": microcode_DecimalFieldEditor_clone__P4412, - "editor": microcode_DecimalFieldEditor_editor__P4413, - "toImage": microcode_DecimalFieldEditor_toImage__P4414, - "toBuffer": microcode_DecimalFieldEditor_toBuffer__P4415, - "fromBuffer": microcode_DecimalFieldEditor_fromBuffer__P4416, - }, -}); -const microcode_MelodyFieldEditor__C4442_VT = mkVTable({ - name: "MelodyFieldEditor", - numFields: 0, - classNo: 48, - lastSubtypeNo: 48, - maxBgInstances: null, - methods: { - "init": microcode_MelodyFieldEditor_init__P4443, - "clone": microcode_MelodyFieldEditor_clone__P4444, - "editor": microcode_MelodyFieldEditor_editor__P4445, - "toImage": microcode_MelodyFieldEditor_toImage__P4446, - "toBuffer": microcode_MelodyFieldEditor_toBuffer__P4447, - "fromBuffer": microcode_MelodyFieldEditor_fromBuffer__P4448, - }, - iface: { - "init": microcode_MelodyFieldEditor_init__P4443, - "clone": microcode_MelodyFieldEditor_clone__P4444, - "editor": microcode_MelodyFieldEditor_editor__P4445, - "toImage": microcode_MelodyFieldEditor_toImage__P4446, - "toBuffer": microcode_MelodyFieldEditor_toBuffer__P4447, - "fromBuffer": microcode_MelodyFieldEditor_fromBuffer__P4448, - }, -}); -const microcode_IconFieldEditor__C4423_VT = mkVTable({ - name: "IconFieldEditor", - numFields: 0, classNo: 49, - lastSubtypeNo: 49, + lastSubtypeNo: 52, maxBgInstances: null, methods: { - "init": microcode_IconFieldEditor_init__P4424, - "clone": microcode_IconFieldEditor_clone__P4425, - "editor": microcode_IconFieldEditor_editor__P4426, - "toImage": microcode_IconFieldEditor_toImage__P4427, - "toBuffer": microcode_IconFieldEditor_toBuffer__P4428, - "fromBuffer": microcode_IconFieldEditor_fromBuffer__P4429, + "init": microcode_FieldEditor_init__P5999, + "clone": microcode_FieldEditor_clone__P6000, + "editor": microcode_FieldEditor_editor__P6001, + "toImage": microcode_FieldEditor_toImage__P6002, + "toBuffer": microcode_FieldEditor_toBuffer__P6003, + "fromBuffer": microcode_FieldEditor_fromBuffer__P6004, }, iface: { - "init": microcode_IconFieldEditor_init__P4424, - "clone": microcode_IconFieldEditor_clone__P4425, - "editor": microcode_IconFieldEditor_editor__P4426, - "toImage": microcode_IconFieldEditor_toImage__P4427, - "toBuffer": microcode_IconFieldEditor_toBuffer__P4428, - "fromBuffer": microcode_IconFieldEditor_fromBuffer__P4429, + "init": microcode_FieldEditor_init__P5999, + "clone": microcode_FieldEditor_clone__P6000, + "editor": microcode_FieldEditor_editor__P6001, + "toImage": microcode_FieldEditor_toImage__P6002, + "toBuffer": microcode_FieldEditor_toBuffer__P6003, + "fromBuffer": microcode_FieldEditor_fromBuffer__P6004, }, }); -const microcode_Error__C5871_VT = mkVTable({ - name: "Error", +const microcode_DigitWidgetEditor__C4551_VT = mkVTable({ + name: "DigitWidgetEditor", numFields: 1, classNo: 50, lastSubtypeNo: 50, maxBgInstances: null, methods: { + "init": microcode_DigitWidgetEditor_init__P4553, + "clone": microcode_DigitWidgetEditor_clone__P4554, + "editor": microcode_DigitWidgetEditor_editor__P4555, + "toImage": microcode_DigitWidgetEditor_toImage__P4556, + "toBuffer": microcode_DigitWidgetEditor_toBuffer__P4557, + "fromBuffer": microcode_DigitWidgetEditor_fromBuffer__P4558, }, iface: { - "msg": null, - "set/msg": null, + "posInt": null, + "set/posInt": null, + "init": microcode_DigitWidgetEditor_init__P4553, + "clone": microcode_DigitWidgetEditor_clone__P4554, + "editor": microcode_DigitWidgetEditor_editor__P4555, + "toImage": microcode_DigitWidgetEditor_toImage__P4556, + "toBuffer": microcode_DigitWidgetEditor_toBuffer__P4557, + "fromBuffer": microcode_DigitWidgetEditor_fromBuffer__P4558, }, }); -const radio_RadioPacket__C3045_VT = mkVTable({ - name: "RadioPacket", - numFields: 1, +const microcode_MelodyFieldEditor__C4584_VT = mkVTable({ + name: "MelodyFieldEditor", + numFields: 0, classNo: 51, lastSubtypeNo: 51, maxBgInstances: null, methods: { + "init": microcode_MelodyFieldEditor_init__P4585, + "clone": microcode_MelodyFieldEditor_clone__P4586, + "editor": microcode_MelodyFieldEditor_editor__P4587, + "toImage": microcode_MelodyFieldEditor_toImage__P4588, + "toBuffer": microcode_MelodyFieldEditor_toBuffer__P4589, + "fromBuffer": microcode_MelodyFieldEditor_fromBuffer__P4590, }, iface: { - "data": null, - "set/data": null, - "getPacket": radio_RadioPacket_getPacket__P3046, - "mkPacket": radio_RadioPacket_mkPacket__P3047, - "packetType": radio_RadioPacket_packetType__P3049, - "time": radio_RadioPacket_time__P3050, - "set/time": radio_RadioPacket_time__P3051, - "serial": radio_RadioPacket_serial__P3052, - "set/serial": radio_RadioPacket_serial__P3053, - "stringPayload": radio_RadioPacket_stringPayload__P3054, - "numberPayload": radio_RadioPacket_numberPayload__P3056, - "set/numberPayload": radio_RadioPacket_numberPayload__P3057, - "bufferPayload": radio_RadioPacket_bufferPayload__P3058, + "init": microcode_MelodyFieldEditor_init__P4585, + "clone": microcode_MelodyFieldEditor_clone__P4586, + "editor": microcode_MelodyFieldEditor_editor__P4587, + "toImage": microcode_MelodyFieldEditor_toImage__P4588, + "toBuffer": microcode_MelodyFieldEditor_toBuffer__P4589, + "fromBuffer": microcode_MelodyFieldEditor_fromBuffer__P4590, }, }); -const microcode_ProgramDefn__C4067_VT = mkVTable({ - name: "ProgramDefn", - numFields: 1, +const microcode_IconFieldEditor__C4565_VT = mkVTable({ + name: "IconFieldEditor", + numFields: 0, classNo: 52, lastSubtypeNo: 52, maxBgInstances: null, methods: { + "init": microcode_IconFieldEditor_init__P4566, + "clone": microcode_IconFieldEditor_clone__P4567, + "editor": microcode_IconFieldEditor_editor__P4568, + "toImage": microcode_IconFieldEditor_toImage__P4569, + "toBuffer": microcode_IconFieldEditor_toBuffer__P4570, + "fromBuffer": microcode_IconFieldEditor_fromBuffer__P4571, }, iface: { - "pages": null, - "set/pages": null, - "toBuffer": microcode_ProgramDefn_toBuffer__P4071, - "fromBuffer": microcode_ProgramDefn_fromBuffer__P4072, + "init": microcode_IconFieldEditor_init__P4566, + "clone": microcode_IconFieldEditor_clone__P4567, + "editor": microcode_IconFieldEditor_editor__P4568, + "toImage": microcode_IconFieldEditor_toImage__P4569, + "toBuffer": microcode_IconFieldEditor_toBuffer__P4570, + "fromBuffer": microcode_IconFieldEditor_fromBuffer__P4571, }, }); -const microcode_PageDefn__C4058_VT = mkVTable({ - name: "PageDefn", - numFields: 1, +const music_Melody__C4912_VT = mkVTable({ + name: "Melody", + numFields: 6, classNo: 53, lastSubtypeNo: 53, maxBgInstances: null, methods: { }, iface: { - "rules": null, - "set/rules": null, - "deleteRuleAt": microcode_PageDefn_deleteRuleAt__P4062, - "insertRuleAt": microcode_PageDefn_insertRuleAt__P4063, - "toBuffer": microcode_PageDefn_toBuffer__P4064, - "fromBuffer": microcode_PageDefn_fromBuffer__P4065, + "melodyArray": null, + "set/melodyArray": null, + "currentDuration": null, + "set/currentDuration": null, + "currentOctave": null, + "set/currentOctave": null, + "currentPos": null, + "set/currentPos": null, + "repeating": null, + "set/repeating": null, + "background": null, + "set/background": null, + "hasNextNote": music_Melody_hasNextNote__P4913, + "nextNote": music_Melody_nextNote__P4914, }, }); -const shieldhelpers_ScreenState__C5131_VT = mkVTable({ - name: "ScreenState", - numFields: 4, +const microcode_ProgramDefn__C4220_VT = mkVTable({ + name: "ProgramDefn", + numFields: 1, classNo: 54, lastSubtypeNo: 54, maxBgInstances: null, methods: { }, iface: { - "runId": null, - "set/runId": null, - "brightness": null, - "set/brightness": null, - "displayOn": null, - "set/displayOn": null, - "gotSimMessage": null, - "set/gotSimMessage": null, - "displayHeight": shieldhelpers_ScreenState_displayHeight__P5132, - "displayWidth": shieldhelpers_ScreenState_displayWidth__P5133, - "sendMessage": shieldhelpers_ScreenState_sendMessage__P5135, - "initSim": shieldhelpers_ScreenState_initSim__P5136, - "setPalette": shieldhelpers_ScreenState_setPalette__P5138, - "showImage": shieldhelpers_ScreenState_showImage__P5139, + "pages": null, + "set/pages": null, + "toBuffer": microcode_ProgramDefn_toBuffer__P4224, + "fromBuffer": microcode_ProgramDefn_fromBuffer__P4225, }, }); -const JSON_Stringifier__C4924_VT = mkVTable({ - name: "Stringifier", - numFields: 3, +const microcode_PageDefn__C4211_VT = mkVTable({ + name: "PageDefn", + numFields: 1, classNo: 55, lastSubtypeNo: 55, maxBgInstances: null, methods: { }, iface: { - "currIndent": null, - "set/currIndent": null, - "indentStep": null, - "set/indentStep": null, - "indent": null, - "set/indent": null, - "doString": JSON_Stringifier_doString__P4925, - "go": JSON_Stringifier_go__P4926, + "rules": null, + "set/rules": null, + "deleteRuleAt": microcode_PageDefn_deleteRuleAt__P4215, + "insertRuleAt": microcode_PageDefn_insertRuleAt__P4216, + "toBuffer": microcode_PageDefn_toBuffer__P4217, + "fromBuffer": microcode_PageDefn_fromBuffer__P4218, }, }); -const JSON_Parser__C4914_VT = mkVTable({ - name: "Parser", - numFields: 3, +const radio_RadioPacket__C3045_VT = mkVTable({ + name: "RadioPacket", + numFields: 1, classNo: 56, lastSubtypeNo: 56, maxBgInstances: null, methods: { }, iface: { - "ptr": null, - "set/ptr": null, - "s": null, - "set/s": null, - "errorMsg": null, - "set/errorMsg": null, - "error": JSON_Parser_error__P4915, - "skipWS": JSON_Parser_skipWS__P4916, - "nextChar": JSON_Parser_nextChar__P4917, - "doString": JSON_Parser_doString__P4918, - "doArray": JSON_Parser_doArray__P4919, - "doObject": JSON_Parser_doObject__P4920, - "doNumber": JSON_Parser_doNumber__P4921, - "checkKw": JSON_Parser_checkKw__P4922, - "value": JSON_Parser_value__P4923, + "data": null, + "set/data": null, + "getPacket": radio_RadioPacket_getPacket__P3046, + "mkPacket": radio_RadioPacket_mkPacket__P3047, + "packetType": radio_RadioPacket_packetType__P3049, + "time": radio_RadioPacket_time__P3050, + "set/time": radio_RadioPacket_time__P3051, + "serial": radio_RadioPacket_serial__P3052, + "set/serial": radio_RadioPacket_serial__P3053, + "stringPayload": radio_RadioPacket_stringPayload__P3054, + "numberPayload": radio_RadioPacket_numberPayload__P3056, + "set/numberPayload": radio_RadioPacket_numberPayload__P3057, + "bufferPayload": radio_RadioPacket_bufferPayload__P3058, }, }); -const music_Playable__C2953_VT = mkVTable({ - name: "Playable", - numFields: 1, +const Sensor__C4767_VT = mkVTable({ + name: "Sensor", + numFields: 8, classNo: 57, - lastSubtypeNo: 59, - maxBgInstances: null, - methods: { - "_play": music_Playable__play__P2956, - }, - iface: { - "stopped": null, - "set/stopped": null, - "_play": music_Playable__play__P2956, - "loop": music_Playable_loop__P2957, - }, -}); -const music_StringArrayPlayable__C2958_VT = mkVTable({ - name: "StringArrayPlayable", - numFields: 3, - classNo: 58, - lastSubtypeNo: 58, - maxBgInstances: null, - methods: { - "_play": music_StringArrayPlayable__play__P2960, - }, - iface: { - "stopped": null, - "set/stopped": null, - "notes": null, - "set/notes": null, - "tempo": null, - "set/tempo": null, - "_play": music_StringArrayPlayable__play__P2960, - "loop": music_Playable_loop__P2957, - }, -}); -const SoundExpression__C2849_VT = mkVTable({ - name: "SoundExpression", - numFields: 2, - classNo: 59, - lastSubtypeNo: 59, - maxBgInstances: null, - methods: { - "_play": SoundExpression__play__P2851, - }, - iface: { - "stopped": null, - "set/stopped": null, - "notes": null, - "set/notes": null, - "_play": SoundExpression__play__P2851, - "play": SoundExpression_play__P2852, - "playUntilDone": SoundExpression_playUntilDone__P2853, - "loop": music_Playable_loop__P2957, - }, -}); -const user_interface_base_ButtonBase__C3648_VT = mkVTable({ - name: "ButtonBase", - numFields: 3, - classNo: 60, - lastSubtypeNo: 61, + lastSubtypeNo: 57, maxBgInstances: null, methods: { - "draw": user_interface_base_ButtonBase_draw__P3664, - }, - iface: { - "icon": null, - "set/icon": null, - "xfrm_": null, - "set/xfrm_": null, - "style": null, - "set/style": null, - "xfrm": user_interface_base_ButtonBase_xfrm__P3651, - "width": user_interface_base_ButtonBase_width__P3652, - "height": user_interface_base_ButtonBase_height__P3653, - "bounds": user_interface_base_ButtonBase_bounds__P3654, - "buildSprite": user_interface_base_ButtonBase_buildSprite__P3656, - "occlusions": user_interface_base_ButtonBase_occlusions__P3658, - "visible": user_interface_base_ButtonBase_visible__P3660, - "isOffScreenX": user_interface_base_ButtonBase_isOffScreenX__P3663, - "draw": user_interface_base_ButtonBase_draw__P3664, - "drawIcon": user_interface_base_ButtonBase_drawIcon__P5254, - "drawStyle": user_interface_base_ButtonBase_drawStyle__P5255, - }, -}); -const user_interface_base_Button__C3665_VT = mkVTable({ - name: "Button", - numFields: 11, - classNo: 61, - lastSubtypeNo: 61, - maxBgInstances: null, - methods: { - "draw": user_interface_base_Button_draw__P3684, - }, - iface: { - "icon": null, - "set/icon": null, - "xfrm_": null, - "set/xfrm_": null, - "style": null, - "set/style": null, - "iconId": null, - "set/iconId": null, - "_ariaId": null, - "set/_ariaId": null, - "onClick": null, - "set/onClick": null, - "selected": null, - "set/selected": null, - "dynamicBoundaryColorsOn": null, - "set/dynamicBoundaryColorsOn": null, - "boundaryColor": null, - "set/boundaryColor": null, - "state": null, - "set/state": null, - "pressable": null, - "set/pressable": null, - "ariaId": user_interface_base_Button_ariaId__P3670, - "set/ariaId": user_interface_base_Button_ariaId__P3671, - "reportAria": user_interface_base_Button_reportAria__P3676, - "toggleSelected": user_interface_base_Button_toggleSelected__P3680, - "image_": user_interface_base_Button_image___P5257, - "setIcon": user_interface_base_Button_setIcon__P3681, - "clickable": user_interface_base_Button_clickable__P3682, - "click": user_interface_base_Button_click__P3683, - "draw": user_interface_base_Button_draw__P3684, - "xfrm": user_interface_base_ButtonBase_xfrm__P3651, - "width": user_interface_base_ButtonBase_width__P3652, - "height": user_interface_base_ButtonBase_height__P3653, - "bounds": user_interface_base_ButtonBase_bounds__P3654, - "buildSprite": user_interface_base_ButtonBase_buildSprite__P3656, - "occlusions": user_interface_base_ButtonBase_occlusions__P3658, - "visible": user_interface_base_ButtonBase_visible__P3660, - "isOffScreenX": user_interface_base_ButtonBase_isOffScreenX__P3663, - "drawIcon": user_interface_base_ButtonBase_drawIcon__P5254, - "drawStyle": user_interface_base_ButtonBase_drawStyle__P5255, + }, + iface: { + "range": null, + "set/range": null, + "name": null, + "set/name": null, + "radioName": null, + "set/radioName": null, + "sensorFn": null, + "set/sensorFn": null, + "minimum": null, + "set/minimum": null, + "maximum": null, + "set/maximum": null, + "isJacdacSensor": null, + "set/isJacdacSensor": null, + "setupFn": null, + "set/setupFn": null, + "getFromName": Sensor_getFromName__P4769, + "getName": Sensor_getName__P4770, + "getReading": Sensor_getReading__P4772, + "getNormalisedReading": Sensor_getNormalisedReading__P4773, }, }); -const microcode_Editor__C4301_VT = mkVTable({ +const microcode_Editor__C4454_VT = mkVTable({ name: "Editor", - numFields: 18, - classNo: 29, - lastSubtypeNo: 29, + numFields: 21, + classNo: 30, + lastSubtypeNo: 30, maxBgInstances: null, methods: { - "startup": microcode_Editor_startup__P4317, - "shutdown": microcode_Editor_shutdown__P4320, - "activate": microcode_Editor_activate__P4321, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "update": microcode_Editor_update__P4323, - "draw": microcode_Editor_draw__P4324, + "startup": microcode_Editor_startup__P4471, + "shutdown": microcode_Editor_shutdown__P4476, + "activate": microcode_Editor_activate__P4477, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": microcode_Editor_update__P4479, + "draw": microcode_Editor_draw__P4480, }, iface: { "xfrm_": null, @@ -74357,6 +79394,10 @@ const microcode_Editor__C4301_VT = mkVTable({ "set/currPage": null, "diskBtn": null, "set/diskBtn": null, + "runBtn": null, + "set/runBtn": null, + "stopBtn": null, + "set/stopBtn": null, "pageBtn": null, "set/pageBtn": null, "pageEditor": null, @@ -74371,105 +79412,177 @@ const microcode_Editor__C4301_VT = mkVTable({ "set/scrollroot": null, "picker": null, "set/picker": null, - "rendering": null, - "set/rendering": null, "dirty": null, "set/dirty": null, - "changed": microcode_Editor_changed__P4308, - "saveAndCompileProgram": microcode_Editor_saveAndCompileProgram__P4313, - "pickDiskSLot": microcode_Editor_pickDiskSLot__P5764, - "pickPage": microcode_Editor_pickPage__P5765, - "switchToPage": microcode_Editor_switchToPage__P4314, - "snapCursorTo": microcode_Editor_snapCursorTo__P4315, - "moveTo": microcode_Editor_moveTo__P5766, - "scrollAndMove": microcode_Editor_scrollAndMove__P5767, - "scrollAndMoveButton": microcode_Editor_scrollAndMoveButton__P5768, - "startup": microcode_Editor_startup__P4317, - "configureP1Keys": microcode_Editor_configureP1Keys__P5769, - "nextPage": microcode_Editor_nextPage__P5770, - "prevPage": microcode_Editor_prevPage__P5771, - "configureP2Keys": microcode_Editor_configureP2Keys__P5772, - "back": microcode_Editor_back__P4318, - "forward": microcode_Editor_forward__P4319, - "shutdown": microcode_Editor_shutdown__P4320, - "activate": microcode_Editor_activate__P4321, - "addButtons": microcode_Editor_addButtons__P4322, - "rebuildNavigator": microcode_Editor_rebuildNavigator__P5776, - "update": microcode_Editor_update__P4323, - "draw": microcode_Editor_draw__P4324, - "drawEditor": microcode_Editor_drawEditor__P5777, - "drawBackground": microcode_Editor_drawBackground__P5778, - "drawNav": microcode_Editor_drawNav__P5779, - "xfrm": user_interface_base_Scene_xfrm__P3687, - "backgroundColor": user_interface_base_Scene_backgroundColor__P3688, - "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3689, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "backgroundCaptured": user_interface_base_Scene_backgroundCaptured__P3697, - "captureBackground": user_interface_base_Scene_captureBackground__P3698, - "releaseBackground": user_interface_base_Scene_releaseBackground__P3699, - "__init": user_interface_base_Scene___init__P3700, + "programChanged": null, + "set/programChanged": null, + "queuedCursorMove": null, + "set/queuedCursorMove": null, + "changed": microcode_Editor_changed__P4462, + "saveAndCompileProgram": microcode_Editor_saveAndCompileProgram__P4467, + "pickDiskSLot": microcode_Editor_pickDiskSLot__P5950, + "pickPage": microcode_Editor_pickPage__P5951, + "switchToPage": microcode_Editor_switchToPage__P4468, + "snapCursorTo": microcode_Editor_snapCursorTo__P4469, + "moveTo": microcode_Editor_moveTo__P5952, + "scrollAndMove": microcode_Editor_scrollAndMove__P5953, + "scrollAndMoveButton": microcode_Editor_scrollAndMoveButton__P5954, + "startup": microcode_Editor_startup__P4471, + "runProgram": microcode_Editor_runProgram__P4472, + "stopProgram": microcode_Editor_stopProgram__P4473, + "configureP1Keys": microcode_Editor_configureP1Keys__P5955, + "prevPage": microcode_Editor_prevPage__P5957, + "back": microcode_Editor_back__P4474, + "shutdown": microcode_Editor_shutdown__P4476, + "activate": microcode_Editor_activate__P4477, + "addButtons": microcode_Editor_addButtons__P4478, + "rebuildNavigator": microcode_Editor_rebuildNavigator__P5961, + "update": microcode_Editor_update__P4479, + "draw": microcode_Editor_draw__P4480, + "drawEditor": microcode_Editor_drawEditor__P5962, + "drawBackground": microcode_Editor_drawBackground__P5963, + "drawNav": microcode_Editor_drawNav__P5964, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, }, }); -const microcode_SamplesGallery__C4470_VT = mkVTable({ - name: "SamplesGallery", - numFields: 9, - classNo: 27, - lastSubtypeNo: 27, +const user_interface_base_ButtonBase__C3621_VT = mkVTable({ + name: "ButtonBase", + numFields: 3, + classNo: 58, + lastSubtypeNo: 59, maxBgInstances: null, methods: { - "startup": microcode_SamplesGallery_startup__P4473, - "shutdown": microcode_SamplesGallery_shutdown__P4472, - "activate": microcode_SamplesGallery_activate__P4475, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "update": user_interface_base_CursorScene_update__P3836, - "draw": microcode_SamplesGallery_draw__P4476, - "moveCursor": microcode_SamplesGallery_moveCursor__P4474, + "draw": user_interface_base_ButtonBase_draw__P3637, }, iface: { + "icon": null, + "set/icon": null, "xfrm_": null, "set/xfrm_": null, - "color_": null, - "set/color_": null, - "backgroundCaptured_": null, - "set/backgroundCaptured_": null, - "app": null, - "set/app": null, - "name": null, - "set/name": null, - "navigator": null, - "set/navigator": null, - "cursor": null, - "set/cursor": null, - "picker": null, - "set/picker": null, - "sampleButtons": null, - "set/sampleButtons": null, - "shutdown": microcode_SamplesGallery_shutdown__P4472, - "startup": microcode_SamplesGallery_startup__P4473, - "moveCursor": microcode_SamplesGallery_moveCursor__P4474, - "activate": microcode_SamplesGallery_activate__P4475, - "draw": microcode_SamplesGallery_draw__P4476, - "moveTo": user_interface_base_CursorScene_moveTo__P5298, - "back": user_interface_base_CursorScene_back__P3833, - "update": user_interface_base_CursorScene_update__P3836, - "xfrm": user_interface_base_Scene_xfrm__P3687, - "backgroundColor": user_interface_base_Scene_backgroundColor__P3688, - "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3689, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "backgroundCaptured": user_interface_base_Scene_backgroundCaptured__P3697, - "captureBackground": user_interface_base_Scene_captureBackground__P3698, - "releaseBackground": user_interface_base_Scene_releaseBackground__P3699, - "__init": user_interface_base_Scene___init__P3700, + "style": null, + "set/style": null, + "xfrm": user_interface_base_ButtonBase_xfrm__P3624, + "width": user_interface_base_ButtonBase_width__P3625, + "height": user_interface_base_ButtonBase_height__P3626, + "bounds": user_interface_base_ButtonBase_bounds__P3627, + "buildSprite": user_interface_base_ButtonBase_buildSprite__P3629, + "occlusions": user_interface_base_ButtonBase_occlusions__P3631, + "visible": user_interface_base_ButtonBase_visible__P3633, + "isOffScreenX": user_interface_base_ButtonBase_isOffScreenX__P3636, + "draw": user_interface_base_ButtonBase_draw__P3637, + "drawIcon": user_interface_base_ButtonBase_drawIcon__P5243, + "drawStyle": user_interface_base_ButtonBase_drawStyle__P5244, }, }); -const user_interface_base_Picker__C3748_VT = mkVTable({ - name: "Picker", - numFields: 16, +const user_interface_base_Sprite__C3444_VT = mkVTable({ + name: "Sprite", + numFields: 3, + classNo: 60, + lastSubtypeNo: 60, + maxBgInstances: null, + methods: { + }, + iface: { + "xfrm_": null, + "set/xfrm_": null, + "image": null, + "set/image": null, + "invisible": null, + "set/invisible": null, + "xfrm": user_interface_base_Sprite_xfrm__P3447, + "width": user_interface_base_Sprite_width__P3448, + "height": user_interface_base_Sprite_height__P3449, + "bounds": user_interface_base_Sprite_bounds__P3451, + "setImage": user_interface_base_Sprite_setImage__P3454, + "occlusions": user_interface_base_Sprite_occlusions__P3456, + "isOffScreenX": user_interface_base_Sprite_isOffScreenX__P3457, + "draw": user_interface_base_Sprite_draw__P3458, + }, +}); +const shieldhelpers_ScreenState__C5120_VT = mkVTable({ + name: "ScreenState", + numFields: 4, + classNo: 61, + lastSubtypeNo: 61, + maxBgInstances: null, + methods: { + }, + iface: { + "runId": null, + "set/runId": null, + "brightness": null, + "set/brightness": null, + "displayOn": null, + "set/displayOn": null, + "gotSimMessage": null, + "set/gotSimMessage": null, + "displayHeight": shieldhelpers_ScreenState_displayHeight__P5121, + "displayWidth": shieldhelpers_ScreenState_displayWidth__P5122, + "sendMessage": shieldhelpers_ScreenState_sendMessage__P5124, + "initSim": shieldhelpers_ScreenState_initSim__P5125, + "setPalette": shieldhelpers_ScreenState_setPalette__P5127, + "showImage": shieldhelpers_ScreenState_showImage__P5128, + }, +}); +const JSON_Stringifier__C4936_VT = mkVTable({ + name: "Stringifier", + numFields: 3, classNo: 62, lastSubtypeNo: 62, maxBgInstances: null, methods: { }, + iface: { + "currIndent": null, + "set/currIndent": null, + "indentStep": null, + "set/indentStep": null, + "indent": null, + "set/indent": null, + "doString": JSON_Stringifier_doString__P4937, + "go": JSON_Stringifier_go__P4938, + }, +}); +const JSON_Parser__C4926_VT = mkVTable({ + name: "Parser", + numFields: 3, + classNo: 63, + lastSubtypeNo: 63, + maxBgInstances: null, + methods: { + }, + iface: { + "ptr": null, + "set/ptr": null, + "s": null, + "set/s": null, + "errorMsg": null, + "set/errorMsg": null, + "error": JSON_Parser_error__P4927, + "skipWS": JSON_Parser_skipWS__P4928, + "nextChar": JSON_Parser_nextChar__P4929, + "doString": JSON_Parser_doString__P4930, + "doArray": JSON_Parser_doArray__P4931, + "doObject": JSON_Parser_doObject__P4932, + "doNumber": JSON_Parser_doNumber__P4933, + "checkKw": JSON_Parser_checkKw__P4934, + "value": JSON_Parser_value__P4935, + }, +}); +const user_interface_base_Picker__C3721_VT = mkVTable({ + name: "Picker", + numFields: 16, + classNo: 64, + lastSubtypeNo: 64, + maxBgInstances: null, + methods: { + }, iface: { "group": null, "set/group": null, @@ -74503,57 +79616,21 @@ const user_interface_base_Picker__C3748_VT = mkVTable({ "set/title": null, "cursor": null, "set/cursor": null, - "xfrm": user_interface_base_Picker_xfrm__P3754, - "setGroup": user_interface_base_Picker_setGroup__P3756, - "onButtonClicked": user_interface_base_Picker_onButtonClicked__P3757, - "cancelClicked": user_interface_base_Picker_cancelClicked__P5281, - "show": user_interface_base_Picker_show__P3758, - "hide": user_interface_base_Picker_hide__P3759, - "draw": user_interface_base_Picker_draw__P3760, - "layout": user_interface_base_Picker_layout__P5282, - }, -}); -const user_interface_base_PickerNavigator__C3803_VT = mkVTable({ - name: "PickerNavigator", - numFields: 4, - classNo: 63, - lastSubtypeNo: 65, - maxBgInstances: null, - methods: { - "reportAria": user_interface_base_PickerNavigator_reportAria__P5292, - }, - iface: { - "deleteButton": null, - "set/deleteButton": null, - "row": null, - "set/row": null, - "col": null, - "set/col": null, - "picker": null, - "set/picker": null, - "width": user_interface_base_PickerNavigator_width__P5288, - "length": user_interface_base_PickerNavigator_length__P5289, - "hasDelete": user_interface_base_PickerNavigator_hasDelete__P3805, - "setBtns": user_interface_base_PickerNavigator_setBtns__P3808, - "addRow": user_interface_base_PickerNavigator_addRow__P3809, - "moveToIndex": user_interface_base_PickerNavigator_moveToIndex__P3811, - "height": user_interface_base_PickerNavigator_height__P5290, - "currentRowWidth": user_interface_base_PickerNavigator_currentRowWidth__P5291, - "initialCursor": user_interface_base_PickerNavigator_initialCursor__P3812, - "clear": user_interface_base_PickerNavigator_clear__P3813, - "addDelete": user_interface_base_PickerNavigator_addDelete__P3815, - "drawComponents": user_interface_base_PickerNavigator_drawComponents__P3816, - "getCurrent": user_interface_base_PickerNavigator_getCurrent__P3817, - "move": user_interface_base_PickerNavigator_move__P3819, - "updateAria": user_interface_base_PickerNavigator_updateAria__P3820, - "reportAria": user_interface_base_PickerNavigator_reportAria__P5292, + "xfrm": user_interface_base_Picker_xfrm__P3727, + "setGroup": user_interface_base_Picker_setGroup__P3729, + "onButtonClicked": user_interface_base_Picker_onButtonClicked__P3730, + "cancelClicked": user_interface_base_Picker_cancelClicked__P5270, + "show": user_interface_base_Picker_show__P3731, + "hide": user_interface_base_Picker_hide__P3732, + "draw": user_interface_base_Picker_draw__P3733, + "layout": user_interface_base_Picker_layout__P5271, }, }); -const user_interface_base_Cursor__C3718_VT = mkVTable({ +const user_interface_base_Cursor__C3691_VT = mkVTable({ name: "Cursor", numFields: 12, - classNo: 66, - lastSubtypeNo: 66, + classNo: 65, + lastSubtypeNo: 65, maxBgInstances: null, methods: { }, @@ -74582,25 +79659,25 @@ const user_interface_base_Cursor__C3718_VT = mkVTable({ "set/resetOutlineColourOnMove": null, "cursorOutlineColour": null, "set/cursorOutlineColour": null, - "moveTo": user_interface_base_Cursor_moveTo__P3731, - "setAriaContent": user_interface_base_Cursor_setAriaContent__P3732, - "snapTo": user_interface_base_Cursor_snapTo__P3733, - "setSize": user_interface_base_Cursor_setSize__P3734, - "setOutlineColour": user_interface_base_Cursor_setOutlineColour__P3735, - "saveState": user_interface_base_Cursor_saveState__P3736, - "restoreState": user_interface_base_Cursor_restoreState__P3737, - "move": user_interface_base_Cursor_move__P3738, - "click": user_interface_base_Cursor_click__P3739, - "cancel": user_interface_base_Cursor_cancel__P3740, - "update": user_interface_base_Cursor_update__P3742, - "draw": user_interface_base_Cursor_draw__P3743, + "moveTo": user_interface_base_Cursor_moveTo__P3704, + "setAriaContent": user_interface_base_Cursor_setAriaContent__P3705, + "snapTo": user_interface_base_Cursor_snapTo__P3706, + "setSize": user_interface_base_Cursor_setSize__P3707, + "setOutlineColour": user_interface_base_Cursor_setOutlineColour__P3708, + "saveState": user_interface_base_Cursor_saveState__P3709, + "restoreState": user_interface_base_Cursor_restoreState__P3710, + "move": user_interface_base_Cursor_move__P3711, + "click": user_interface_base_Cursor_click__P3712, + "cancel": user_interface_base_Cursor_cancel__P3713, + "update": user_interface_base_Cursor_update__P3715, + "draw": user_interface_base_Cursor_draw__P3716, }, }); -const user_interface_base_PickerGroup__C5272_VT = mkVTable({ +const user_interface_base_PickerGroup__C5261_VT = mkVTable({ name: "PickerGroup", numFields: 5, - classNo: 67, - lastSubtypeNo: 67, + classNo: 66, + lastSubtypeNo: 66, maxBgInstances: null, methods: { }, @@ -74615,111 +79692,72 @@ const user_interface_base_PickerGroup__C5272_VT = mkVTable({ "set/picker": null, "defs": null, "set/defs": null, - "buttonHeight": user_interface_base_PickerGroup_buttonHeight__P5273, - "getButtonAtIndex": user_interface_base_PickerGroup_getButtonAtIndex__P5274, - "layout": user_interface_base_PickerGroup_layout__P5276, - "setButtonCoords": user_interface_base_PickerGroup_setButtonCoords__P5277, - "layoutDraw": user_interface_base_PickerGroup_layoutDraw__P5278, - "draw": user_interface_base_PickerGroup_draw__P5279, - }, -}); -const user_interface_base_Sprite__C3471_VT = mkVTable({ - name: "Sprite", - numFields: 3, - classNo: 68, - lastSubtypeNo: 68, - maxBgInstances: null, - methods: { - }, - iface: { - "xfrm_": null, - "set/xfrm_": null, - "image": null, - "set/image": null, - "invisible": null, - "set/invisible": null, - "xfrm": user_interface_base_Sprite_xfrm__P3474, - "width": user_interface_base_Sprite_width__P3475, - "height": user_interface_base_Sprite_height__P3476, - "bounds": user_interface_base_Sprite_bounds__P3478, - "setImage": user_interface_base_Sprite_setImage__P3481, - "occlusions": user_interface_base_Sprite_occlusions__P3483, - "isOffScreenX": user_interface_base_Sprite_isOffScreenX__P3484, - "draw": user_interface_base_Sprite_draw__P3485, + "buttonHeight": user_interface_base_PickerGroup_buttonHeight__P5262, + "getButtonAtIndex": user_interface_base_PickerGroup_getButtonAtIndex__P5263, + "layout": user_interface_base_PickerGroup_layout__P5265, + "setButtonCoords": user_interface_base_PickerGroup_setButtonCoords__P5266, + "layoutDraw": user_interface_base_PickerGroup_layoutDraw__P5267, + "draw": user_interface_base_PickerGroup_draw__P5268, }, }); -const user_interface_base_RowNavigator__C3780_VT = mkVTable({ - name: "RowNavigator", - numFields: 3, - classNo: 69, - lastSubtypeNo: 71, - maxBgInstances: null, - methods: { - "clear": user_interface_base_RowNavigator_clear__P3782, - "getRow": user_interface_base_RowNavigator_getRow__P3783, - "setBtns": user_interface_base_RowNavigator_setBtns__P3785, - "addRow": user_interface_base_RowNavigator_addRow__P3786, - "move": user_interface_base_RowNavigator_move__P3790, - "reportAria": user_interface_base_RowNavigator_reportAria__P5285, - "getCurrent": user_interface_base_RowNavigator_getCurrent__P3792, - }, - iface: { - "buttonGroups": null, - "set/buttonGroups": null, - "row": null, - "set/row": null, - "col": null, - "set/col": null, - "clear": user_interface_base_RowNavigator_clear__P3782, - "getRow": user_interface_base_RowNavigator_getRow__P3783, - "setBtns": user_interface_base_RowNavigator_setBtns__P3785, - "addRow": user_interface_base_RowNavigator_addRow__P3786, - "drawComponents": user_interface_base_RowNavigator_drawComponents__P3788, - "move": user_interface_base_RowNavigator_move__P3790, - "reportAria": user_interface_base_RowNavigator_reportAria__P5285, - "getCurrent": user_interface_base_RowNavigator_getCurrent__P3792, - "makeGood": user_interface_base_RowNavigator_makeGood__P5286, - "initialCursor": user_interface_base_RowNavigator_initialCursor__P3793, - }, -}); -const user_interface_base_NavigationError__C3777_VT = mkVTable({ - name: "NavigationError", - numFields: 1, - classNo: 72, - lastSubtypeNo: 72, - maxBgInstances: null, - methods: { - }, - iface: { - "kind": null, - "set/kind": null, - }, -}); -const microcode_Sample__C4464_VT = mkVTable({ - name: "Sample", - numFields: 4, - classNo: 73, - lastSubtypeNo: 73, +const user_interface_base_Button__C3638_VT = mkVTable({ + name: "Button", + numFields: 11, + classNo: 59, + lastSubtypeNo: 59, maxBgInstances: null, methods: { + "draw": user_interface_base_Button_draw__P3657, }, iface: { - "label": null, - "set/label": null, - "ariaId": null, - "set/ariaId": null, "icon": null, "set/icon": null, - "b64": null, - "set/b64": null, - "source": microcode_Sample_source__P4466, + "xfrm_": null, + "set/xfrm_": null, + "style": null, + "set/style": null, + "iconId": null, + "set/iconId": null, + "_ariaId": null, + "set/_ariaId": null, + "onClick": null, + "set/onClick": null, + "selected": null, + "set/selected": null, + "dynamicBoundaryColorsOn": null, + "set/dynamicBoundaryColorsOn": null, + "boundaryColor": null, + "set/boundaryColor": null, + "state": null, + "set/state": null, + "pressable": null, + "set/pressable": null, + "ariaId": user_interface_base_Button_ariaId__P3643, + "set/ariaId": user_interface_base_Button_ariaId__P3644, + "reportAria": user_interface_base_Button_reportAria__P3649, + "toggleSelected": user_interface_base_Button_toggleSelected__P3653, + "image_": user_interface_base_Button_image___P5246, + "setIcon": user_interface_base_Button_setIcon__P3654, + "clickable": user_interface_base_Button_clickable__P3655, + "click": user_interface_base_Button_click__P3656, + "draw": user_interface_base_Button_draw__P3657, + "xfrm": user_interface_base_ButtonBase_xfrm__P3624, + "width": user_interface_base_ButtonBase_width__P3625, + "height": user_interface_base_ButtonBase_height__P3626, + "bounds": user_interface_base_ButtonBase_bounds__P3627, + "buildSprite": user_interface_base_ButtonBase_buildSprite__P3629, + "occlusions": user_interface_base_ButtonBase_occlusions__P3631, + "visible": user_interface_base_ButtonBase_visible__P3633, + "isOffScreenX": user_interface_base_ButtonBase_isOffScreenX__P3636, + "drawIcon": user_interface_base_ButtonBase_drawIcon__P5243, + "drawStyle": user_interface_base_ButtonBase_drawStyle__P5244, }, }); -const microcode_PageEditor__C4325_VT = mkVTable({ +const microcode_PageEditor__C4481_VT = mkVTable({ name: "PageEditor", numFields: 4, - classNo: 74, - lastSubtypeNo: 74, + classNo: 67, + lastSubtypeNo: 67, maxBgInstances: null, methods: { }, @@ -74732,25 +79770,25 @@ const microcode_PageEditor__C4325_VT = mkVTable({ "set/editor": null, "pagedef": null, "set/pagedef": null, - "xfrm": microcode_PageEditor_xfrm__P4327, - "ensureFinalEmptyRule": microcode_PageEditor_ensureFinalEmptyRule__P5780, - "trimRules": microcode_PageEditor_trimRules__P5781, - "layout": microcode_PageEditor_layout__P4331, - "addToNavigator": microcode_PageEditor_addToNavigator__P4332, - "changed": microcode_PageEditor_changed__P4333, - "reassignIndices": microcode_PageEditor_reassignIndices__P5782, - "moveRuleAt": microcode_PageEditor_moveRuleAt__P4334, - "deleteRuleAt": microcode_PageEditor_deleteRuleAt__P4335, - "insertRuleAt": microcode_PageEditor_insertRuleAt__P4336, - "update": microcode_PageEditor_update__P4337, - "draw": microcode_PageEditor_draw__P4338, + "xfrm": microcode_PageEditor_xfrm__P4483, + "ensureFinalEmptyRule": microcode_PageEditor_ensureFinalEmptyRule__P5965, + "trimRules": microcode_PageEditor_trimRules__P5966, + "layout": microcode_PageEditor_layout__P4487, + "addToNavigator": microcode_PageEditor_addToNavigator__P4488, + "changed": microcode_PageEditor_changed__P4489, + "reassignIndices": microcode_PageEditor_reassignIndices__P5967, + "moveRuleAt": microcode_PageEditor_moveRuleAt__P4490, + "deleteRuleAt": microcode_PageEditor_deleteRuleAt__P4491, + "insertRuleAt": microcode_PageEditor_insertRuleAt__P4492, + "update": microcode_PageEditor_update__P4493, + "draw": microcode_PageEditor_draw__P4494, }, }); -const microcode_RuleEditor__C4340_VT = mkVTable({ +const microcode_RuleEditor__C4496_VT = mkVTable({ name: "RuleEditor", - numFields: 14, - classNo: 75, - lastSubtypeNo: 75, + numFields: 13, + classNo: 68, + lastSubtypeNo: 68, maxBgInstances: null, methods: { }, @@ -74773,8 +79811,6 @@ const microcode_RuleEditor__C4340_VT = mkVTable({ "set/bounds": null, "whenBounds": null, "set/whenBounds": null, - "queuedCursorMove": null, - "set/queuedCursorMove": null, "editor": null, "set/editor": null, "page": null, @@ -74783,44 +79819,81 @@ const microcode_RuleEditor__C4340_VT = mkVTable({ "set/ruledef": null, "index": null, "set/index": null, - "xfrm": microcode_RuleEditor_xfrm__P4350, - "destroyWhenInsertButton": microcode_RuleEditor_destroyWhenInsertButton__P5786, - "needsWhenInsert": microcode_RuleEditor_needsWhenInsert__P5787, - "destroyDoInsertButton": microcode_RuleEditor_destroyDoInsertButton__P5788, - "needsDoInsert": microcode_RuleEditor_needsDoInsert__P5789, - "destroyProgramTiles": microcode_RuleEditor_destroyProgramTiles__P5790, - "processSection": microcode_RuleEditor_processSection__P5791, - "instantiateProgramTiles": microcode_RuleEditor_instantiateProgramTiles__P5792, - "showRuleHandleMenu": microcode_RuleEditor_showRuleHandleMenu__P5793, - "nextEmpty": microcode_RuleEditor_nextEmpty__P5794, - "editTile": microcode_RuleEditor_editTile__P5795, - "handleRuleHandleMenuSelection": microcode_RuleEditor_handleRuleHandleMenuSelection__P5796, - "showWhenInsertMenu": microcode_RuleEditor_showWhenInsertMenu__P5797, - "showDoInsertMenu": microcode_RuleEditor_showDoInsertMenu__P5798, - "getSuggestions": microcode_RuleEditor_getSuggestions__P5799, - "getRuleButtons": microcode_RuleEditor_getRuleButtons__P4352, - "isEmpty": microcode_RuleEditor_isEmpty__P4353, - "update": microcode_RuleEditor_update__P4354, - "layout": microcode_RuleEditor_layout__P4355, - "isOffScreen": microcode_RuleEditor_isOffScreen__P4356, - "draw": microcode_RuleEditor_draw__P4357, - "drawBackground": microcode_RuleEditor_drawBackground__P5800, + "xfrm": microcode_RuleEditor_xfrm__P4505, + "destroyWhenInsertButton": microcode_RuleEditor_destroyWhenInsertButton__P5971, + "needsWhenInsert": microcode_RuleEditor_needsWhenInsert__P5972, + "destroyDoInsertButton": microcode_RuleEditor_destroyDoInsertButton__P5973, + "needsDoInsert": microcode_RuleEditor_needsDoInsert__P5974, + "destroyProgramTiles": microcode_RuleEditor_destroyProgramTiles__P5975, + "processSection": microcode_RuleEditor_processSection__P5976, + "instantiateProgramTiles": microcode_RuleEditor_instantiateProgramTiles__P5977, + "showRuleHandleMenu": microcode_RuleEditor_showRuleHandleMenu__P5978, + "nextEmpty": microcode_RuleEditor_nextEmpty__P5979, + "editTile": microcode_RuleEditor_editTile__P5980, + "handleRuleHandleMenuSelection": microcode_RuleEditor_handleRuleHandleMenuSelection__P5981, + "showWhenInsertMenu": microcode_RuleEditor_showWhenInsertMenu__P5982, + "showDoInsertMenu": microcode_RuleEditor_showDoInsertMenu__P5983, + "getSuggestions": microcode_RuleEditor_getSuggestions__P5984, + "getRuleButtons": microcode_RuleEditor_getRuleButtons__P4507, + "isEmpty": microcode_RuleEditor_isEmpty__P4508, + "update": microcode_RuleEditor_update__P4509, + "layout": microcode_RuleEditor_layout__P4510, + "isOffScreen": microcode_RuleEditor_isOffScreen__P4511, + "draw": microcode_RuleEditor_draw__P4512, + "drawBackground": microcode_RuleEditor_drawBackground__P5985, + }, +}); +const user_interface_base_RowNavigator__C3753_VT = mkVTable({ + name: "RowNavigator", + numFields: 3, + classNo: 69, + lastSubtypeNo: 71, + maxBgInstances: null, + methods: { + "clear": user_interface_base_RowNavigator_clear__P3755, + "getRow": user_interface_base_RowNavigator_getRow__P3756, + "getCol": user_interface_base_RowNavigator_getCol__P3757, + "setBtns": user_interface_base_RowNavigator_setBtns__P3758, + "addRow": user_interface_base_RowNavigator_addRow__P3759, + "move": user_interface_base_RowNavigator_move__P3763, + "reportAria": user_interface_base_RowNavigator_reportAria__P5274, + "getCurrent": user_interface_base_RowNavigator_getCurrent__P3765, + }, + iface: { + "buttonGroups": null, + "set/buttonGroups": null, + "row": null, + "set/row": null, + "col": null, + "set/col": null, + "clear": user_interface_base_RowNavigator_clear__P3755, + "getRow": user_interface_base_RowNavigator_getRow__P3756, + "getCol": user_interface_base_RowNavigator_getCol__P3757, + "setBtns": user_interface_base_RowNavigator_setBtns__P3758, + "addRow": user_interface_base_RowNavigator_addRow__P3759, + "drawComponents": user_interface_base_RowNavigator_drawComponents__P3761, + "move": user_interface_base_RowNavigator_move__P3763, + "reportAria": user_interface_base_RowNavigator_reportAria__P5274, + "getCurrent": user_interface_base_RowNavigator_getCurrent__P3765, + "makeGood": user_interface_base_RowNavigator_makeGood__P5275, + "initialCursor": user_interface_base_RowNavigator_initialCursor__P3766, }, }); -const microcode_RuleRowNavigator__C4578_VT = mkVTable({ +const microcode_RuleRowNavigator__C4720_VT = mkVTable({ name: "RuleRowNavigator", numFields: 4, classNo: 70, lastSubtypeNo: 70, maxBgInstances: null, methods: { - "clear": microcode_RuleRowNavigator_clear__P4580, - "getRow": user_interface_base_RowNavigator_getRow__P3783, - "setBtns": user_interface_base_RowNavigator_setBtns__P3785, - "addRow": user_interface_base_RowNavigator_addRow__P3786, - "move": user_interface_base_RowNavigator_move__P3790, - "reportAria": microcode_RuleRowNavigator_reportAria__P5840, - "getCurrent": user_interface_base_RowNavigator_getCurrent__P3792, + "clear": microcode_RuleRowNavigator_clear__P4723, + "getRow": user_interface_base_RowNavigator_getRow__P3756, + "getCol": user_interface_base_RowNavigator_getCol__P3757, + "setBtns": user_interface_base_RowNavigator_setBtns__P3758, + "addRow": user_interface_base_RowNavigator_addRow__P3759, + "move": user_interface_base_RowNavigator_move__P3763, + "reportAria": microcode_RuleRowNavigator_reportAria__P6035, + "getCurrent": user_interface_base_RowNavigator_getCurrent__P3765, }, iface: { "buttonGroups": null, @@ -74831,39 +79904,62 @@ const microcode_RuleRowNavigator__C4578_VT = mkVTable({ "set/col": null, "rules": null, "set/rules": null, - "clear": microcode_RuleRowNavigator_clear__P4580, - "addRule": microcode_RuleRowNavigator_addRule__P4581, - "atRuleStart": microcode_RuleRowNavigator_atRuleStart__P4582, - "reportAria": microcode_RuleRowNavigator_reportAria__P5840, - "getRow": user_interface_base_RowNavigator_getRow__P3783, - "setBtns": user_interface_base_RowNavigator_setBtns__P3785, - "addRow": user_interface_base_RowNavigator_addRow__P3786, - "drawComponents": user_interface_base_RowNavigator_drawComponents__P3788, - "move": user_interface_base_RowNavigator_move__P3790, - "getCurrent": user_interface_base_RowNavigator_getCurrent__P3792, - "makeGood": user_interface_base_RowNavigator_makeGood__P5286, - "initialCursor": user_interface_base_RowNavigator_initialCursor__P3793, + "getRowCount": microcode_RuleRowNavigator_getRowCount__P4722, + "clear": microcode_RuleRowNavigator_clear__P4723, + "addRule": microcode_RuleRowNavigator_addRule__P4724, + "atRuleStart": microcode_RuleRowNavigator_atRuleStart__P4725, + "reportAria": microcode_RuleRowNavigator_reportAria__P6035, + "getRow": user_interface_base_RowNavigator_getRow__P3756, + "getCol": user_interface_base_RowNavigator_getCol__P3757, + "setBtns": user_interface_base_RowNavigator_setBtns__P3758, + "addRow": user_interface_base_RowNavigator_addRow__P3759, + "drawComponents": user_interface_base_RowNavigator_drawComponents__P3761, + "move": user_interface_base_RowNavigator_move__P3763, + "getCurrent": user_interface_base_RowNavigator_getCurrent__P3765, + "makeGood": user_interface_base_RowNavigator_makeGood__P5275, + "initialCursor": user_interface_base_RowNavigator_initialCursor__P3766, }, }); -const user_interface_base_Placeable__C3407_VT = mkVTable({ +const user_interface_base_Placeable__C3380_VT = mkVTable({ name: "Placeable", numFields: 1, - classNo: 76, - lastSubtypeNo: 76, + classNo: 72, + lastSubtypeNo: 72, maxBgInstances: null, methods: { }, iface: { "xfrm_": null, "set/xfrm_": null, - "xfrm": user_interface_base_Placeable_xfrm__P3408, + "xfrm": user_interface_base_Placeable_xfrm__P3381, + }, +}); +const user_interface_base_Occlusions__C3367_VT = mkVTable({ + name: "Occlusions", + numFields: 4, + classNo: 73, + lastSubtypeNo: 73, + maxBgInstances: null, + methods: { + }, + iface: { + "left": null, + "set/left": null, + "top": null, + "set/top": null, + "right": null, + "set/right": null, + "bottom": null, + "set/bottom": null, + "has": user_interface_base_Occlusions_has__P3368, + "FromSprite": user_interface_base_Occlusions_FromSprite__P3370, }, }); -const microcode_BufferWriter__C4479_VT = mkVTable({ +const microcode_BufferWriter__C4621_VT = mkVTable({ name: "BufferWriter", numFields: 2, - classNo: 77, - lastSubtypeNo: 77, + classNo: 74, + lastSubtypeNo: 74, maxBgInstances: null, methods: { }, @@ -74872,13 +79968,49 @@ const microcode_BufferWriter__C4479_VT = mkVTable({ "set/buf": null, "ptr": null, "set/ptr": null, - "buffer": microcode_BufferWriter_buffer__P4482, - "writeByte": microcode_BufferWriter_writeByte__P4483, - "writeBuffer": microcode_BufferWriter_writeBuffer__P4484, + "buffer": microcode_BufferWriter_buffer__P4624, + "writeByte": microcode_BufferWriter_writeByte__P4625, + "writeBuffer": microcode_BufferWriter_writeBuffer__P4626, }, }); -const user_interface_base_Occlusions__C3394_VT = mkVTable({ - name: "Occlusions", +const user_interface_base_PickerNavigator__C3776_VT = mkVTable({ + name: "PickerNavigator", + numFields: 4, + classNo: 75, + lastSubtypeNo: 77, + maxBgInstances: null, + methods: { + "reportAria": user_interface_base_PickerNavigator_reportAria__P5281, + }, + iface: { + "deleteButton": null, + "set/deleteButton": null, + "row": null, + "set/row": null, + "col": null, + "set/col": null, + "picker": null, + "set/picker": null, + "width": user_interface_base_PickerNavigator_width__P5277, + "length": user_interface_base_PickerNavigator_length__P5278, + "hasDelete": user_interface_base_PickerNavigator_hasDelete__P3778, + "setBtns": user_interface_base_PickerNavigator_setBtns__P3781, + "addRow": user_interface_base_PickerNavigator_addRow__P3782, + "moveToIndex": user_interface_base_PickerNavigator_moveToIndex__P3784, + "height": user_interface_base_PickerNavigator_height__P5279, + "currentRowWidth": user_interface_base_PickerNavigator_currentRowWidth__P5280, + "initialCursor": user_interface_base_PickerNavigator_initialCursor__P3785, + "clear": user_interface_base_PickerNavigator_clear__P3786, + "addDelete": user_interface_base_PickerNavigator_addDelete__P3788, + "drawComponents": user_interface_base_PickerNavigator_drawComponents__P3789, + "getCurrent": user_interface_base_PickerNavigator_getCurrent__P3790, + "move": user_interface_base_PickerNavigator_move__P3792, + "updateAria": user_interface_base_PickerNavigator_updateAria__P3793, + "reportAria": user_interface_base_PickerNavigator_reportAria__P5281, + }, +}); +const microcode_Sample__C4606_VT = mkVTable({ + name: "Sample", numFields: 4, classNo: 78, lastSubtypeNo: 78, @@ -74886,20 +80018,328 @@ const user_interface_base_Occlusions__C3394_VT = mkVTable({ methods: { }, iface: { - "left": null, - "set/left": null, - "top": null, - "set/top": null, - "right": null, - "set/right": null, - "bottom": null, - "set/bottom": null, - "has": user_interface_base_Occlusions_has__P3395, - "FromSprite": user_interface_base_Occlusions_FromSprite__P3397, + "label": null, + "set/label": null, + "ariaId": null, + "set/ariaId": null, + "icon": null, + "set/icon": null, + "b64": null, + "set/b64": null, + "source": microcode_Sample_source__P4608, }, }); -const music_Melody__C4900_VT = mkVTable({ - name: "Melody", +const microcode_SamplesGallery__C4612_VT = mkVTable({ + name: "SamplesGallery", + numFields: 9, + classNo: 28, + lastSubtypeNo: 28, + maxBgInstances: null, + methods: { + "startup": microcode_SamplesGallery_startup__P4615, + "shutdown": microcode_SamplesGallery_shutdown__P4614, + "activate": microcode_SamplesGallery_activate__P4617, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_CursorScene_update__P3809, + "draw": microcode_SamplesGallery_draw__P4618, + "moveCursor": microcode_SamplesGallery_moveCursor__P4616, + }, + iface: { + "xfrm_": null, + "set/xfrm_": null, + "color_": null, + "set/color_": null, + "backgroundCaptured_": null, + "set/backgroundCaptured_": null, + "app": null, + "set/app": null, + "name": null, + "set/name": null, + "navigator": null, + "set/navigator": null, + "cursor": null, + "set/cursor": null, + "picker": null, + "set/picker": null, + "sampleButtons": null, + "set/sampleButtons": null, + "shutdown": microcode_SamplesGallery_shutdown__P4614, + "startup": microcode_SamplesGallery_startup__P4615, + "moveCursor": microcode_SamplesGallery_moveCursor__P4616, + "activate": microcode_SamplesGallery_activate__P4617, + "draw": microcode_SamplesGallery_draw__P4618, + "moveTo": user_interface_base_CursorScene_moveTo__P5287, + "back": user_interface_base_CursorScene_back__P3806, + "update": user_interface_base_CursorScene_update__P3809, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, + }, +}); +const microgui_GUIComponentScene__C3986_VT = mkVTable({ + name: "GUIComponentScene", + numFields: 7, + classNo: 31, + lastSubtypeNo: 32, + maxBgInstances: null, + methods: { + "startup": microgui_GUIComponentScene_startup__P3993, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "activate": microgui_GUIComponentScene_activate__P3989, + "deactivate": microgui_GUIComponentScene_deactivate__P3990, + "update": user_interface_base_Scene_update__P3668, + "draw": microgui_GUIComponentScene_draw__P3995, + }, + iface: { + "xfrm_": null, + "set/xfrm_": null, + "color_": null, + "set/color_": null, + "backgroundCaptured_": null, + "set/backgroundCaptured_": null, + "app": null, + "set/app": null, + "name": null, + "set/name": null, + "components": null, + "set/components": null, + "currentComponentID": null, + "set/currentComponentID": null, + "activate": microgui_GUIComponentScene_activate__P3989, + "deactivate": microgui_GUIComponentScene_deactivate__P3990, + "startup": microgui_GUIComponentScene_startup__P3993, + "draw": microgui_GUIComponentScene_draw__P3995, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "update": user_interface_base_Scene_update__P3668, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, + }, +}); +const microcode_MicroCodeSettings__C4788_VT = mkVTable({ + name: "MicroCodeSettings", + numFields: 7, + classNo: 32, + lastSubtypeNo: 32, + maxBgInstances: null, + methods: { + "startup": microgui_GUIComponentScene_startup__P3993, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "activate": microgui_GUIComponentScene_activate__P3989, + "deactivate": microgui_GUIComponentScene_deactivate__P3990, + "update": user_interface_base_Scene_update__P3668, + "draw": microgui_GUIComponentScene_draw__P3995, + }, + iface: { + "xfrm_": null, + "set/xfrm_": null, + "color_": null, + "set/color_": null, + "backgroundCaptured_": null, + "set/backgroundCaptured_": null, + "app": null, + "set/app": null, + "name": null, + "set/name": null, + "components": null, + "set/components": null, + "currentComponentID": null, + "set/currentComponentID": null, + "activate": microgui_GUIComponentScene_activate__P3989, + "deactivate": microgui_GUIComponentScene_deactivate__P3990, + "startup": microgui_GUIComponentScene_startup__P3993, + "draw": microgui_GUIComponentScene_draw__P3995, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "update": user_interface_base_Scene_update__P3668, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, + }, +}); +const microgui_GUIComponentAbstract__C3930_VT = mkVTable({ + name: "GUIComponentAbstract", + numFields: 19, + classNo: 33, + lastSubtypeNo: 34, + maxBgInstances: null, + methods: { + "startup": user_interface_base_Scene_startup__P3664, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "activate": user_interface_base_Scene_activate__P3666, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_Scene_update__P3668, + "draw": microgui_GUIComponentAbstract_draw__P3935, + "makeActive": microgui_GUIComponentAbstract_makeActive__P3941, + "unmakeActive": microgui_GUIComponentAbstract_unmakeActive__P3942, + }, + iface: { + "xfrm_": null, + "set/xfrm_": null, + "color_": null, + "set/color_": null, + "backgroundCaptured_": null, + "set/backgroundCaptured_": null, + "app": null, + "set/app": null, + "name": null, + "set/name": null, + "alignment": null, + "set/alignment": null, + "unscaledWidth": null, + "set/unscaledWidth": null, + "unscaledHeight": null, + "set/unscaledHeight": null, + "isActive": null, + "set/isActive": null, + "isHidden": null, + "set/isHidden": null, + "context": null, + "set/context": null, + "bounds": null, + "set/bounds": null, + "backgroundColour": null, + "set/backgroundColour": null, + "xScaling": null, + "set/xScaling": null, + "yScaling": null, + "set/yScaling": null, + "xOffset": null, + "set/xOffset": null, + "yOffset": null, + "set/yOffset": null, + "hasBorder": null, + "set/hasBorder": null, + "showBackground": null, + "set/showBackground": null, + "getLeftAndTop": microgui_GUIComponentAbstract_getLeftAndTop__P5525, + "rescaleWidthTo": microgui_GUIComponentAbstract_rescaleWidthTo__P3933, + "rescaleHeightTo": microgui_GUIComponentAbstract_rescaleHeightTo__P3934, + "draw": microgui_GUIComponentAbstract_draw__P3935, + "width": microgui_GUIComponentAbstract_width__P3936, + "height": microgui_GUIComponentAbstract_height__P3937, + "active": microgui_GUIComponentAbstract_active__P3938, + "hidden": microgui_GUIComponentAbstract_hidden__P3939, + "makeActive": microgui_GUIComponentAbstract_makeActive__P3941, + "unmakeActive": microgui_GUIComponentAbstract_unmakeActive__P3942, + "hide": microgui_GUIComponentAbstract_hide__P3943, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "startup": user_interface_base_Scene_startup__P3664, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "activate": user_interface_base_Scene_activate__P3666, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_Scene_update__P3668, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, + }, +}); +const microgui_RadioButtonCollection__C3980_VT = mkVTable({ + name: "RadioButtonCollection", + numFields: 25, + classNo: 34, + lastSubtypeNo: 34, + maxBgInstances: null, + methods: { + "startup": user_interface_base_Scene_startup__P3664, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "activate": user_interface_base_Scene_activate__P3666, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_Scene_update__P3668, + "draw": microgui_RadioButtonCollection_draw__P3984, + "makeActive": microgui_RadioButtonCollection_makeActive__P3982, + "unmakeActive": microgui_GUIComponentAbstract_unmakeActive__P3942, + }, + iface: { + "xfrm_": null, + "set/xfrm_": null, + "color_": null, + "set/color_": null, + "backgroundCaptured_": null, + "set/backgroundCaptured_": null, + "app": null, + "set/app": null, + "name": null, + "set/name": null, + "alignment": null, + "set/alignment": null, + "unscaledWidth": null, + "set/unscaledWidth": null, + "unscaledHeight": null, + "set/unscaledHeight": null, + "isActive": null, + "set/isActive": null, + "isHidden": null, + "set/isHidden": null, + "context": null, + "set/context": null, + "bounds": null, + "set/bounds": null, + "backgroundColour": null, + "set/backgroundColour": null, + "xScaling": null, + "set/xScaling": null, + "yScaling": null, + "set/yScaling": null, + "xOffset": null, + "set/xOffset": null, + "yOffset": null, + "set/yOffset": null, + "hasBorder": null, + "set/hasBorder": null, + "showBackground": null, + "set/showBackground": null, + "title": null, + "set/title": null, + "btns": null, + "set/btns": null, + "selectedTextBtnIndex": null, + "set/selectedTextBtnIndex": null, + "xBorder": null, + "set/xBorder": null, + "minYBorder": null, + "set/minYBorder": null, + "backBtn": null, + "set/backBtn": null, + "autoScale": microgui_RadioButtonCollection_autoScale__P5537, + "makeActive": microgui_RadioButtonCollection_makeActive__P3982, + "setupButtonBindings": microgui_RadioButtonCollection_setupButtonBindings__P3983, + "draw": microgui_RadioButtonCollection_draw__P3984, + "getLeftAndTop": microgui_GUIComponentAbstract_getLeftAndTop__P5525, + "rescaleWidthTo": microgui_GUIComponentAbstract_rescaleWidthTo__P3933, + "rescaleHeightTo": microgui_GUIComponentAbstract_rescaleHeightTo__P3934, + "width": microgui_GUIComponentAbstract_width__P3936, + "height": microgui_GUIComponentAbstract_height__P3937, + "active": microgui_GUIComponentAbstract_active__P3938, + "hidden": microgui_GUIComponentAbstract_hidden__P3939, + "unmakeActive": microgui_GUIComponentAbstract_unmakeActive__P3942, + "hide": microgui_GUIComponentAbstract_hide__P3943, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "startup": user_interface_base_Scene_startup__P3664, + "shutdown": user_interface_base_Scene_shutdown__P3665, + "activate": user_interface_base_Scene_activate__P3666, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_Scene_update__P3668, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, + }, +}); +const microgui_RadioButton__C3973_VT = mkVTable({ + name: "RadioButton", numFields: 6, classNo: 79, lastSubtypeNo: 79, @@ -74907,30 +80347,101 @@ const music_Melody__C4900_VT = mkVTable({ methods: { }, iface: { - "melodyArray": null, - "set/melodyArray": null, - "currentDuration": null, - "set/currentDuration": null, - "currentOctave": null, - "set/currentOctave": null, - "currentPos": null, - "set/currentPos": null, - "repeating": null, - "set/repeating": null, - "background": null, - "set/background": null, - "hasNextNote": music_Melody_hasNextNote__P4901, - "nextNote": music_Melody_nextNote__P4902, + "text": null, + "set/text": null, + "textColour": null, + "set/textColour": null, + "x": null, + "set/x": null, + "y": null, + "set/y": null, + "onClick": null, + "set/onClick": null, + "isSelected": null, + "set/isSelected": null, + "setSelected": microgui_RadioButton_setSelected__P3976, + "setPosition": microgui_RadioButton_setPosition__P3977, + "click": microgui_RadioButton_click__P3978, + "draw": microgui_RadioButton_draw__P3979, + }, +}); +const music_Playable__C2953_VT = mkVTable({ + name: "Playable", + numFields: 1, + classNo: 80, + lastSubtypeNo: 82, + maxBgInstances: null, + methods: { + "_play": music_Playable__play__P2956, + }, + iface: { + "stopped": null, + "set/stopped": null, + "_play": music_Playable__play__P2956, + "loop": music_Playable_loop__P2957, + }, +}); +const music_StringArrayPlayable__C2958_VT = mkVTable({ + name: "StringArrayPlayable", + numFields: 3, + classNo: 81, + lastSubtypeNo: 81, + maxBgInstances: null, + methods: { + "_play": music_StringArrayPlayable__play__P2960, + }, + iface: { + "stopped": null, + "set/stopped": null, + "notes": null, + "set/notes": null, + "tempo": null, + "set/tempo": null, + "_play": music_StringArrayPlayable__play__P2960, + "loop": music_Playable_loop__P2957, + }, +}); +const SoundExpression__C2849_VT = mkVTable({ + name: "SoundExpression", + numFields: 2, + classNo: 82, + lastSubtypeNo: 82, + maxBgInstances: null, + methods: { + "_play": SoundExpression__play__P2851, + }, + iface: { + "stopped": null, + "set/stopped": null, + "notes": null, + "set/notes": null, + "_play": SoundExpression__play__P2851, + "play": SoundExpression_play__P2852, + "playUntilDone": SoundExpression_playUntilDone__P2853, + "loop": music_Playable_loop__P2957, + }, +}); +const user_interface_base_NavigationError__C3750_VT = mkVTable({ + name: "NavigationError", + numFields: 1, + classNo: 83, + lastSubtypeNo: 83, + maxBgInstances: null, + methods: { + }, + iface: { + "kind": null, + "set/kind": null, }, }); -const microcode_LEDNavigator__C4585_VT = mkVTable({ +const microcode_LEDNavigator__C4728_VT = mkVTable({ name: "LEDNavigator", numFields: 4, - classNo: 64, - lastSubtypeNo: 64, + classNo: 76, + lastSubtypeNo: 76, maxBgInstances: null, methods: { - "reportAria": microcode_LEDNavigator_reportAria__P5844, + "reportAria": microcode_LEDNavigator_reportAria__P6039, }, iface: { "deleteButton": null, @@ -74941,32 +80452,32 @@ const microcode_LEDNavigator__C4585_VT = mkVTable({ "set/col": null, "picker": null, "set/picker": null, - "reportAria": microcode_LEDNavigator_reportAria__P5844, - "width": user_interface_base_PickerNavigator_width__P5288, - "length": user_interface_base_PickerNavigator_length__P5289, - "hasDelete": user_interface_base_PickerNavigator_hasDelete__P3805, - "setBtns": user_interface_base_PickerNavigator_setBtns__P3808, - "addRow": user_interface_base_PickerNavigator_addRow__P3809, - "moveToIndex": user_interface_base_PickerNavigator_moveToIndex__P3811, - "height": user_interface_base_PickerNavigator_height__P5290, - "currentRowWidth": user_interface_base_PickerNavigator_currentRowWidth__P5291, - "initialCursor": user_interface_base_PickerNavigator_initialCursor__P3812, - "clear": user_interface_base_PickerNavigator_clear__P3813, - "addDelete": user_interface_base_PickerNavigator_addDelete__P3815, - "drawComponents": user_interface_base_PickerNavigator_drawComponents__P3816, - "getCurrent": user_interface_base_PickerNavigator_getCurrent__P3817, - "move": user_interface_base_PickerNavigator_move__P3819, - "updateAria": user_interface_base_PickerNavigator_updateAria__P3820, + "reportAria": microcode_LEDNavigator_reportAria__P6039, + "width": user_interface_base_PickerNavigator_width__P5277, + "length": user_interface_base_PickerNavigator_length__P5278, + "hasDelete": user_interface_base_PickerNavigator_hasDelete__P3778, + "setBtns": user_interface_base_PickerNavigator_setBtns__P3781, + "addRow": user_interface_base_PickerNavigator_addRow__P3782, + "moveToIndex": user_interface_base_PickerNavigator_moveToIndex__P3784, + "height": user_interface_base_PickerNavigator_height__P5279, + "currentRowWidth": user_interface_base_PickerNavigator_currentRowWidth__P5280, + "initialCursor": user_interface_base_PickerNavigator_initialCursor__P3785, + "clear": user_interface_base_PickerNavigator_clear__P3786, + "addDelete": user_interface_base_PickerNavigator_addDelete__P3788, + "drawComponents": user_interface_base_PickerNavigator_drawComponents__P3789, + "getCurrent": user_interface_base_PickerNavigator_getCurrent__P3790, + "move": user_interface_base_PickerNavigator_move__P3792, + "updateAria": user_interface_base_PickerNavigator_updateAria__P3793, }, }); -const microcode_MelodyNavigator__C4583_VT = mkVTable({ +const microcode_MelodyNavigator__C4726_VT = mkVTable({ name: "MelodyNavigator", numFields: 4, - classNo: 65, - lastSubtypeNo: 65, + classNo: 77, + lastSubtypeNo: 77, maxBgInstances: null, methods: { - "reportAria": microcode_MelodyNavigator_reportAria__P5842, + "reportAria": microcode_MelodyNavigator_reportAria__P6037, }, iface: { "deleteButton": null, @@ -74977,38 +80488,38 @@ const microcode_MelodyNavigator__C4583_VT = mkVTable({ "set/col": null, "picker": null, "set/picker": null, - "reportAria": microcode_MelodyNavigator_reportAria__P5842, - "width": user_interface_base_PickerNavigator_width__P5288, - "length": user_interface_base_PickerNavigator_length__P5289, - "hasDelete": user_interface_base_PickerNavigator_hasDelete__P3805, - "setBtns": user_interface_base_PickerNavigator_setBtns__P3808, - "addRow": user_interface_base_PickerNavigator_addRow__P3809, - "moveToIndex": user_interface_base_PickerNavigator_moveToIndex__P3811, - "height": user_interface_base_PickerNavigator_height__P5290, - "currentRowWidth": user_interface_base_PickerNavigator_currentRowWidth__P5291, - "initialCursor": user_interface_base_PickerNavigator_initialCursor__P3812, - "clear": user_interface_base_PickerNavigator_clear__P3813, - "addDelete": user_interface_base_PickerNavigator_addDelete__P3815, - "drawComponents": user_interface_base_PickerNavigator_drawComponents__P3816, - "getCurrent": user_interface_base_PickerNavigator_getCurrent__P3817, - "move": user_interface_base_PickerNavigator_move__P3819, - "updateAria": user_interface_base_PickerNavigator_updateAria__P3820, + "reportAria": microcode_MelodyNavigator_reportAria__P6037, + "width": user_interface_base_PickerNavigator_width__P5277, + "length": user_interface_base_PickerNavigator_length__P5278, + "hasDelete": user_interface_base_PickerNavigator_hasDelete__P3778, + "setBtns": user_interface_base_PickerNavigator_setBtns__P3781, + "addRow": user_interface_base_PickerNavigator_addRow__P3782, + "moveToIndex": user_interface_base_PickerNavigator_moveToIndex__P3784, + "height": user_interface_base_PickerNavigator_height__P5279, + "currentRowWidth": user_interface_base_PickerNavigator_currentRowWidth__P5280, + "initialCursor": user_interface_base_PickerNavigator_initialCursor__P3785, + "clear": user_interface_base_PickerNavigator_clear__P3786, + "addDelete": user_interface_base_PickerNavigator_addDelete__P3788, + "drawComponents": user_interface_base_PickerNavigator_drawComponents__P3789, + "getCurrent": user_interface_base_PickerNavigator_getCurrent__P3790, + "move": user_interface_base_PickerNavigator_move__P3792, + "updateAria": user_interface_base_PickerNavigator_updateAria__P3793, }, }); -const microgui_Keyboard__C4755_VT = mkVTable({ +const microgui_Keyboard__C3876_VT = mkVTable({ name: "Keyboard", - numFields: 23, - classNo: 28, - lastSubtypeNo: 28, + numFields: 26, + classNo: 29, + lastSubtypeNo: 29, maxBgInstances: null, methods: { - "startup": microgui_Keyboard_startup__P4757, - "shutdown": user_interface_base_CursorScene_shutdown__P3834, - "activate": user_interface_base_CursorScene_activate__P3835, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "update": user_interface_base_CursorScene_update__P3836, - "draw": microgui_Keyboard_draw__P4765, - "moveCursor": user_interface_base_CursorScene_moveCursor__P3831, + "startup": microgui_Keyboard_startup__P3878, + "shutdown": user_interface_base_CursorScene_shutdown__P3807, + "activate": user_interface_base_CursorScene_activate__P3808, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "update": user_interface_base_CursorScene_update__P3809, + "draw": microgui_Keyboard_draw__P3888, + "moveCursor": user_interface_base_CursorScene_moveCursor__P3804, }, iface: { "xfrm_": null, @@ -75049,6 +80560,8 @@ const microgui_Keyboard__C4755_VT = mkVTable({ "set/shakeTextCounter": null, "shakeStrength": null, "set/shakeStrength": null, + "txtColor": null, + "set/txtColor": null, "FRAME_COUNTER_CURSOR_ON": null, "set/FRAME_COUNTER_CURSOR_ON": null, "FRAME_COUNTER_CURSOR_OFF": null, @@ -75057,45 +80570,51 @@ const microgui_Keyboard__C4755_VT = mkVTable({ "set/MAX_TEXT_LENGTH": null, "foregroundColor": null, "set/foregroundColor": null, - "startup": microgui_Keyboard_startup__P4757, - "appendText": microgui_Keyboard_appendText__P4758, - "deletePriorCharacters": microgui_Keyboard_deletePriorCharacters__P4759, - "swapCase": microgui_Keyboard_swapCase__P4760, - "getText": microgui_Keyboard_getText__P4761, - "textLen": microgui_Keyboard_textLen__P4762, - "nextScene": microgui_Keyboard_nextScene__P4763, - "shakeText": microgui_Keyboard_shakeText__P4764, - "draw": microgui_Keyboard_draw__P4765, - "moveCursor": user_interface_base_CursorScene_moveCursor__P3831, - "moveTo": user_interface_base_CursorScene_moveTo__P5298, - "back": user_interface_base_CursorScene_back__P3833, - "shutdown": user_interface_base_CursorScene_shutdown__P3834, - "activate": user_interface_base_CursorScene_activate__P3835, - "update": user_interface_base_CursorScene_update__P3836, - "xfrm": user_interface_base_Scene_xfrm__P3687, - "backgroundColor": user_interface_base_Scene_backgroundColor__P3688, - "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3689, - "deactivate": user_interface_base_Scene_deactivate__P3694, - "backgroundCaptured": user_interface_base_Scene_backgroundCaptured__P3697, - "captureBackground": user_interface_base_Scene_captureBackground__P3698, - "releaseBackground": user_interface_base_Scene_releaseBackground__P3699, - "__init": user_interface_base_Scene___init__P3700, + "passedDeleteFn": null, + "set/passedDeleteFn": null, + "passedBackBtn": null, + "set/passedBackBtn": null, + "startup": microgui_Keyboard_startup__P3878, + "appendText": microgui_Keyboard_appendText__P3879, + "deletePriorCharacters": microgui_Keyboard_deletePriorCharacters__P3880, + "setText": microgui_Keyboard_setText__P3881, + "swapCase": microgui_Keyboard_swapCase__P3882, + "deleteFn": microgui_Keyboard_deleteFn__P3883, + "getText": microgui_Keyboard_getText__P3884, + "textLen": microgui_Keyboard_textLen__P3885, + "nextScene": microgui_Keyboard_nextScene__P3886, + "shakeText": microgui_Keyboard_shakeText__P3887, + "draw": microgui_Keyboard_draw__P3888, + "moveCursor": user_interface_base_CursorScene_moveCursor__P3804, + "moveTo": user_interface_base_CursorScene_moveTo__P5287, + "back": user_interface_base_CursorScene_back__P3806, + "shutdown": user_interface_base_CursorScene_shutdown__P3807, + "activate": user_interface_base_CursorScene_activate__P3808, + "update": user_interface_base_CursorScene_update__P3809, + "xfrm": user_interface_base_Scene_xfrm__P3660, + "backgroundColor": user_interface_base_Scene_backgroundColor__P3661, + "set/backgroundColor": user_interface_base_Scene_backgroundColor__P3662, + "deactivate": user_interface_base_Scene_deactivate__P3667, + "captureBackground": user_interface_base_Scene_captureBackground__P3671, + "releaseBackground": user_interface_base_Scene_releaseBackground__P3672, + "__init": user_interface_base_Scene___init__P3673, }, }); -const user_interface_base_GridNavigator__C3794_VT = mkVTable({ +const user_interface_base_GridNavigator__C3767_VT = mkVTable({ name: "GridNavigator", numFields: 5, classNo: 71, lastSubtypeNo: 71, maxBgInstances: null, methods: { - "clear": user_interface_base_RowNavigator_clear__P3782, - "getRow": user_interface_base_GridNavigator_getRow__P3796, - "setBtns": user_interface_base_GridNavigator_setBtns__P3798, - "addRow": user_interface_base_GridNavigator_addRow__P3799, - "move": user_interface_base_GridNavigator_move__P3801, - "reportAria": user_interface_base_RowNavigator_reportAria__P5285, - "getCurrent": user_interface_base_GridNavigator_getCurrent__P3802, + "clear": user_interface_base_RowNavigator_clear__P3755, + "getRow": user_interface_base_GridNavigator_getRow__P3769, + "getCol": user_interface_base_GridNavigator_getCol__P3770, + "setBtns": user_interface_base_GridNavigator_setBtns__P3771, + "addRow": user_interface_base_GridNavigator_addRow__P3772, + "move": user_interface_base_GridNavigator_move__P3774, + "reportAria": user_interface_base_RowNavigator_reportAria__P5274, + "getCurrent": user_interface_base_GridNavigator_getCurrent__P3775, }, iface: { "buttonGroups": null, @@ -75108,20 +80627,21 @@ const user_interface_base_GridNavigator__C3794_VT = mkVTable({ "set/height": null, "widths": null, "set/widths": null, - "getRow": user_interface_base_GridNavigator_getRow__P3796, - "setBtns": user_interface_base_GridNavigator_setBtns__P3798, - "addRow": user_interface_base_GridNavigator_addRow__P3799, - "move": user_interface_base_GridNavigator_move__P3801, - "getCurrent": user_interface_base_GridNavigator_getCurrent__P3802, - "clear": user_interface_base_RowNavigator_clear__P3782, - "drawComponents": user_interface_base_RowNavigator_drawComponents__P3788, - "reportAria": user_interface_base_RowNavigator_reportAria__P5285, - "makeGood": user_interface_base_RowNavigator_makeGood__P5286, - "initialCursor": user_interface_base_RowNavigator_initialCursor__P3793, + "getRow": user_interface_base_GridNavigator_getRow__P3769, + "getCol": user_interface_base_GridNavigator_getCol__P3770, + "setBtns": user_interface_base_GridNavigator_setBtns__P3771, + "addRow": user_interface_base_GridNavigator_addRow__P3772, + "move": user_interface_base_GridNavigator_move__P3774, + "getCurrent": user_interface_base_GridNavigator_getCurrent__P3775, + "clear": user_interface_base_RowNavigator_clear__P3755, + "drawComponents": user_interface_base_RowNavigator_drawComponents__P3761, + "reportAria": user_interface_base_RowNavigator_reportAria__P5274, + "makeGood": user_interface_base_RowNavigator_makeGood__P5275, + "initialCursor": user_interface_base_RowNavigator_initialCursor__P3766, }, }); -const breakpoints = setupDebugger(1, ["wordLogo___3884","editorBackground___3885","lt___3887","gt___3888","lte___3889","gte___3890","eq___3891","neq___3892","note4x3___5410","iconEditor___3896","melodyEditor___3897","disk___3898","disk1___3899","disk2___3900","disk3___3901","largeDiskIcon___3902","solid_red___3903","solid_black___3904","arm_open___3905","arm_close___3906","btn_stop___3907","btn_delete___3908","btn_plus___3909","arith_plus___3910","arith_equals___3911","loop___3912","btn_when_insertion_point___3913","btn_do_insertion_point___3914","rule_arrow___3915","showScreen___3916","showNumber___3917","rule_handle___3918","tile_switch_page___3919","tile_start_page___3920","tile_page_1___3921","tile_page_2___3922","tile_page_3___3923","tile_page_4___3924","tile_page_5___3925","tile_timer___3926","tile_timespan_short___3927","tile_timespan_long___3928","tile_timespan_fiveSeconds___3929","tile_timespan_random___3930","tile_pin_0___3931","tile_pin_1___3932","tile_pin_2___3933","radio_value___3934","radio_receive___3935","radio_send___3936","radio_set_group_small___3937","microbit_logo___3938","finger_release___3939","tile_color_black___3940","tile_color_red___3941","tile_color_blue___3942","tile_sparkle___3943","tile_rainbow___3944","tile_color_green___3945","tile_color_magenta___3946","tile_color_yellow___3947","rgbLed___3948","temp_warmer___3949","temp_colder___3950","light_sensor___3951","speakerSoft___3952","speakerFun___3953","music___3954","note_on___3955","note_off___3956","soundGiggle___3957","soundHappy___3958","soundHello___3959","soundMysterious___3960","soundSad___3961","soundSlide___3962","soundSoaring___3963","soundSpring___3964","soundTwinkle___3965","soundYawn___3966","moveShake___3967","moveTiltDown___3968","moveTiltUp___3969","moveTiltLeft___3970","moveTiltRight___3971","moveFaceUp___3972","moveFaceDown___3973","diceToss___3974","cupXread___3975","cupYread___3976","cupZread___3977","cupXassign___3978","cupYassign___3979","cupZassign___3980","cupXwritten___3981","cupYwritten___3982","cupZwritten___3983","largeNewProgramIcon___3984","sampleFlashingHeart___3985","sampleSmileyButtons___3986","sampleFirefly___3987","sampleClapLights___3988","sampleRockPaperScissors___3989","sampleTeleportDuck___3990","samplePetHamster___3991","sampleHeadsOrTails___3992","sampleReactionTime___3993","sampleHotPotato___3994","sampleRailCrossingLight___3995","settingsGear___3996","one___5616","two___5619","three___5622","four___5625","five___5628","servo_power___3997","servo_set_angle___3998","blocks1___3999","blocks2___4000","blocks3___4001","blocks4___4002","blocks5___4003","num2image___5645","kita_slider___4006","reflected_light_sensor___4007","kita_key_1___4008","kita_key_2___4009","kita_rotary___4010","kita_rotary_left___4011","kita_rotary_right___4012","car___4013","car_forward___4014","car_forward_fast___4015","car_reverse___4016","car_left_turn___4017","car_left_spin___4018","car_stop___4019","car_wall___4020","line_sensor___4021","line_neither_on___4022","line_left_on___4023","line_right_on___4024","line_both_on___4025","line_none_from_left___4026","line_none_from_right___4027","distance_sensor___4028","soil_moisture___4029","relay___4030","loud___4031","quiet___4032","decimalEditor___4033","ranges___4250","runtimeHost___5753","theInterpreter___5755","iconEditorTile___5823","melodyEditorTile___5825","decimalEditorTile___5827","font___4589","matchPressReleaseTable___5847","matchAccelerometerTable___5855","sensorInfo___5895","infixOps___5924","__keyboardLayout___6021","app___3880","SAVESLOT_AUTO___4287","vars___5901","noteNames___4441","buttons___5868","extraImage___5360","editorMode___4638","VERSION___4365","microcode_PageEditor_MARGIN___4329","microcode_PageEditor_RULE_MARGIN___4330","filterMath___5751","only5___5750","microcode_Options_menuProfiling___4461","microcode_Options_profiling___4460"]) +const breakpoints = setupDebugger(1, ["wordLogo___4048","editorBackground___4049","lt___4051","gt___4052","lte___4053","gte___4054","eq___4055","neq___4056","note4x3___5621","iconEditor___4060","melodyEditor___4061","disk___4062","disk1___4063","disk2___4064","disk3___4065","largeDiskIcon___4066","solid_red___4067","solid_black___4068","arm_open___4069","arm_close___4070","btn_stop___4071","btn_delete___4072","btn_plus___4073","arith_plus___4074","arith_equals___4075","loop___4076","btn_when_insertion_point___4077","btn_do_insertion_point___4078","rule_arrow___4079","showScreen___4080","showNumber___4081","rule_handle___4082","tile_switch_page___4083","tile_start_page___4084","tile_page_1___4085","tile_page_2___4086","tile_page_3___4087","tile_page_4___4088","tile_page_5___4089","tile_timer___4090","tile_timespan_short___4091","tile_timespan_long___4092","tile_timespan_fiveSeconds___4093","tile_timespan_random___4094","tile_pin_0___4095","tile_pin_1___4096","tile_pin_2___4097","radio_value___4098","radio_receive___4099","radio_send___4100","radio_set_group_small___4101","microbit_logo___4102","finger_release___4103","tile_color_black___4104","tile_color_red___4105","tile_color_blue___4106","tile_sparkle___4107","tile_rainbow___4108","tile_color_green___4109","tile_color_magenta___4110","tile_color_yellow___4111","rgbLed___4112","temp_warmer___4113","temp_colder___4114","light_sensor___4115","speakerSoft___4116","speakerFun___4117","music___4118","note_on___4119","note_off___4120","soundGiggle___4121","soundHappy___4122","soundHello___4123","soundMysterious___4124","soundSad___4125","soundSlide___4126","soundSoaring___4127","soundSpring___4128","soundTwinkle___4129","soundYawn___4130","moveShake___4131","moveTiltDown___4132","moveTiltUp___4133","moveTiltLeft___4134","moveTiltRight___4135","moveFaceUp___4136","moveFaceDown___4137","diceToss___4138","cupXread___4139","cupYread___4140","cupZread___4141","cupXassign___4142","cupYassign___4143","cupZassign___4144","cupXwritten___4145","cupYwritten___4146","cupZwritten___4147","largeNewProgramIcon___4148","sampleFlashingHeart___4149","sampleSmileyButtons___4150","sampleFirefly___4151","sampleClapLights___4152","sampleRockPaperScissors___4153","sampleTeleportDuck___4154","samplePetHamster___4155","sampleHeadsOrTails___4156","sampleReactionTime___4157","sampleHotPotato___4158","sampleRailCrossingLight___4159","settingsGear___4160","one___5827","two___5830","three___5833","four___5836","five___5839","servo_power___4161","servo_set_angle___4162","blocks1___4163","blocks2___4164","blocks3___4165","blocks4___4166","blocks5___4167","num2image___5856","kita_slider___4170","reflected_light_sensor___4171","kita_key_1___4172","kita_key_2___4173","kita_rotary___4174","kita_rotary_left___4175","kita_rotary_right___4176","run___4177","runDisabled___4178","stop___4179","stopDisabled___4180","soil_moisture___4181","distance_sensor___4182","relay___4183","loud___4184","quiet___4185","decimalEditor___4186","ranges___4407","theInterpreter___5944","buttonStart___5989","iconEditorTile___6016","melodyEditorTile___6018","decimalEditorTile___6020","posIntEditorTile___6022","font___4732","sensorInfo___6042","matchPressReleaseTable___6049","runtimeHost___4743","vars2tids___6117","sensorInfo___6138","infixOps___6151","app___4044","SAVESLOT_AUTO___4438","sensorTids___6136","noteNames___4583","microcodeClassic___4785","extraImage___5572","buttons___6075","pins___6079","pin2tid___6083","gestures___6063","gestures2tids___6071","microcode_PageEditor_MARGIN___4485","microcode_PageEditor_RULE_MARGIN___4486","only5___5940","filterMath___5941","VERSION___4520","microcode_Options_profiling___4602","reportAria___4787"]) -return _main___P4778 +return _main___P4790 }) diff --git a/assets/progs/happySad.mc b/assets/progs/happySad.mc new file mode 100644 index 00000000..00afc073 --- /dev/null +++ b/assets/progs/happySad.mc @@ -0,0 +1,44 @@ +Page 1 +When press button_A Do show_image LED_image ` +1 1 . 1 1 +1 1 . 1 1 +. . . . . +1 . . . 1 +. 1 1 1 . +` + LED_image ` +1 1 . 1 1 +. . . . . +1 . . . 1 +. 1 1 1 . +. . . . . +` + + +When press button_A Do play_sound happy + +When press button_B Do show_image LED_image ` +1 1 . 1 1 +1 1 . 1 1 +. . . . . +. 1 1 1 . +1 . . . 1 +` + LED_image ` +1 1 . 1 1 +1 1 . 1 1 +. . . . . +. . . . . +1 1 1 1 1 +` + + +When press button_B Do play_sound sad + +Page 2 + +Page 3 + +Page 4 + +Page 5 diff --git a/assets/strings/en/tooltips.json b/assets/strings/en/tooltips.json index 22a46d0b..97532d44 100644 --- a/assets/strings/en/tooltips.json +++ b/assets/strings/en/tooltips.json @@ -40,7 +40,7 @@ "T12": "release", "T13": "move", "T14": "timer", - "T15": "light", + "T15": "light (external)", "T16": "temperature", "T17": "radio receive", "T18": "sound", @@ -55,7 +55,7 @@ "T27": "light", "T28": "moisture", "T29": "distance", - "T30": "line", + "T30": "reflected light", "T40": "switch page", "T41": "play sound", "T43": "music", @@ -90,7 +90,7 @@ "T86": "5 seconds", "T87": "loud", "T88": "quiet", - "T89": "NA", + "T89": "NA1", "T90": "shake", "T91": "tilt up", "T92": "tilt down", @@ -110,21 +110,16 @@ "T107": "lost right", "T108": "face up", "T109": "face down", - "T110": "on", - "T111": "off", + "T110": "active", + "T111": "unactive", "T150": "page 1", "T151": "page 2", "T152": "page 3", "T153": "page 4", "T154": "page 5", - "T155": "1", - "T156": "2", - "T157": "3", - "T158": "4", - "T159": "5", "T160": "LED image", - "T161": "red", - "T162": "purple", + "T161": "NA5", + "T162": "NA6", "T163": "giggle", "T164": "happy", "T165": "hello", @@ -135,15 +130,12 @@ "T170": "spring", "T171": "twinkle", "T172": "yawn", - "T173": "variable X", - "T174": "variable Y", - "T175": "variable Z", "T176": "radio value", "T177": "random number", "T178": "repeat", "T179": "melody", - "T180": "temperature", - "T181": "NA", + "T180": "temp.", + "T181": "NA2", "T182": "red", "T183": "green", "T184": "blue", @@ -154,8 +146,8 @@ "T189": "sparkle", "T190": "forward", "T191": "reverse", - "T192": "turn left", - "T193": "turn right", + "T192": "NA3", + "T193": "NA4", "T194": "stop", "T195": "fast forward", "T196": "spin left", diff --git a/editor.ts b/editor.ts index 211105c5..edcecde9 100644 --- a/editor.ts +++ b/editor.ts @@ -95,7 +95,6 @@ namespace microcode { this.programChanged = false this.app.save(SAVESLOT_AUTO, this.progdef.toBuffer()) } - // runProgram(this.progdef) } private pickDiskSLot() { @@ -295,6 +294,21 @@ namespace microcode { this.app.save(SAVESLOT_AUTO, this.progdef.toBuffer()) } else { this.progdef = ProgramDefn.fromBuffer(new BufferReader(buf)) + + progToString(this.progdef) + const pas1 = progToStringRet + // console.log(`PAS1\n${pas1}`) + parseProg(pas1) + const progFromString = parseProgRet + progToString(progFromString) + const pas2 = progToStringRet + // console.log("PAS2") + // console.log(pas2) + // check the programs are the same + control.assert( + pas1 == pas2, + `progs not the same ${pas1} \n---\n ${pas2}` + ) } this.configureP1Keys() } diff --git a/fieldeditors.ts b/fieldeditors.ts index bec09ec7..a82f958e 100644 --- a/fieldeditors.ts +++ b/fieldeditors.ts @@ -32,6 +32,12 @@ namespace microcode { fromBuffer(buf: BufferReader): any { return undefined } + toString(field: any): string { + return "" + } + fromTokens(tokens: string[]): any { + return undefined + } } export class ModifierEditor { @@ -93,6 +99,13 @@ namespace microcode { const str = buf.readString() return { num: str } } + toString(field: BoxedNumAsStr) { + return field.num + } + fromTokens(tokens: string[]) { + // TODO: check that we have a number + return { num: tokens.length > 0 ? tokens[0] : "0" } + } } export class DigitEditor extends ModifierEditor { @@ -170,6 +183,24 @@ namespace microcode { } return img } + toString(img: Bitmap) { + let ret = "" + for (let row = 0; row < 5; row++) { + for (let col = 0; col < 5; col++) { + ret += img.getPixel(col, row) ? `1` : `.` + if (col < 4) ret += " " + } + ret += `\n` + } + return ret + "" + } + fromTokens(tokens: string[]): Bitmap { + let ret = bitmaps.create(5, 5) + for (let i = 0; i < tokens.length && i < 25; i++) { + ret.setPixel(i % 5, Math.idiv(i, 5), tokens[i] == "1" ? 1 : 0) + } + return ret + } } export class IconEditor extends ModifierEditor { @@ -202,6 +233,28 @@ namespace microcode { tempo: number } + export function melodyToNotes(melody: Melody) { + const notes = melody.notes.split("") + let result = "" + for (const n of notes) { + if (n == ".") result += "- " + else result += noteNames[parseInt(n)] + " " + } + return result + "" + } + + function notesToMelody(tokens: string[]) { + let res = "" + tokens.forEach((note, index) => { + if (note == "-") res += "." + else { + const index = noteNames.indexOf(note) + if (index >= 0) res += index.toString() + } + }) + return { notes: res, tempo: 120 } + } + export const MELODY_LENGTH = 4 export const NUM_NOTES = 5 @@ -258,6 +311,12 @@ namespace microcode { } return { tempo, notes } } + toString(melody: Melody): string { + return melodyToNotes(melody) + } + fromTokens(tokens: string[]): Melody { + return notesToMelody(tokens) + } } export class MelodyEditor extends ModifierEditor { @@ -286,16 +345,6 @@ namespace microcode { field ? field : this.fieldEditor.clone(this.field) ) } - // music.play(music.stringPlayable("C - E - G F E D ", 120), music.PlaybackMode.UntilDone) - getNoteSequence() { - const notes = this.field.notes.split("") - let result = "" - for (const n of notes) { - if (n == ".") result += "- " - else result += noteNames[parseInt(n)] + " " - } - return result - } } let iconEditorTile: ModifierEditor = undefined diff --git a/interpreter.ts b/interpreter.ts index 5fea5c5e..d7187154 100644 --- a/interpreter.ts +++ b/interpreter.ts @@ -316,8 +316,10 @@ namespace microcode { } case Tid.TID_ACTUATOR_MUSIC: { // TODO: get the whole sequence and do as one shot, to avoid burps - const mod = this.rule.modifiers[this.modifierIndex] - param = (mod as MelodyEditor).getNoteSequence() + const mod = this.rule.modifiers[ + this.modifierIndex + ] as MelodyEditor + param = melodyToNotes(mod.field) break } case Tid.TID_ACTUATOR_SPEAKER: { diff --git a/language.ts b/language.ts index 5ff3c14e..a8ef69c6 100644 --- a/language.ts +++ b/language.ts @@ -236,7 +236,14 @@ namespace microcode { public static fromBuffer(br: BufferReader) { const defn = new RuleDefn() const handleFieldEditor = (which: string) => { - const by = br.readByte() + let by = br.readByte() + // convert from old to new + if (isOldModifierCoin(by)) + by = Tid.TID_FILTER_COIN_1 + (by - Tid.TID_MODIFIER_COIN_1) + if (isOldModifierVar(by)) + by = + Tid.TID_FILTER_CUP_X_READ + + (by - Tid.TID_MODIFIER_CUP_X_READ) const tile = getEditor(by) if (tile instanceof ModifierEditor) { const field = tile.fieldEditor.fromBuffer(br) @@ -264,6 +271,7 @@ namespace microcode { defn.actuators.push(actuatorEnum) assert(!br.eof()) while (isModifier(br.peekByte())) { + // TODO: convert old coin and old var handleFieldEditor("modifiers") assert(!br.eof()) } @@ -417,6 +425,19 @@ namespace microcode { all.push(getEditor(Tid.TID_DECIMAL_EDITOR)) all.push(getEditor(Tid.TID_POS_INT_EDITOR)) } + if (rangeName == "modifiers") { + // add constants and vars + all.concat([ + Tid.TID_FILTER_COIN_1, + Tid.TID_FILTER_COIN_2, + Tid.TID_FILTER_COIN_3, + Tid.TID_FILTER_COIN_4, + Tid.TID_FILTER_COIN_5, + Tid.TID_FILTER_CUP_X_READ, + Tid.TID_FILTER_CUP_Y_READ, + Tid.TID_FILTER_CUP_Z_READ, + ]) + } all = all .filter((tile: Tile) => isVisible(tile)) diff --git a/locales/tooltips.json b/locales/tooltips.json index ffb0dfbc..c74a6425 100644 --- a/locales/tooltips.json +++ b/locales/tooltips.json @@ -44,7 +44,7 @@ "T12": "release", "T13": "move", "T14": "timer", - "T15": "light", + "T15": "light (external)", "T16": "temperature", "T17": "radio receive", "T18": "sound", @@ -61,7 +61,7 @@ "T28": "moisture", "T29": "distance", - "T30": "line", + "T30": "reflected light", "T40": "switch page", "T41": "play sound", @@ -100,7 +100,7 @@ "T86": "5 seconds", "T87": "loud", "T88": "quiet", - "T89": "NA", + "T89": "NA1", "T90": "shake", "T91": "tilt up", @@ -123,23 +123,18 @@ "T108": "face up", "T109": "face down", - "T110": "on", - "T111": "off", + "T110": "active", + "T111": "unactive", "T150": "page 1", "T151": "page 2", "T152": "page 3", "T153": "page 4", "T154": "page 5", - "T155": "1", - "T156": "2", - "T157": "3", - "T158": "4", - "T159": "5", "T160": "LED image", - "T161": "red", - "T162": "purple", + "T161": "NA5", + "T162": "NA6", "T163": "giggle", "T164": "happy", "T165": "hello", @@ -151,16 +146,13 @@ "T170": "spring", "T171": "twinkle", "T172": "yawn", - "T173": "variable X", - "T174": "variable Y", - "T175": "variable Z", "T176": "radio value", "T177": "random number", "T178": "repeat", "T179": "melody", - "T180": "temperature", - "T181": "NA", + "T180": "temp.", + "T181": "NA2", "T182": "red", "T183": "green", "T184": "blue", @@ -172,8 +164,8 @@ "T190": "forward", "T191": "reverse", - "T192": "turn left", - "T193": "turn right", + "T192": "NA3", + "T193": "NA4", "T194": "stop", "T195": "fast forward", "T196": "spin left", diff --git a/mcparser.ts b/mcparser.ts new file mode 100644 index 00000000..d3a6d2a8 --- /dev/null +++ b/mcparser.ts @@ -0,0 +1,162 @@ +// a pretty printer and parser for MC programs +// web only + +namespace microcode { + export let progToStringRet: string = undefined + //% shim=TD_NOOP + export function progToString(prog: ProgramDefn) { + const ruleToString = (rule: RuleDefn) => { + const toToken = (tile: Tile) => + resolveTooltip("T" + getTid(tile)).replaceAll(" ", "_") + const tileToString = (tile: Tile) => { + const tok = toToken(tile) + if (tile instanceof ModifierEditor) { + const mod = tile as ModifierEditor + const field = mod.fieldEditor.toString(mod.getField()) + if (mod instanceof IconEditor) + return `${tok} \`\n${field}\`\n` + else if (mod instanceof MelodyEditor) + return `${tok} \`${field}\`\n` + else return `${tok} ${field}` + } + return tok + } + return ( + "When " + + toToken(rule.sensor) + + " " + + rule.filters.map(tileToString).join(" ") + + " Do " + + (rule.actuators.length + ? toToken(rule.actuators[0]) + + " " + + rule.modifiers.map(tileToString).join(" ") + : "") + + "\n" + ) + } + const pageToString = (page: PageDefn) => { + const res = page.rules.map(ruleToString) + return res.join("\n") + } + const res = prog.pages.map(pageToString) + progToStringRet = res.map((ps, i) => `Page ${i + 1}\n${ps}`).join("\n") + } + + enum Phase { + Sensor = 1, + Filter, + Actuator, + Modifier, + } + + export let parseProgRet: ProgramDefn = undefined + //% shim=TD_NOOP + export function parseProg(str: string): void { + const token2tile = (tok: string) => { + const tid = tooltip2tid(tok.replaceAll("_", " ")) + control.assert(tid != undefined, `tok ${tok} does not have mapping`) + // check to see if field editor needed + const tile = getEditor(tid) + if (tile && tile instanceof ModifierEditor) { + return tile.getNewInstance() + } else { + return tid + } + } + let phase = Phase.Sensor + const addTile = (rule: RuleDefn, tile: Tile) => { + control.assert(rule != undefined, `No Rule definition`) + if (phase == Phase.Sensor) { + rule.push(tile, "sensors", false) + phase = Phase.Filter + } else if (phase == Phase.Filter) { + rule.push(tile, "filters", false) + } else if (phase == Phase.Modifier) { + rule.push(tile, "modifiers", false) + } else { + rule.push(tile, "actuators", false) + phase = Phase.Modifier + } + } + // tokenizer + let cursor = 0 + const getToken = () => { + const whiteSpace = (s: string) => { + return s == " " || s == "\n" || s == "\t" + } + let prev = cursor + let gotToken = false + while (cursor < str.length) { + if (whiteSpace(str[cursor])) { + if (gotToken) return str.slice(prev, cursor) + cursor++ + prev = cursor + } else { + if (str[cursor] == "`") { + cursor++ + return "`" + } + gotToken = true + cursor++ + } + } + if (gotToken) return str.slice(prev, cursor) + return undefined + } + const prog = new ProgramDefn() + prog.pages = [] + + let currPage: PageDefn = undefined + let currRule: RuleDefn = undefined + let currTile: Tile = undefined + let tok: string = undefined + while ((tok = getToken())) { + // console.log(`tok = ${tok}`) + if (currTile && currTile instanceof ModifierEditor) { + if ( + currTile instanceof IconEditor || + currTile instanceof MelodyEditor + ) { + const thisTile = currTile as ModifierEditor + control.assert(tok == "`", `expected \`, got ${tok}`) + let tokens = [] + while ((tok = getToken()) != "`") { + tokens.push(tok) + } + //console.log(`got tokens = ${tokens.join(":")}`) + control.assert(tok == "`", `expected \`, got ${tok}`) + currTile.field = thisTile.fieldEditor.fromTokens(tokens) + } else if (currTile instanceof DigitEditor) { + currTile.field = currTile.fieldEditor.fromTokens([tok]) + } + currTile = undefined + continue + } + currTile = undefined + if (tok == "Page") { + if (currPage) { + if (currRule) currPage.rules.push(currRule) + prog.pages.push(currPage) + currRule = undefined + } + currPage = new PageDefn() + getToken() // consume page # + } else if (tok == "When") { + control.assert(currPage != undefined, `No Page defined`) + if (currRule) currPage.rules.push(currRule) + currRule = new RuleDefn() + phase = Phase.Sensor + } else if (tok == "Do") { + control.assert(currRule != undefined, `No When defined`) + phase = Phase.Actuator + } else { + currTile = token2tile(tok) + addTile(currRule, currTile) + } + } + if (currRule) currPage.rules.push(currRule) + prog.pages.push(currPage) + parseProgRet = prog + } +} diff --git a/pxt.json b/pxt.json index 3df3743b..e8dd1438 100644 --- a/pxt.json +++ b/pxt.json @@ -34,6 +34,7 @@ "host.ts", "interpreter.ts", "sensors.ts", + "mcparser.ts", "exprparser.ts", "decimal.ts", "settings.ts" diff --git a/scripts/lochex.mjs b/scripts/lochex.mjs index 9aa4c304..76a7629a 100644 --- a/scripts/lochex.mjs +++ b/scripts/lochex.mjs @@ -8,6 +8,7 @@ import { import fetch from "node-fetch" import { execSync } from "child_process" import process from "process" +import { fail } from "assert" const tooltips = JSON.parse( readFileSync("./locales/tooltips.json", { encoding: "utf-8" }) @@ -76,22 +77,37 @@ for (const lang of languages.filter(l => l !== "pxt")) { { encoding: "utf-8" } ) - // for (const fn of ["dialogs", "legal"]) { - // const dialogs = await ( - // await fetch( - // `${cdn}content/${lang}/microcode/${fn}.html?timestamp=${timestamp}` - // ) - // ).text() - // writeFileSync(`./_includes/${fn}-${lang}.html`, dialogs, { - // encoding: "utf-8", - // }) - // } - // merge translations Object.keys(tooltips) .filter(k => !translations[k]) .forEach(k => (translations[k] = tooltips[k])) + const entries = {} + + const tooltip2tid = ` + export function tooltip2tid(id: string): number { + let tid: number = undefined + if (!id) return tid + ${Object.keys(translations) + // don't emit sample names in hardware + .filter(k => !/^N/.test(k)) + // only Tids + .filter(k => /T\d+/.test(k)) + .map(k => { + const tid = parseInt(k.slice(1)) + const trans = translations[k] + if (entries[trans]) { + console.log(`ERROR: already have entry for ${trans}`) + } else { + entries[trans] = tid + } + return ` else if (id === "${trans}") tid = ${tid};` + }) + .join("\n")} + return tid + } + ` + const ts = `// auto-generated, run 'node scripts/lochex.mjs' to refresh namespace microcode { export const lang = "${lang}" @@ -108,7 +124,10 @@ ${Object.keys(translations) .join("\n")} return res } + + ${tooltip2tid} }` + writeFileSync("./tooltips.ts", ts, { encoding: "utf8" }) // build js @@ -120,7 +139,7 @@ ${Object.keys(translations) ) // build hex console.log(` build hw`) - exec("makecode --hw n3", { shell: true }) + exec("makecode", { shell: true }) copyFileSync( "./built/n3/binary.hex", `./assets/hex/microcode-${lang.toLowerCase()}.hex` diff --git a/tiles.ts b/tiles.ts index 6e0f2e76..e5707796 100644 --- a/tiles.ts +++ b/tiles.ts @@ -129,11 +129,11 @@ namespace microcode { TID_MODIFIER_PAGE_4 = 153, TID_MODIFIER_PAGE_5 = 154, // - TID_MODIFIER_COIN_1 = 155, - TID_MODIFIER_COIN_2 = 156, - TID_MODIFIER_COIN_3 = 157, - TID_MODIFIER_COIN_4 = 158, - TID_MODIFIER_COIN_5 = 159, + TID_MODIFIER_COIN_1 = 155, // deprecate + TID_MODIFIER_COIN_2 = 156, // "" + TID_MODIFIER_COIN_3 = 157, // "" + TID_MODIFIER_COIN_4 = 158, // "" + TID_MODIFIER_COIN_5 = 159, // "" // TID_MODIFIER_ICON_EDITOR = 160, TID_MODIFIER_COLOR_RED = 161, @@ -153,9 +153,9 @@ namespace microcode { TID_MODIFIER_EMOJI_YAWN = 172, EMOJI_END = 172, // - TID_MODIFIER_CUP_X_READ = 173, - TID_MODIFIER_CUP_Y_READ = 174, - TID_MODIFIER_CUP_Z_READ = 175, + TID_MODIFIER_CUP_X_READ = 173, // deprecate + TID_MODIFIER_CUP_Y_READ = 174, // "" + TID_MODIFIER_CUP_Z_READ = 175, // "" TID_MODIFIER_RADIO_READ = 176, TID_MODIFIER_RANDOM_TOSS = 177, TID_MODIFIER_LOOP = 178, @@ -176,8 +176,8 @@ namespace microcode { CAR_MODIFIER_BEGIN = 190, TID_MODIFIER_CAR_FORWARD = 190, TID_MODIFIER_CAR_REVERSE = 191, - TID_MODIFIER_CAR_TURN_LEFT = 192, - TID_MODIFIER_CAR_TURN_RIGHT = 193, + TID_MODIFIER_CAR_TURN_LEFT = 192, // deprecate + TID_MODIFIER_CAR_TURN_RIGHT = 193, // deprecate TID_MODIFIER_CAR_STOP = 194, TID_MODIFIER_CAR_FORWARD_FAST = 195, TID_MODIFIER_CAR_SPIN_LEFT = 196, @@ -196,7 +196,7 @@ namespace microcode { TID_MODIFIER_LIGHT_READ = 206, TID_MODIFIER_MAGNET_READ = 207, TID_MODIFIER_MIC_READ = 208, - MODIFER_END = 208, + MODIFIER_END = 208, TID_OPERATOR_START = 210, TID_OPERATOR_PLUS = 210, @@ -224,7 +224,7 @@ namespace microcode { sensors: [Tid.SENSOR_START, Tid.SENSOR_END], filters: [Tid.FILTER_START, Tid.FILTER_END], actuators: [Tid.ACTUATOR_START, Tid.ACTUATOR_END], - modifiers: [Tid.MODIFIER_START, Tid.MODIFER_END], + modifiers: [Tid.MODIFIER_START, Tid.MODIFIER_END], mathOperators: [Tid.TID_OPERATOR_START, Tid.TID_OPERATOR_END], comparisonOperators: [Tid.TID_COMPARE_START, Tid.TID_COMPARE_END], } @@ -253,7 +253,9 @@ namespace microcode { export function isModifier(tid: Tid) { return ( - (tid >= Tid.MODIFIER_START && tid <= Tid.MODIFER_END) || + (tid >= Tid.MODIFIER_START && tid <= Tid.MODIFIER_END) || + isConstant(tid) || + isVariable(tid) || isMathOperator(tid) || tid == Tid.TID_DECIMAL_EDITOR || tid == Tid.TID_POS_INT_EDITOR @@ -300,27 +302,27 @@ namespace microcode { return Tid.LINE_START <= tidEnum && tidEnum <= Tid.LINE_END } - export function isFilterConstant(tidEnum: Tid) { + export function isConstant(tidEnum: Tid) { return ( Tid.TID_FILTER_COIN_1 <= tidEnum && tidEnum <= Tid.TID_FILTER_COIN_5 ) } - function isFilterVariable(tidEnum: Tid) { + function isVariable(tidEnum: Tid) { return ( Tid.TID_FILTER_CUP_X_READ <= tidEnum && tidEnum <= Tid.TID_FILTER_CUP_Z_READ ) } - export function isModifierConstant(tidEnum: Tid) { + export function isOldModifierCoin(tidEnum: Tid) { return ( Tid.TID_MODIFIER_COIN_1 <= tidEnum && tidEnum <= Tid.TID_MODIFIER_COIN_5 ) } - function isModifierVariable(tidEnum: Tid) { + export function isOldModifierVar(tidEnum: Tid) { return ( Tid.TID_MODIFIER_CUP_X_READ <= tidEnum && tidEnum <= Tid.TID_MODIFIER_CUP_Z_READ @@ -394,9 +396,9 @@ namespace microcode { if (!isFilter(tid)) return false // the following filters are not terminal if ( - isFilterConstant(tid) || + isConstant(tid) || isTimespan(tid) || - isFilterVariable(tid) || + isVariable(tid) || isMathOperator(tid) || isComparisonOperator(tid) || tid == Tid.TID_DECIMAL_EDITOR @@ -440,8 +442,10 @@ namespace microcode { return modEditor.getField() } case Tid.TID_ACTUATOR_MUSIC: { - const mod = getEditor(Tid.TID_MODIFIER_MELODY_EDITOR) - return (mod as MelodyEditor).getNoteSequence() + const mod = getEditor( + Tid.TID_MODIFIER_MELODY_EDITOR + ) as MelodyEditor + return melodyToNotes(mod.field) } case Tid.TID_ACTUATOR_SHOW_NUMBER: case Tid.TID_ACTUATOR_CUP_X_ASSIGN: @@ -469,7 +473,7 @@ namespace microcode { if (isSensorEvent(tid)) return isSensorEvent(tid) if (isFilter(tid)) { // TODO: if event, put it last - if (isFilterConstant(tid)) return getParam(tid) + if (isConstant(tid)) return getParam(tid) if (isLineEvent(tid)) { if (tid == Tid.TID_FILTER_LINE_BOTH) return 101 else return tid @@ -600,7 +604,7 @@ namespace microcode { ] const filterMath: (string | number)[] = [ - "value_in", + "variable", "comparison", "maths", "decimal_editor", @@ -694,8 +698,8 @@ namespace microcode { case Tid.TID_ACTUATOR_CUP_Z_ASSIGN: return { only: microcodeClassic - ? ["value_out", "constant"] - : ["value_out", "maths", "decimal_editor"], + ? ["variable", "constant"] + : ["variable", "maths", "decimal_editor"], } case Tid.TID_ACTUATOR_RGB_LED: return { only: ["rgb_led", "loop"] } @@ -730,13 +734,7 @@ namespace microcode { if (isEmoji(tid)) return "sound_emoji" if (isComparisonOperator(tid)) return "comparison" if (isMathOperator(tid)) return "maths" - if ( - // isFilterConstant(tid) || - isFilterVariable(tid) - ) - return "value_in" - if (isModifierConstant(tid)) return "constant" - if (isModifierVariable(tid)) return "value_out" + if (isVariable(tid)) return "variable" if (isPage(tid)) return "page" if (isCarModifier(tid)) return "car" if (isLedModifier(tid)) return "rgb_led" @@ -772,7 +770,7 @@ namespace microcode { case Tid.TID_MODIFIER_MIC_READ: case Tid.TID_MODIFIER_LIGHT_READ: case Tid.TID_MODIFIER_MAGNET_READ: - return "value_out" + return "variable" case Tid.TID_OPERATOR_DIVIDE: case Tid.TID_OPERATOR_MINUS: case Tid.TID_OPERATOR_MULTIPLY: @@ -794,8 +792,7 @@ namespace microcode { export function getKindTid(tid: number): TileKind { if ( - isFilterConstant(tid) || - isModifierConstant(tid) || + isConstant(tid) || tid == Tid.TID_DECIMAL_EDITOR || tid == Tid.TID_POS_INT_EDITOR ) @@ -858,8 +855,7 @@ namespace microcode { export function getParam(tile: Tile): any { const tid = getTid(tile) - if (isModifierConstant(tid)) return tid - Tid.TID_MODIFIER_COIN_1 + 1 - if (isFilterConstant(tid)) return tid - Tid.TID_FILTER_COIN_1 + 1 + if (isConstant(tid)) return tid - Tid.TID_FILTER_COIN_1 + 1 if (isPage(tid)) return tid - Tid.TID_MODIFIER_PAGE_1 + 1 if (isAccelerometerEvent(tid) || isPressReleaseEvent(tid)) return tid switch (tid) { diff --git a/tooltips.ts b/tooltips.ts index 5bade311..8dcf46e6 100644 --- a/tooltips.ts +++ b/tooltips.ts @@ -32,7 +32,7 @@ namespace microcode { else if (id === "T12") res = "release"; else if (id === "T13") res = "move"; else if (id === "T14") res = "timer"; - else if (id === "T15") res = "light"; + else if (id === "T15") res = "light (external)"; else if (id === "T16") res = "temperature"; else if (id === "T17") res = "radio receive"; else if (id === "T18") res = "sound"; @@ -47,7 +47,7 @@ namespace microcode { else if (id === "T27") res = "light"; else if (id === "T28") res = "moisture"; else if (id === "T29") res = "distance"; - else if (id === "T30") res = "line"; + else if (id === "T30") res = "reflected light"; else if (id === "T40") res = "switch page"; else if (id === "T41") res = "play sound"; else if (id === "T43") res = "music"; @@ -82,7 +82,7 @@ namespace microcode { else if (id === "T86") res = "5 seconds"; else if (id === "T87") res = "loud"; else if (id === "T88") res = "quiet"; - else if (id === "T89") res = "NA"; + else if (id === "T89") res = "NA1"; else if (id === "T90") res = "shake"; else if (id === "T91") res = "tilt up"; else if (id === "T92") res = "tilt down"; @@ -102,21 +102,16 @@ namespace microcode { else if (id === "T107") res = "lost right"; else if (id === "T108") res = "face up"; else if (id === "T109") res = "face down"; - else if (id === "T110") res = "on"; - else if (id === "T111") res = "off"; + else if (id === "T110") res = "active"; + else if (id === "T111") res = "unactive"; else if (id === "T150") res = "page 1"; else if (id === "T151") res = "page 2"; else if (id === "T152") res = "page 3"; else if (id === "T153") res = "page 4"; else if (id === "T154") res = "page 5"; - else if (id === "T155") res = "1"; - else if (id === "T156") res = "2"; - else if (id === "T157") res = "3"; - else if (id === "T158") res = "4"; - else if (id === "T159") res = "5"; else if (id === "T160") res = "LED image"; - else if (id === "T161") res = "red"; - else if (id === "T162") res = "purple"; + else if (id === "T161") res = "NA5"; + else if (id === "T162") res = "NA6"; else if (id === "T163") res = "giggle"; else if (id === "T164") res = "happy"; else if (id === "T165") res = "hello"; @@ -127,15 +122,12 @@ namespace microcode { else if (id === "T170") res = "spring"; else if (id === "T171") res = "twinkle"; else if (id === "T172") res = "yawn"; - else if (id === "T173") res = "variable X"; - else if (id === "T174") res = "variable Y"; - else if (id === "T175") res = "variable Z"; else if (id === "T176") res = "radio value"; else if (id === "T177") res = "random number"; else if (id === "T178") res = "repeat"; else if (id === "T179") res = "melody"; - else if (id === "T180") res = "temperature"; - else if (id === "T181") res = "NA"; + else if (id === "T180") res = "temp."; + else if (id === "T181") res = "NA2"; else if (id === "T182") res = "red"; else if (id === "T183") res = "green"; else if (id === "T184") res = "blue"; @@ -146,8 +138,8 @@ namespace microcode { else if (id === "T189") res = "sparkle"; else if (id === "T190") res = "forward"; else if (id === "T191") res = "reverse"; - else if (id === "T192") res = "turn left"; - else if (id === "T193") res = "turn right"; + else if (id === "T192") res = "NA3"; + else if (id === "T193") res = "NA4"; else if (id === "T194") res = "stop"; else if (id === "T195") res = "fast forward"; else if (id === "T196") res = "spin left"; @@ -176,4 +168,151 @@ namespace microcode { else if (id === "T255") res = "enter number"; return res } + + + export function tooltip2tid(id: string): number { + let tid: number = undefined + if (!id) return tid + else if (id === "page start") tid = 10; + else if (id === "press") tid = 11; + else if (id === "release") tid = 12; + else if (id === "move") tid = 13; + else if (id === "timer") tid = 14; + else if (id === "light (external)") tid = 15; + else if (id === "temperature") tid = 16; + else if (id === "radio receive") tid = 17; + else if (id === "sound") tid = 18; + else if (id === "variable X set") tid = 19; + else if (id === "variable Y set") tid = 20; + else if (id === "variable Z set") tid = 21; + else if (id === "magnet") tid = 22; + else if (id === "slider") tid = 23; + else if (id === "dial") tid = 24; + else if (id === "wall") tid = 25; + else if (id === "line") tid = 26; + else if (id === "light") tid = 27; + else if (id === "moisture") tid = 28; + else if (id === "distance") tid = 29; + else if (id === "reflected light") tid = 30; + else if (id === "switch page") tid = 40; + else if (id === "play sound") tid = 41; + else if (id === "music") tid = 43; + else if (id === "show image") tid = 44; + else if (id === "radio send") tid = 45; + else if (id === "radio set group") tid = 46; + else if (id === "LED") tid = 47; + else if (id === "set variable X") tid = 48; + else if (id === "set variable Y") tid = 49; + else if (id === "set variable Z") tid = 50; + else if (id === "show number") tid = 51; + else if (id === "robot") tid = 52; + else if (id === "servo set angle") tid = 53; + else if (id === "relay") tid = 54; + else if (id === "servo power") tid = 55; + else if (id === "touch pin 0") tid = 70; + else if (id === "touch pin 1") tid = 71; + else if (id === "touch pin 2") tid = 72; + else if (id === "button A") tid = 73; + else if (id === "button B") tid = 74; + else if (id === "key 1") tid = 75; + else if (id === "key 2") tid = 76; + else if (id === "logo") tid = 77; + else if (id === "1") tid = 78; + else if (id === "2") tid = 79; + else if (id === "3") tid = 80; + else if (id === "4") tid = 81; + else if (id === "5") tid = 82; + else if (id === "1/4 second") tid = 83; + else if (id === "1 second") tid = 84; + else if (id === "1 random second") tid = 85; + else if (id === "5 seconds") tid = 86; + else if (id === "loud") tid = 87; + else if (id === "quiet") tid = 88; + else if (id === "NA1") tid = 89; + else if (id === "shake") tid = 90; + else if (id === "tilt up") tid = 91; + else if (id === "tilt down") tid = 92; + else if (id === "tilt left") tid = 93; + else if (id === "tilt right") tid = 94; + else if (id === "variable X") tid = 95; + else if (id === "variable Y") tid = 96; + else if (id === "variable Z") tid = 97; + else if (id === "turn left") tid = 98; + else if (id === "turn right") tid = 99; + else if (id === "up") tid = 100; + else if (id === "down") tid = 101; + else if (id === "right") tid = 103; + else if (id === "both") tid = 104; + else if (id === "none") tid = 105; + else if (id === "lost left") tid = 106; + else if (id === "lost right") tid = 107; + else if (id === "face up") tid = 108; + else if (id === "face down") tid = 109; + else if (id === "active") tid = 110; + else if (id === "unactive") tid = 111; + else if (id === "page 1") tid = 150; + else if (id === "page 2") tid = 151; + else if (id === "page 3") tid = 152; + else if (id === "page 4") tid = 153; + else if (id === "page 5") tid = 154; + else if (id === "LED image") tid = 160; + else if (id === "NA5") tid = 161; + else if (id === "NA6") tid = 162; + else if (id === "giggle") tid = 163; + else if (id === "happy") tid = 164; + else if (id === "hello") tid = 165; + else if (id === "mysterious") tid = 166; + else if (id === "sad") tid = 167; + else if (id === "slide") tid = 168; + else if (id === "soaring") tid = 169; + else if (id === "spring") tid = 170; + else if (id === "twinkle") tid = 171; + else if (id === "yawn") tid = 172; + else if (id === "radio value") tid = 176; + else if (id === "random number") tid = 177; + else if (id === "repeat") tid = 178; + else if (id === "melody") tid = 179; + else if (id === "temp.") tid = 180; + else if (id === "NA2") tid = 181; + else if (id === "red") tid = 182; + else if (id === "green") tid = 183; + else if (id === "blue") tid = 184; + else if (id === "purple") tid = 185; + else if (id === "yellow") tid = 186; + else if (id === "black") tid = 187; + else if (id === "rainbow") tid = 188; + else if (id === "sparkle") tid = 189; + else if (id === "forward") tid = 190; + else if (id === "reverse") tid = 191; + else if (id === "NA3") tid = 192; + else if (id === "NA4") tid = 193; + else if (id === "stop") tid = 194; + else if (id === "fast forward") tid = 195; + else if (id === "spin left") tid = 196; + else if (id === "spin right") tid = 197; + else if (id === "LED red") tid = 198; + else if (id === "LED green") tid = 199; + else if (id === "LED blue") tid = 200; + else if (id === "LED OFF") tid = 201; + else if (id === "arm open") tid = 202; + else if (id === "arm close") tid = 203; + else if (id === "on") tid = 204; + else if (id === "off") tid = 205; + else if (id === "light value") tid = 206; + else if (id === "magnet value") tid = 207; + else if (id === "sound value") tid = 208; + else if (id === "add") tid = 210; + else if (id === "subtract") tid = 211; + else if (id === "multiply") tid = 212; + else if (id === "divide") tid = 213; + else if (id === "equals") tid = 220; + else if (id === "not equals") tid = 221; + else if (id === "less than") tid = 222; + else if (id === "less than or equals") tid = 223; + else if (id === "greater than") tid = 224; + else if (id === "greater than or equals") tid = 225; + else if (id === "enter number") tid = 255; + return tid + } + } \ No newline at end of file